שליחת אירועי אפליקציה אל GA4 באמצעות Measurement Protocol

1. מבוא

עדכון אחרון:8 ביוני 2021

מה תפַתחו

ב-Codelab הזה תלמדו איך לשלוח אירועים חיצוניים ל-GA4 באמצעות Measurement Protocol.

בקודלאב הזה אנחנו מביאים בחשבון שכבר יש לכם אפליקציה עם Google Analytics for Firebase מוטמע. כדי ללמוד איך לשלב את Google Analytics for Firebase, יש לקרוא קודם את ה-Codelab הזה. רוצים לדעת איך מפתחים אפליקציה באמצעות Firebase? כדאי לעיין בCodelab של Firebase ל-Android – פיתוח Friendly Chat.

מה תלמדו

  • השלבים לביצוע השיחה הראשונה בשימוש ב-MP
  • הסבר על הפרמטרים הנדרשים לשיחה
  • שליחה ואימות של שיחת הבדיקה
  • כדי לבצע את הקריאה, צריך ליצור סקריפט לדוגמה ב-Python

מה צריך להכין

  • האפליקציה ל-Android או ל-iOS
  • כל סביבת פיתוח משולבת (IDE) כדי לבצע שינויים
  • חשבון GA4
  • אופציונלי – סביבת פיתוח של Python (או Colab)

2. איסוף השדות החובה

יצירת API Secret ב-GA4

עוברים אל GA4 ויוצרים את סוד ה-API החדש: ניהול > מקורות נתונים > בחירת מקור הנתונים > 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, תוכלו לפעול לפי השלבים הבאים:

  • כניסה ל-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. (לשם כך צריך להתחבר ולהפעיל קובצי Cookie). מוודאים שהמתג מוגדר ל-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 ולייבא את האירועים האלה כהמרות. הוראות מפורטות לכך מפורטות בשלב 6 בcodelab הזה. למטרות מעקב המרות, מערכת Google Ads תציג רק נתונים שמשויכים למזהי IDFA או למזהי מכשירים שנאספו מ-Firebase SDK ב-60 הימים האחרונים. חשוב לזכור שמדובר עדיין ב-API בגרסת אלפא. חשוב לבדוק את המגבלות המפורטות כאן , וצריך לטפל בהן לפני ההשקה המלאה.

מה למדתם

  • איך לאסוף את המשתנים הנכונים לביצוע קריאות ל-MP
  • איך שולחים ומאמתים אירועי בדיקה
  • איך לבנות סקריפט לשליחת קריאות ל-MP