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

العلامات

العلامات هي واحدة من أكثر الأدوات فائدة التي تقدمها Pushwoosh، مما يتيح مجموعة من الوظائف المتقدمة. باستخدام العلامات، يمكنك تقسيم جمهورك وإرسال إشعارات لحظية مستهدفة لمستخدمين محددين بناءً على سماتهم.

يمكن أن تحتوي العلامات على أي بيانات عشوائية مرتبطة بمستخدم أو جهاز معين. قد تتضمن هذه البيانات أسماء المستخدمين، المعرفات، المدن، فرق كرة القدم المفضلة، فئات الأخبار المفضلة، أو أي معلومات أخرى ذات صلة بمستخدميك.

تحديد العلامات التي يجب استخدامها

Anchor link to

ابدأ بتحديد احتياجات عملك وتحديد كيف تريد تقسيم جمهورك. ضع في اعتبارك عوامل مثل العمر، الموقع، سجل الشراء داخل التطبيق، أو أي معايير أخرى ذات صلة لاستهداف المستخدمين.

قيم العلامات

Anchor link to

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

أنواع العلامات

Anchor link to
  • Integer — تستخدم للبيانات الصحيحة (كمية النقود المكتسبة في اللعبة، المستوى المحقق، العمر).
  • String — تستخدم للقيم النصية (اسم المستخدم، البريد الإلكتروني، المعرفات).
  • List — نفس نوع String، ولكن قد يكون لكل مستخدم قيم متعددة معينة في وقت واحد (تفضيلات الموسيقى، فئات الأخبار، تفضيلات المطبخ).
  • Boolean — نوع العلامة true / false.
  • Date — تستخدم لتواريخ التقويم. بشكل أساسي، هذا هو نوع علامة عدد صحيح يخزن طوابع زمنية Unix Epoch (يتم تحويلها تلقائيًا من/إلى التاريخ الميلادي).
  • Price — يسمح بتعيين القيم وفقًا للعملة المحددة بتنسيق “*.XX” اعرف المزيد.
  • Version — تستخدم لتحديد الإصدارات. مثال على التنسيق المسموح به هو w.x.y.z (رئيسي.ثانوي.تصحيح.بناء). القيمة القصوى لكل جزء من الإصدار هي 9999، لذا لا يمكن أن يكون رقم الإصدار الأقصى أكبر من 9999.9999.9999.9999.

عوامل العلامات

Anchor link to

لكل نوع من أنواع العلامات مجموعة محددة من العوامل القابلة للتطبيق. تحدد عوامل العلامات العلاقة بين العلامة وقيمها لأغراض التقسيم.

  • عوامل علامة Integer: is, is not, are, not in, not set, any
  • عوامل علامة String: is, is not, are, not in, not set, any
  • عوامل علامة List: in, not in, not set, any
  • عوامل علامة Boolean: is (true/false), not set, any
  • عوامل علامة Date: exactly on, on or after, on or before, between, not set, any
  • عوامل علامة Price: is, is not, greater or equals, less or equals, between, in, not in, not set, any
  • عوامل علامة Version: is, is not, greater or equals, less or equals, between, in, not in, not set, any

نطاق العلامة: عام مقابل خاص بالمستخدم

Anchor link to

عند إنشاء علامة، تختار كيفية تخزين قيمها:

  • General (user_specific: false، الافتراضي لـ /addTag): يتم تخزين قيمة العلامة لكل جهاز (HWID). يمكن لكل جهاز لنفس المستخدم أن يحمل قيمة مختلفة بشكل مستقل.
  • User-specific (user_specific: true، الافتراضي في نموذج لوحة التحكم وللعلامات التي ينشئها setTags تلقائيًا): يتم تخزين قيمة العلامة لكل مستخدم (UserID). عند تعيينها عبر UserID، يتم تطبيق القيمة على جميع أجهزة المستخدم دفعة واحدة. مفيد للسمات التي تخص الشخص، وليس جهازًا معينًا: مستوى الاشتراك، نقاط الولاء، اللغة المفضلة.

لدى المستخدم إصدارات iOS و Android من تطبيقك مثبتة. يؤدي تعيين علامة subscription_tier إلى "premium" عبر UserID الخاص به إلى تطبيقها على كلا الجهازين على الفور. مع علامة General، ستحتاج إلى تعيينها لكل جهاز على حدة.

مثال: تعيين علامة خاصة بالمستخدم عبر UserID
{
"request":{
"application": "XXXXX-XXXXX",
"userId": "the id of a specific user",
"tags": {
"subscription_tier": "premium",
"loyalty_points": 350
}
}
}

