1. Giới thiệu
Giả sử bạn cần điều chỉnh giá trị của một số thông số trong ứng dụng sau khi phát hành ứng dụng trên Cửa hàng Play. Thông thường, bạn nên xuất bản lại một phiên bản mới của ứng dụng và người dùng cũng nên cập nhật ứng dụng trên điện thoại của họ.
Nhìn chung, bản cập nhật ứng dụng sẽ hoạt động nếu bạn muốn thực hiện một thay đổi lâu dài cho ứng dụng của mình. Tuy nhiên, điều gì sẽ xảy ra nếu bạn thường xuyên điều chỉnh giá trị của một số tham số trong ứng dụng? Hoặc điều gì sẽ xảy ra nếu bạn muốn chạy một số thử nghiệm để tìm ra cấu hình ứng dụng tối ưu?
Trong những trường hợp này, bản cập nhật ứng dụng sẽ không hoạt động hiệu quả. Vì phải mất một khoảng thời gian thì bản cập nhật mới được truyền tải hoàn toàn đến người dùng. Ngoài ra, việc chạy thử nghiệm trên nhiều phiên bản ứng dụng cũng khá khó khăn.
Ngoài ra, làm cách nào để xác định xem hành trình của người dùng trong ứng dụng có hoạt động như dự kiến hay không? Bạn có thể dựa vào bình luận của người dùng trên Play Console. Tuy nhiên, thông tin này có thể không đủ chính xác để đưa ra quyết định rõ ràng.
Kiến thức bạn sẽ học được
- Cách tạo phễu trong Google Analytics cho Firebase
- Cách sử dụng Cấu hình từ xa Firebase
- Cách chạy thử nghiệm A/B trên Firebase
Bạn cần có
- Unity 2018.4.4f1 trở lên
- Xcode 10 trở lên (để tạo mục tiêu cho iOS)
- Tài khoản Google
- Một thiết bị thử nghiệm chạy Android 5.0 trở lên có cáp USB để kết nối thiết bị hoặc một Trình mô phỏng Android chạy AVD(Thiết bị Android ảo) có hình ảnh hệ thống hỗ trợ Cửa hàng Play/API Google
- Thiết bị iOS hoặc trình mô phỏng chạy iOS 8.0 trở lên
Bạn đánh giá thế nào về mức độ kinh nghiệm của mình với AdMob?
Bạn đánh giá thế nào về mức độ kinh nghiệm của mình với Firebase?
2. Thiết lập môi trường phát triển
Tải mã xuống
Nhấp vào nút sau đây để tải tất cả mã dành cho lớp học lập trình này:
Giải nén tệp zip đã tải xuống. Thao tác này sẽ giải nén một thư mục gốc có tên là admob-firebase-codelabs-unity-master.
...hoặc sao chép kho lưu trữ GitHub từ dòng lệnh.
$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-unity
Kho lưu trữ này chứa 4 thư mục như sau:
101-base – Mã khởi đầu mà bạn sẽ tạo trong lớp học lập trình này.
101-complete_and_102-base – Mã hoàn chỉnh cho lớp học lập trình này và mã khởi đầu cho lớp học lập trình 102.
102-complete – Mã hoàn chỉnh cho lớp học lập trình 102.
Chuẩn bị các tệp bắt buộc
Awesome Drawing Quiz sử dụng một số mã nguồn mở cần thiết để biên dịch và chạy dự án.
Mở cửa sổ dòng lệnh rồi chuyển đến thư mục gốc của kho lưu trữ. Sau đó, hãy chạy ./gradlew :prepareThirdPartyFiles (gradlew.bat :prepareThirdPartyFiles trên Windows) từ thiết bị đầu cuối để sao chép các tệp bắt buộc vào dự án.
Nhập ứng dụng khởi đầu
Khởi chạy Unity, chọn "Open" (Mở) trong màn hình chào mừng. Sau đó, hãy chọn thư mục 101-complete_and_102-base trong mã bạn đã tải xuống.
Bây giờ, bạn sẽ mở dự án trong Unity.
Thêm trình bổ trợ Google Mobile Ads cho Unity
Để phân phát quảng cáo AdMob trên ứng dụng Unity, bạn cần thêm Google Mobile Ads Unity Plugin vào dự án.
- Tải gói Google Mobile Ads Unity Plugin 3.18.1 xuống. (Xin lưu ý rằng Lớp học lập trình này có thể không tương thích với phiên bản khác của trình bổ trợ)
- Trong dự án Unity Awesome Drawing Quiz (Bài kiểm tra vẽ thú vị). Trong dự án, hãy chuyển đến Assets > Import Package > Custom Package (Tài sản > Nhập gói > Gói tuỳ chỉnh).
- Nhập GoogleMobileAds.unitypackage vào dự án mà bạn đã tải xuống.
Bạn cũng cần đặt mã ứng dụng AdMob. Trong trình chỉnh sửa Unity, hãy chọn Nội dung > Quảng cáo trên thiết bị di động của Google > Cài đặt trong trình đơn.

