1. Giới thiệu
Giả sử bạn cần điều chỉnh giá trị của một số tham số trong ứng dụng sau khi xuất bản ứng dụng trên Cửa hàng Play. Thông thường, bạn nên xuất bản lại phiên bản ứng dụng mới 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 hiệu quả nếu bạn muốn thực hiện một thay đổi lâu dài đối với ứ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ố thông số trong ứng dụng của mình? Hoặc nếu bạn muốn chạy một số thử nghiệm để tìm cấu hình ứng dụng tối ưu thì sao?
Trong những trường hợp này, bản cập nhật ứng dụng sẽ không hoạt động tốt. Bởi vì việc này cần một khoảng thời gian cho đến khi bản cập nhật được phổ biến hoàn toàn đến người dùng. Ngoài ra, việc chạy thử nghiệm trên một số 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ó đang diễn ra như dự kiến hay không? Bạn có thể dựa vào nhận xét của người dùng trên Play Console. Tuy nhiên, có thể thông tin này chưa đủ chính xác để đưa ra quyết định rõ ràng.
Nếu bạn gặp vấn đề (lỗi trong đoạn mã, lỗi ngữ pháp, từ ngữ không rõ ràng, v.v.) khi thực hành theo lớp học lập trình này, vui lòng báo cáo vấn đề thông qua đường liên kết Báo cáo lỗi ở góc dưới bên trái lớp học lập trình.
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 tính năng Thử nghiệm A/B trong Firebase
Bạn cần có
- Android Studio phiên bản 4.1 trở lên
- Tài khoản Google
- 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 Trình mô phỏng Android chạy AVD(Thiết bị Android ảo) có hình ảnh hệ thống hỗ trợ API của Cửa hàng Play/Google
Bạn đánh giá mức độ trải nghiệm của mình với AdMob như thế nào?
Bạn đánh giá thế nào về mức độ trải 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ã nguồn xuống
Nhấp vào nút sau đây để tải tất cả mã 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 thư mục gốc có tên admob-firebase-codelabs-android-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-android
Kho lưu trữ chứa 4 thư mục như sau:
- 101-base — Đoạn 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 — Đoạn mã đã hoàn tất cho lớp học lập trình này & điều kiện khởi đầu cho lớp học lập trình 102.
- 102-complete — Đã hoàn thành mã cho lớp học lập trình 102.
Nhập ứng dụng khởi đầu
Chạy Android Studio, chọn "Import project" (Nhập dự án) trên màn hình chào mừng. Sau đó, chọn thư mục 101-complete_and_102-base từ đoạn mã bạn đã tải xuống.
Bây giờ, bạn sẽ mở dự án này trong Android Studio.
Thêm tệp cấu hình Firebase vào dự án Android
- Trên màn hình tổng quan của dự án Awesome Drawing đố, hãy nhấp vào biểu tượng Cài đặt.
- Trong thẻ Chung, hãy chọn ứng dụng Android để tải tệp google-service.json xuống.
- Di chuyển tệp cấu hình vào thư mục app trong dự án.
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 từ bảng điều khiển của Firebase mà bạn đã tạo trong bước "Thiết lập dự án Firebase" của Lớp học lập trình 101 về AdMob và Firebase.
4. Tạo một phễu cho sự kiện ứng dụng
Bạn có thể thêm một vài sự kiện ứng dụng để theo dõi hoạt động của người dùng bên trong ứng dụng đó. Bằng cách đọc báo cáo về từng sự kiện ứng dụng, bạn có thể biết thông tin chi tiết liên quan đến sự kiện đó như tổng số, số lượng 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 chuỗi 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 để hình ảnh hóa và tối ưu hóa tỷ lệ hoàn thành của một loạt sự kiện ứ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 Bài kiểm tra bản vẽ tuyệt vời 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:
Tên phễu số 1: Tỷ lệ thành công theo cấp Sự kiện: level_start
, level_success
Số 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 kênh: Tỷ lệ hoàn thành trò chơi Sự kiện: game_start
, game_complete
Xem bản phân tích phễu
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. Khi 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ụ: nhấp vào Tỷ lệ thành công của cấp. Thẻ này sẽ hiển thị thông tin chi tiết về phễu như sau:
Trên ả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 đã xoá 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
). Trong phần này, bạn có thể thấy rằng 46,2% người dùng đã hoàn thành cấp độ đó.
Sau khi bạn nhấp vào Số sự kiện, thao tác này sẽ hiển thị các chỉ số dựa trên số lượng sự kiện như sau:
Dựa trên các chỉ số trên ảnh chụp màn hình ở trên, có 116 lần thử (đã kích hoạt sự kiện level_start) và 57 lần xoá (đã kích hoạt sự kiện level_thành công) 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 có thể nói rằng có một vài người hoạt động hiệu quả hơn những người khác.
5. Tích hợp Cấu hình từ xa vào ứng dụng
Do bạn có thể nhận một số thông tin chi tiết về ứng dụng của mình dựa trên các sự kiện ứng dụng và phễu, bạn có thể cần tối ưu hoá ứng dụng của mình. Quá trình này thường bao gồm một hoạt động tinh chỉnh giá trị tham số trong ứng dụng. Để sửa đổi giá trị của các thông số đó, bạn cần phải 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, tức là bạn có thể thay đổi hành vi của ứng dụng mà không phải làm phiền người dùng bằng cách buộc họ tải bản cập nhật xuống.
Trong lớp học lập trình này, bạn sẽ tìm hiểu cách sử dụng Cấu hình từ xa để điều chỉnh số tiền thưởng (số chữ cái được tiết lộ sau khi xem Quảng cáo dạng video có tặng thưởng) mà không cần cập nhật ứng dụng.
Thêm Cấu hình từ xa vào phần phụ thuộc ứng dụng
Hãy bắt đầu bằng cách thêm Cấu hình từ xa Firebase vào phần phụ thuộc của ứng dụng.
app/build.gradle
apply plugin: 'com.android.application'
android {
...
}
dependencies {
...
// TODO: Add Firebase Remote Config dependency (102)
implementation 'com.google.firebase:firebase-config-ktx'
...
}
...
Đồng bộ hoá dự án với các tệp gradle
Để đảm bảo ứng dụng của bạn có thể sử dụng tất cả các phần phụ thuộc, hãy đồng bộ hoá dự án với các tệp gradle. Chọn File > (Tệp >) Trình đơn Đồng bộ hoá dự án với tệp Gradle để đồng bộ hoá dự án của bạn với các tệp gradle.
Đặt giá trị mặc định cho thông số Cấu hình từ xa
Tìm nạp các giá trị từ Cấu hình từ xa cần có kết nối mạng. Trong trường hợp không có mạng, bạn nên xác định giá trị mặc định cho mỗi thông số Cấu hình từ xa.
Tạo tệp remote_config_defaults.xml
trong thư mục res/xml
. Sau đó, đặt giá trị mặc định của số tiền thưởng (reward_amount)
như sau.
res/xml/remote_config_defaults.xml
<?xml version="1.0" encoding="utf-8"?>
<defaultsMap>
<entry>
<key>reward_amount</key>
<value>1</value>
</entry>
</defaultsMap>
Xin lưu ý rằng reward_amount
là tên của thông số trong Cấu hình từ xa.
Tìm nạp số tiền thưởng từ Cấu hình từ xa
Sửa đổi AwesomeDrawingQuiz.kt
để lớp GameSettings
chứa thông tin tham chiếu đến thực thể RemoteConfig
.
Xin lưu ý rằng thực thể RemoteConfig
đượ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ợ quá trình phát triển. (Đặt khoảng thời gian tìm nạp tối thiểu thành 0 giây bằng cách gọi fetch(0L)
)
AwesomeDrawingQuiz.kt
class AwesomeDrawingQuiz : Application() {
...
// COMPLETE: Provide FirebaseRemoteConfig instance (102)
private fun provideGameSettings() = GameSettings(provideRemoteConfig())
// COMPLETE: Add a function that provides a FirebaseRemoteConfig instance (102)
private fun provideRemoteConfig(): FirebaseRemoteConfig {
val rc = Firebase.remoteConfig.apply {
setDefaultsAsync(R.xml.remote_config_defaults)
}
val fetchTask = if (BuildConfig.DEBUG) rc.fetch(0L) else rc.fetch()
fetchTask.addOnCompleteListener {
if (it.isSuccessful) {
Log.d("AwesomeDrawingQuiz", "Remote config value fetched")
rc.activate()
}
}
return rc
}
}
Sau đó, hãy thay đổi lớp GameSettings
để tìm nạp số tiền thưởng từ Cấu hình từ xa.
GameSettings.kt
// TODO: Add FirebaseRemoteConfig as a class member
class GameSettings(private val rc: FirebaseRemoteConfig) {
...
// TODO: Apply reward amount from the Remote Config (102)
val rewardAmount: Int
get() = rc.getLong(KEY_REWARD_AMOUNT).toInt()
companion object {
...
// TODO: Add a key for 'reward_amount' Remote Config parameter (102)
private const val KEY_REWARD_AMOUNT = "reward_amount"
}
}
Tạo thông số Cấu hình từ xa trong 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 nhanh giá trị của thông số đó.
Để tạo thông số mới, hãy chuyển đến bảng điều khiển của Firebase, sau đó chọn dự án Bài kiểm tra bản vẽ tuyệt vời mà bạn đã tạo trước đó. Nhấp vào Cấu hình Từ xa -> THÊM THÔNG SỐ ĐẦU TIÊN CỦA BẠN.
Đặt tên cho tham số này là reward_amount
và đặt giá trị mặc định thành 1
. Sau đó, nhấp vào nút Thêm thông số.
Nhấp vào nút Xuất bản nội dung thay đổi để áp dụng nội dung 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 thưởng trong Câu đố về bản vẽ tuyệt vời 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 gợi ý thêm 2 nhân vật sau khi xem Quảng cáo có tặng thưởng.
Cập nhật giá trị mặc định của thông số Rewards_amount
Truy cập vào bảng điều khiển của Firebase, sau đó chọn dự án Bài kiểm tra bản vẽ tuyệt vời mà bạn đã tạo trước đó. Nhấp vào Cấu hình từ xa và nhấp vào reward_amount
từ danh sách. Tiếp theo, hãy thay đổi giá trị mặc định thành 2, sau đó nhấp vào nút Update (Cập nhật).
Nhấp vào nút Xuất bản các thay đổi để áp dụng nội dung 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 Quảng cáo có tặng thưởng, bạn sẽ nhận thấy ứng dụng hiện hiển thị hai chữ cái là 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 một Quảng cáo có tặng thưởng | Tiết lộ thêm hai 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 phải xuất bản bản cập nhật ứng dụng. Tuy nhiên, làm cách nào để xác định số tiền bạn đã thay đổi có phù hợp với ứng dụng hay không?
Với tính năng Thử nghiệm A/B trong Firebase, bạn có thể chạy các thử nghiệm để tối ưu hoá trải nghiệm người dùng tổng thể của ứng dụng mà không cần cập nhật ứng dụng hoặc tạo 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 ra mục tiêu rõ ràng cho thử nghiệm đó. Hãy nhớ xem qua danh sách kiểm tra sau đây trước khi tạo thử nghiệm mới.
- Bạn muốn tối ưu hoá điều gì? (ví dụ: độ khó của trò chơi, thời gian/chế độ 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 người dùng, v.v.)
- Ai: Những ai sẽ được 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 nhằm tối ưu hoá giá trị của số tiền thưởng nhằm tăng tối đa mức độ tương tác hằng ngày của người dùng trong Bài đố vui về bản vẽ tuyệt vời.
Tạo thử nghiệm
Mở dự án Awesome Vẽ vui nhộn trong bảng điều khiển của Firebase. Chọn trình đơn Thử nghiệm A/B, rồi nhấp vào nút Tạo thử nghiệm.
Chọn Cấu hình từ xa để tạo thử nghiệm Cấu hình từ xa.
Đặt tên cho thử nghiệm là "Số tiền của phần thưởng" như trong ảnh chụp màn hình sau đây.
Định cấu hình các tuỳ 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 Bài kiểm tra về bản vẽ tuyệt vời.
Vì mục tiêu chính của thử nghiệm là tìm giá trị tối ưu để tăng tối đa mức độ tương tác của người dùng hằng ngày, nên hãy chọn Mức độ tương tác của người dùng hằng ngày làm chỉ số chính cần theo dõi.
Cuối cùng, hãy thiết lập nhóm đối chứng và nhóm biến thể để bạn có thể xác định nhóm nào hoạt động hiệu quả hơn. Chọn reward_amount
từ nhóm đối chứng và giữ nguyên giá trị của thuộc tính này. Đối với nhóm biến thể, hãy đặt tên là "Phần thưởng ít hơn", sau đó thay đổi giá trị của reward_amount
thành 1.
Với cấu hình này, những người thuộc nhóm "Phần thưởng ít hơn" sẽ nhận được phần thưởng là một chữ cái, 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 được mức độ ảnh hưởng của số lượng phần thưởng đối với người dùng.
Sau khi nhấp vào nút Xem lại, 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 khi 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 từ trình đơn Thử nghiệm A/B trong bảng điều khiển của Firebase như ảnh chụp màn hình sau đây. Xin lưu ý rằng bạn cũng có thể nhìn thấy số lượng người dùng tham gia thử nghiệm trong 30 phút qua trên thẻ này.
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ể khai báo 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 "Còn quá sớm để khai báo biến thể dẫn đầu".
Khi đã chạy được một thời gian, 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 thời điểm hiện tại trong phần 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ề mục Tổng quan về điểm cải thiện.
Từ bảng bên dưới phần Tổng quan về mức độ cải thiện, bạn có thể kiểm tra 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ố khác đang được theo dõi trong thử nghiệm. Ảnh chụp màn hình sau đây cho thấy ví dụ về phần thông tin chi tiết về các chỉ số.
Giới thiệu biến thể dẫn đầu cho tất cả người dùng
Sau khi thử nghiệm đã chạy trong một thời gian dài mà bạn có biến thể dẫn đầu hoặc biến thể hiệu quả nhất, bạn có thể triển khai thử nghiệm cho 100% người dùng. Khi đã tìm được biến thể dẫn đầu rõ ràng, thử nghiệm A/B sẽ khuyến khích bạn triển khai biến thể hàng đầu đó cho tất cả người dùng.
Tuy nhiên, ngay cả khi thử nghiệm chưa khai báo biến thể dẫn đầu rõ ràng, bạn vẫn có thể chọn triển khai 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 Triển khai 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 lại trong Cấu hình từ xa để xem lại các thay đổi trước khi 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 các thay đổi để áp dụng nội dung thay đổi cho tất cả người dùng.
9. Đã xong!
Bạn đã hoàn thành Lớp học lập trình Android 102 sử dụng AdMob và Firebase 102. Bạn có thể tìm thấy mã đã hoàn tất cho lớp học lập trình này trong thư mục 102-complete.