العلامات الافتراضية

Anchor link to

هذه العلامات متاحة من Pushwoosh بشكل افتراضي، لذا لا يتعين عليك (وفي الواقع، لا ينبغي عليك) تعيينها يدويًا. يتم تعيين معظمها من التطبيق وإرسالها إلى خادمنا عبر registerDevice ومكالمات API أخرى، وبعضها يتم تعيينه بواسطة الخادم نفسه. تُعد SMS Marketing Consent وViber Marketing Consent استثناءً. يعيّنها المطورون لديك باستخدام setTags عندما يوافق الشخص على الرسائل التسويقية أو يرفضها.

الاسمالنوعمكان التعيينالوصف
إصدار التطبيقVersionSDKالإصدار الحالي من التطبيق المثبت على الجهاز
نوع المتصفحStringSDKعند تسجيل جهاز لمشروع الويب الخاص بك، يتم تتبع نوعه – محمول أو مكتبي – تلقائيًا
المدينةStringالخادمآخر موقع جغرافي مسجل للجهاز
البلدStringالخادمآخر موقع جغرافي مسجل للجهاز
طراز الجهازStringSDKيشير إلى طراز الجهاز الذي تم تثبيت التطبيق عليه
أول تثبيتDateالخادميشير إلى الوقت الذي تم فيه تسجيل الجهاز للإشعارات لأول مرة
منتج داخل التطبيقListSDKالمنتجات داخل التطبيق التي اشتراها مستخدم التطبيق
تاريخ آخر شراء داخل التطبيقDateSDKتاريخ آخر عملية شراء داخل التطبيق تمت على الجهاز
اللغةStringSDKاختصار من حرفين صغيرين للغة الجهاز وفقًا لـ ISO-639-1؛ مأخوذ من إعدادات الجهاز
آخر فتح للتطبيقDateالخادموقت آخر تشغيل للتطبيق على الجهاز
آخر فتح للبريد الإلكترونيDateالخادمالتاريخ الذي سجل فيه عنوان البريد الإلكتروني للجهاز حدث فتح بريد إلكتروني مؤخرًا
رمز رسالة آخر بريد إلكتروني مفتوحStringالخادمرمز الرسالة لآخر بريد إلكتروني تم فتحه (تنسيق XXXX-XXXXXXXX-XXXXXXXX). يتم تحديثه عند كل حدث PW_EmailOpen. استخدمه لتقسيم مستلمي حملة بريد إلكتروني معينة حسب من فتحها
آخر نقرة على البريد الإلكترونيDateالخادمالتاريخ الذي سجل فيه عنوان البريد الإلكتروني للجهاز نقرة على رابط بريد إلكتروني مؤخرًا
رمز رسالة آخر بريد إلكتروني تم النقر عليهStringالخادمرمز الرسالة لآخر بريد إلكتروني تم النقر على رابط فيه (تنسيق XXXX-XXXXXXXX-XXXXXXXX). يتم تحديثه عند كل حدث PW_EmailLinkClicked. استخدمه لتقسيم مستلمي حملة بريد إلكتروني معينة حسب من نقر
آخر تأكيد للبريد الإلكترونيDateالخادمتاريخ آخر تأكيد اشتراك Double Opt-In لعنوان البريد الإلكتروني للجهاز
البريد الإلكتروني المرتدDateالخادمالتاريخ الذي حدث فيه ارتداد قاسي لعنوان البريد الإلكتروني هذا. يتم تخزينه كتاريخ لتمكين التقسيم الزمني، على سبيل المثال، لاستبعاد المستخدمين الذين لديهم ارتدادات حديثة
رسائل البريد الإلكتروني غير المشترك بهاBooleanSDKيشير إلى ما إذا كان المستخدم قد ألغى الاشتراك في تلقي رسائل البريد الإلكتروني من تطبيقك
SMS Marketing ConsentBooleanالخادم، setTagsما إذا كان مشترك SMS قد وافق على رسائل SMS التسويقية: true وافق، false ألغى الاشتراك، بدون قيمة غير معروف. معرفة المزيد
Viber Marketing ConsentBooleanالخادم، setTagsما إذا كان مشترك Viber قد وافق على رسائل Viber التسويقية: true وافق، false ألغى الاشتراك، بدون قيمة غير معروف. معرفة المزيد
إصدار نظام التشغيلVersionSDKإصدار نظام التشغيل الذي يعمل على الجهاز
المنصةStringSDKالمنصة التي يستخدم عليها المستخدم مشروعك.
تنبيهات الإشعارات اللحظية مفعلةBooleanSDKيشير إلى ما إذا كانت تنبيهات الإشعارات اللحظية مسموح بها في إعدادات الجهاز
إصدار SDKVersionSDKإصدار Pushwoosh SDK المطبق على الجهاز
Live Activity IDListSDKتُستخدم لإدارة الأنشطة المباشرة (Live Activities) عن طريق ربط Live Activity ID بالجهاز. تُمسح تلقائيًا بعد 12 ساعة. محجوزة: لا يمكنك إنشاء علامة مخصصة بهذا الاسم.
WhatsApp Session Expires AtDateالخادمتحتفظ بـنافذة خدمة العملاء الحالية البالغة 24 ساعة التي فتحتها آخر رسالة WhatsApp واردة من العميل. تُعيَّن تلقائيًا مع كل رسالة واردة. محجوزة: لا يمكنك إنشاء علامة مخصصة بهذا الاسم. تخزن النافذة الحالية فقط، دون سجل.
WhatsApp Ad Click IDStringالخادممعرّف النقر على إعلان Click-to-WhatsApp ‏(ctwa_clid) من referral الخاص برسالة WhatsApp واردة. ترسله Meta مرة واحدة، في الرسالة التي تفتح المحادثة. تستبدله نقرة أحدث مع WhatsApp Ad Click Date. لا يعيده webhook مُعاد إرساله أو وارد بترتيب خاطئ إلى قيمة سابقة.
WhatsApp Ad Click DateDateالخادموقت النقرة المسجلة في WhatsApp Ad Click ID. تُحدَّث معها: تستبدل النقرة الأحدث التاريخ السابق.

