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

1. บทนำ

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

สิ่งที่คุณจะสร้าง

ใน Codelab นี้ คุณจะได้เรียนรู้วิธีส่งเหตุการณ์ภายนอกไปยัง GA4 โดยใช้ Measuring 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 ใหม่โดยไปที่ ผู้ดูแล ระบบ > สตรีมข้อมูล > เลือกสตรีมของคุณ > Measuring Protocol > สร้าง

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

คุณสามารถระบุชื่อเล่นใดก็ได้ และค่าลับจะปรากฏขึ้น ซึ่งคุณสามารถใช้ในการโทรได้

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

73b4d77a57eddfba.png

รวบรวม app_instance_id

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

  1. การใช้ BigQuery ส่งออก
  2. การดึงข้อมูลแบบ Natively ในซอร์สโค้ดของแอปของคุณ

ทั้งสองอย่างนี้มีการอธิบายโดยละเอียดด้านล่าง

  1. การใช้ BigQuery ส่งออก

หากคุณเปิดใช้ การส่งออก BigQuery ไว้ คุณจะทำตามขั้นตอนด้านล่างได้

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

หมายเหตุ : ชุดข้อมูลจะพร้อมใช้งานหลังจากเปิดใช้งานการสลับเป็นเวลาประมาณ 24-48 ชั่วโมงเท่านั้น

63d061088b622961.png

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

4b1b80bdc2884581.png

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

หากแอปของคุณสร้างโดยใช้ 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. การสร้างการโทร

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

fd78d961f3e48238.png

คุณจะต้องกรอกข้อมูลในช่องต่อไปนี้

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

19801c8e5cb29222.png

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

54cce53df64d697.png

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

16a8f531a3894021.png

เมื่อกรอกครบทุกอย่างแล้ว จะเห็นประมาณนี้ โดยมีปุ่ม "Validate Event"

475801f25c3caf26.png

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

23e4e6800705b4aa.png

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

4. การตรวจสอบความถูกต้องของเหตุการณ์ใน GA4

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

994b51ca46bb1973.png

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

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

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

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

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

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. ขอแสดงความยินดี

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

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

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