Bật AdMob bằng cách nhấp vào hộp đánh dấu Đã bật trong mục Google AdMob. Sau đó, hãy nhập mã ứng dụng AdMob như sau:
- Android:
ca-app-pub-3940256099942544~3048611032 - iOS:
ca-app-pub-3940256099942544~2753522596

Thêm tệp cấu hình Firebase vào dự án Unity
- Trên màn hình tổng quan của dự án Awesome Drawing Quiz (Bài kiểm tra vẽ thú vị), hãy nhấp vào biểu tượng Cài đặt.

- Trong thẻ Chung, hãy chọn từng ứng dụng Android và iOS để tải tệp google-service.json (đối với Android) và GoogleService-Info.plist (đối với iOS) xuống.
- Di chuyển cả hai tệp cấu hình vào thư mục
Assets (Tài sản) trong dự án Unity.

Thêm SDK Phân tích Firebase
- Tải SDK của Firebase cho Unity 5.5.0 xuống và giải nén ở một nơi thuận tiện. (bỏ qua bước này nếu bạn đã tải SDK xuống)
- Mở dự án Unity Awesome Drawing Quiz (Đố vui vẽ tranh thú vị), chuyển đến Assets > Import Package > Custom Package (Tài sản > Nhập gói > Gói tuỳ chỉnh).
- Từ SDK đã giải nén, hãy nhập SDK Phân tích Firebase (
dotnet4/FirebaseAnalytics.unitypackage). - Trong cửa sổ Nhập gói Unity, hãy nhấp vào Nhập.
3. Mở dự án Firebase trong bảng điều khiển
Trước khi chuyển sang bước tiếp theo, hãy mở dự án bạn đã tạo trong bảng điều khiển của Firebase ở bước "Thiết lập dự án Firebase" của Lớp học lập trình AdMob + Firebase 101.

4. Tạo một phễu gồm các sự kiện trong ứng dụng
Có thể có một số sự kiện ứng dụng mà bạn đã thêm để theo dõi hoạt động của người dùng trong ứng dụng. Bằng cách đọc báo cáo của từng sự kiện ứng dụng, bạn có thể nhận được thông tin chi tiết liên quan đến sự kiện đó, chẳng hạn như tổng số lượt, số lượt trung bình trên mỗi người dùng, thông tin nhân khẩu học, v.v.
Tuy nhiên, nếu bạn muốn xem tỷ lệ hoàn thành của một loạt sự kiện thay vì tập trung vào một sự kiện cụ thể thì sao? Trong Google Analytics cho Firebase, bạn có thể sử dụng Phễu để trực quan hoá và tối ưu hoá tỷ lệ hoàn thành của một loạt sự kiện trong ứng dụng.
Tạo phễu
Để tạo kênh:
- Chuyển đến bảng điều khiển của Firebase rồi chọn dự án Awesome Drawing Quiz mà bạn đã tạo trước đó.
- Nhấp vào Phễu.
- Nhấp vào KÊNH MỚI.
- Nhập tên và mô tả cho kênh.
- Chọn hai sự kiện đầu tiên bạn muốn sử dụng làm các bước trong kênh.
- Nhấp vào THÊM MỘT SỰ KIỆN KHÁC cho mỗi bước bổ sung và chọn một sự kiện.
- Nhấp vào TẠO.
Bằng cách làm theo các bước trên, hãy tạo các phễu sau:
#1 Tên phễu: Tỷ lệ thành công ở cấp độ Sự kiện: level_start, level_success
#2 Tên phễu: Tỷ lệ hoàn thành quảng cáo có tặng thưởng Sự kiện: ad_reward_prompt, ad_reward_impression, ad_reward
#3 Tên phễu: Tỷ lệ hoàn thành trò chơi Sự kiện: game_start, game_complete
Xem số liệu phân tích phễu
Sau khi tạo một số phễu, bạn có thể truy cập vào phễu trong trình đơn Phễu trong bảng điều khiển của Firebase. Bằng cách nhấp vào tên phễu trong danh sách, bạn có thể xem thông tin phân tích chi tiết về từng phễu.