العلامات المخصصة

Anchor link to

هنا يأتي دور إبداعك لتحقيق أهداف عملك المحددة. يمكن إنشاء علامات مخصصة بناءً على منطق التقسيم أو نمط الاستهداف المناسب لاحتياجات عملك الفريدة. تعاون مع فريق التسويق لتحديد العلامات المخصصة الإضافية اللازمة لحملاتك.

كيفية إعداد علامة مخصصة

Anchor link to

إنشاء علامة مسبقًا هو أمر اختياري. يؤدي إرسال اسم علامة جديد عبر setTags إلى إنشائها تلقائيًا، مع استنتاج النوع من القيمة:

  • يصبح العدد الصحيح Integer.
  • يصبح الرقم الذي يحتوي على جزء كسري، مثل 4.99، Price. ويصبح رقم مثل 5.0 Integer.
  • يصبح النص String، أو Date لتنسيق تاريخ ووقت معترف به مثل 2024-10-02 22:11.
  • يُحدَّد نوع النص الذي يحتوي على رقم أو true أو false أو مصفوفة JSON حسب محتواه، لذا يصبح "42" Integer وليس String.
  • تصبح المصفوفة List.
  • يصبح المتغير المنطقي Boolean.

لا تقرأ سمات الأحداث النص حسب محتواه، لذا يصبح "42" المُرسل في حدث String. راجع الأحداث التي يتم إنشاؤها تلقائيًا.

العلامة التي يتم إنشاؤها تلقائيًا تكون دائمًا User-specific ‏(user_specific: true). أضف العلامة بشكل صريح أولاً، عبر لوحة التحكم أو /addTag، لعلامة Version، التي لا يمكن للإنشاء التلقائي استنتاجها، أو لعلامة General.

يتم تمكين الإنشاء التلقائي للعلامات افتراضيًا لغالبية الحسابات. إذا لم يُنشئ setTags علامة جديدة كما هو متوقع، فاتصل بـدعم Pushwoosh للتحقق مما إذا كان قد تم إيقافه لحسابك.

يمكنك إضافة علامة جديدة في لوحة تحكم Pushwoosh أو استخدام طريقة /addTag.

POST https://api.pushwoosh.com/json/1.3/addTag

تنشئ علامة في حسابك.

جسم الطلب

