Android của AdMob cho Firebase 102: Tinh chỉnh hành vi của ứng dụng mà không cần cập nhật ứng dụng

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?

Người mới tập Trung cấp Thành thạo

Bạn đánh giá thế nào về mức độ trải nghiệm của mình với Firebase?

Người mới tập Trung cấp Thành thạo

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:

  • android_studio_folder.png101-base — Đoạn mã khởi đầu mà bạn sẽ tạo trong lớp học lập trình này.
  • android_studio_folder.png101-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.
  • android_studio_folder.png102-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

  1. 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. 9bacb5ada7cbaaf6.pngS
  2. Trong thẻ Chung, hãy chọn ứng dụng Android để tải tệp google-service.json xuống.
  3. Di chuyển tệp cấu hình vào thư mục android_studio_folder.pngapp trong dự án. 797cde1881a38fdf.png.

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.

e0a028059c9e00cb.png

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:

  1. 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 đó.
  2. Nhấp vào Phễu.
  3. Nhấp vào KÊNH MỚI.
  4. Nhập tên và mô tả cho kênh.
  5. 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.
  6. 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.
  7. 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_successd3bc78ef61a261d7.png

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_reward45c9542dfa663014.pngs

#3 Tên kênh: Tỷ lệ hoàn thành trò chơi Sự kiện: game_start, game_completedab25e8501746d5f.png

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.

620c0e84587c8ad4.pngS

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:

c889f9b6ece15847.png

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:

d044fb7b07e6e0d9.png

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.

7f52617141c53726.pngS

Đặ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ố.

cbc771fd1685b29c.png

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.

d6a6aa4a60e06ee9.png

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).

9a9bd8a26a39bfe3.pngs

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.

d6a6aa4a60e06ee9.png

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.

f38a85328ab54e7e.png

Đặ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.

15d552adb61c0b08.png.

Đị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.

61b316741a63050f.png.

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.

694641b57d90ff65.pngS

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.

10ed7f5b06858519.pngS

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.

ae6477ce79f6265d.png

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.

7131bf9b4fa74fa5.pngS

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.

8a7009bdd8871d95.pngS

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".

a4e7ca3e3f4711cd.png

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.

e2d00fc27c053fd3.png

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ố.

c3859d642f85cc52.png

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.

86cb6a6c07516634.pngS

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 ( 73afe611adf58774.pngs), rồi nhấp vào Triển khai biến thể.

374e1c72be1d0656.pngS

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.

e176f6e6a72c754.png

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.

d65d545620ce93f6.png

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 android_studio_folder.png102-complete.