رویدادهای برنامه را با استفاده از پروتکل اندازه گیری به GA4 ارسال کنید

1. معرفی

آخرین به روز رسانی: 2021-06-08

چیزی که خواهی ساخت

در این کد لبه، نحوه ارسال رویدادهای خارجی به GA4 با استفاده از پروتکل اندازه گیری را خواهید آموخت.

این کد لبه فرض می کند که شما قبلاً یک برنامه با Google Analytics برای Firebase پیاده سازی کرده اید. اگر می‌خواهید نحوه ادغام با Google Analytics برای Firebase را بیاموزید، لطفاً ابتدا به این کد لبه مراجعه کنید. اگر می‌خواهید نحوه ساخت برنامه با Firebase را بیاموزید، لطفاً به Firebase Android Codelab-Build Friendly Chat مراجعه کنید.

چیزی که یاد خواهید گرفت

  • مراحل انجام اولین تماس MP
  • پارامترهای مورد نیاز برای تماس را درک کنید
  • تماس آزمایشی خود را ارسال و تأیید کنید
  • برای برقراری تماس یک اسکریپت نمونه در پایتون بسازید

آنچه شما نیاز دارید

  • برنامه اندروید یا iOS شما
  • هر IDE برای ایجاد تغییرات
  • حساب GA4
  • اختیاری - محیط توسعه پایتون (یا Colab )

2. فیلدهای اجباری را جمع آوری کنید

ایجاد API Secret در GA4

به GA4 بروید و با رفتن به Admin > Data Streams > جریان خود > Measurement Protocol > Create راز API جدید خود را ایجاد کنید.

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

شما می توانید هر نام مستعاری را ارائه دهید و مقدار مخفی نمایش داده می شود که می توانید از آن در تماس خود استفاده کنید

اگر مطمئن نیستید که چگونه به GA4 دسترسی داشته باشید، می توانید به پروژه Firebase خود مراجعه کنید، تنظیمات پروژه > ادغام > Google Analytics را بررسی کنید و روی "Manage" کلیک کنید. اتصال Google Analytics باید قابل مشاهده باشد و می توانید مستقیماً از آنجا نیز حرکت کنید

73b4d77a57eddfba.png

app_instance_id را جمع آوری کنید

می توانید از هر یک از روش های زیر برای جمع آوری app_instance_id خود استفاده کنید.

  1. استفاده از BigQuery Export
  2. واکشی Natively در کد منبع برنامه شما

هر دوی این موارد در زیر به تفصیل توضیح داده شده است

  1. استفاده از BigQuery Export

اگر صادرات BigQuery را فعال کرده‌اید، می‌توانید مراحل زیر را دنبال کنید

  • وارد Firebase شوید
  • به تنظیمات پروژه > ادغام > BigQuery بروید
  • روی "مشاهده در BigQuery" در نزدیکی مجموعه داده کلیک کنید

توجه: مجموعه داده تنها پس از فعال شدن کلید برای حدود 24 تا 48 ساعت در دسترس خواهد بود.

63d061088b622961.png

  • در BigQuery می توانید user_pseudo_id را در جدول بررسی کنید. این app_instance_id است که می توانید در تماس خود از آن استفاده کنید

4b1b80bdc2884581.png

  1. واکشی Natively در کد منبع برنامه شما

اگر برنامه شما با استفاده از جاوا ساخته شده است، می توانید از چیزی شبیه به این برای بازیابی 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();
            }
        }
    });

برای کاتلین، می توانید موارد زیر را امتحان کنید

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 - برای دریافت این مورد، می‌توانید به Admin > Data Streams بروید > جریان خود را انتخاب کنید . باید به صورت زیر نمایش داده شود

19801c8e5cb29222.png

  • app_instance_id - شما قبلاً این مقدار را بازیابی کرده اید
  • user_id اجباری نیست. فعلا می توانید آن را خالی بگذارید
  • دسته - این مورد را از منوی کشویی به «سفارشی» تغییر دهید و نام رویداد دلخواه خود را در آن قرار دهید (از هیچ رویداد جمع‌آوری شده خودکار استفاده نکنید). در اینجا ما از "test_from_codelab" استفاده می کنیم

