إرسال أحداث التطبيق إلى "إحصاءات Google"‏ 4 باستخدام Measurement Protocol

1 المقدمة

آخر تحديث: 2021-06-08

ما سوف تبنيه

في هذا الدرس التطبيقي حول الترميز، ستتعرف على كيفية إرسال الأحداث الخارجية إلى "إحصاءات Google"‏ 4 باستخدام Measurement Protocol .

يفترض هذا الدرس التطبيقي حول التعليمات البرمجية أن لديك بالفعل تطبيقًا تم تنفيذ Google Analytics for Firebase فيه. إذا كنت تريد معرفة كيفية التكامل مع Google Analytics for Firebase، فيرجى الرجوع إلى هذا الدرس التطبيقي حول التعليمات البرمجية أولاً. إذا كنت تريد معرفة كيفية إنشاء تطبيق باستخدام Firebase، فيرجى الرجوع إلى Firebase Android Codelab-Build Friendly Chat .

ما ستتعلمه

  • خطوات إجراء أول مكالمة MP
  • فهم المعلمات المطلوبة للمكالمة
  • إرسال والتحقق من صحة المكالمة الاختبارية الخاصة بك
  • أنشئ نموذجًا لبرنامج نصي في لغة Python لإجراء المكالمة

ماذا ستحتاج

  • تطبيق Android أو iOS الخاص بك
  • أي IDE لإجراء تغييرات
  • حساب "إحصاءات Google"‏ 4
  • اختياري - بيئة تطوير Python (أو Colab )

2. اجمع الحقول الإلزامية

أنشئ سر واجهة برمجة التطبيقات في "إحصاءات Google"‏ 4

انتقل إلى GA4 وأنشئ سر واجهة برمجة التطبيقات الجديد من خلال الانتقال إلى المشرف > مصادر البيانات > اختر التدفق > بروتوكول القياس > إنشاء

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

يمكنك تقديم أي لقب، وسيتم عرض القيمة السرية، والتي يمكنك استخدامها في مكالمتك

إذا لم تكن متأكدًا من كيفية الوصول إلى GA4، يمكنك زيارة مشروع Firebase الخاص بك، والتحقق من إعدادات المشروع > عمليات التكامل > Google Analytics، والنقر على "إدارة". يجب أن يكون اتصال Google Analytics مرئيًا، ويمكنك التنقل مباشرة من هناك أيضًا

73b4d77a57eddfba.png

اجمع app_instance_id

يمكنك استخدام أي من الطرق التالية لتجميع app_instance_id الخاص بك.

  1. باستخدام تصدير BigQuery
  2. الجلب الأصلي في كود مصدر التطبيق الخاص بك

ويتم شرح كلا الأمرين بالتفصيل أدناه

  1. باستخدام تصدير BigQuery

إذا قمت بتمكين تصدير 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. بناء الدعوة

يمكنك إنشاء نموذج اتصال باستخدام أداة إنشاء الأحداث في "إحصاءات Google"‏ 4. (وهذا يتطلب منك تسجيل الدخول وتمكين ملفات تعريف الارتباط). تأكد من ضبط التبديل على "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 ساعة حتى يتم نشر الأحداث من عرض الوقت الفعلي إلى علامة تبويب الإبلاغ عن الأحداث الفعلية، لذا لا داعي للقلق إذا لم تشاهد ذلك في تقارير الأحداث العادية على الفور!

إذا كنت تواجه مشكلات أو تناقضات، فقد يكون من المفيد التحقق من القيود المعروفة لبروتوكول القياس هنا

5. بناء برنامج بايثون النصي

الآن بعد أن قمت باختباره، يمكنك فحص استدعاء واجهة برمجة التطبيقات (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"
      }
    }
  ]
}

يمكنك ترجمة هذا إلى بيثون باستخدام شيء من هذا القبيل

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)

وبعد تنفيذ ذلك بالقيم الصحيحة، من المفترض أن ترى بالمثل الحدث ينعكس في الوقت الفعلي في "إحصاءات Google"‏ 4.

6. تهانينا

تهانينا، لقد نجحت في استخدام Measurement Protocol في "إحصاءات Google"‏ 4. يمكنك الآن إنشاء تصميمات حلول قوية لإرسال المزيد من البيانات المفيدة إلى Google Analytics وتحسين تحليلات التسويق والأعمال لديك. ولتحقيق أقصى استفادة من هذا، نقترح أيضًا الاتصال ببرنامج إعلانات Google واستيراد هذه الأحداث كتحويلات. يمكنك الرجوع إلى الخطوة 6 في هذا الدرس التطبيقي حول التعليمات البرمجية للحصول على تعليمات تفصيلية حول ذلك. لأغراض تتبع التحويل، لن يعرض إعلانات Google سوى البيانات المرتبطة بـ IDFA أو معرفات الأجهزة التي تم جمعها من Firebase SDK خلال آخر 60 يومًا. ضع في اعتبارك أن هذه لا تزال واجهة برمجة تطبيقات ألفا وتأكد من اجتياز القيود المذكورة هنا والتي يجب معالجتها قبل الإطلاق الكامل

لقد تعلمت

  • كيفية جمع المتغيرات الصحيحة لإجراء مكالمات MP
  • كيفية إرسال والتحقق من صحة أحداث الاختبار
  • كيفية بناء برنامج نصي لإرسال مكالمات MP