ส่งเหตุการณ์แอปไปยัง GA4 โดยใช้ Measurement Protocol

ส่งเหตุการณ์แอปไปยัง GA4 โดยใช้ Measurement Protocol

เกี่ยวกับ Codelab นี้

subjectอัปเดตล่าสุดเมื่อ พ.ย. 28, 2023
account_circleเขียนโดย Surath Sarma

1 บทนำ

อัปเดตล่าสุด 08-06-2021

ใน Codelab นี้ คุณจะได้เรียนรู้วิธีส่งเหตุการณ์ภายนอกไปยัง GA4 โดยใช้ Measurement Protocol

Codelab นี้จะสมมติว่าคุณมีแอปที่ใช้ Google Analytics สำหรับ Firebase อยู่แล้ว หากต้องการดูวิธีผสานรวมกับ Google Analytics สำหรับ Firebase โปรดดู Codelab นี้ก่อน หากต้องการดูวิธีสร้างแอปด้วย Firebase โปรดไปที่ Firebase Android Codelab-Build friendly Chat

สิ่งที่คุณจะได้เรียนรู้

  • ขั้นตอนในการโทรผ่าน MP ครั้งแรก
  • ทําความเข้าใจเกี่ยวกับพารามิเตอร์ที่จําเป็นสําหรับการโทร
  • ส่งและตรวจสอบการโทรทดสอบ
  • สร้างสคริปต์ตัวอย่างใน Python เพื่อทำการเรียกใช้

สิ่งที่คุณต้องมี

  • แอป Android หรือ iOS ของคุณ
  • IDE ใดก็ได้ที่จะแก้ไข
  • บัญชี GA4
  • ไม่บังคับ - สภาพแวดล้อมในการพัฒนาซอฟต์แวร์ Python (หรือ Colab)

2 รวบรวมช่องที่จำเป็น

สร้างข้อมูลลับ API ใน GA4

ไปที่ GA4 และสร้าง API Secret ใหม่โดยไปที่ผู้ดูแลระบบ > สตรีมข้อมูล > เลือกสตรีม > Measurement Protocol > สร้าง

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

คุณจะตั้งชื่อเล่นก็ได้ และค่าข้อมูลลับจะแสดงขึ้นมาเพื่อให้คุณใช้ในการโทร

หากไม่แน่ใจว่าจะเข้าถึง GA4 อย่างไร ให้ไปที่โปรเจ็กต์ Firebase แล้วตรวจสอบการตั้งค่าโปรเจ็กต์ > การผสานรวม > Google Analytics แล้วคลิก "จัดการ" การเชื่อมต่อ Google Analytics ควรจะแสดงอยู่ และคุณสามารถไปยังที่ต่างๆ ได้โดยตรงจากจุดนั้นเช่นกัน

73b4d77a57eddfba.png

รวบรวม app_instance_id

คุณใช้วิธีการใดก็ได้ด้านล่างเพื่อรวบรวม app_instance_id

  1. การใช้ BigQuery Export
  2. การดึงข้อมูลในซอร์สโค้ดของแอปโดยตรง

ซึ่งได้อธิบายไว้โดยละเอียดด้านล่าง

  1. การใช้ BigQuery Export

หากเปิดใช้ BigQuery Export ให้ทําตามขั้นตอนต่อไปนี้

  • ลงชื่อเข้าใช้ Firebase
  • ไปที่การตั้งค่าโปรเจ็กต์ > การผสานรวม > BigQuery
  • คลิก "ดูใน BigQuery" ใกล้ชุดข้อมูล

หมายเหตุ : ชุดข้อมูลจะสามารถใช้ได้หลังจากเปิด/ปิดแล้วประมาณ 24-48 ชั่วโมง

63d061088b622961.png

  • ใน BigQuery คุณจะตรวจสอบ user_pseudo_id ได้ในตาราง นี่คือ app_instance_id ที่คุณสามารถใช้ในการโทรของคุณ

4b1b80bdc2884581.png

  1. การดึงข้อมูลในซอร์สโค้ดของแอป

หากแอปสร้างขึ้นโดยใช้ Java คุณจะใช้คำสั่งนี้เพื่อเรียกข้อมูล 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();
           
}
       
}
   
});

สําหรับ Kotlin ให้ลองใช้วิธีด้านล่างนี้

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

หากคุณมีแอป iOS คุณสามารถใช้รายการต่อไปนี้ใน 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
*/

ด้านล่างนี้เป็นลิงก์เพิ่มเติมโดยขึ้นอยู่กับโครงสร้างพื้นฐานของคุณ

3 การสร้างการโทร

คุณสร้างการโทรตัวอย่างได้โดยใช้เครื่องมือสร้างเหตุการณ์ใน GA4 (คุณต้องลงชื่อเข้าใช้และเปิดใช้คุกกี้) ตรวจสอบว่าตั้งค่าปุ่มสลับเป็น "firebase"

Fd78d961f3e48238.png

คุณต้องกรอกข้อมูลในฟิลด์ต่อไปนี้

  • api_secret - สร้างไว้ก่อนหน้านี้ใน GA4
  • firebase_app_id - หากต้องการดำเนินการนี้ ให้ไปที่ผู้ดูแลระบบ > สตรีมข้อมูล > เลือกสตรีมของคุณ ซึ่งควรจะแสดงในลักษณะด้านล่างนี้

