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

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