ผสานรวมรีวิวในแอป (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 **Edit > Project Settings > Package Manager**

  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 Window > Package Manager

  4. ตั้งค่าเมนูแบบเลื่อนลงขอบเขตตัวจัดการเพื่อเลือก My Registries

  5. เลือกแพ็กเกจ Google Play Integrity plugin for Unity จากรายการแพ็กเกจ แล้วกด Install

นำเข้าจาก GitHub

  1. ดาวน์โหลด .unitypackage เวอร์ชันล่าสุดจาก GitHub

  2. นำเข้าไฟล์ .unitypackage โดยเลือกตัวเลือกเมนู Unity Assets > Import package > Custom Package แล้วนำเข้าทุกรายการ

สร้าง ReviewManager

สร้างอินสแตนซ์ของ ReviewManager ที่จัดการการสื่อสารระหว่าง แอปกับ Google Play API

using Google.Play.Review;

// 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 ที่แอปต้องใช้เพื่อเปิดใช้โฟลว์การขอรีวิวในแอป ในตัวอย่างนี้ การเรียกใช้ จะทำภายใน โครูทีน เพื่อดำเนินการแบบไม่พร้อมกัน (ซึ่งจะไม่บล็อกเธรดหลัก) เนื่องจากการเรียกใช้ทำแบบอะซิงโครนัส จึงอาจใช้เวลา 2-3 วินาที ดังนั้นแอปควรเรียกใช้ก่อนที่แอปจะถึงจุดในโฟลว์ผู้ใช้ที่คุณต้องการแสดงการขอรีวิวในแอป

เปิดใช้โฟลว์การขอรีวิวในแอป

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

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

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