54cce53df64d697.png

به صورت اختیاری، همچنین می‌توانید با کلیک بر روی دکمه‌های زیر، پارامترهای رویداد و/یا ویژگی‌های کاربر را ارائه دهید

16a8f531a3894021.png

هنگامی که همه چیز را پر کردید، باید چیزی شبیه به این را ببینید، با یک دکمه برای "تأیید رویداد"

475801f25c3caf26.png

هنگامی که به این مورد رسیدید، روی "VALIDATE EVENT" کلیک کنید، دکمه ای که با رنگ نارنجی مشخص شده است. باید پیام زیر را نشان دهد که مشخص می کند رویداد معتبر است و اکنون دکمه "ارسال به GA" را خواهید دید. در این مرحله، اگر رویداد نامعتبر ظاهر شود، ابزار دقیقاً فیلد مشکلی را به شما می‌گوید و می‌توانید آن را برطرف کرده و دوباره امتحان کنید.

23e4e6800705b4aa.png

اکنون می توانید روی دکمه کلیک کنید و باید یک رویداد آزمایشی را به GA4 ارسال کند

4. اعتبار سنجی رویدادها در GA4

پس از ارسال رویداد، می توانید به حساب GA4 خود بروید و Realtime را بررسی کنید. باید ببینید که این رویداد از راه می رسد

994b51ca46bb1973.png

ممکن است حدود 24 ساعت طول بکشد تا رویدادها از نمای بیدرنگ به برگه گزارش رویدادهای واقعی منتشر شوند، بنابراین اگر فوراً این مورد را در گزارش رویداد معمولی مشاهده نکردید، نگران نباشید!

اگر با مشکلات یا مغایرت هایی مواجه هستید، ممکن است مفید باشد که محدودیت های شناخته شده پروتکل اندازه گیری را در اینجا بررسی کنید.

5. ساخت اسکریپت پایتون

اکنون که آن را آزمایش کرده‌اید، می‌توانید فراخوانی API و بار رویداد را بررسی کنید تا معماری مشابهی در پایتون (یا به هر زبان دلخواه شما) بسازید که می‌تواند این تماس را انجام دهد. سپس می توانید این را در فرکانس مورد نظر خود برنامه ریزی کرده و آن را عملیاتی کنید. برای این بخش، می توانید از هر IDE مورد نظر خود که از پایتون پشتیبانی می کند استفاده کنید یا فقط از یک نوت بوک 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"
      }
    }
  ]
}

با استفاده از چیزی شبیه به این می توانید این را به پایتون ترجمه کنید

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. تبریک می گویم

تبریک می‌گوییم، شما با موفقیت از پروتکل اندازه‌گیری در GA4 استفاده کردید. اکنون می توانید معماری راه حل های قدرتمندی بسازید تا داده های معنی دار بیشتری را به Google Analytics ارسال کنید و تجزیه و تحلیل بازاریابی و کسب و کار خود را بهبود بخشید. برای استفاده حداکثری از این، ما همچنین اتصال به Google Ads و وارد کردن این رویدادها را به عنوان تبدیل پیشنهاد می‌کنیم. برای دستورالعمل های دقیق در این مورد می توانید به مرحله 6 در این کد لبه مراجعه کنید. برای اهداف ردیابی تبدیل، Google Ads فقط داده‌هایی را نشان می‌دهد که با IDFA یا شناسه‌های دستگاه جمع‌آوری‌شده از Firebase SDK در ۶۰ روز گذشته مرتبط هستند. به خاطر داشته باشید که این هنوز یک API آلفا است و اطمینان حاصل کنید که محدودیت‌های ذکر شده در اینجا را که باید قبل از راه‌اندازی کامل برطرف شوند، رعایت کنید.

تو یاد گرفتی

  • نحوه جمع آوری متغیرهای مناسب برای برقراری تماس MP
  • نحوه ارسال و اعتبارسنجی رویدادهای آزمایشی
  • چگونه یک اسکریپت برای ارسال تماس MP بسازیم