Gửi sự kiện ứng dụng đến GA4 bằng Measurement Protocol

1. Giới thiệu

Lần cập nhật gần đây nhất: ngày 8 tháng 6 năm 2021

Sản phẩm bạn sẽ tạo ra

Trong lớp học lập trình này, bạn sẽ tìm hiểu cách gửi sự kiện bên ngoài tới GA4 bằng Measurement Protocol.

Lớp học lập trình này giả định rằng bạn đã triển khai một Ứng dụng có Google Analytics cho Firebase. Nếu bạn muốn tìm hiểu cách tích hợp với Google Analytics cho Firebase, trước tiên, hãy tham khảo lớp học lập trình này. Nếu bạn muốn tìm hiểu cách tạo ứng dụng bằng Firebase, vui lòng tham khảo nội dung Trò chuyện thân thiện với bản dựng – Lớp học lập trình Android bằng Firebase.

Kiến thức bạn sẽ học được

  • Các bước để thực hiện cuộc gọi MP đầu tiên
  • Tìm hiểu các thông số cần thiết cho lệnh gọi
  • Gửi và xác thực cuộc gọi thử
  • Tạo tập lệnh mẫu trong Python để thực hiện lệnh gọi

Bạn cần có

  • Ứng dụng Android hoặc iOS của bạn
  • Mọi IDE cần thay đổi
  • Tài khoản GA4
  • Không bắt buộc – Môi trường phát triển Python (hoặc Colab)

2. Thu thập các trường bắt buộc

Tạo Khoá bí mật API trong GA4

Chuyển đến GA4 rồi tạo mã thông báo bí mật mới cho API bằng cách chuyển đến mục Quản trị > Luồng dữ liệu > chọn sự kiện phát trực tiếp > Measurement Protocol > Tạo

6e445a63054d291.pngs

c9e9ccd2ffba98eb.png.

e714cd969fca4a4d.png.

Bạn có thể cung cấp biệt hiệu bất kỳ. Giá trị bí mật sẽ xuất hiện. Bạn có thể dùng giá trị này trong cuộc gọi

Nếu không biết rõ cách truy cập GA4, bạn có thể truy cập vào Dự án Firebase, rồi kiểm tra phần Cài đặt dự án > Tích hợp > Google Analytics, rồi nhấp vào "Quản lý". Kết nối Google Analytics sẽ hiển thị và bạn cũng có thể điều hướng trực tiếp từ đó

73b4d77a57eddfba.png.

Thu thập app_instance_id

Bạn có thể dùng một trong những phương thức dưới đây để thu thập app_instance_id.

  1. Sử dụng BigQuery Export
  2. Tìm nạp gốc trong mã nguồn ứng dụng

Cả hai đều được giải thích chi tiết bên dưới

  1. Sử dụng BigQuery Export

Nếu đã bật BigQuery Export , bạn có thể làm theo các bước bên dưới

  • Đăng nhập vào Firebase
  • Chuyển đến phần Cài đặt dự án > Tích hợp > BigQuery
  • Nhấp vào "Xem trong BigQuery" gần tập dữ liệu

Lưu ý : Tập dữ liệu sẽ chỉ xuất hiện sau khi nút bật/tắt được bật trong khoảng 24 đến 48 giờ

63d061088b622961.pngS

  • Trong BigQuery, bạn có thể kiểm tra user_pseudo_id trong bảng. Đây là app_instance_id mà bạn có thể sử dụng trong cuộc gọi của mình

4b1b80bdc2884581.pngS

  1. Tìm nạp nguyên gốc trong Mã nguồn ứng dụng

Nếu ứng dụng của bạn được tạo bằng Java, bạn có thể sử dụng các lệnh như thế này để truy xuất app_instance_id

 FirebaseAnalytics.getInstance(this).getAppInstanceId().addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
            if (task.isSuccessful()) {
                String user_pseudo_id = task.getResult();
            }
        }
    });

Đối với Kotlin, bạn có thể thử những cách dưới đây

Thread {
   Firebase.analytics.appInstanceId.addOnSuccessListener { user_pseudo_id ->
       Log.d("Firebase", "user_pseudo_id using appInstanceId is $user_pseudo_id")
       /*
       Store the value to your server or do something with the retrieved id
        */
   }
}.start()

Nếu có Ứng dụng iOS, bạn có thể dùng mã sau trong Swift

let user_pseudo_id = Analytics.appInstanceID()
print("user_pseudo_id = \(user_pseudo_id)")
/*
Store the value to your server or do something with the retrieved id
*/

Dưới đây là các đường liên kết khác, tuỳ thuộc vào cơ sở hạ tầng của bạn

3. Tạo nên cuộc gọi

Bạn có thể tạo lệnh gọi mẫu bằng Trình tạo sự kiện trong GA4. (Bạn sẽ phải đăng nhập và bật cookie). Đảm bảo nút bật/tắt được đặt thành "firebase"

fd78d961f3e48238.pngs

Bạn cần phải điền vào các trường sau

  • api_secret – Đã được tạo trước đó trên GA4
  • firebase_app_id - Để nhận được điều này, bạn có thể điều hướng đến Quản trị > Luồng dữ liệu > chọn sự kiện phát trực tiếp . Mã sẽ hiển thị như bên dưới