Anchor link to
الاسمالنوعالوصف
auth*stringرمز الوصول إلى API من لوحة تحكم Pushwoosh.
tag*objectمعلمات العلامة.
tag.name*stringاسم العلامة.
tag.type*integerنوع العلامة. انظر القيم الممكنة أدناه.
tag.user_specificbooleanعندما تكون true، يتم تخزين قيمة العلامة على مستوى المستخدم ومشاركتها عبر جميع أجهزة المستخدم عند تعيينها بواسطة UserID. عندما تكون false (افتراضي)، تكون العلامة على مستوى الجهاز ويتم تعيينها لكل HWID.
{
"status_code": 200,
"status_message": "OK",
"response": {
"result": true
}
}
مثال
{
"request": {
"auth": "yxoPUlwqm…………pIyEX4H", // مطلوب، رمز الوصول إلى API من لوحة تحكم Pushwoosh
"tag": {
"name": "TAG_NAME", // مطلوب
"type": 1, // مطلوب، انظر القيم الممكنة أدناه
"user_specific": false // اختياري. true = على مستوى المستخدم؛ false = على مستوى الجهاز (افتراضي)
}
}
}

أنواع قيم العلامات الممكنة:

  • 1 - Integer
  • 2 - String
  • 3 - List
  • 4 - Date
  • 5 - Boolean
  • 6 - Decimal. مثال: 19.95
  • 7 - Version. مثال: “1.0.0.0”

كيفية جمع المعلومات من المستخدمين

Anchor link to

بمجرد إضافة وتكوين علامة، تكون جاهزة لبدء جمع المعلومات من المستخدمين. اتبع هذه الخطوات لتنفيذها:

  1. ادمج Pushwoosh SDK في مشروعك باتباع دليل التكامل ذي الصلة.
  2. استخدم دالة setTags لتعيين العلامات وجمع بيانات المستخدم.

فيما يلي أمثلة تنفيذ لأطر عمل مختلفة باستخدام دالة setTags.

iOS Native

NSDictionary *tags = @{
@"Alias" : aliasField.text,
@"FavNumber" : @([favNumField.text intValue]),
@"price" : [PWTags incrementalTagWithInteger:5],
@"List" : @[ @"Item1", @"Item2", @"Item3" ]
};
[[PushNotificationManager pushManager] setTags:tags];

الوثائق

Unity

تعيين علامة Integer للجهاز.

public virtual void SetIntTag(string tagName, int tagValue)
SetStringTag
Anchor link to

تعيين علامة String للجهاز.

public virtual void SetStringTag(string tagName, string tagValue)
SetListTag
Anchor link to

تعيين علامة List للجهاز.

public virtual void SetListTag(string tagName, List<object> tagValues)

الوثائق

تعيين العلامات عبر API

Anchor link to

بينما في معظم الحالات (99%)، يتم تعيين العلامات من التطبيق، يمكنك أيضًا تعيين العلامات عبر Pushwoosh API. فيما يلي مثال على طلب نموذجي إلى نقطة نهاية /setTags:

POST https://api.pushwoosh.com/json/1.3/setTags

{
"request": {
"application": "XXXXX-XXXXX", // مطلوب، رمز تطبيق Pushwoosh
"hwid": "8f65bXXXf378eXXXbeceXXX4e153XXX2", // مطلوب، معرف الجهاز المستخدم في /registerDevice API
"tags": { // مطلوب
"StringTag": "string value", // مثال على علامة نصية
"IntegerTag": 42, // مثال على علامة عدد صحيح
"ListTag": ["string1", "string2"], // مثال على علامة قائمة
"DateTag": "2024-10-02 22:11", // ملاحظة: يجب أن يكون الوقت بتوقيت UTC
"BooleanTag": true // القيم الصالحة: true, false
}
}
}

لمزيد من التفاصيل، راجع وثائق setTags API

استخدام علامة المدينة الافتراضية

Anchor link to

يتم تحديد موقع الجهاز بناءً على عنوان IP الخاص به في اللحظة التي تم فيها تشغيل تطبيقك على هذا الجهاز لآخر مرة. يقدم GeoIP بيانات الموقع إلى Pushwoosh، ويحفظ Pushwoosh الموقع المستلم من GeoIP كقيمة لعلامة المدينة (City) لجهاز معين.

في بعض الحالات، يختلف الموقع الذي يقدمه GeoIP عن اسم المدينة — على سبيل المثال، عندما يشير إلى منطقة من مدينة أو وحدة إدارية أخرى. يرجى توخي الحذر عند استخدام علامة المدينة (City) الافتراضية لأغراض التقسيم: تأكد من تحديد القيم المناسبة.

على سبيل المثال، إذا كنت ستستهدف المستخدمين من ميونيخ، فيجب عليك تغطيتها بمجموعة من قيم علامة المدينة (City)، بما في ذلك “Munich” نفسها (مع جميع القيم المقابلة، مثل المتغيرات المختلفة للهجاء التي يمكن أن يعيدها GeoIP ويتم حفظها كقيم للعلامات) والعديد من المناطق المجاورة.