Ví dụ: hãy nhấp vào Tỷ lệ hoàn thành cấp độ. Báo cáo này sẽ cho thấy thông tin chi tiết về phễu như sau:

Trong ảnh chụp màn hình ở trên, bạn có thể thấy tỷ lệ phần trăm người dùng đã hoàn thành một cấp độ (kích hoạt sự kiện level_success) sau khi bắt đầu một cấp độ (kích hoạt sự kiện level_start). Tại đây, bạn có thể thấy rằng 46,2% người dùng đã hoàn thành cấp độ này.
Sau khi bạn nhấp vào Số sự kiện, chỉ số dựa trên số sự kiện sẽ xuất hiện như sau:

Dựa trên các chỉ số trong ảnh chụp màn hình ở trên, có 116 lượt thử (kích hoạt sự kiện level_start) và 57 lượt hoàn thành (kích hoạt sự kiện level_success) trong khoảng thời gian này.
Vì tỷ lệ hoàn thành dựa trên sự kiện(49,1%) cao hơn một chút so với tỷ lệ dựa trên người dùng(46,2%), nên bạn có thể nói rằng có một số người thực hiện tốt hơn những người khác.
5. Tích hợp Cấu hình từ xa vào ứng dụng
Vì có thể nắm được một số thông tin chi tiết về ứng dụng dựa trên các sự kiện và phễu của ứng dụng, nên bạn có thể muốn tối ưu hoá ứng dụng. Việc này thường bao gồm việc điều chỉnh giá trị tham số trong ứng dụng. Để sửa đổi giá trị của các tham số đó, bạn cần cập nhật ứng dụng để có thể áp dụng các thay đổi cho người dùng.
Bằng cách sử dụng Cấu hình từ xa trong Firebase, bạn có thể điều chỉnh các giá trị đó mà không cần cập nhật ứng dụng. Điều này có nghĩa là bạn có thể thay đổi hành vi của ứng dụng mà không cần làm phiền người dùng bằng cách buộc họ tải bản cập nhật ứng dụng xuống.
Trong Lớp học lập trình này, bạn sẽ tìm hiểu cách điều chỉnh số tiền thưởng (số lượng chữ cái sẽ được tiết lộ sau khi xem Quảng cáo dạng video có tặng thưởng) mà không cần bản cập nhật ứng dụng bằng cách sử dụng Cấu hình từ xa.
Thêm SDK Cấu hình từ xa Firebase
- Tải SDK của Firebase cho Unity 5.5.0 xuống và giải nén ở một nơi thuận tiện.
- Mở dự án Unity Awesome Drawing Quiz (Đố vui vẽ tranh thú vị), chuyển đến Assets > Import Package > Custom Package (Tài sản > Nhập gói > Gói tuỳ chỉnh).
- Từ SDK đã giải nén, hãy nhập SDK Cấu hình từ xa (
dotnet4/FirebaseRemoteConfig.unitypackage). - Trong cửa sổ Nhập gói Unity, hãy nhấp vào Nhập.
Nhập Firebase.RemoteConfig
Sửa đổi Main.cs để cho phép bạn sử dụng loại từ Firebase.RemoteConfig mà không cần sử dụng tên đủ điều kiện.
Scenes/Main.cs
...
using AwesomeDrawingQuiz.Game;
// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;
namespace AwesomeDrawingQuiz.Scene {
...
}
Khởi động và tìm nạp các giá trị Cấu hình từ xa
Sửa đổi phương thức InitAndFetchRemoteConfig() trong Main.cs để khởi chạy thực thể Cấu hình từ xa như sau. Xin lưu ý rằng GameSettings.KEY_REWARD_AMOUNT chứa tên của tham số trong Cấu hình từ xa. (Bạn sẽ khai báo trường này trong Lớp học lập trình này)
Scenes/Main.cs
private Task InitAndFetchRemoteConfig() {
// TODO: Initialize and Fetch values from the Remote Config (102)
Dictionary<string, object> defaults = new Dictionary<string, object>();
defaults.Add(GameSettings.KEY_REWARD_AMOUNT, 1);
FirebaseRemoteConfig.SetDefaults(defaults);
if (Debug.isDebugBuild) {
ConfigSettings config = new ConfigSettings();
config.IsDeveloperMode = true;
FirebaseRemoteConfig.Settings = config;
return FirebaseRemoteConfig.FetchAsync(System.TimeSpan.Zero);
} else {
return FirebaseRemoteConfig.FetchAsync();
}
}
Bạn sẽ thấy rằng phiên bản FirebaseRemoteConfig được định cấu hình để tìm nạp các giá trị mới nhất từ máy chủ ở chế độ gỡ lỗi nhằm hỗ trợ quy trình phát triển. (IsDeveloperMode = true và FetchAsync(System.TimeSpan.Zero))
Kích hoạt các giá trị Cấu hình từ xa đã tìm nạp
Khi tìm nạp thành công các giá trị Cấu hình từ xa, bạn nên kích hoạt các giá trị đó để cung cấp trong ứng dụng. Sửa đổi phương thức ActivateRemoteConfigValues() như sau.
Scenes/Main.cs
private void ActivateRemoteConfigValues() {
// TODO: Activate fetched Remote Config values (102)
FirebaseRemoteConfig.ActivateFetched();
}
Sửa đổi phương thức Start()
Để ứng dụng tìm nạp và kích hoạt giá trị Cấu hình từ xa khi khởi chạy ứng dụng, hãy sửa đổi phương thức Start() trong tệp Main.cs như sau.
Scenes/Main.cs
void Start () {
...
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
...
}).ContinueWith(task => {
// TODO: Call InitAndFetchRemoteConfig() (102)
InitAndFetchRemoteConfig();
}).ContinueWith(task => {
// TODO: Call ActivateRemoteConfigValues() (102)
ActivateRemoteConfigValues();
// Enable 'Start a game' button
UnityMainThreadDispatcher.Instance()
.Enqueue(() => buttonStartGame.interactable = true);
});
#else
QuizAnalytics.SetScreenName(QuizAnalytics.SCREEN_MAIN);
// TODO: Call InitAndFetchRemoteConfig() (102)
InitAndFetchRemoteConfig().ContinueWith(task => {
// TODO: Call ActivateRemoteConfigValues() (102)
ActivateRemoteConfigValues();
});
#endif
}
Tìm nạp số tiền thưởng từ Cấu hình từ xa
Sửa đổi lớp GameSettings để tìm nạp số tiền thưởng từ Cấu hình từ xa.
Game/GameSettings.cs
// TODO: Import Firebase.RemoteConfig (102)
using Firebase.RemoteConfig;
namespace AwesomeDrawingQuiz.Game {
public class GameSettings {
...
// TODO: Apply reward amount from the Remote Config (102)
public const string KEY_REWARD_AMOUNT = "reward_amount";
public static GameSettings Instance {
get {
return instance;
}
}
...
public int RewardAmount {
get {
// TODO: Apply reward amount from the Remote Config (102)
return (int) FirebaseRemoteConfig.GetValue(KEY_REWARD_AMOUNT).LongValue;
}
private set { }
}
}
}
Tạo một thông số Cấu hình từ xa trên bảng điều khiển
Tiếp theo, bạn sẽ tạo một thông số Cấu hình từ xa mới cho số tiền thưởng để có thể điều chỉnh giá trị của thông số đó ngay lập tức.
Để tạo một thông số mới, hãy chuyển đến bảng điều khiển của Firebase, sau đó chọn dự án Awesome Drawing Quiz mà bạn đã tạo trước đó. Nhấp vào nút Cấu hình từ xa -> THÊM THAM SỐ ĐẦU TIÊN.

