دمج المراجعات داخل التطبيق (Unity)

يوضّح هذا الدليل كيفية دمج المراجعات داخل التطبيق باستخدام Unity. تتوفّر أدلة دمج منفصلة في حال كنت تستخدم Kotlin أو Java أو الرمز الأصلي أو Unreal Engine.

نظرة عامة على حزمة تطوير البرامج (SDK) في Unity

تشكّل واجهة برمجة التطبيقات Play In-App Review API جزءًا من عائلة حزمة تطوير البرامج (SDK) Play Core. توفّر واجهة برمجة التطبيقات لIDE Unity فئة ReviewManager لطلب عملية الربط وإطلاقها باستخدام methods RequestReviewFlow وLaunchReviewFlow. بعد تقديم طلب، يمكن لتطبيقك التحقّق من حالة الطلب باستخدام ReviewErrorCode.

إعداد بيئة التطوير

OpenUPM-CLI

إذا كان لديك واجهة برمجة التطبيقات OpenUPM مثبّتة، يمكنك تثبيت قاعدة بيانات مسجّلي OpenUPM باستخدام الأمر التالي:

openupm add com.google.play.review

OpenUPM

  1. افتح إعدادات مدير الحِزم من خلال اختيار خيار قائمة Unity تعديل > إعدادات المشروع > مدير الحِزم.

  2. أضِف OpenUPM كقاعدة بيانات مسجّلين على مستوى النطاق إلى نافذة "مدير الحِزم":

    Name: package.openupm.com
    URL: https://package.openupm.com
    Scopes: com.google.external-dependency-manager
      com.google.play.common
      com.google.play.core
      com.google.play.review
    
  3. افتح قائمة مدير الحِزم من خلال اختيار خيار قائمة Unity نافذة > مدير الحِزم.

  4. اضبط القائمة المنسدلة لنطاق عمل المدير لاختيار سجلّاتي.

  5. اختَر حزمة Google Play Integrity plugin for Unity من قائمة الحِزم واضغط على تثبيت.

الاستيراد من GitHub

  1. نزِّل أحدث إصدار من .unitypackage من GitHub.

  2. استورِد ملف .unitypackage من خلال اختيار خيار قائمة Unity التالي: مواد العرض > استيراد حزمة > حزمة مخصّصة واستيراد جميع العناصر.

إنشاء ReviewManager

أنشئ مثيلًا من ReviewManager يعالج الاتصالات بين تطبيقك وGoogle Play API.

// Create instance of ReviewManager
private ReviewManager _reviewManager;
// ...
_reviewManager = new ReviewManager();

طلب عنصر ReviewInfo

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

var requestFlowOperation = _reviewManager.RequestReviewFlow();
yield return requestFlowOperation;
if (requestFlowOperation.Error != ReviewErrorCode.NoError)
{
    // Log error. For example, using requestFlowOperation.Error.ToString().
    yield break;
}
_playReviewInfo = requestFlowOperation.GetResult();

إذا كان الطلب ناجحًا، ستُرجع واجهة برمجة التطبيقات العنصر PlayReviewInfo الذي يحتاجه تطبيقك لبدء عملية المراجعة داخل التطبيق. في المثال، يتم إجراء المكالمة داخل متغيّر استدعاء منتظم لتنفيذ العملية غير المتزامنة (لا يؤدي ذلك إلى حظر سلسلة التعليمات الرئيسية). ولأنّه يتم إجراء المكالمة بشكل غير متزامن، قد يستغرق الأمر بضع ثوانٍ، لذا يجب أن يجري تطبيقك المكالمة قبل أن يصل إلى النقطة في مسار المستخدِم التي تريد فيها عرض المراجعة داخل التطبيق.

بدء عملية المراجعة داخل التطبيق

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

var launchFlowOperation = _reviewManager.LaunchReviewFlow(_playReviewInfo);
yield return launchFlowOperation;
_playReviewInfo = null; // Reset the object
if (launchFlowOperation.Error != ReviewErrorCode.NoError)
{
    // Log error. For example, using requestFlowOperation.Error.ToString().
    yield break;
}
// The flow has finished. The API does not indicate whether the user
// reviewed or not, or even whether the review dialog was shown. Thus, no
// matter the result, we continue our app flow.

الخطوات التالية

اختبِر مسار المراجعة داخل تطبيقك للتأكّد من أنّ عملية الدمج تعمل بشكلٍ سليم.