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