لغة التجزئة
تقدم Pushwoosh محرك تجزئة قويًا لبناء شرائح (Segments) دقيقة بناءً على قيم العلامات (Tag). لغة التجزئة هي طريقة محددة لكتابة ودمج معايير التجزئة لوصف مجموعة معينة من المستخدمين الذين يطابقون تلك المعايير ومعاملتهم كشريحة جمهور واحدة.
يصف هذا المقال المفاهيم الأساسية وبناء الجملة للغة التجزئة ويقدم أمثلة شاملة لبناء معايير التجزئة لحالات مختلفة.
الأساسيات
Anchor link toكل جهاز في قاعدة المستخدمين لديك له سمات محددة مرتبطة به عبر قيم العلامات (Tag).
على سبيل المثال، لنفترض أن مستخدمة تدعى جين تعيش في طوكيو، وعمرها 28 عامًا. سيكون لدى هذه المستخدمة العلامات التالية المعينة لجهازها:
- الاسم: جين
- المدينة: طوكيو
- العمر: 28
لاستهداف جين، ستحتاج إلى وصف شريحة على النحو التالي:
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 هو عامل التشغيل المراد تطبيقه؛
- “Tokyo” هي قيمة العلامة (Tag) التي يربطها المستخدمون بأجهزتهم.
أنواع الشروط
Anchor link toأنواع الشروط التالية متاحة للتجزئة:
- A (Application) – يصف شريحة من الأجهزة التي لديها تطبيق معين مثبت. الأسماء المستعارة: App، Application؛
- T (Tag) – يصف شريحة من الأجهزة ذات قيم العلامات المحددة؛
- AT (App-specific 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لكل نوع من أنواع العلامات (Tag)، يتم تطبيق عوامل التشغيل الخاصة به.
عوامل تشغيل علامات الأعداد الصحيحة (Integer)
Anchor link to- eq - يساوي قيمة محددة
- noteq - لا يساوي قيمة محددة
- lte - أقل من أو يساوي قيمة محددة
- gte - أكبر من أو يساوي قيمة محددة
- in - أي من القيم المحددة
- notin - لا يساوي أيًا من القيم المحددة
- between - في نطاق محدد
- any - الأجهزة التي لديها أي قيم معينة للعلامة
- notset - الأجهزة التي ليس لديها قيمة معينة للعلامة
عوامل تشغيل علامات السلاسل النصية (String)
Anchor link to- eq - يساوي قيمة محددة
- noteq - لا يساوي قيمة محددة
- startswith - يبدأ ببادئة محددة
- endswith - ينتهي بلاحقة محددة
- contains - يحتوي على سلسلة فرعية محددة
- in - يساوي أيًا من القيم المحددة
- notin - لا يساوي أيًا من القيم المحددة
- any - الأجهزة التي لديها أي قيم معينة للعلامة
- notset - الأجهزة التي ليس لديها قيمة معينة للعلامة
عوامل تشغيل علامات القائمة (List)
Anchor link to- in - الأجهزة التي لديها أي من قيم العلامات المحددة
- notin - لا توجد أي من قيم العلامات المحددة مرتبطة بالجهاز
- any - الأجهزة التي لديها أي قيم معينة للعلامة
- notset - الأجهزة التي ليس لديها قيمة معينة للعلامة
عوامل تشغيل علامات التاريخ (Date)
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 - أكبر من أو يساوي عددًا محددًا من الدقائق قبل اللحظة الحالية
عوامل تشغيل العلامات المنطقية (Boolean)
Anchor link to- eq - يساوي قيمة محددة
- noteq - لا يساوي قيمة محددة
- any - الأجهزة التي لديها أي قيم معينة للعلامة
- notset - الأجهزة التي ليس لديها قيمة معينة للعلامة
عوامل تشغيل علامات السعر (Price)
Anchor link to- eq - يساوي قيمة محددة
- noteq - لا يساوي قيمة محددة
- lte - أقل من أو يساوي قيمة محددة
- gte - أكبر من أو يساوي قيمة محددة
- in - يساوي أيًا من القيم المحددة
- notin - لا يساوي أيًا من القيم المحددة
- between - في نطاق محدد
- any - الأجهزة التي لديها أي قيم معينة للعلامة
- notset - الأجهزة التي ليس لديها قيمة معينة للعلامة
عوامل تشغيل علامات الإصدار (Version)
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 minutesago lte - تاريخ إطلاق الحدث أقل من أو يساوي عددًا محددًا من الدقائق قبل اللحظة الحالية
- date minutesago gte - تاريخ إطلاق الحدث أكبر من أو يساوي عددًا محددًا من الدقائق قبل اللحظة الحالية
منصات الحدث
Anchor link toتصفية الأحداث حسب المنصة التي تم إطلاقها فيها.
- platforms - قائمة بالمنصات (على سبيل المثال، [“ios”, “android”])
سمات الحدث
Anchor link toيمكن لشروط الحدث التصفية بناءً على قيم سمات الحدث. تدعم السمات أنواع بيانات مختلفة مع عوامل التشغيل المقابلة لها.
سمات الحدث من نوع عدد صحيح (Integer)
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 - لا توجد قيمة معينة للسمة
سمات الحدث من نوع سلسلة نصية (String)
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 - لا توجد قيمة معينة للسمة
سمات الحدث من نوع منطقي (Boolean)
Anchor link to- attribute “name” eq - السمة تساوي true أو false
- attribute “name” noteq - السمة لا تساوي true أو false
سمات الحدث من نوع تاريخ (Date)
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” minutesago gte/lte - السمة بالنسبة للدقائق الماضية
- attribute “name” any - أي قيمة معينة للسمة
- attribute “name” notset - لا توجد قيمة معينة للسمة
سمات الحدث من نوع سعر (Price)
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 - لا توجد قيمة معينة للسمة
سمات الحدث من نوع قائمة (List)
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")