Đặt tên tham số là reward_amount và đặt giá trị mặc định của tham số thành 1. Sau đó, hãy nhấp vào nút Thêm tham số.

Nhấp vào nút Xuất bản thay đổi để áp dụng thay đổi cho người dùng.

6. Thay đổi hành vi của ứng dụng bằng Cấu hình từ xa
Giờ đây, bạn có thể định cấu hình số tiền phần thưởng trong Bài kiểm tra vẽ thú vị trên bảng điều khiển của Firebase mà không cần phải cập nhật mã ứng dụng.
Trong phần này, bạn sẽ thay đổi số tiền thưởng từ 1 thành 2 để ứng dụng hiển thị thêm 2 ký tự gợi ý sau khi xem Quảng cáo có tặng thưởng.
Cập nhật giá trị mặc định của tham số reward_amount
Chuyển đến bảng điều khiển của Firebase, sau đó chọn dự án Awesome Drawing Quiz mà bạn đã tạo trước đó. Nhấp vào Cấu hình từ xa rồi nhấp vào reward_amount trong danh sách. Tiếp theo, hãy thay đổi giá trị mặc định thành 2 rồi nhấp vào nút Cập nhật.

Nhấp vào nút Xuất bản thay đổi để áp dụng thay đổi cho người dùng.

