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

1- مقدمة

تاريخ آخر تعديل: 2021-06-08

ما الذي ستنشئه

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

يفترض هذا الدرس التطبيقي حول الترميز أن لديك تطبيقًا تم تنفيذ "إحصاءات Google لبرنامج Firebase" عليه. إذا أردت التعرّف على كيفية الدمج مع "إحصاءات Google لبرنامج Firebase"، يُرجى الاطّلاع أولاً على هذا الدرس التطبيقي حول الترميز. للتعرّف على كيفية إنشاء تطبيق باستخدام Firebase، يُرجى الرجوع إلى مقالة محادثة ودية ضِمن درس تطبيقي حول الترميز في نظام التشغيل Android من Firebase.

المعلومات التي ستطّلع عليها

  • خطوات إجراء أول مكالمة هاتفية لطلبك
  • فهم المَعلمات المطلوبة للمكالمة
  • إرسال مكالمة الاختبار والتحقق من صحتها
  • إنشاء نموذج نص في بايثون لإجراء الاتصال

المتطلبات

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

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

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

انتقِل إلى "إحصاءات Google 4" وأنشِئ واجهة برمجة تطبيقات سرّية جديدة من خلال الانتقال إلى المشرف > مصادر البيانات > اختيار مصدر البيانات > Measurement Protocol > إنشاء

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

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

إذا لم تكن متأكّدًا من كيفية الوصول إلى "إحصاءات Google 4"، يمكنك الانتقال إلى مشروع Firebase والاطّلاع على إعدادات المشروع > عمليات الدمج > "إحصاءات Google"، ثم انقر على "إدارة". من المفترض أن يكون اتصال "إحصاءات Google" مرئيًا، ويمكنك الانتقال مباشرةً من هناك أيضًا.

73b4d77a57eddfba.png

جمع app_instance_id

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

  1. استخدام BigQuery Export
  2. جلب محلي في رمز مصدر التطبيق

كلا الأمرين موضحان بالتفصيل في ما يلي

  1. استخدام BigQuery Export

في حال تفعيل BigQuery Export ، يمكنك اتّباع الخطوات التالية.

  • تسجيل الدخول إلى Firebase
  • انتقِل إلى Project Settings (إعدادات المشروع) > عمليات الدمج > أداة 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 - سبق أن تم إنشاؤه على "إحصاءات Google 4"
  • firebase_app_id - للحصول على هذه المعلومات، يمكنك الانتقال إلى المشرف > مصادر البيانات > اختَر البث الذي تريده . يجب أن يظهر على النحو التالي

19801c8e5cb29222.png

  • app_instance_id - لقد سبق لك استرداد هذه القيمة
  • ويكون user_id غير إلزامي. يمكنك ترك هذا الحقل فارغًا في الوقت الحالي.
  • الفئة - غيِّرها إلى "مخصّصة" من القائمة المنسدلة، مع وضع أي اسم حدث من اختيارك (لا تستخدِم أي حدث مجمّع تلقائيًا). هنا نستخدم "test_from_codelab"

54cce53df64d697.png

اختياريًا، يمكنك أيضًا اختيار تقديم مَعلمات الأحداث و/أو خصائص المستخدمين عن طريق النقر على الأزرار أدناه.

16a8f531a3894021.png

بعد ملء كل المعلومات، من المفترض أن ترى شيئًا مثل هذا، مع زر لـ "التحقق من صحة الحدث"

475801f25c3caf26.png

عند الوصول إلى هذا الحدث، انقر على "VALIDATE EVENT". ، يتم تمييز الزر باللون البرتقالي. من المفترض أن يتم عرض الرسالة أدناه، مع تحديد أنّ الحدث صالح، وسيظهر لك زر الآن "SEND to GA". في هذه المرحلة، إذا كان الحدث غير صالح، ستخبرك الأداة بالحقل الدقيق الذي تظهر فيه المشكلة، ويمكنك حلّ المشكلة وإعادة المحاولة.

23e4e6800705b4aa.png

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

4. التحقّق من صحة الأحداث في "إحصاءات Google 4"

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

994b51ca46bb1973.png

قد يستغرق نشر الأحداث من العرض في الوقت الفعلي إلى علامة التبويب "إعداد تقارير الأحداث" الفعلية حوالي 24 ساعة، لذا لا داعي للقلق في حال عدم ظهور هذه الأحداث في تقارير الأحداث العادية على الفور.

إذا كنت تواجه مشاكل أو تناقضات، قد يكون من المفيد الاطّلاع على القيود المعروفة في Measurement Protocol هنا.

5- إنشاء نص برمجي في بايثون

والآن بعد اختباره، يمكنك فحص طلب البيانات من واجهة برمجة التطبيقات وحمولة الحدث لإنشاء بنية مماثلة في بايثون (أو بأي لغة من اختيارك) يمكنها إجراء هذا الاستدعاء. يمكنك بعد ذلك جدولة هذا الإجراء بالمعدل الذي تريده وتفعيله. في هذا الجزء، يمكنك استخدام أي بيئة تطوير متكاملة (IDE) من اختيارك متوافقة مع Python أو استخدام Google Colab notebook بدون الحاجة إلى أي تثبيت على جهازك.

بالرجوع إلى "أداة إنشاء الأحداث" في "إحصاءات Google 4"، ستلاحظ أنّ نقطة النهاية على النحو التالي:

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" وتحسين إحصاءات التسويق والأنشطة التجارية. للاستفادة إلى أقصى حدّ من هذه الأحداث، نقترح أيضًا الربط بحساب "إعلانات Google" واستيراد هذه الأحداث كإحالات ناجحة. يمكنك الرجوع إلى الخطوة 6 في هذا الدرس التطبيقي حول الترميز للحصول على تعليمات تفصيلية حول ذلك. لأغراض تتبُّع الإحالات الناجحة، لن تعرض "إعلانات Google" إلا البيانات المرتبطة بمعرّف المعلِنين (IDFA) أو أرقام تعريف الأجهزة التي تم جمعها من حزمة تطوير البرامج (SDK) لمنصة Firebase خلال آخر 60 يومًا. تجدر الإشارة إلى أنّ هذه الواجهة لا تزال إصدارًا أوليًا من واجهة برمجة التطبيقات، واحرص على مراجعة القيود المدرَجة هنا والتي يجب معالجتها قبل الإطلاق الكامل.

لقد تعلمت

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