لغة الشرائح
تقدم Pushwoosh محرك تجزئة قويًا لبناء شرائح دقيقة بناءً على قيم العلامات (Tags). لغة الشرائح هي طريقة محددة لكتابة ودمج معايير التجزئة لوصف مجموعة معينة من المستخدمين الذين يطابقون تلك المعايير ومعاملتهم كشريحة جمهور واحدة.
يصف هذا المقال المفاهيم الأساسية وبناء الجملة للغة الشرائح ويقدم أمثلة شاملة لبناء معايير التجزئة لحالات مختلفة.
الأساسيات
Anchor link toكل جهاز في قاعدة المستخدمين الخاصة بك له سمات محددة مرتبطة به عبر قيم العلامات (Tag values).
على سبيل المثال، لنفترض أن مستخدمة تدعى Jane تعيش في طوكيو، وعمرها 28 عامًا. سيكون لدى هذه المستخدمة العلامات التالية المعينة لجهازها:
- Name: Jane
- City: Tokyo
- Age: 28
لاستهداف Jane، ستحتاج إلى وصف شريحة على النحو التالي:
T("Name", eq, "Jane") * T("Age", eq, 28) * T("City", eq, "Tokyo")
هذا المزيج من الشروط هو تعبير تصفية يستخدم في لغة الشرائح لوصف مجموعات من المستخدمين المعروفة باسم شرائح الجمهور.
تعابير التصفية
Anchor link toتعبير التصفية هو سلسلة نصية تحتوي على شرط أو مجموعة من الشروط التي تصف الشريحة التي تحتاجها.
الشروط
Anchor link toيصف كل شرط شريحة من الأجهزة التي تطابق المعايير المحددة في ذلك الشرط.
على سبيل المثال، يبني الشرط التالي شريحة من المستخدمين الذين يعيشون في طوكيو:
T("City", e, "Tokyo")
حيث
- T هي علامة (Tag) (نوع الشرط)؛
- eq هو عامل (operator) للتطبيق؛
- “Tokyo” هي قيمة علامة (Tag) مرتبطة بأجهزة المستخدمين.
أنواع الشروط
Anchor link toأنواع الشروط التالية متاحة للتجزئة:
- A (Application) – يصف شريحة من الأجهزة التي لديها تطبيق معين مثبت. الأسماء المستعارة: App، Application؛
- T (Tag) – يصف شريحة من الأجهزة بقيم علامات (Tags) محددة؛
- AT (App-scoped tag) – يبحث عن قيمة علامة داخل تطبيق معين؛ رمز التطبيق مطلوب كوسيط أول. الاسم المستعار: Tag؛
- Event – يصف شريحة من الأجهزة التي أثارت حدثًا معينًا في Pushwoosh؛
- Geo – يصف شريحة من الأجهزة ضمن نصف قطر جغرافي معين؛
- BTTS – يصف شريحة من الأجهزة بناءً على أفضل وقت للإرسال إليها؛
- Updated – يصف شريحة من الأجهزة بناءً على آخر طابع زمني لتحديثها؛
- Segment – يشير إلى مرشح/شريحة أخرى برمزها؛
العمليات مع الشروط
Anchor link toلبناء شرائح متطورة، يمكن تطبيق العمليات التالية على الشروط داخل تعبير التصفية:
الاتحاد (+)
Anchor link toيجمع الشرائح، أي يبني شريحة جديدة من المستخدمين الذين يطابقون شرطًا واحدًا على الأقل من الشروط المحددة.

على سبيل المثال، لاستهداف المستخدمين الذين يعيشون في طوكيو أو في أوساكا، ستحتاج إلى وصف الشريحة بالشروط التالية:
T("City", eq, "Tokyo") + T("City", eq, "Osaka")
التقاطع (*)
Anchor link toينشئ شريحة من المستخدمين الذين ينتمون إلى كلتا الشريحتين الموصوفتين بالشروط. وبالتالي، سيتم تضمين فقط أولئك المستخدمين الذين يمتثلون لكل شرط تحدده.