Xác minh thay đổi về hành vi của ứng dụng
Để xác nhận thay đổi về hành vi của ứng dụng, hãy chạy lại dự án. Sau khi xem xong một Quảng cáo có tặng thưởng, bạn sẽ thấy rằng ứng dụng hiện hiển thị 2 chữ cái làm phần thưởng, như chúng ta đã định cấu hình trong bảng điều khiển Cấu hình từ xa.
Trước khi xem Quảng cáo có tặng thưởng | Được tặng thêm 2 chữ cái làm phần thưởng |
7. Tạo thử nghiệm để tối ưu hoá số tiền thưởng
Giờ đây, bạn có thể thay đổi số tiền thưởng mà không cần phải xuất bản bản cập nhật ứng dụng. Tuy nhiên, làm cách nào để bạn xác định được mức thay đổi nào là phù hợp cho ứng dụng?
Với Thử nghiệm A/B của Firebase, bạn có thể chạy các thử nghiệm để tối ưu hoá trải nghiệm tổng thể của người dùng trong ứng dụng mà không cần cập nhật ứng dụng hoặc tạo một công cụ riêng để chạy và theo dõi hiệu suất của từng thử nghiệm.
Thiết kế thử nghiệm
Trước khi tạo thử nghiệm mới, bạn nên đặt mục tiêu rõ ràng cho thử nghiệm. Hãy nhớ xem kỹ danh sách kiểm tra sau đây trước khi tạo một thử nghiệm mới.
- Nội dung: Bạn muốn tối ưu hoá nội dung nào? (ví dụ: độ khó của trò chơi, thời gian/khả năng hiển thị của quảng cáo, v.v.)
- Lý do: Mục tiêu kinh doanh của bạn khi chạy thử nghiệm là gì? (ví dụ: để tối đa hoá doanh thu từ quảng cáo, tăng tỷ lệ giữ chân, v.v.)
- Đối tượng: Những ai sẽ tham gia thử nghiệm? (ví dụ: Tất cả người dùng, Đối tượng người dùng cụ thể, v.v.)
Trong Lớp học lập trình này, bạn sẽ tạo một thử nghiệm để tối ưu hoá giá trị phần thưởng nhằm tối đa hoá mức độ tương tác hằng ngày của người dùng trong ứng dụng Awesome Drawing Quiz (Đố vui vẽ tranh siêu đỉnh).
Tạo thử nghiệm
Mở dự án Awesome Drawing Quiz (Bài kiểm tra vẽ thú vị) trên bảng điều khiển của Firebase. Chọn trình đơn Kiểm thử A/B, sau đó nhấp vào nút Tạo thử nghiệm.
Chọn Cấu hình từ xa để tạo một thử nghiệm Cấu hình từ xa.

Đặt tên cho thử nghiệm là "Số tiền thưởng" như trong ảnh chụp màn hình sau.

Định cấu hình các lựa chọn nhắm mục tiêu. Trong Lớp học lập trình này, bạn sẽ nhắm đến 100% người dùng của Awesome Drawing Quiz (Bài kiểm tra vẽ tuyệt vời).

Vì mục tiêu chính của thử nghiệm là tìm ra giá trị tối ưu giúp tối đa hoá mức độ tương tác hằng ngày của người dùng, hãy chọn Mức độ tương tác hằng ngày của người dùng làm chỉ số chính để theo dõi.

