يوضّح هذا الموضوع كيفية رصد المنتجات داخل التطبيق وتقديمها في لعبتك بعد أن يشتريها اللاعبون باستخدام النقاط في Play Points في تطبيق Google Play.
بعد أن يحصِّل المستخدمون نقاطهم في Play Points مقابل منتج داخل تطبيق Google Play، من المفترض أن تصلهم المنتجات في لعبتك على الفور. يعرض القسم التالي طريقة شراء أحد المستخدمين لعناصر باستخدام برنامج Play Points.
1. انقر على Play Points. | 1. انقر على علامة التبويب استخدام لعرض العناصر. | 2. اختَر عنصرًا وانقر على استخدام النقاط لإكمال عملية الشراء. | 3. استلام المنتج |
في المثال، لا تعمل اللعبة أثناء شراء المنتج. يمكن للمستخدمين أيضًا استبدال نقاطهم في Play Points بمنتجات عندما لا تكون اللعبة مثبّتة على جهازهم. ولهذا السبب، عليك تصميم لعبتك للتعامل مع تسليم العناصر داخل التطبيق من خارج المتجر داخل اللعبة.
قبل البدء
قبل رصد منتج داخل التطبيق وتقديمه، عليك إنشاء المنتج والعروض الترويجية لكسب النقاط في Play Points.
متطلبات التسليم
عند تقديم منتجات داخل التطبيق في لعبتك باستخدام عرض ترويجي في Play Points، عليك اتّباع المتطلبات الواردة في هذا القسم.
توقيت التسليم
عندما يستبدل اللاعب النقاط في Play Points بمنتج داخل تطبيق، عليك تسليم المنتج فورًا بدون أن تطلب منه إعادة تشغيل اللعبة. في الحالات التي يجب فيها إكمال محتوى اللعبة مسبقًا، مثل إكمال برنامج تعليمي، يجب تسليم العنصر بعد ذلك مباشرةً.
رسالة التسليم
بعد عودة المستخدم إلى لعبتك بعد شراء منتج داخل التطبيق خارج اللعبة، يجب عرض رسالة تأكيد تفيد بأنّه تم منح المنتج بنجاح داخل اللعبة. يجب أن تكون الرسالة على شكل مربع حوار منبثق أو رسالة داخل اللعبة. لا ينبغي على المستخدمين اتخاذ أي خطوات إضافية للحصول على العنصر.
إليك التنسيق المطلوب للمراسلة:
رسالة واضحة تفيد باستلام المنتج.
يجب الرجوع إلى اسم الملف بوضوح والرجوع إلى برنامج Play Points لضمان تمييزه عن المحتوى الآخر الذي يتلقّاه.
يجب أن يشمل اسم السلعة أيضًا الفئة الصحيحة للسلعة إذا كانت هناك عناصر مشابهة لها فئات متعدّدة.
ينبغي أن يظهر مربّع الحوار المنبثق أو الرسالة أو الإشعار داخل اللعبة للمستخدم إلى أن ينقر المستخدم على تأكيد، مثل متابعة أو حسنًا. يجب ألا يكون هناك زر إلغاء، لأنّ هذه الرسالة تهدف فقط إلى إعلام المستخدمين بالسلعة التي تلقّوها داخل اللعبة. وإذا لم يكن هناك زر تأكيد، يجب أن تكون الرسالة مرئية للمستخدمين لمدة 3 ثوانٍ على الأقل قبل اختفائها لضمان معرفة المستخدمين باستلامهم للسلعة.
إليك مثال على الرسالة:
"تم استلام العنصر. لقد حصلت على 100 جوهرة في Play Points. متابعة".
يجب أن يرى المستخدمون رسمًا متحركًا أو جزءًا من التأكيد المرئي الذي يعرض الزيادة في رصيد العملة داخل اللعبة. إذا كان العنصر متينًا أو سهل الاستهلاك داخل التطبيق، يجب توجيه المستخدمين إلى المكان الذي تم فتح قفل المنتج أو توفُّره داخل اللعبة.
رصد العناصر التي يتم استلامها خارج اللعبة
إذا كانت لعبتك تستخدم Google Play Billing Library، عليك إجراء التغييرات التالية لرصد المنتجات داخل التطبيق التي يتم استلامها خارج اللعبة.
في معاودة الاتصال باللعبة
onResume()
، يمكنك استدعاء طريقةqueryPurchases()
لاسترداد قائمة بالعناصر، حتى تتمكن من تحديد العناصر التي لم تتم الموافقة عليها.إذا كانت لعبتك تستخدم خادمًا، ننصحك بشدة بالتحقّق من عملية الشراء من الخادم باستخدام واجهة برمجة التطبيقات للاشتراكات وعمليات الشراء داخل التطبيق.
إذا كانت هناك سلع مملوكة ولكن لم تتم الموافقة عليها، يُرجى الإقرار بعملية الشراء إما مع
consumeAsync()
للسلع الاستهلاكية أوacknowledgePurchase()
للسلع غير الاستهلاكية.يمكنك منح الإذن للعنصر الذي تم شراؤه داخل اللعبة.
رصد العناصر التي تم استلامها في وضع تقسيم الشاشة
إذا كانت لعبتك توفّر وضع النوافذ المتعددة، يمكن للمستخدمين تحصيل قيمة نقاط في Play Points والحصول على العنصر، أثناء تشغيل تطبيق "متجر Play" ولعبتك في الوقت نفسه. تعرض لقطة الشاشة هذه مثالاً:
لإتاحة هذا السيناريو في "مكتبة الفوترة في Google Play"، عليك اتّباع الخطوات التالية:
يطلب Google Play طريقة
onPurchasesUpdated()
لإشعار لعبتك بوجود عنصر جديد في انتظار المراجعة.إذا كانت لعبتك تستخدم خادمًا، ننصحك بشدة بالتحقّق من عملية الشراء من الخادم باستخدام واجهة برمجة التطبيقات للاشتراكات وعمليات الشراء داخل التطبيق.
الإقرار بعملية الشراء إما من خلال "
consumeAsync()
" للسلع الاستهلاكية أو مع "acknowledgePurchase()
" للسلع غير الاستهلاكيةيمكنك منح الإذن للعنصر الذي تم شراؤه داخل اللعبة.
عرض تأكيد التسليم
عندما يحصِّل المستخدمون قيمة النقاط في Play Points ويحصلون على عنصر تبادل، يتوقّعون أن تعرض اللعبة رسالة داخل اللعبة أو أن يستخدموا نوعًا من الإشعارات لإعلامهم بأنّ اللعبة تلقت العنصر وعالجته بشكل صحيح. فيما يلي بعض خيارات تأكيد التسليم:
عرض نافذة منبثقة داخل اللعبة
أرسِل الرسالة إلى مربّع رسائل داخل اللعبة، واذكر بوضوح أنّ هناك رسالة جديدة في مربّع الرسالة داخل اللعبة.
استخدِم رسالة إشعار لنظام التشغيل.
من الممكن أن تكون اللعبة في أي حالة يتم فيها استلام العنصر الترويجي، بما في ذلك عدم تثبيت التطبيق على الجهاز. يجب عليك الكشف عن السلع الترويجية بغض النظر عن حالة اللعبة عند استلام السلعة. ومع ذلك، هناك بعض الاستثناءات التي قد يُسمح فيها بعدم إبلاغ المستخدم فورًا باستلام العنصر. مثلاً:
أثناء إجراء اللعبة، حيث قد يؤدي عرض رسالة إلى تشتيت انتباه المستخدم. وفي هذه الحالة، يجب إعلام المستخدم بعد انتهاء الإجراء.
في لقطات المقاطع التي قد تؤدي إلى تشتيت انتباه المستخدم عند عرض رسالة في هذه الحالة، يجب عليك إبلاغ المستخدم بعد انتهاء المشهد.
خلال الدليل التوجيهي الأولي وأجزاء إعدادات المستخدم داخل اللعبة. وننصحك بإبلاغ المستخدمين الجدد بالمكافأة مباشرةً بعد فتح اللعبة أو أثناء الإعداد الأولي للمستخدم. ومع ذلك، يمكنك الانتظار إلى أن تتوفّر تسلسل اللعبة الرئيسية لإشعار المستخدم.
وإذا كان تطبيقك يحتوي على عدة أحرف أو حسابات يمكن تطبيق السلعة عليها، نقترح أن تطلب من المستخدم اختيار الحساب الذي يتلقّى السلع الترويجية.
يجب مراعاة المستخدمين عند تحديد وقت وكيفية إشعارهم بالسلع الترويجية. في أي وقت لا يتلقّى فيه المستخدم إشعارًا على الفور، قد يصاب بالارتباك أو يتوقّف عن تشغيل اللعبة أو يتواصل مع فريق دعم المستخدم أو يشتكي من ذلك على وسائل التواصل الاجتماعي.
تحديثات لمحرّكات ألعاب محدّدة
في ما يلي بعض الاعتبارات التي يجب مراعاتها لمحركات الألعاب المحدّدة:
إذا تم تصميم لعبتك باستخدام Unity، ننصحك بالتحقّق مما إذا كان تنفيذ الشراء داخل التطبيق الذي تستخدمه يتيح استخدام العروض الترويجية في Play Points.
إذا تم تصميم لعبتك باستخدام Cocos2d-x أو Unreal Engine (C/C++ )، ستحتاج على الأرجح إلى كتابة كود JNI الذي يستدعي واجهات برمجة تطبيقات Java من خلال كود C/C++ الخاص بك.
أفضل الممارسات من جهة الخادم
يتضمّن هذا القسم أفضل الممارسات من جهة الخادم لاستخدامها في عروض Play Points الترويجية:
في حال الاتصال بـ
Purchases.products: get
على خادمك، تأكَّد مما إذا كنت بحاجة إلى التعامل مع عناصر تبادل مكافآت Play والمنتجات الأخرى داخل التطبيق بشكل منفصل استنادًا إلى قيمproductId
.إذا كنت تستخدم
Inappproducts: list
على خادمك، تأكَّد مما إذا كنت بحاجة إلى فصل عناصر تبادل مكافآت Play عن المنتجات الأخرى داخل التطبيق باستخدام قيمproductId
.راجع أفضل الممارسات التالية للتحقق مما إذا كنت بحاجة إلى إجراء تغييرات إضافية:
- المرجع:
- تنفيذ التحقّق من التوقيع من جهة الخادم
- تأكَّد من أنّ قيمتَي
purchaseToken
وorderId
فريدتَين ولم يسبق استخدامهما.
تحديد المشاكل وحلّها
يحتوي هذا القسم على اقتراحات للسيناريوهات التي يمكن أن تؤدي إلى استفسارات العملاء.
حسابات مستخدمين متعددة
إذا كان المستخدم يملك حسابات Google متعددة على جهازه وتمكّن من تحصيل قيمة نقاط Play
Points من خلال حساب غير صحيح، لن تتمكّن Google من نقل العناصر إلى
الحسابات الأخرى. وبالمثل، لا يمكن لتطبيقك نقل العنصر من خلال استدعاء
طريقة getPurchases()
. في هذا السيناريو، ضع في اعتبارك تقديم العناصر
داخل التطبيق يدويًا للمستخدم باستخدام عمليات دعم العملاء لديك.
عناصر متأخرة أو مفقودة
إذا واجه اللاعبون تأخيرًا في ظهور عناصر المكافآت أو لم يتم توفيرها، يمكنك الاطّلاع على دليل تحديد المشاكل وحلّها لعمليات الشراء داخل التطبيق في مستندات المساعدة بشأن Google Play.