رصد العناصر التي يتم تحصيل سعرها مرة واحدة وتسليمها

يوضّح هذا المستند كيفية رصد المنتجات التي يتم تحصيل سعرها مرة واحدة وتقديمها في لعبتك بعد أن يشتريها اللاعبون باستخدام نقاط Play Points في تطبيق Google Play.

بعد أن يستبدل المستخدمون نقاط Play Points بمنتج يتم تحصيل سعره مرة واحدة في تطبيق Google Play، يجب تسليم العناصر فورًا في لعبتك. يوضّح ما يلي كيف يشتري المستخدم عناصر باستخدام نقاط Play Points.

‫1. انقر على Play Points. ‫2- انقر على علامة التبويب استخدام لعرض العناصر. 3- اختَر منتجًا وانقر على استخدام النقاط لإكمال عملية الشراء. ‫4- استلام المنتج
لقطة شاشة لقطة شاشة لقطة شاشة لقطة شاشة

في المثال، لا يتم تشغيل اللعبة أثناء شراء المنتج. يمكن للمستخدمين أيضًا استبدال نقاط Play Points بمنتجات حتى إذا لم تكن اللعبة مثبَّتة على أجهزتهم. لهذا السبب، يجب تصميم لعبتك لتتمكّن من التعامل مع عملية تسليم السلع داخل التطبيق من خارج متجر اللعبة.

قبل البدء

قبل رصد منتج يتم تحصيل سعره مرة واحدة وتقديمه، يجب إنشاء المنتج والعروض الترويجية في برنامج Play Points.

متطلبات التسليم

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

توقيت التسليم

عندما يستبدل أحد اللاعبين نقاط Play مقابل منتج يُدفع ثمنه مرة واحدة، عليك تسليم المنتج على الفور بدون أن تطلب من اللاعب إعادة تشغيل اللعبة. في الحالات التي يجب فيها إكمال محتوى اللعبة مسبقًا، مثل إكمال برنامج تعليمي، يجب تسليم السلعة فورًا بعد ذلك.

رسالة التسليم

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

في ما يلي تنسيق الرسائل المطلوب:

  • رسالة واضحة تفيد باستلام السلعة

  • أشِر إلى اسم المنتج بوضوح وأشِر إلى "Play Points" لضمان تمكّن المستخدمين من التمييز بينه وبين المحتوى الآخر الذي يتلقّونه.

  • يجب أن يتضمّن اسم السلعة أيضًا القيمة الصحيحة للسلعة إذا كانت هناك سلع مشابهة بقيم متعددة.

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

في ما يلي مثال على رسالة:

"تم استلام المنتج! لقد حصلت على 100 جوهرة باستخدام نقاط Play Points. متابعة".

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

رصد العناصر التي تم استلامها خارج اللعبة

إذا كانت لعبتك تستخدم Google Play Billing Library، عليك إجراء التغييرات التالية من أجل رصد المنتجات التي يتم تحصيل سعرها مرة واحدة والتي يتم تلقّيها خارج اللعبة.

  1. في [onResume()][onResume] callback داخل لعبتك، استدعِ طريقة [queryPurchases()][queryPurchases] لاسترداد قائمة بالعناصر، حتى تتمكّن من تحديد العناصر التي لم يتم إقرار استلامها.

  2. إذا كانت لعبتك تتضمّن خادمًا، ننصحك بشدة بالتحقّق من عملية الشراء من خادمك باستخدام واجهة برمجة التطبيقات الخاصة بالاشتراكات وعمليات الشراء داخل التطبيق.

  3. إذا كانت هناك منتجات تم شراؤها ولكن لم يتم إقرارها، يجب إقرار عملية الشراء إما باستخدام [consumeAsync()][consumeAsync] للمنتجات الاستهلاكية أو باستخدام [acknowledgePurchase()][acknowledgePurchase] للمنتجات غير الاستهلاكية.

  4. منح إذن استخدام المنتج الذي تم شراؤه داخل اللعبة

رصد العناصر التي تم تلقّيها في وضع تقسيم الشاشة

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