Cuối cùng, hãy thiết lập nhóm đối chứng và nhóm biến thể để có thể xác định nhóm nào hoạt động hiệu quả hơn. Chọn reward_amount trong nhóm đối chứng và giữ nguyên giá trị của nhóm này. Đối với nhóm biến thể, hãy đặt tên là "Ít phần thưởng", sau đó thay đổi giá trị của reward_amount thành 1.

Với cấu hình này, những người trong nhóm "Ít phần thưởng" sẽ nhận được một chữ cái làm phần thưởng, trong khi những người trong Nhóm đối chứng sẽ nhận được hai chữ cái làm phần thưởng. Do đó, bạn sẽ thấy mức độ ảnh hưởng của phần thưởng đối với người dùng.
Sau khi nhấp vào nút Xem xét, bạn sẽ thấy thông tin tổng quan về thử nghiệm như sau.

Chạy thử nghiệm
Nhấp vào nút Bắt đầu thử nghiệm để chạy thử nghiệm. Xin lưu ý rằng bạn không thể thay đổi cấu hình thử nghiệm sau khi thử nghiệm bắt đầu.

8. Quản lý thử nghiệm
Xem tiến trình thử nghiệm
Bạn có thể kiểm tra tiến trình thử nghiệm trong trình đơn Thử nghiệm A/B trong bảng điều khiển của Firebase. Trình đơn này sẽ có dạng như ảnh chụp màn hình sau. Xin lưu ý rằng bạn cũng có thể xem số người dùng tham gia thử nghiệm trong 30 phút qua trên thẻ.

Sau khi nhấp vào thử nghiệm trong danh sách, bạn có thể xem thông tin chi tiết về thử nghiệm. Cho đến khi thử nghiệm có thể xác định được biến thể dẫn đầu (tức là biến thể hoạt động hiệu quả nhất), bạn sẽ thấy thông báo "Chưa thể xác định biến thể dẫn đầu".

Sau một thời gian chạy, thử nghiệm sẽ bắt đầu hiển thị dữ liệu đã thu thập được trong quá trình thử nghiệm cho đến nay trong mục Tổng quan về mức độ cải thiện. Bạn có thể so sánh hiệu suất của từng biến thể để xem biến thể nào hoạt động hiệu quả hơn. Ảnh chụp màn hình sau đây cho thấy ví dụ về phần Tổng quan về các điểm cải tiến.

Trong bảng bên dưới mục Thông tin tổng quan về mức độ cải thiện, bạn có thể xem thông tin chi tiết về các chỉ số mục tiêu của thử nghiệm cũng như các chỉ số bổ sung đang được theo dõi trong thử nghiệm. Ảnh chụp màn hình sau đây cho thấy một ví dụ về phần thông tin chi tiết về chỉ số.

Ra mắt tính năng người dẫn đầu cho tất cả người dùng
Sau khi thử nghiệm chạy đủ lâu để tìm ra biến thể dẫn đầu hoặc biến thể hiệu quả nhất, bạn có thể ra mắt thử nghiệm cho 100% người dùng. Sau khi thử nghiệm A/B tìm ra biến thể dẫn đầu rõ ràng, hệ thống sẽ khuyến khích bạn ra mắt biến thể dẫn đầu cho tất cả người dùng.

Tuy nhiên, ngay cả khi thử nghiệm chưa xác định được biến thể dẫn đầu rõ ràng, bạn vẫn có thể chọn ra mắt một biến thể cho tất cả người dùng.
Trên màn hình thông tin chi tiết về thử nghiệm, hãy nhấp vào trình đơn theo bối cảnh (
), rồi nhấp vào Ra mắt biến thể.

Chọn một biến thể để ra mắt cho tất cả người dùng, sau đó nhấp vào nút Xem trong Cấu hình từ xa để xem các thay đổi trước khi bạn thực hiện thay đổi trong Cấu hình từ xa.

Sau khi bạn xác nhận rằng bản nháp không có vấn đề gì, hãy nhấp vào nút Xuất bản thay đổi để áp dụng thay đổi cho tất cả người dùng.

9. Đã xong!
Bạn đã hoàn tất Lớp học lập trình AdMob+Firebase 102 Unity. Bạn có thể tìm thấy mã hoàn chỉnh cho Lớp học lập trình này trong thư mục
102-complete.

