คู่มือนี้จะอธิบายวิธีผสานรวมรีวิวในแอปไว้ในแอปของคุณโดยใช้ 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
เปิดการตั้งค่าเครื่องมือจัดการแพ็กเกจโดยเลือกตัวเลือกเมนู Unity แก้ไข > การตั้งค่าโปรเจ็กต์ > เครื่องมือจัดการแพ็กเกจ
เพิ่ม 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
เปิดเมนูเครื่องมือจัดการแพ็กเกจโดยเลือกตัวเลือกเมนู Unity หน้าต่าง > เครื่องมือจัดการแพ็กเกจ
ตั้งค่าเมนูแบบเลื่อนลงของขอบเขตบัญชีดูแลจัดการเพื่อเลือกรีจิสทรีของฉัน
เลือกแพ็กเกจ Google Play Integrity Plugin for Unity จากรายการแพ็กเกจ แล้วกดติดตั้ง
นำเข้าจาก GitHub
ดาวน์โหลด
.unitypackage
เวอร์ชันล่าสุดจาก GitHubนําเข้าไฟล์
.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.
ขั้นตอนถัดไป
ทดสอบขั้นตอนการรีวิวในแอปของแอปเพื่อยืนยันว่าการผสานรวมทำงานได้อย่างถูกต้อง