Tích hợp các bài đánh giá trong ứng dụng (Unity)
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Hướng dẫn này mô tả cách tích hợp bài đánh giá trong ứng dụng vào ứng dụng của bạn bằng cách sử dụng tính năng Unity.
Có các hướng dẫn tích hợp riêng nếu bạn đang sử dụng Kotlin hoặc Java, mã gốc hoặc Unreal Engine.
Tổng quan về SDK Unity
API bài đánh giá trong ứng dụng của Play thuộc nhóm SDK Play Core. API dành cho Unity cung cấp một lớp ReviewManager
để yêu cầu và khởi chạy quy trình này bằng cách sử dụng các phương thức RequestReviewFlow
và LaunchReviewFlow
. Sau khi đưa ra yêu cầu, ứng dụng có thể kiểm tra trạng thái của yêu cầu bằng cách sử dụng ReviewErrorCode
.
Thiết lập môi trường phát triển
OpenUPM-CLI
Nếu đã cài đặt OpenUPM CLI, bạn có thể cài đặt sổ đăng ký OpenUPM bằng lệnh sau:
openupm add com.google.play.review
OpenUPM
Mở chế độ cài đặt trình quản lý gói bằng cách chọn tuỳ chọn trình đơn Unity Edit > Project Settings > Package Manager (Chỉnh sửa > Cài đặt dự án > Trình quản lý gói).
Thêm OpenUPM làm sổ đăng ký có giới hạn vào cửa sổ Trình quản lý gói:
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
Mở trình đơn trình quản lý gói bằng cách chọn tuỳ chọn trình đơn Unity Window > Package Manager (Cửa sổ > Trình quản lý gói).
Đặt trình đơn thả xuống phạm vi người quản lý để chọn Registries của tôi.
Chọn gói Trình bổ trợ tính toàn vẹn của Google Play cho Unity trong danh sách gói rồi nhấn Install (Cài đặt).
Nhập từ GitHub
Tải bản phát hành .unitypackage
mới nhất xuống từ GitHub.
Nhập tệp .unitypackage
bằng cách chọn tuỳ chọn trình đơn Unity Assets > Import package > Custom Package (Thành phần > Nhập gói > Gói tuỳ chỉnh) rồi nhập tất cả các mục.
Tạo ReviewManager
Tạo một bản sao của ReviewManager
để xử lý việc giao tiếp giữa ứng dụng và API Google Play.
using Google.Play.Review;
// Create instance of ReviewManager
private ReviewManager _reviewManager;
// ...
_reviewManager = new ReviewManager();
Yêu cầu đối tượng ReviewInfo
Làm theo hướng dẫn về thời điểm yêu cầu bài đánh giá trong ứng dụng để xác định các điểm phù hợp trong luồng người dùng của ứng dụng nhằm nhắc người dùng đánh giá (ví dụ: sau khi người dùng đóng màn hình tóm tắt ở cuối một cấp trong trò chơi). Khi ứng dụng đến gần một trong các điểm sau, hãy sử dụng bản sao ReviewManager
để tạo một hoạt động không đồng bộ, như minh hoạ trong ví dụ sau:
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();
Nếu lệnh gọi thành công, API sẽ trả về đối tượng PlayReviewInfo
mà ứng dụng cần để khởi chạy quy trình đánh giá trong ứng dụng. Ở ví dụ này, lệnh gọi được thực hiện bên trong một coroutine để thực hiện thao tác không đồng bộ (việc này không chặn Luồng chính). Do lệnh gọi được thực hiện không đồng bộ có thể mất vài giây, vì vậy, ứng dụng nên thực hiện lệnh gọi trước khi quét đến điểm trong luồng người dùng mà bạn muốn hiện bài đánh giá trong ứng dụng.
Chạy luồng bài đánh giá trong ứng dụng
Sau khi nhận được bản sao PlayReviewInfo
, ứng dụng có thể bắt đầu quy trình đánh giá. Lưu ý đối tượng PlayReviewInfo
chỉ hợp lệ trong một khoảng thời gian có hạn, vì vậy bạn không nên đợi ứng dụng quá lâu trước khi chạy quy trình.
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.
Các bước tiếp theo
Kiểm thử quy trình đánh giá trong ứng dụng để xác minh rằng tính năng tích hợp của bạn đang hoạt động đúng cách.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# Integrate in-app reviews (Unity)\n\nThis guide describes how to integrate in-app reviews in your app using Unity.\nThere are separate integration guides for if you are using [Kotlin or Java](/guide/playcore/in-app-review/kotlin-java),\n[native code](/guide/playcore/in-app-review/native) or [Unreal Engine](/guide/playcore/in-app-review/unreal-engine).\n\nUnity SDK overview\n------------------\n\nThe Play In-App Review API is part of [Play Core SDK](/reference/com/google/android/play/core/release-notes) family. The API for\nUnity offers a [`ReviewManager`](/reference/unity/class/Google/Play/Review/ReviewManager) class to request and launch the flow using\nthe [`RequestReviewFlow`](/reference/unity/class/Google/Play/Review/ReviewManager#requestreviewflow) and [`LaunchReviewFlow`](/reference/unity/class/Google/Play/Review/ReviewManager#launchreviewflow) methods. After a\nrequest is made, your app can check the status of the request using\n[`ReviewErrorCode`](/reference/unity/namespace/Google/Play/Review#reviewerrorcode).\n\nSet up your development environment\n-----------------------------------\n\n### OpenUPM-CLI\n\nIf you have the [OpenUPM CLI](https://github.com/openupm/openupm-cli#installation)\ninstalled you can install the OpenUPM registry with the following command: \n\n openupm add com.google.play.review\n\n### OpenUPM\n\n1. Open the [package manager settings](https://docs.unity3d.com/Manual/class-PackageManager.html)\n by selecting the Unity menu option\n **Edit \\\u003e Project Settings \\\u003e Package Manager**.\n\n2. Add OpenUPM as a scoped registry to the Package Manager window:\n\n Name: package.openupm.com\n URL: https://package.openupm.com\n Scopes: com.google.external-dependency-manager\n com.google.play.common\n com.google.play.core\n com.google.play.review\n\n3. Open the [package manager menu](//docs.unity3d.com/Manual/upm-ui-install.html) by selecting the Unity\n menu option **Window \\\u003e Package Manager**.\n\n4. Set the manager scope drop-down to select **My Registries**.\n\n5. Select the **Google Play Integrity plugin for Unity** package from the\n package list and press **Install**.\n\n### Import from GitHub\n\n1. Download the latest [`.unitypackage`](//github.com/google/play-in-app-reviews-unity/releases/latest)\n release from GitHub.\n\n2. Import the `.unitypackage` file by selecting the Unity menu option\n **Assets \\\u003e Import package \\\u003e Custom Package** and importing all items.\n\n| **Note:** By downloading and using Google Play Unity Plugins, you agree to the [Play Core Software Development Kit Terms of Service](/guide/playcore#license).\n\nCreate the ReviewManager\n------------------------\n\nCreate an instance of [`ReviewManager`](/reference/unity/class/Google/Play/Review/ReviewManager) that handles communication between\nyour app and the Google Play API. \n\n using Google.Play.Review;\n\n // Create instance of ReviewManager\n private ReviewManager _reviewManager;\n // ...\n _reviewManager = new ReviewManager();\n\nRequest a ReviewInfo object\n---------------------------\n\nFollow the guidance about [when to request in-app reviews](/guide/playcore/in-app-review#when-to-request) to determine good\npoints in your app's user flow to prompt the user for a review (for example,\nafter a user dismisses the summary screen at the end of a level in a game). When\nyour app gets close one of these points, use the [`ReviewManager`](/reference/unity/class/Google/Play/Review/ReviewManager) instance\nto create an async operation, as shown in the following example: \n\n var requestFlowOperation = _reviewManager.RequestReviewFlow();\n yield return requestFlowOperation;\n if (requestFlowOperation.Error != ReviewErrorCode.NoError)\n {\n // Log error. For example, using requestFlowOperation.Error.ToString().\n yield break;\n }\n _playReviewInfo = requestFlowOperation.GetResult();\n\nIf the call is successful, the API returns the [`PlayReviewInfo`](/reference/unity/class/Google/Play/Review/PlayReviewInfo) object\nthat your app needs to launch the in-app review flow. In the example, the call\nis made inside a [coroutine](https://docs.unity3d.com/Manual/Coroutines.html)\nto perform the async operation (this does not block the Main thread). Because\nthe call is made asynchronously, it might take up to a couple of seconds, so\nyour app should make the call before your app reaches the point in your user\nflow where you want to show the in-app review.\n\nLaunch the in-app review flow\n-----------------------------\n\nAfter your app receives the [`PlayReviewInfo`](/reference/unity/class/Google/Play/Review/PlayReviewInfo) instance, it can launch the\nin-app review flow. Note that the `PlayReviewInfo` object is only valid for a\nlimited amount of time, so your app should not wait too long before launching a\nflow. \n\n var launchFlowOperation = _reviewManager.LaunchReviewFlow(_playReviewInfo);\n yield return launchFlowOperation;\n _playReviewInfo = null; // Reset the object\n if (launchFlowOperation.Error != ReviewErrorCode.NoError)\n {\n // Log error. For example, using launchFlowOperation.Error.ToString().\n yield break;\n }\n // The flow has finished. The API does not indicate whether the user\n // reviewed or not, or even whether the review dialog was shown. Thus, no\n // matter the result, we continue our app flow.\n\nNext steps\n----------\n\n[Test your app's in-app review flow](/guide/playcore/in-app-review/test) to verify that your integration is\nworking correctly."]]