۱. مقدمه
آخرین بهروزرسانی: 2021-06-08
آنچه خواهید ساخت
در این آزمایشگاه کد، شما یاد خواهید گرفت که چگونه رویدادهای خارجی را با استفاده از پروتکل اندازهگیری به GA4 ارسال کنید.
این آزمایشگاه کد فرض میکند که شما از قبل یک برنامه با Google Analytics برای Firebase پیادهسازی کردهاید. اگر میخواهید نحوه ادغام با Google Analytics برای Firebase را بیاموزید، لطفاً ابتدا به این آزمایشگاه کد مراجعه کنید. اگر میخواهید نحوه ساخت یک برنامه با Firebase را بیاموزید، لطفاً به Firebase Android Codelab-Build Friendly Chat مراجعه کنید.
آنچه یاد خواهید گرفت
- مراحل برقراری اولین تماس با نماینده مجلس
- پارامترهای مورد نیاز برای فراخوانی را درک کنید
- ارسال و اعتبارسنجی تماس آزمایشی شما
- برای برقراری تماس، یک اسکریپت نمونه در پایتون بسازید
آنچه نیاز دارید
- اپلیکیشن اندروید یا iOS شما
- هر IDE برای ایجاد تغییرات
- حساب GA4
- اختیاری - محیط توسعه پایتون (یا Colab )
۲. فیلدهای اجباری را جمعآوری کنید
ایجاد API Secret در GA4
به GA4 بروید و با رفتن به Admin > Data Streams > select your stream > Measurement Protocol > Create ، API مخفی جدید خود را ایجاد کنید.



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

جمعآوری app_instance_id
شما میتوانید از هر یک از روشهای زیر برای جمعآوری app_instance_id خود استفاده کنید.
- استفاده از خروجی BigQuery
- واکشی بومی در کد منبع برنامه شما
هر دو مورد در ادامه به تفصیل توضیح داده شده است
- استفاده از خروجی BigQuery
اگر قابلیت خروجی گرفتن از BigQuery را فعال کردهاید، میتوانید مراحل زیر را دنبال کنید.
- ورود به فایربیس
- به تنظیمات پروژه > ادغامها > BigQuery بروید
- روی «مشاهده در BigQuery» در کنار مجموعه دادهها کلیک کنید
توجه: مجموعه دادهها فقط پس از فعال شدن گزینه تغییر وضعیت به مدت حدود ۲۴ تا ۴۸ ساعت در دسترس خواهند بود.

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

- واکشی بومی در کد منبع برنامه شما
اگر برنامه شما با استفاده از جاوا ساخته شده است، میتوانید از چیزی شبیه به این برای بازیابی 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
*/
در زیر لینکهای بیشتری بسته به زیرساخت شما وجود دارد.
۳. ایجاد فراخوان
شما میتوانید با استفاده از سازنده رویداد در GA4 یک فراخوانی نمونه ایجاد کنید. (این کار مستلزم ورود به سیستم و فعال بودن کوکیها است). مطمئن شوید که گزینه روی "firebase" تنظیم شده است.

شما باید فیلدهای زیر را پر کنید
- api_secret - قبلاً در GA4 ایجاد شده است
- firebase_app_id - برای دریافت این، میتوانید به Admin > Data Streams بروید و stream خود را انتخاب کنید . باید به صورت زیر نمایش داده شود.

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

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

وقتی همه چیز را پر کردید، باید چیزی شبیه به این را ببینید، به همراه دکمهای برای «اعتبارسنجی رویداد»

وقتی به این رسیدید، روی «VALIDATE EVENT» کلیک کنید، دکمهای که با رنگ نارنجی مشخص شده است. باید پیام زیر نمایش داده شود که مشخص میکند رویداد معتبر است و اکنون دکمهای برای «SEND TO GA» خواهید دید. در این مرحله، اگر رویداد نامعتبر تشخیص داده شود، ابزار فیلد دقیقی را که در آن مشکل وجود دارد به شما میگوید و میتوانید آن را برطرف کرده و دوباره امتحان کنید.

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

ممکن است حدود ۲۴ ساعت طول بکشد تا رویدادها از نمای بلادرنگ به برگه گزارش رویدادهای واقعی منتقل شوند، بنابراین اگر بلافاصله این مورد را در گزارش رویدادهای معمولی مشاهده نکردید، نگران نباشید!
اگر با مشکلات یا اختلافاتی روبرو هستید، بررسی محدودیتهای شناختهشدهی پروتکل اندازهگیری در اینجا میتواند مفید باشد.
۵. ساخت یک اسکریپت پایتون
اکنون که آن را آزمایش کردهاید، میتوانید فراخوانی API و بار داده رویداد را بررسی کنید تا معماری مشابهی در پایتون (یا هر زبان دلخواه خود) بسازید که بتواند این فراخوانی را انجام دهد. سپس میتوانید این را با فرکانس دلخواه خود برنامهریزی کرده و عملیاتی کنید. برای این بخش، میتوانید از هر IDE دلخواه خود که از پایتون پشتیبانی میکند استفاده کنید یا فقط از یک نوتبوک 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)
زمانی که این کار را با مقادیر صحیح اجرا کنید، باید به طور مشابه بازتاب رویداد را به صورت بلادرنگ در GA4 مشاهده کنید.
۶. تبریک
تبریک میگوییم، شما با موفقیت از پروتکل اندازهگیری در GA4 استفاده کردید. اکنون میتوانید معماریهای راهحل قدرتمندی برای ارسال دادههای معنادارتر به گوگل آنالیتیکس و بهبود تجزیه و تحلیل بازاریابی و کسبوکار خود بسازید. برای بهرهبرداری هرچه بیشتر از این، پیشنهاد میکنیم به گوگل ادز متصل شوید و این رویدادها را به عنوان تبدیل وارد کنید. برای دستورالعملهای دقیق در این مورد، میتوانید به مرحله ۶ در این آزمایشگاه کد مراجعه کنید. برای اهداف ردیابی تبدیل، گوگل ادز فقط دادههایی را نشان میدهد که با IDFA یا شناسههای دستگاه جمعآوریشده از Firebase SDK در ۶۰ روز گذشته مرتبط هستند. به خاطر داشته باشید که این هنوز یک API آلفا است و حتماً محدودیتهای ذکر شده در اینجا را که باید قبل از راهاندازی کامل برطرف شوند، بررسی کنید.
یاد گرفتی.
- چگونه متغیرهای مناسب را برای برقراری تماسهای MP جمعآوری کنیم؟
- نحوه ارسال و اعتبارسنجی رویدادهای آزمایشی
- نحوه ساخت اسکریپت برای ارسال تماسهای MP