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

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

ภาพรวมของ 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 สำหรับ 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();

หากการเรียกสำเร็จ 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.

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

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