این راهنما توضیح میدهد که چگونه میتوانید رویدادهای جاریسازی وب و برنامه پروتکل اندازهگیری Google Analytics را به سرور Google Analytics ارسال کنید تا بتوانید رویدادهای «پروتکل اندازهگیری» را در گزارشهای Google Analytics خود مشاهده کنید.
شناسهها و پارامترهای موردنیاز برای درخواستهای Measurement Protocol به این بستگی دارد که رویدادها را به جریان داده وب ارسال میکنید یا جریان داده برنامه.
- برای جاریسازیهای وب (که معمولاً با gtag.js یا Google Tag
Manager ابزاربندی شدهاند)، از
measurement_idدر نشانی وب درخواست وclient_idدر بدنه JSON برای شناسایی نمونه کاربر استفاده میکنید.client_idباید با شناسه تولیدشده توسط برچسب Google Analytics در وبسایتتان مطابقت داشته باشد. - برای جاریسازیهای برنامه (مجهز به کیت توسعه نرمافزار Firebase)، از
firebase_app_idدر نشانی وب درخواست وapp_instance_idدر بدنه JSON استفاده میکنید که توسط Google Analytics برای کیت توسعه نرمافزار Firebase ارائه شده است.
این راهنما برای هر دو سناریو مثالهایی ارائه میدهد.
عناصر اصلی درخواست براساس نوع جاریسازی
| مؤلفه | جریان داده وب (gtag.js/GTM) | جاریسازی برنامه (Firebase) |
|---|---|---|
| پارامتر نشانی وب جریان داده | measurement_id |
firebase_app_id |
| پارامتر نشانی وب رمز میانای برنامهسازی کاربردی | الزامی | الزامی |
| فیلد بدنه JSON شناسه دستگاه | client_id |
app_instance_id |
پلاتفرمی را که میخواهید در این راهنما ببینید انتخاب کنید:
این برگه دستورالعملهای ارسال رویدادها از سرور شما را نشان میدهد که با فعالیت کاربر در جاریسازی برنامه بااستفاده از Google Analytics برای Firebase SDK مرتبط است. بهخاطر داشته باشید که این درخواستها از firebase_app_id و
app_instance_id استفاده میکنند.
پیشنیازها
برای ارسال رویدادها بااستفاده از Measurement Protocol، به شناسههای خاصی از دارایی Google Analytics یا پروژه Firebase خود نیاز دارید.
رمز میانای برنامهسازی کاربردی
از api_secret برای اصالتسنجی درخواستهایتان استفاده میشود. بسیار مهم است که این راز را محرمانه نگه دارید.
برای ایجاد کردن رمز جدید:
- به Google Analytics بروید و به حساب و داراییتان پیمایش کنید.
- روی سرپرست در پایین سمت راست کلیک کنید.
- در بخش جمعآوری و اصلاح دادهها، روی جاریسازیهای داده کلیک کنید.
- جریان دادههای «وب» یا «برنامه» را انتخاب کنید.
- روی رمزهای Measurement Protocol API کلیک کنید.
- روی ایجاد کردن کلیک کنید.
- نام مستعاری برای کلید خصوصی وارد کنید و روی ایجاد کلیک کنید.
مقدار رمز را کپی کنید.
شناسه برنامه Firebase
firebase_app_id برنامه Firebase شما را شناسایی میکند. این شناسه با app_instance_id یکسان نیست.
برای پیدا کردن شناسه Firebase App:
- پروژهتان را در کنسول Firebase باز کنید.
- روی نماد چرخدنده تنظیمات در کنار نمای کلی پروژه کلیک کنید و تنظیمات پروژه را انتخاب کنید.
- در برگه عمومی، به بخش برنامههای شما بروید.
- برنامه iOS یا Android موردنظر را انتخاب کنید.
- مقدار شناسه برنامه را کپی کنید.
قالببندی درخواست
پروتکل اندازهگیری Google Analytics فقط از درخواستهای HTTP POST پشتیبانی میکند.
برای ارسال رویداد، از قالب زیر استفاده کنید:
POST /mp/collect?firebase_app_id=<var>FIREBASE_APP_ID</var>&api_secret=<var>API_SECRET</var> HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
PAYLOAD_DATA
باید موارد زیر را در پارامترهای پُرسمان نشانی وب درخواست ارائه دهید (برای جزئیات مربوط به نحوه یافتن یا ایجاد این مقادیر، به پیشنیازها مراجعه کنید):
api_secret: رمز میانای برنامهسازی کاربردی برای اصالتسنجی درخواست.firebase_app_id: شناسه Firebase App برنامه شما.
باید متن درخواست را در قالب متن JSON POST برای «پروتکل اندازهگیری» ارائه دهید. مثالی در اینجا ارائه شده است:
{
"app_instance_id": "APP_INSTANCE_ID",
"events": [
{
"name": "login",
"params": {
"method": "Google",
"session_id": "SESSION_ID",
"engagement_time_msec": 100
}
}
]
}
باید app_instance_id را در متن درخواست ارائه دهید تا نصب منحصربهفرد برنامه تلفن همراهتان شناسایی شود. توجه داشته باشید که این با firebase_app_id که خود برنامه را شناسایی میکند متفاوت است. برای اطلاعات بیشتر درباره
app_instance_id و نحوه بازیابی آن بااستفاده از کیت توسعه نرمافزار Firebase، به
اسناد مرجع app_instance_id مراجعه کنید.
درحالیکه session_start نام رویداد رزروشده است،
ایجاد session_id جدید باعث ایجاد جلسه جدیدی میشود بدون اینکه نیازی به ارسال
session_start باشد. با نحوه شمارش جلسهها آشنا شوید.
امتحان کنید
در اینجا مثالی آورده شده است که میتوانید از آن برای ارسال همزمان چند رویداد استفاده کنید. این نمونه
یک رویداد tutorial_begin و یک
رویداد join_group به سرور Google Analytics شما ارسال میکند، شامل اطلاعات
جغرافیایی بااستفاده از فیلد user_location است، و شامل اطلاعات دستگاه
بااستفاده از فیلد device است.
const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/mp/collect?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
app_instance_id: "APP_INSTANCE_ID",
events: [
{
name: "tutorial_begin",
params: {
"session_id": "SESSION_ID",
"engagement_time_msec": 100
}
},
{
name: "join_group",
params: {
"group_id": "G_12345",
"session_id": "SESSION_ID",
"engagement_time_msec": 150
}
}
],
user_location: {
city: "Mountain View",
region_id: "US-CA",
country_id: "US",
subcontinent_id: "021",
continent_id: "019"
},
device: {
category: "mobile",
language: "en",
screen_resolution: "1280x2856",
operating_system: "Android",
operating_system_version: "14",
model: "Pixel 9 Pro",
brand: "Google",
browser: "Chrome",
browser_version: "136.0.7103.60"
}
})
});
قالب firebase_app_id مختص پلاتفرم است. شناسه برنامه را در بخش فایلها و اشیاء پیکربندی Firebase ببینید.
لغو مُهر زمان
«پروتکل اندازهگیری» از اولین مُهر زمان که در فهرست زیر پیدا میکند برای هر رویداد و مشخصه کاربر در درخواست استفاده میکند:
timestamp_microsرویداد یا مشخصه کاربر.timestamp_microsدرخواست.- زمانی که Measurement Protocol درخواست را دریافت میکند.
مثال زیر مُهر زمان سطح درخواست را ارسال میکند که برای همه رویدادها و ویژگیهای کاربر در درخواست اعمال میشود. درنتیجه، Measurement Protocol مهر زمان
requestUnixEpochTimeInMicros را به رویدادهای tutorial_begin و join_group
و مشخصه کاربر customer_tier اختصاص میدهد.
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin"
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
],
"user_properties": {
"customer_tier": {
"value": "PREMIUM"
}
}
}
مثال زیر مُهر زمان سطح درخواست، مُهر زمان سطح رویداد، و مُهر زمان سطح ویژگی کاربر را ارسال میکند. درنتیجه، Measurement Protocol مُهرهای زمان زیر را اختصاص میدهد:
tutorialBeginUnixEpochTimeInMicrosبرای رویدادtutorial_begincustomerTierUnixEpochTimeInMicrosبرای مشخصه کاربرcustomer_tierrequestUnixEpochTimeInMicrosبرای رویدادjoin_groupو مشخصه کاربرnewsletter_reader.
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin",
"timestamp_micros": tutorialBeginUnixEpochTimeInMicros
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
],
"user_properties": {
"customer_tier": {
"value": "PREMIUM",
"timestamp_micros": customerTierUnixEpochTimeInMicros
},
"newsletter_reader": {
"value": "true"
}
}
}
رفتار اعتبارسنجی برای رویدادهای گذشته و ویژگیهای کاربر
رویدادها و ویژگیهای کاربر را میتوان تا ۷۲ ساعت قبل تاریخگذاری کرد. اگر مقدار
timestamp_micros قدیمیتر از ۷۲ ساعت قبل باشد، Measurement Protocol
رویداد یا مشخصه کاربر را بهصورت زیر میپذیرد یا رد میکند:
- اگر
validation_behaviorتنظیم نشده باشد یا رویRELAXEDتنظیم شده باشد، «پروتکل اندازهگیری» رویداد یا ویژگی کاربر را میپذیرد اما مُهر زمان آن را به ۷۲ ساعت قبل لغو میکند. - اگر
validation_behaviorرویENFORCE_RECOMMENDATIONSتنظیم شده باشد، Measurement Protocol رویداد یا مشخصه کاربر را رد میکند.
رویدادهای ارسالشده بااستفاده از Measurement Protocol که قرار است بههمراه رویدادهای جمعآوریشده توسط Google Analytics برای Firebase SDK یا gtag.js ملحق یا پردازش شوند، باید ظرف ۴۸ ساعت از مُهر زمان رویداد اصلی سمت کارخواه توسط Google Analytics دریافت شوند. رویدادهایی که دیرتر از این زمان دریافت شوند ممکن است طبق انتظار پردازش نشوند، بهویژه برای اهدافی مانند اسناد تبدیل.
محدودیتها
محدودیتهای زیر برای ارسال رویدادهای Measurement Protocol به Google Analytics اعمال میشود:
میتوانید حداکثر ۱۰۰ میلیون درخواست غیرتبدیل در ساعت برای هر دارایی ارسال کنید. درخواست زمانی غیرتبدیلی است که هیچکدام از رویدادهای موجود در درخواست رویداد کلیدی نباشد که برای آن تبدیل در Google Ads وجود داشته باشد. اگر از این حد فراتر بروید، «پروتکل اندازهگیری» همه درخواستهای غیرتبدیل را برای دارایی در باقیمانده ساعت نادیده میگیرد.
درخواستها میتوانند حداکثر ۲۵ رویداد داشته باشند.
رویدادها میتوانند حداکثر ۲۵ پارامتر داشته باشند.
رویدادها میتوانند حداکثر ۲۵ ویژگی کاربر داشته باشند.
نامهای ویژگی کاربر باید ۲۴ نویسه یا کمتر باشد.
مقادیر ویژگی کاربر باید ۳۶ نویسه یا کمتر باشد.
نام رویداد باید ۴۰ نویسه یا کمتر باشد، فقط میتواند حاوی نویسههای الفباعددی و زیرخط باشد، و باید با نویسه الفبایی شروع شود.
نام پارامترها، ازجمله پارامترهای مورد، باید ۴۰ نویسه یا کمتر باشد، فقط میتواند حاوی نویسههای الفباعددی و زیرخط باشد، و باید با نویسه الفبایی شروع شود.
مقادیر پارامتر، ازجمله مقادیر پارامتر مورد، باید ۱۰۰ نویسه یا کمتر برای دارایی استاندارد Google Analytics و ۵۰۰ نویسه یا کمتر برای دارایی Google Analytics 360 باشد.
این محدودیت برای پارامترهای
session_idوsession_numberاعمال نمیشود وقتی مقادیر آنها توسط متغیرهای داخلی مربوطه شناسه جلسه Analytics و شماره جلسه Analytics در Google Tag Manager ارائه شده باشد.پارامترهای مورد میتوانند حداکثر ۱۰ پارامتر سفارشی داشته باشند.
بدنه پست باید کوچکتر از ۱۳۰ کیلوبایت باشد.
رویدادهای App Measurement Protocol که به Google Analytics ارسال میشوند، مخاطبان «جستجو» را در Google Ads برای کاربران برنامه پر نمیکنند.
برخیاز نامهای رویداد، پارامتر، و مشخصه کاربر رزرو شدهاند و نمیتوان از آنها استفاده کرد. برای جزئیات، نامهای رزروشده را ببینید.
نامهای رزروشده
Measurement Protocol چندین نام رزروشده دارد که نمیتوان از آنها برای رویدادها، پارامترها، یا ویژگیهای کاربر استفاده کرد.
نامهای رویداد زیر معمولاً باهم اشتباه گرفته میشوند:
screen_view: این رویداد فقط برای جاریسازیهای برنامه مجاز است. برای جریانهای داده وب، بهجای آن ازpage_viewاستفاده کنید.ad_impression: این رویداد فقط برای جاریسازیهای برنامه مجاز است.in_app_purchase: این رویداد فقط برای جاریسازیهای برنامه مجاز است. برای جریانهای داده وب، بهجای آن از رویدادpurchaseاستفاده کنید.
برای الزامات بیشتر هر مورد استفاده، موارد استفاده رایج را ببینید.