يصف التعبير التالي شريحة من المستخدمين الذين يعيشون في طوكيو وقد حددوا أسماءهم:
T("City", eq, "Tokyo") * T("Name", any)
الفرق (\)
Anchor link toيبني شريحة من المستخدمين الذين ينتمون إلى إحدى الشرائح الموصوفة ولا ينتمون إلى الأخرى.

سيتم وصف المستخدمين الذين يعيشون في طوكيو ولكن لم يقدموا أسماءهم على النحو التالي:
T("City", eq, "Tokyo") \ T("Name", any)
الأقواس
Anchor link toتحدد ترتيب العمليات التي سيتم إجراؤها مع الشروط في تعبير التصفية الخاص بك.
على سبيل المثال، سيقوم تعبير التصفية التالي أولاً بالحصول على شريحة من مشتركي 12345-67890 الذين يبلغ عمرهم 18 عامًا ثم يطرح جميع الرجال من تلك الشريحة:
( A("12345-67890") * T("Age", eq, 18) ) \ T("Gender", eq, "Male")
عوامل شروط العلامات (Tag)
Anchor link toلكل نوع من أنواع العلامات (Tags)، يتم تطبيق عواملها الخاصة.
عوامل علامات الأعداد الصحيحة (Integer Tags)
Anchor link to- eq - يساوي قيمة محددة
- noteq - لا يساوي قيمة محددة
- lte - أقل من أو يساوي قيمة محددة
- gte - أكبر من أو يساوي قيمة محددة
- in - أي من القيم المحددة
- notin - لا يساوي أيًا من القيم المحددة
- between - في نطاق محدد
- any - الأجهزة التي لديها أي قيم معينة للعلامة
- notset - الأجهزة التي ليس لديها قيمة معينة للعلامة
عوامل علامات السلاسل النصية (String Tags)
Anchor link to- eq - يساوي قيمة محددة
- noteq - لا يساوي قيمة محددة
- startswith - يبدأ ببادئة محددة
- endswith - ينتهي بلاحقة محددة
- contains - يحتوي على سلسلة نصية فرعية محددة
- in - يساوي أيًا من القيم المحددة
- notin - لا يساوي أيًا من القيم المحددة
- any - الأجهزة التي لديها أي قيم معينة للعلامة
- notset - الأجهزة التي ليس لديها قيمة معينة للعلامة
عوامل علامات القوائم (List Tags)
Anchor link to- in - الأجهزة التي لديها أي من قيم العلامات المحددة
- notin - لا توجد أي من قيم العلامات المحددة مرتبطة بالجهاز
- any - الأجهزة التي لديها أي قيم معينة للعلامة
- notset - الأجهزة التي ليس لديها قيمة معينة للعلامة
عوامل علامات التاريخ (Date Tags)
Anchor link to- eq - يساوي التاريخ المحدد
- noteq - لا يساوي التاريخ المحدد
- lte - قبل أو في التاريخ المحدد
- gte - بعد أو في التاريخ المحدد
- in - يساوي أيًا من التواريخ المحددة
- notin - لا يساوي أيًا من التواريخ المحددة
- between - في نطاق محدد
- any - الأجهزة التي لديها أي قيم معينة للعلامة
- notset - الأجهزة التي ليس لديها قيمة معينة للعلامة
- match - يطابق شهرًا معينًا من السنة ويومًا معينًا من الشهر.
- daysago eq - يساوي عددًا محددًا من الأيام قبل اليوم الحالي
- daysago noteq - لا يساوي عددًا محددًا من الأيام قبل اليوم الحالي
- daysago lte - أقل من أو يساوي عددًا محددًا من الأيام قبل اليوم الحالي
- daysago gte - أكبر من أو يساوي عددًا محددًا من الأيام قبل اليوم الحالي
- daysago between - بين أعداد محددة من الأيام
- minutesago lte - أقل من أو يساوي عددًا محددًا من الدقائق قبل اللحظة الحالية
- minutesago gte - أكبر من أو يساوي عددًا محددًا من الدقائق قبل اللحظة الحالية
- daysahead - في غضون N إلى M أيام من اليوم الحالي (UTC)، شاملة لكلا الطرفين
عوامل العلامات المنطقية (Boolean Tags)
Anchor link to- eq - يساوي قيمة محددة
- noteq - لا يساوي قيمة محددة
- any - الأجهزة التي لديها أي قيم معينة للعلامة
- notset - الأجهزة التي ليس لديها قيمة معينة للعلامة
عوامل علامات الأسعار (Price Tags)
Anchor link to- eq - يساوي قيمة محددة
- noteq - لا يساوي قيمة محددة
- lte - أقل من أو يساوي قيمة محددة
- gte - أكبر من أو يساوي قيمة محددة
- in - يساوي أيًا من القيم المحددة
- notin - لا يساوي أيًا من القيم المحددة
- between - في نطاق محدد
- any - الأجهزة التي لديها أي قيم معينة للعلامة
- notset - الأجهزة التي ليس لديها قيمة معينة للعلامة
عوامل علامات الإصدار (Version Tags)
Anchor link to- eq - يساوي قيمة محددة
- noteq - لا يساوي قيمة محددة
- lte - أقل من أو يساوي قيمة محددة
- gte - أكبر من أو يساوي قيمة محددة
- in - يساوي أيًا من القيم المحددة
- notin - لا يساوي أيًا من القيم المحددة
- between - في نطاق محدد
- any - الأجهزة التي لديها أي قيم معينة للعلامة
- notset - الأجهزة التي ليس لديها قيمة معينة للعلامة
عوامل شروط الأحداث (Event)
Anchor link toعدد الأحداث
Anchor link to- count gte - الأجهزة التي أثارت الحدث أكثر من أو يساوي n مرة
- count lte - الأجهزة التي أثارت الحدث أقل من أو يساوي n مرة
- count eq - الأجهزة التي أثارت الحدث n مرة بالضبط
- count noteq - الأجهزة التي أثارت الحدث أي عدد من المرات ولكن لا يساوي n
تاريخ الحدث
Anchor link to- date gte - الأجهزة التي أثارت الحدث بعد أو في التاريخ المحدد بالضبط
- date lte - الأجهزة التي أثارت الحدث قبل أو في التاريخ المحدد بالضبط
- date eq - الأجهزة التي أثارت الحدث في التاريخ المحدد بالضبط
- date noteq - الأجهزة التي أثارت الحدث في أي وقت ولكن ليس في التاريخ المحدد
- date in - الأجهزة التي أثارت الحدث في أي من التواريخ المحددة
- date notin - الأجهزة التي أثارت الحدث في أي وقت ولكن ليس في أي من التواريخ المحددة
- date between - الأجهزة التي أثارت الحدث خلال فترة محددة
- date daysago eq - تاريخ إثارة الحدث يساوي عددًا محددًا من الأيام قبل اليوم الحالي
- date daysago noteq - تاريخ إثارة الحدث لا يساوي عددًا محددًا من الأيام قبل اليوم الحالي
- date daysago lte - تاريخ إثارة الحدث أقل من أو يساوي عددًا محددًا من الأيام قبل اليوم الحالي
- date daysago gte - تاريخ إثارة الحدث أكبر من أو يساوي عددًا محددًا من الأيام قبل اليوم الحالي
- date daysago between - تاريخ إثارة الحدث بين أعداد محددة من الأيام
- date daysahead - تاريخ إثارة الحدث في عدد محدد من الأيام من اليوم الحالي (الفترة شاملة لكلا الطرفين، انظر عوامل علامات التاريخ أعلاه للحصول على الدلالات الكاملة)
- date minutesago lte - تاريخ إثارة الحدث أقل من أو يساوي عددًا محددًا من الدقائق قبل اللحظة الحالية
- date minutesago gte - تاريخ إثارة الحدث أكبر من أو يساوي عددًا محددًا من الدقائق قبل اللحظة الحالية
منصات الأحداث
Anchor link toتصفية الأحداث حسب المنصة التي تم إثارتها فيها.
- platforms - قائمة بالمنصات (على سبيل المثال، [“ios”, “android”])
سمات الأحداث
Anchor link toيمكن لشروط الأحداث التصفية بناءً على قيم سمات الأحداث. تدعم السمات أنواع بيانات مختلفة مع عواملها المقابلة.
سمات الأحداث من نوع عدد صحيح
Anchor link to- attribute “name” eq - السمة تساوي قيمة محددة
- attribute “name” noteq - السمة لا تساوي قيمة محددة
- attribute “name” gte - السمة أكبر من أو تساوي قيمة محددة
- attribute “name” lte - السمة أقل من أو تساوي قيمة محددة
- attribute “name” between - السمة في نطاق محدد
- attribute “name” in - السمة تساوي أيًا من القيم المحددة
- attribute “name” notin - السمة لا تساوي أيًا من القيم المحددة
- attribute “name” any - أي قيمة معينة للسمة
- attribute “name” notset - لا توجد قيمة معينة للسمة
سمات الأحداث من نوع سلسلة نصية
Anchor link to- attribute “name” eq - السمة تساوي قيمة محددة
- attribute “name” noteq - السمة لا تساوي قيمة محددة
- attribute “name” startswith - السمة تبدأ ببادئة محددة
- attribute “name” endswith - السمة تنتهي بلاحقة محددة
- attribute “name” contains - السمة تحتوي على سلسلة نصية فرعية محددة
- attribute “name” in - السمة تساوي أيًا من القيم المحددة
- attribute “name” notin - السمة لا تساوي أيًا من القيم المحددة
- attribute “name” any - أي قيمة معينة للسمة
- attribute “name” notset - لا توجد قيمة معينة للسمة
سمات الأحداث المنطقية
Anchor link to- attribute “name” eq - السمة تساوي true أو false
- attribute “name” noteq - السمة لا تساوي true أو false
سمات الأحداث من نوع تاريخ
Anchor link to- attribute “name” eq - السمة تساوي تاريخًا محددًا
- attribute “name” noteq - السمة لا تساوي تاريخًا محددًا
- attribute “name” gte - السمة بعد أو في تاريخ محدد
- attribute “name” lte - السمة قبل أو في تاريخ محدد
- attribute “name” between - السمة ضمن نطاق تاريخ محدد
- attribute “name” in - السمة تساوي أيًا من التواريخ المحددة
- attribute “name” notin - السمة لا تساوي أيًا من التواريخ المحددة
- attribute “name” daysago eq/noteq/gte/lte/between - السمة بالنسبة للأيام الماضية
- attribute “name” daysahead from to - السمة في فترة محددة من الأيام من اليوم الحالي (الفترة شاملة لكلا الطرفين، انظر عوامل علامات التاريخ أعلاه للحصول على الدلالات الكاملة)
- attribute “name” minutesago gte/lte - السمة بالنسبة للدقائق الماضية
- attribute “name” any - أي قيمة معينة للسمة
- attribute “name” notset - لا توجد قيمة معينة للسمة
سمات الأحداث من نوع سعر
Anchor link to- attribute “name” eq - السمة تساوي قيمة سعر محددة
- attribute “name” noteq - السمة لا تساوي قيمة سعر محددة
- attribute “name” gte - السمة أكبر من أو تساوي سعرًا محددًا
- attribute “name” lte - السمة أقل من أو تساوي سعرًا محددًا
- attribute “name” between - السمة في نطاق سعر محدد
- attribute “name” in - السمة تساوي أيًا من الأسعار المحددة
- attribute “name” notin - السمة لا تساوي أيًا من الأسعار المحددة
- attribute “name” any - أي قيمة معينة للسمة
- attribute “name” notset - لا توجد قيمة معينة للسمة
سمات الأحداث من نوع قائمة
Anchor link to- attribute “name” in - السمة تحتوي على أي من القيم المحددة
- attribute “name” notin - السمة لا تحتوي على أي من القيم المحددة
- attribute “name” any - أي قيمة معينة للسمة
- attribute “name” notset - لا توجد قيمة معينة للسمة
أنواع الشروط الإضافية
Anchor link toالشرط الجغرافي (Geo)
Anchor link toاستهداف الأجهزة بناءً على الموقع الجغرافي ضمن نصف قطر محدد.
بناء الجملة: Geo("<app-code>", <latitude>, <longitude>, <range-in-km>)
شرط أفضل وقت للإرسال (BTTS)
Anchor link toاستهداف الأجهزة حسب أفضل وقت لإرسال الإشعارات إليها (ساعة اليوم، 0-23).
العوامل:
- any - أي قيمة محددة لأفضل وقت للإرسال
- eq - تطابق تام للساعة
- noteq - لا يساوي الساعة
- gte - الساعة أكبر من أو تساوي
- lte - الساعة أقل من أو تساوي
شرط التحديث (Updated)
Anchor link toتصفية الأجهزة حسب آخر طابع زمني لتحديثها.
العوامل:
- gte - تم التحديث بعد أو في تاريخ محدد
- lte - تم التحديث قبل أو في تاريخ محدد
- between - تم التحديث ضمن نطاق تاريخي
شرط الشريحة (Segment)
Anchor link toالإشارة إلى مرشح/شريحة أخرى برمزها.
أعلام وجود الجهاز في شرط التطبيق
Anchor link toتدعم شروط التطبيق أعلامًا إضافية للتحكم في تصفية الأجهزة والرموز:
- with_tokens - الأجهزة التي لديها رموز إشعارات الدفع
- without_tokens - الأجهزة التي ليس لديها رموز إشعارات الدفع
- with_devices - المستخدمون الذين لديهم أجهزة مسجلة
- without_devices - المستخدمون/الملفات الشخصية التي ليس لديها أجهزة مسجلة
أمثلة على تعابير التصفية
Anchor link toأمثلة أساسية
Anchor link to- أجهزة iOS و Android التي تم تثبيت التطبيق عليها ولديها رموز دفع:
A("11111-11111", ["ios","android"], [with_tokens])- أجهزة iOS و Android التي تم تثبيت التطبيق عليها ولكن ليس لديها رموز دفع:
A("11111-11111", ["ios","android"], [without_tokens])- أجهزة iOS و Android التي تم تثبيت التطبيق عليها، سواء كان لديها رموز دفع أم لا:
A("11111-11111", ["ios","android"], [with_tokens, without_tokens])- جميع مشتركي التطبيق الذين اشتروا شيئًا ما في التطبيق:
AT("11111-11111", "In-App Purchase", gte, 1)أمثلة متقدمة
Anchor link to- المستخدمون في طوكيو الذين فتحوا التطبيق في آخر 7 أيام:
T("City", eq, "Tokyo") * Event("11111-11111", "App Open", date daysago lte 7)- المستخدمون الذين أجروا عملية شراء تزيد عن 50 دولارًا في آخر 30 يومًا:
Event("11111-11111", "Purchase", attribute "total_price" gte 50.00, date daysago lte 30)- المستخدمون الذين تبدأ أسماؤهم بحرف “J” أو تنتهي بحرف “e”:
T("Name", startswith, "J") + T("Name", endswith, "e")- مستخدمو iOS النشطون على بعد 100 كم من نيويورك الذين لم يشتروا مؤخرًا:
A("11111-11111", ["ios"], [with_tokens]) * Geo("11111-11111", 40.7128, -74.0060, 100) \ Event("11111-11111", "Purchase", date daysago lte 30)- المستخدمون الذين يكون أفضل وقت للإرسال إليهم بين الساعة 9 صباحًا و 5 مساءً:
BTTS("11111-11111", gte 9) * BTTS("11111-11111", lte 17)- المستخدمون الذين أثاروا حدثًا معينًا على Android أو iOS في الساعة الأخيرة:
Event("11111-11111", "Button Click", platforms ["android", "ios"], date minutesago lte 60)- الأجهزة التي تم تحديثها في آخر 3 أشهر بإصدار تطبيق 4.2 أو أعلى:
Updated("11111-11111", gte "2024-07-01 00:00:00") * AT("11111-11111", "App Version", gte, "4.2")