لقطة شاشة يظهر فيها الزر "استرداد النقاط" أثناء تشغيل إحدى الألعاب

لإتاحة هذه الحالة باستخدام Google Play Billing Library، اتّبِع الخطوات التالية:

  1. يستدعي Google Play الطريقة [onPurchasesUpdated()][onPurchasesUpdated] لإعلام لعبتك بأنّ هناك عنصرًا جديدًا في انتظار المراجعة.

  2. إذا كانت لعبتك تتضمّن خادمًا، ننصحك بشدة بالتحقّق من عملية الشراء من خادمك باستخدام واجهة برمجة التطبيقات الخاصة بالاشتراكات وعمليات الشراء داخل التطبيق.

  3. يجب الإقرار بعملية الشراء باستخدام consumeAsync() للسلع الاستهلاكية أو acknowledgePurchase() للسلع غير الاستهلاكية.

  4. منح إذن استخدام المنتج الذي تم شراؤه داخل اللعبة

عرض تأكيد التسليم

عندما يسترد المستخدمون نقاط Play Points ويتلقّون منتجًا مقابلها، يتوقّعون أن تعرض اللعبة رسالة داخلها أو تستخدم نوعًا من الإشعارات لإعلامهم بأنّها تلقّت المنتج وعالجته بشكل صحيح. في ما يلي بعض خيارات تأكيد التسليم:

  • عرض مربّع حوار داخل اللعبة

  • إرسال الرسالة إلى مربّع الرسائل داخل اللعبة، مع توضيح أنّه تم تلقّي رسالة جديدة في مربّع الرسائل داخل اللعبة

  • استخدِم رسالة إشعار من نظام التشغيل.

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

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

  • أثناء المشاهد السينمائية التي قد يؤدي عرض رسالة فيها إلى تشتيت انتباه المستخدم في هذه الحالة، عليك إرسال إشعار إلى المستخدم بعد انتهاء المشهد السينمائي.

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

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

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

تحديثات لمحركات ألعاب معيّنة

في ما يلي بعض الاعتبارات التي يجب مراعاتها عند استخدام محركات ألعاب معيّنة:

  • إذا كانت لعبتك مصمَّمة باستخدام Unity، ننصحك بالتحقّق مما إذا كان تنفيذ عملية الشراء داخل التطبيق الذي تستخدمه يتيح عروض Play Points الترويجية.

  • إذا كانت لعبتك مبرمَجة باستخدام Cocos2d-x أو Unreal Engine (C/C++‎)، من المرجّح أنّك ستحتاج إلى كتابة رمز JNI الذي يستدعي واجهات برمجة تطبيقات Java من رمز C/C++‎.

أفضل الممارسات من جهة الخادم

يحتوي هذا القسم على أفضل الممارسات من جهة الخادم التي يجب اتّباعها في العروض الترويجية في Play Points:

  • إذا كنت تستخدم Purchases.products: get على خادمك، تحقَّق مما إذا كنت بحاجة إلى التعامل مع عناصر استبدال المكافآت في Play وغيرها من المنتجات التي يتم تحصيل سعرها مرة واحدة بشكل منفصل استنادًا إلى قيم productId.

  • إذا كنت تستخدم Onetimeproducts: list على خادمك، تحقَّق مما إذا كنت بحاجة إلى فصل عناصر استبدال مكافآت Play عن المنتجات الأخرى التي يتم تحصيل سعرها مرة واحدة باستخدام قيم productId.

  • راجِع أفضل الممارسات التالية للتحقّق مما إذا كنت بحاجة إلى إجراء تغييرات إضافية:

تحديد المشاكل وحلّها

يحتوي هذا القسم على اقتراحات بشأن السيناريوهات التي يمكن أن تؤدي إلى استفسارات من العملاء.

حسابات مستخدمين متعددة

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

السلع المتأخّرة أو غير المتوفّرة

إذا واجه اللاعبون تأخيرًا في استلام عناصر المكافآت أو لم يستلموها، يُرجى الاطّلاع على دليل تحديد المشاكل وحلّها في عمليات الشراء داخل التطبيق ضمن مستندات المساعدة في Google Play.