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

جمع بيانات اللاعبين

يحتاج Pushwoosh إلى معرفة من هم لاعبوك وماذا يفعلون في اللعبة. تسجّل الأحداث الإجراءات، وتحتفظ العلامات بالحالة الحالية لكل لاعب.

التعرّف على اللاعبين من خلال User ID

Anchor link to

يربط Pushwoosh جميع أجهزة اللاعب بـ User ID واحد، لذا تتعامل الشرائح وJourney مع الشخص الواحد كلاعب واحد. تبقى الأحداث والعلامات من نوع User-specific التي سجّلها الجهاز قبل تسجيل دخول اللاعب مرتبطة بمعرّفه السابق. أما العلامات من نوع Device-specific فتنتقل مع الجهاز.

يستخدم Pushwoosh افتراضيًا معرّف الجهاز (HWID) لكل جهاز بوصفه User ID الخاص به. وبذلك يُحتسب اللاعب الذي يلعب على جهازين كلاعبَين اثنين. لتجنّب ذلك مع اللاعبين الذين يسجّلون الدخول، عيّن معرّف الحساب الخاص بك ليكون User ID لهم:

  1. اختر المعرّف الذي ستستخدمه. استخدم معرّف الحساب الذي تخصّصه لعبتك بالفعل لكل لاعب.
  2. اطلب من المطورين استدعاء setUserId بهذا المعرّف عند تسجيل دخول اللاعب.
  3. تحقّق من النتيجة. سجّل الدخول إلى اللعبة على جهاز اختبار، ثم افتح الجمهور → مستكشف المستخدمين، وابحث حسب معرّف المستخدم، وأدخل معرّف الحساب. يُفتح الملف الشخصي للاعب.

يحتفظ اللاعبون الذين لا يسجّلون الدخول أبدًا بـ HWID بوصفه User ID الخاص بهم، ويعيّنه Pushwoosh لهم.

لمعرفة المزيد عن العلاقة بين User ID والأجهزة، راجع المستخدمون (معرفات المستخدم).

إعداد الأحداث المراد تتبّعها

Anchor link to

الأحداث هي الطريقة التي يعرف بها Pushwoosh ما يفعله اللاعب. أنشئها أولًا: تجمع الشرائح اللاعبين حسب الأحداث التي أطلقوها، وتبدأ Journey عند وقوع حدث ما.

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

هناك نوعان من الأحداث:

الأحداث الافتراضية

Anchor link to

يرسل SDK هذه الأحداث نيابةً عنك. تحتاج إليها في معظم Journey في هذا الدليل العملي: التهيئة، واستعادة اللاعبين، وعروض الشراء.

  • PW_DeviceRegistered: تلقّى جهاز أول رمز push له. لا يطلب SDK الرمز إلا عندما تستدعي اللعبة registerForPushNotifications، وهو ما يعرض أيضًا طلب الإذن على iOS، ويصل الرمز أيًّا كانت إجابة اللاعب. إذا طلبت اللعبة الإذن في وقت لاحق للتشغيل الأول، فسيُطلق الحدث في تلك اللحظة، وليس عند التثبيت. لرصد اللاعبين الجدد، استخدم حدث Tutorial started بدلًا منه.
  • PW_ApplicationOpen: فتح لاعب اللعبة. تحتاج إليه للعثور على اللاعبين الذين ما زالوا يلعبون واللاعبين الذين توقّفوا عن اللعب، حتى تتمكّن من استعادتهم.
  • PW_InAppPurchase: اشترى لاعب شيئًا في اللعبة. تحتاج إليه للتمييز بين اللاعبين الدافعين وغير الدافعين، على سبيل المثال لتقديم عرض الشراء الأول فقط للاعبين الذين لم يدفعوا قط. يفعّل المطورون تتبّع المشتريات في iOS SDK أو يرسلون المشتريات من الكود، أما على Android فيرسلونها دائمًا من الكود. على iOS، يُطلق الحدث فقط للمنتجات المُعدّة في App Store Connect.
  • اختياري: PW_UserIdle: يُطلق عندما يتوقّف اللاعب عن لمس الشاشة لمدة تحدّدها أنت، لا تقلّ عن 30 ثانية. يبدأ Journey يعرض تلميحًا in-app عندما يتعثّر اللاعب. يفعّله المطورون في إعدادات SDK.
  • اختياري: PW_ApplicationExit: يُطلق عندما يغادر اللاعب اللعبة ولا يعود خلال 10 إلى 30 ثانية. يبدأ Journey استعادة للاعبين الذين يغادرون في منتصف التدفق. يفعّله المطورون في إعدادات SDK.

يظهر الحدث في الجمهور → الأحداث بعد أن يرسله SDK لأول مرة.