19801c8e5cb29222.pngS

  • app_instance_id - Bạn đã truy xuất giá trị này
  • user_id là không bắt buộc. Hiện tại, bạn có thể để trống trường này
  • Danh mục - thay đổi danh mục này thành "Tùy chỉnh" trên trình đơn thả xuống rồi nhập tên sự kiện bất kỳ mà bạn chọn (không sử dụng sự kiện được thu thập tự động). Ở đây, chúng ta đang dùng "test_from_codelab"

54cce53df64d697.pngS

(Không bắt buộc) Bạn cũng có thể chọn cung cấp thông số sự kiện và/hoặc thuộc tính người dùng bằng cách nhấp vào các nút bên dưới

16a8f531a3894021.pngS

Sau khi điền mọi thông tin, bạn sẽ thấy như sau, với nút để "Xác thực sự kiện"

475801f25c3caf26.pngs

Khi bạn đến nơi, nhấp vào "XÁC THỰC SỰ KIỆN" , nút được làm nổi bật bằng màu cam. Hệ thống sẽ hiển thị thông báo bên dưới, trong đó xác định rằng sự kiện này là hợp lệ và bạn sẽ thấy một nút để hiện thông báo "GỬI ĐẾN GA". Tại thời điểm này, nếu sự kiện được coi là không hợp lệ, công cụ này sẽ cho bạn biết trường chính xác xảy ra vấn đề để bạn có thể khắc phục vấn đề đó rồi thử lại

23e4e6800705b4aa.png.

Bây giờ, bạn có thể nhấp vào nút này và nút này sẽ gửi một sự kiện thử nghiệm đến GA4

4. Xác thực sự kiện trong GA4

Sau khi gửi sự kiện, bạn có thể chuyển đến tài khoản GA4 của mình và kiểm tra Báo cáo theo thời gian thực. Bạn sẽ thấy sự kiện diễn ra

994b51ca46bb1973.pngS

Có thể mất khoảng 24 giờ để các sự kiện chuyển từ chế độ xem theo thời gian thực sang thẻ báo cáo sự kiện thực tế. Vì vậy, bạn không cần lo lắng nếu không thấy ngay thông tin này trong báo cáo sự kiện thông thường!

Nếu gặp phải các vấn đề hoặc sự khác biệt, bạn nên xem các giới hạn đã biết của Measurement Protocol tại đây

5. Tạo tập lệnh Python

Giờ thì bạn đã kiểm thử xong, bạn có thể kiểm tra lệnh gọi API và tải trọng sự kiện để xây dựng một cấu trúc tương tự trong Python (hoặc bằng bất kỳ ngôn ngữ nào bạn chọn) có thể thực hiện lệnh gọi này. Sau đó, bạn có thể lên lịch cho việc này với tần suất mong muốn và vận hành chiến dịch. Đối với phần này, bạn có thể sử dụng một IDE bất kỳ có hỗ trợ Python theo ý mình hoặc chỉ cần sử dụng một sổ tay Google Colab mà không cần cài đặt gì trên thiết bị của bạn

Khi xem lại Trình tạo sự kiện GA4, bạn sẽ thấy điểm cuối như bên dưới

POST /mp/collect?firebase_app_id=XXXX&api_secret=XXXX 
HTTP/1.1
Host: www.google-analytics.com

Tải trọng sự kiện như dưới đây

{
  "app_instance_id": XXXX,
  "non_personalized_ads": false,
  "events": [
    {
      "name": "test_from_codelab",
      "params": {
        "test_param": "test_123"
      }
    }
  ]
}

Bạn có thể dịch nội dung này sang python bằng cách sử dụng mã như sau

import requests
import json
url = "https://www.google-analytics.com/mp/collect?firebase_app_id=XXXX&api_secret=XXXX"
payload = {
  "app_instance_id": XXXX,
  "non_personalized_ads": False,
  "events": [
    {
      "name": "test_from_codelab",
      "params": {
        "test_param": "test_123"
      }
    }
  ]
}
r = requests.post(url,data=json.dumps(payload),verify=True)
print(r.status_code)

Sau khi thực thi giá trị này với giá trị phù hợp, bạn sẽ thấy sự kiện này được phản ánh theo thời gian thực trong GA4.

6. Xin chúc mừng

Xin chúc mừng! Bạn đã sử dụng thành công Measurement Protocol trong GA4. Giờ đây, bạn có thể xây dựng cấu trúc giải pháp mạnh mẽ để gửi dữ liệu có ý nghĩa hơn đến Google Analytics, đồng thời cải thiện hoạt động tiếp thị và phân tích kinh doanh của mình. Để khai thác tối đa sự kiện này, bạn cũng nên kết nối với Google Ads và nhập những sự kiện này dưới dạng lượt chuyển đổi. Bạn có thể tham khảo bước 6 trong lớp học lập trình này để được hướng dẫn chi tiết. Đối với mục đích theo dõi lượt chuyển đổi, Google Ads sẽ chỉ hiển thị dữ liệu được liên kết với IDFA hoặc mã thiết bị được thu thập từ Firebase SDK trong vòng 60 ngày qua. Xin lưu ý rằng đây vẫn là API alpha và hãy nhớ xem qua các hạn chế được liệt kê tại đây cần được giải quyết trước khi phát hành đầy đủ

Bạn đã tìm hiểu về

  • Cách thu thập các biến phù hợp để thực hiện lệnh gọi MP
  • Cách gửi và xác thực sự kiện thử nghiệm
  • Cách tạo tập lệnh để gửi lệnh gọi MP