19801c8e5cb29222.png

  • app_instance_id - คุณได้ดึงข้อมูลค่านี้แล้ว
  • user_id ไม่จำเป็น คุณสามารถเว้นว่างไว้ได้ในตอนนี้
  • หมวดหมู่ - เปลี่ยนเป็น "กำหนดเอง" จากเมนูแบบเลื่อนลง แล้วใส่ชื่อเหตุการณ์ที่คุณต้องการ (อย่าใช้เหตุการณ์ที่รวบรวมโดยอัตโนมัติ) เราใช้ "test_from_codelab" ที่นี่

54cce53df64d697.png

นอกจากนี้ คุณยังเลือกระบุพารามิเตอร์เหตุการณ์และ/หรือพร็อพเพอร์ตี้ผู้ใช้ได้โดยคลิกปุ่มด้านล่าง

16a8f531a3894021.png

เมื่อกรอกข้อมูลทุกอย่างแล้ว คุณจะเห็นหน้าลักษณะนี้พร้อมปุ่ม "ตรวจสอบกิจกรรม"

475801f25c3caf26.png

เมื่อมาถึงขั้นตอนนี้ ให้คลิก "ตรวจสอบกิจกรรม" ปุ่มที่ไฮไลต์ด้วยสีส้ม โดยจะแสดงข้อความด้านล่าง โดยระบุว่าเหตุการณ์ถูกต้อง และคุณจะเห็นปุ่ม "ส่งไปยัง GA" ในตอนนี้ ณ จุดนี้ หากเหตุการณ์ระบุว่าไม่ถูกต้อง เครื่องมือจะบอกฟิลด์ที่แน่ชัดว่ามีปัญหาเกิดขึ้นหรือไม่ และคุณสามารถแก้ไขแล้วลองใหม่ได้

23e4e6800705b4aa.png

ตอนนี้คุณสามารถคลิกปุ่ม ซึ่งควรส่งเหตุการณ์ทดสอบไปยัง GA4

4 การตรวจสอบเหตุการณ์ใน GA4

เมื่อส่งเหตุการณ์แล้ว คุณจะไปที่บัญชี GA4 และตรวจสอบแบบเรียลไทม์ได้ คุณควรจะเห็นว่าเหตุการณ์ผ่านเข้ามา

994b51ca46bb1973.png

เหตุการณ์อาจใช้เวลาประมาณ 24 ชั่วโมงจึงจะเผยแพร่จากมุมมองแบบเรียลไทม์ไปยังแท็บการรายงานเหตุการณ์จริงได้ ดังนั้นไม่ต้องกังวลหากคุณไม่เห็นการรายงานเหตุการณ์ปกติในทันที

หากพบปัญหาหรือความคลาดเคลื่อน ขอแนะนำให้ตรวจสอบข้อจำกัดที่ทราบของ Measurement Protocol ที่นี่

5 การสร้างสคริปต์ Python

เมื่อทดสอบแล้ว คุณจะสามารถตรวจสอบการเรียก API และเพย์โหลดเหตุการณ์เพื่อสร้างสถาปัตยกรรมที่คล้ายกันใน Python (หรือในภาษาใดก็ได้ที่คุณต้องการ) ซึ่งสามารถเรียกใช้นี้ได้ จากนั้นคุณสามารถตั้งเวลาและดำเนินการตามความถี่ที่ต้องการ ในส่วนนี้ คุณจะใช้ IDE ใดก็ได้ที่เลือกซึ่งรองรับ Python หรือใช้สมุดบันทึก Google Colab ซึ่งไม่ต้องมีการติดตั้งในอุปกรณ์ก็ได้

เมื่ออ้างอิงกลับไปยังเครื่องมือสร้างเหตุการณ์ GA4 คุณจะเห็นว่าปลายทางมีลักษณะดังนี้

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

เพย์โหลดเหตุการณ์เป็นดังนี้

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

คุณสามารถแปลข้อความนี้เป็นภาษา Python ได้โดยใช้คำสั่งนี้

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)

เมื่อดําเนินการด้วยค่าที่ถูกต้องแล้ว คุณก็ควรจะเห็นเหตุการณ์สะท้อนแบบเรียลไทม์ใน GA4

6 ขอแสดงความยินดี

ยินดีด้วย คุณใช้ Measurement Protocol ใน GA4 เรียบร้อยแล้ว ตอนนี้คุณสามารถสร้างสถาปัตยกรรมโซลูชันที่มีประสิทธิภาพเพื่อส่งข้อมูลที่มีความหมายมากขึ้นไปยัง Google Analytics ตลอดจนปรับปรุงการวิเคราะห์ด้านการตลาดและธุรกิจได้แล้ว นอกจากนี้ เรายังแนะนำให้เชื่อมต่อกับ Google Ads และนำเข้าเหตุการณ์เหล่านี้เป็น Conversion เพื่อให้ได้รับประโยชน์สูงสุด โปรดดูวิธีการโดยละเอียดที่ขั้นตอนที่ 6 ใน Codelab นี้ เพื่อวัตถุประสงค์ในการวัด Conversion Google Ads จะแสดงเฉพาะข้อมูลที่เชื่อมโยงกับ IDFA หรือรหัสอุปกรณ์ที่รวบรวมจาก Firebase SDK ภายใน 60 วันที่ผ่านมา โปรดทราบว่านี่เป็น API เวอร์ชันอัลฟ่าและต้องทำตามข้อจำกัดที่ระบุไว้ที่นี่ ซึ่งควรแก้ไขก่อนการเปิดตัวอย่างเต็มรูปแบบ

คุณได้เรียนรู้

  • วิธีรวบรวมตัวแปรที่เหมาะสมในการเรียก MP
  • วิธีส่งและตรวจสอบเหตุการณ์ทดสอบ
  • วิธีสร้างสคริปต์เพื่อส่งการโทรของ MP