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

1. บทนำ

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

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

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

Codelab นี้ถือว่าคุณมีแอปที่ติดตั้งใช้งาน Google Analytics สําหรับ Firebase อยู่แล้ว หากต้องการดูวิธีผสานรวมกับ Google Analytics สําหรับ Firebase โปรดดูโค้ดแล็บนี้ก่อน หากต้องการดูวิธีสร้างแอปด้วย Firebase โปรดดู Codelab ของ Firebase Android - สร้าง 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. การดึงข้อมูลโดยตรงในซอร์สโค้ดของแอป

เราจะอธิบายรายละเอียดของทั้ง 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 หรือใช้ Notebook ของ 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 นี้ Google Ads จะแสดงเฉพาะข้อมูลที่เชื่อมโยงกับ IDFA หรือรหัสอุปกรณ์ที่รวบรวมจาก Firebase SDK ภายใน 60 วันที่ผ่านมาเพื่อวัตถุประสงค์ในการวัด Conversion โปรดทราบว่า API นี้ยังเป็นเวอร์ชันอัลฟ่า และอย่าลืมอ่านข้อจำกัดที่ระบุที่นี่ ซึ่งควรได้รับการแก้ไขก่อนเปิดตัวอย่างเต็มรูปแบบ

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

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