انتقل إلى المحتوى

لغة التجزئة

تقدم Pushwoosh محرك تجزئة قويًا لبناء شرائح (Segments) دقيقة بناءً على قيم العلامات (Tags). لغة التجزئة هي طريقة محددة لكتابة ودمج معايير التجزئة لوصف مجموعة معينة من المستخدمين الذين يطابقون تلك المعايير ومعاملتهم كشريحة جمهور واحدة.

يصف هذا المقال المفاهيم الأساسية وبناء الجملة للغة التجزئة ويقدم أمثلة شاملة لبناء معايير التجزئة لحالات مختلفة.

الأساسيات

Anchor link to

كل جهاز في قاعدة المستخدمين لديك له سمات محددة مرتبطة به عبر قيم العلامات (Tag values).

على سبيل المثال، لنفترض أن مستخدمة تدعى جين تعيش في طوكيو، وعمرها 28 عامًا. سيكون لدى هذه المستخدمة العلامات التالية المعينة لجهازها:

  • Name: Jane
  • City: Tokyo
  • Age: 28

لاستهداف جين، ستحتاج إلى وصف شريحة على النحو التالي:

T("Name", eq, "Jane") * T("Age", eq, 28) * T("City", eq, "Tokyo")

هذا المزيج من الشروط هو تعبير تصفية (filter expression) يستخدم في لغة التجزئة لوصف مجموعات من المستخدمين، أي شرائح الجمهور.

تعابير التصفية

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) – يصف شريحة من الأجهزة بقيم علامات (Tag) محددة؛
  • AT (App-specific tag) – يطبق بالاشتراك مع رموز التطبيق للعلامات الخاصة بالتطبيق. الاسم المستعار: Tag؛
  • Event – يصف شريحة من الأجهزة التي أطلقت حدثًا معينًا في Pushwoosh؛
  • Geo – يصف شريحة من الأجهزة ضمن نصف قطر جغرافي معين؛
  • BTTS – يصف شريحة من الأجهزة بناءً على أفضل وقت لإرسال الرسائل إليهم؛
  • Updated – يصف شريحة من الأجهزة بناءً على الطابع الزمني لآخر تحديث لهم؛
  • Segment – يشير إلى مرشح/شريحة أخرى برمزها؛
  • Static (أو S) – يشير إلى شريحة ثابتة محددة مسبقًا؛

العمليات مع الشروط

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 - أكبر من أو يساوي عددًا محددًا من الدقائق قبل اللحظة الحالية

عوامل العلامات المنطقية (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 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

الإشارة إلى مرشح/شريحة أخرى برمزها.

شرط ثابت (Static)

Anchor link to

الإشارة إلى شريحة ثابتة محددة مسبقًا. يمكن استخدام Static أو الاختصار S.

أعلام وجود الجهاز في شرط التطبيق

Anchor link to

تدعم شروط التطبيق أعلامًا إضافية للتحكم في تصفية الأجهزة والرموز:

  • with_tokens - الأجهزة التي لديها رموز إشعارات الدفع
  • without_tokens - الأجهزة التي ليس لديها رموز إشعارات الدفع
  • with_devices - المستخدمون الذين لديهم أجهزة مسجلة
  • without_devices - المستخدمون/الملفات الشخصية الذين ليس لديهم أجهزة مسجلة

أمثلة على تعابير التصفية

Anchor link to

أمثلة أساسية

Anchor link to
  1. أجهزة iOS و Android التي لديها التطبيق مثبت ولديها رموز دفع:
A("11111-11111", ["ios","android"], [with_tokens])
  1. أجهزة iOS و Android التي لديها التطبيق مثبت ولكن ليس لديها رموز دفع:
A("11111-11111", ["ios","android"], [without_tokens])
  1. أجهزة iOS و Android التي لديها التطبيق مثبت، سواء كان لديها رموز دفع أم لا:
A("11111-11111", ["ios","android"], [with_tokens, without_tokens])
  1. جميع مشتركي التطبيق الذين اشتروا شيئًا ما في التطبيق:
AT("11111-11111", "In-App Purchase", gte, 1)

أمثلة متقدمة

Anchor link to
  1. المستخدمون في طوكيو الذين فتحوا التطبيق في آخر 7 أيام:
T("City", eq, "Tokyo") * Event("11111-11111", "App Open", date daysago lte 7)
  1. المستخدمون الذين أجروا عملية شراء تزيد عن 50 دولارًا في آخر 30 يومًا:
Event("11111-11111", "Purchase", attribute "total_price" gte 50.00, date daysago lte 30)
  1. المستخدمون الذين تبدأ أسماؤهم بحرف “J” أو تنتهي بحرف “e”:
T("Name", startswith, "J") + T("Name", endswith, "e")
  1. مستخدمو iOS النشطون ضمن 100 كم من نيويورك الذين لم يشتروا مؤخرًا:
A("11111-11111", ["ios"], [with_tokens]) * Geo("11111-11111", 40.7128, -74.0060, 100) \ Event("11111-11111", "Purchase", date daysago lte 30)
  1. المستخدمون الذين يكون أفضل وقت لإرسال الرسائل إليهم بين الساعة 9 صباحًا و 5 مساءً:
BTTS("11111-11111", gte 9) * BTTS("11111-11111", lte 17)
  1. المستخدمون الذين أطلقوا حدثًا معينًا على Android أو iOS في الساعة الأخيرة:
Event("11111-11111", "Button Click", platforms ["android", "ios"], date minutesago lte 60)
  1. الأجهزة التي تم تحديثها في آخر 3 أشهر بإصدار تطبيق 4.2 أو أعلى:
Updated("11111-11111", gte "2024-07-01 00:00:00") * AT("11111-11111", "App Version", gte, "4.2")