لإضافة أي حدث افتراضي آخر إلى القائمة مبكرًا، على سبيل المثال لإنشاء شريحة قبل إطلاق تحديث اللعبة:

  1. افتح الجمهور → الأحداث وانقر على إنشاء حدث.
  2. اختر حدث افتراضي.
  3. حدّد الحدث وانقر على تفعيل.

لا تتضمّن القائمة في الخطوة 3 الحدثين PW_UserIdle وPW_ApplicationExit. فهما لا يظهران في الجمهور → الأحداث إلا بعد أن يرسلهما SDK لأول مرة.

للاطلاع على تفاصيل هذه الأحداث وغيرها من الأحداث الافتراضية، راجع الأحداث الافتراضية.

الأحداث المخصصة

Anchor link to

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

اختيار الأحداث المراد تتبّعها

Anchor link to

اختر الأحداث التي تحتاج إليها لعبتك والسمات التي يحملها كل منها، على سبيل المثال level_id للحدث Level completed. يعرض الجدول أمثلة: استخدمها كما هي، أو أعد تسميتها، أو أضف أحداثك الخاصة. تتبّع فقط الأحداث التي تحتاج إليها Journey التي تطلقها.

الحدثمتى يُطلقالسمات الرئيسيةما الذي يشغّله
New levelيصل اللاعب إلى مستوى جديدlevel_id (String)اختياري: شرائحك الخاصة للمراحل المهمة
Level completedيُنهي اللاعب مستوىlevel_id (String)شريحتا المتفاعلين غير الدافعين واللاعبين العالقين، وJourney مساعدة اللاعبين العالقين
Level failedيفشل اللاعب في مستوىlevel_id (String)شريحة اللاعبين العالقين وJourney الخاص بهم
Tutorial startedيبدأ اللاعب البرنامج التعليمي داخل اللعبةtutorial_name (String)Journey التهيئة، وشريحة المتوقفين عن البرنامج التعليمي
Tutorial completedيُنهي اللاعب البرنامج التعليمي داخل اللعبةtutorial_name (String), completion (Boolean)Journey التهيئة، وتدفق إذن الإشعارات الفورية
Virtual currency earnedيزداد رصيد اللاعب من العملة داخل اللعبةcurrency_name (String), quantity (Integer)اختياري: شرائحك الخاصة المبنية على العملة
Achievement unlockedيحقّق اللاعب إنجازًاachievement_name (String), level (Integer)شريحة صائدي الإنجازات
Daily reward claimedيحصل اللاعب على المكافأة اليوميةday_number (Integer)Journey التذكير بالمكافأة اليومية
Live event joinedينضم اللاعب إلى حدث مباشرevent_id (String)هدف التحويل في Journey الحدث المباشر
Store openedيفتح اللاعب المتجر داخل اللعبةsection (String)Journey مغادرة المتجر دون شراء

إرسال الأحداث من اللعبة

Anchor link to

اتّفق مع المطورين على الأحداث التي ترسلها اللعبة والسمات التي يحملها كل منها. يجب أن تتطابق أسماء الأحداث والسمات تمامًا.

على سبيل المثال، هكذا ترسل اللعبة Level completed مع السمة level_id:

TagsBundle attributes = new TagsBundle.Builder()
.putString("level_id", "12")
.build();
InAppManager.getInstance().postEvent("Level completed", attributes);

إذا وقع حدث على خادم يرسل بالفعل خطافات الويب الخاصة به، مثل الواجهة الخلفية للعبتك أو خدمة البطولات، فيمكن أن يصل إلى Pushwoosh عبر خطاف ويب وارد بدلًا من postEvent. تربط الحقول التي يرسلها بحدث في Pushwoosh من لوحة التحكم، ويمكن للحدث أن يبدأ Journey مثل أي حدث آخر.

للتحقّق من وصول حدث ما، افتح الجمهور → مستكشف المستخدمين، وابحث عن لاعب اختبار، وافتح علامة التبويب سجل الأحداث.

تتبّع الإيرادات بوصفها PW_Conversion

Anchor link to

يسجّل PW_Conversion مبلغ كل عملية شراء وعملتها بتنسيق واحد. تحتاج إليه لهدف الإيرادات في Journey ولفئات الإنفاق في تجزئة RFM، التي تجمع اللاعبين حسب حداثة شرائهم ومعدّل تكراره وحجم إنفاقهم.

تصل المشتريات التي يتتبّعها iOS SDK إلى PW_Conversion تلقائيًا، لأنها تحمل السمتين __amount و__currency. أما مشتريات Android فتحتاج إلى أحد الخيارين التاليين:

  • إذا كانت لعبتك تعمل على iOS وAndroid معًا، فاطلب من المطورين إرسال مشتريات Android بوصفها PW_InAppPurchase مع السمتين الرقميتين __amount و__currency عبر postEvent، بدلًا من طريقة الشراء في SDK. عندها يغطّي الربط التلقائي نفسه المنصّتين.
  • إذا كانت لعبتك تعمل على Android فقط، فاربط المشتريات بنفسك، دون كود جديد. يحتفظ الحدث بربط واحد فقط، لذا في لعبة تحتوي على مشتريات iOS سيحلّ الربط اليدوي محلّ الربط التلقائي.

