คู่มือนี้จะอธิบายวิธีผสานรวมรีวิวในแอปในแอปของคุณโดยใช้ Unity เรามีคู่มือการผสานรวมแยกต่างหากสำหรับกรณีที่คุณใช้ Kotlin หรือ Java, โค้ดเนทีฟ หรือ Unreal Engine
ภาพรวมของ Unity SDK
Play In-App Review API เป็นส่วนหนึ่งของตระกูล Play Core SDK API สำหรับ Unity มีคลาส ReviewManager
เพื่อขอและเปิดใช้งานขั้นตอนโดยใช้เมธอด RequestReviewFlow
และ LaunchReviewFlow
หลังจากส่งคำขอแล้ว แอปจะตรวจสอบสถานะคำขอได้โดยใช้ ReviewErrorCode
ตั้งค่าสภาพแวดล้อมการพัฒนา
หากติดตั้ง OpenUPM CLI แล้ว คุณจะติดตั้งรีจิสทรี OpenUPM ได้ด้วยคำสั่งต่อไปนี้
openupm add com.google.play.review
เปิดการตั้งค่าเครื่องมือจัดการแพ็กเกจโดยเลือกตัวเลือกเมนู 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 สำหรับ Unity จากรายการแพ็กเกจ แล้วกดติดตั้ง
ดาวน์โหลดรุ่นล่าสุดของ
.unitypackage
จาก GitHubนําเข้าไฟล์
.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.
ขั้นตอนถัดไป
ทดสอบขั้นตอนการรีวิวในแอปของแอปเพื่อยืนยันว่าการผสานรวมทํางานอย่างถูกต้อง