ผสานรวมรีวิวในแอป (Unity)

คู่มือนี้จะอธิบายวิธีผสานรวมรีวิวในแอปไว้ในแอปของคุณโดยใช้ Unity เรามีคู่มือการผสานรวมแยกต่างหากสำหรับกรณีที่คุณใช้ Kotlin หรือ Java หรือโค้ดเนทีฟ

ภาพรวมของ Unity SDK

Play In-App Review API เป็นส่วนหนึ่งของครอบครัว Play Core SDK API สำหรับ Unity มีคลาส ReviewManager เพื่อขอและเปิดใช้งานขั้นตอนโดยใช้เมธอด RequestReviewFlow และ LaunchReviewFlow หลังจากส่งคำขอแล้ว แอปจะตรวจสอบสถานะคำขอได้โดยใช้ ReviewErrorCode

ตั้งค่าสภาพแวดล้อมการพัฒนา

OpenUPM-CLI

หากติดตั้ง OpenUPM CLI แล้ว คุณจะติดตั้งรีจิสทรี 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 ที่จัดการการสื่อสารระหว่างแอปกับ 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();

หากการเรียกสำเร็จ API จะแสดงออบเจ็กต์ PlayReviewInfo ที่แอปของคุณต้องใช้เพื่อเปิดใช้ขั้นตอนการรีวิวในแอป ในตัวอย่างนี้ การเรียกใช้เกิดขึ้นภายใน Coroutine เพื่อดำเนินการแบบแอสซิงค์ (การดำเนินการนี้จะไม่บล็อกเธรดหลัก) เนื่องจากมีการเรียกใช้แบบไม่พร้อมกัน จึงอาจใช้เวลาถึง 2-3 วินาที แอปของคุณจึงควรเรียกใช้ก่อนที่จะถึงจุดใน FLow ของผู้ใช้ที่ต้องการแสดงรีวิวในแอป

เปิดใช้งานขั้นตอนการรีวิวในแอป

หลังจากที่แอปได้รับอินสแตนซ์ 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.

ขั้นตอนถัดไป

ทดสอบขั้นตอนการรีวิวในแอปของแอปเพื่อยืนยันว่าการผสานรวมทำงานได้อย่างถูกต้อง