لربط المشتريات بنفسك:

  1. افتح الجمهور → الأحداث وافتح إعدادات أحداث التحويل.
  2. أضف PW_InAppPurchase بوصفه حدث تحويل.
  3. حدّد السمات التي تحمل السعر والعملة الخاصين به.
  4. انقر على تطبيق.

للاطلاع على جميع خيارات الإعداد، راجع أحداث التحويل.

تتبّع الاشتراكات من المتاجر

Anchor link to

إذا كانت لعبتك تبيع اشتراكات، مثل بطاقة VIP أو Battle Pass، فإن Pushwoosh يتلقّى تغييرات حالتها من App Store وGoogle Play. يصل كل تغيير بوصفه حدث PW_Subscription*، على سبيل المثال:

  • PW_SubscriptionStart: يشترك اللاعب.
  • PW_SubscriptionCancel: يوقف اللاعب التجديد التلقائي.
  • PW_SubscriptionBillingIssue: تفشل دفعة التجديد.

استخدم هذه الأحداث لبدء Journey، على سبيل المثال تذكير قبل انتهاء صلاحية اشتراك أُلغي.

تغطّي هذه الأحداث الاشتراكات فقط. أما المشتريات لمرة واحدة، مثل حزمة عملات، فتظلّ تصل بوصفها PW_InAppPurchase.

تخزين بيانات اللاعبين في العلامات

Anchor link to

العلامة قيمة يخزّنها Pushwoosh في الملف الشخصي للاعب، مثل مستوى اللاعب أو ما إذا كان قد دفع. يسجّل الحدث ما حدث، وتحتفظ العلامة بالحالة الحالية. تساعدك العلامات على:

  • إرسال رسالة فقط إلى اللاعبين الذين لديهم قيمة معيّنة، على سبيل المثال عرض للاعبين الدافعين فقط.
  • إدراج القيمة في نص الرسالة، على سبيل المثال مستوى اللاعب. راجع إنشاء Journey.

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

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

Anchor link to

يرسل المطورون قيم العلامات من اللعبة، أو يمكنك استيرادها من ملف CSV. ينشئ Pushwoosh العلامة عندما يرسلها المطورون لأول مرة، بوصفها علامة User-specific. أنشئ العلامة أولًا في لوحة التحكم إذا أردت اختيار نوعها بنفسك. راجع إدارة بيانات المستخدم باستخدام العلامات (Tags).

هذه العلامات أمثلة. أعد تسميتها لتناسب مفردات لعبتك، وأضف علاماتك الخاصة:

العلامةالنوعمثالما الذي تشغّله
player_levelInteger12تصفية الرسائل حسب مستوى التقدّم
is_paying_userBooleantrueالفصل بين رسائل اللاعبين الدافعين وغير الدافعين
soft_currency_balanceInteger1500تقديم حزمة عملة للاعبين ذوي الرصيد المنخفض
vip_tierStringgoldمنح لاعبي VIP عروضًا خاصة بهم ووصولًا مبكرًا
favorite_modeStringpvpالإعلان عن الأحداث المباشرة للوضع الذي يفضّله اللاعب

عند إنشاء علامة في لوحة التحكم، أبقِ الخيار خاص بالمستخدم مفعّلًا، كما هو افتراضيًا. عندها يحتفظ Pushwoosh بقيمة واحدة لكل User ID، فتنتمي القيمة إلى اللاعب وليس إلى أحد أجهزته. عند إيقاف خاص بالمستخدم، يحتفظ كل جهاز بقيمته الخاصة. راجع التعرّف على اللاعبين من خلال User ID.

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

Anchor link to

يخزّن Pushwoosh هذه العلامات الافتراضية لكل جهاز، لذا لا تحتاج إلى إنشائها:

  • Language: لغة الجهاز. يستخدمها Pushwoosh لإرسال الرسالة إلى كل لاعب بلغته.
  • Last Application Open: آخر مرة فُتحت فيها اللعبة على الجهاز. استخدمها للعثور على اللاعبين الذين توقّفوا عن اللعب.
  • Push Alerts Enabled: ما إذا كانت الإشعارات مسموحًا بها في إعدادات الجهاز. استخدمها لعرض رسالة in-app فقط للاعبين الذين لم يسمحوا بها بعد.
  • First Install: أول مرة ثُبّتت فيها اللعبة على الجهاز. استخدمها لذكرى التثبيت.
  • Country: بلد الجهاز. استخدمها لإرسال عرض أو إعلان عن حدث مباشر فقط إلى اللاعبين في منطقة واحدة.