إرسال أحداث Measurement Protocol إلى "إحصاءات Google"

يوضح هذا الدليل كيفية إرسال مصدر بيانات المواقع الإلكترونية والتطبيقات في إحصاءات Google Measurement Protocol الأحداث خادم "إحصاءات Google"، بحيث يمكنك عرض أحداث Measurement Protocol في تقارير "إحصاءات Google"

اختر النظام الأساسي الذي تريد مشاهدته في هذا الدليل:

تنسيق الطلب

لا يدعم Measurement Protocol في "إحصاءات Google" إلا طلبات HTTP POST فقط.

لإرسال حدث، استخدِم التنسيق التالي:

POST /mp/collect HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
<payload_data>

يجب تقديم المعلومات التالية في عنوان URL الخاص بالطلب:

  • api_secret: سر واجهة برمجة التطبيقات الذي تم إنشاؤه في واجهة مستخدم "إحصاءات Google".

    لإنشاء مفتاح سرّي جديد، انتقِل إلى المشرف >. مصادر البيانات > اختيار البث > Measurement Protocol > إنشاء:

  • firebase_app_id: رقم تعريف تطبيق Firebase الوارد في "وحدة تحكُّم Firebase" ضمن إعدادات المشروع > الإعدادات العامة > تطبيقاتك > رقم تعريف التطبيق.

    ويختلف firebase_app_id عن app_instance_id. تشير رسالة الأشكال البيانية يعرِف firebase_app_id تطبيقك، في حين أنّ app_instance_id يتعرّف على تطبيقك. عملية تثبيت واحدة للتطبيق.

راجِع مَعلمات طلب البحث للمرجع الكامل.

يجب تقديم ما يلي في نص الطلب:

  • user_id: اختيارية. معرّف فريد للمستخدِم. لا يمكن أن تحتوي إلا على UTF-8. الأحرف. اطّلِع على User-ID للتحليل من عدّة منصات للحصول على مزيد من المعلومات. بشأن هذا المعرف.

  • consent: اختيارية. التعرّف على كيفية تحديد الموافقة الإعدادات.

  • timestamp_micros: اختيارية. وقت حقبة يونكس بالميكرو ثانية الأحداث وخصائص المستخدمين في الطلب. إذا لم يتم تحديده، فسيتم تلقائيًا ضبط وقت إرسال الطلب.

  • events: مصفوفة من عناصر الأحداث. يمكنك تضمين أحداث متعددة في حدث واحد طلبك.

    لعرض نشاط المستخدم في تقارير مثل الوقت الفعلي، يجب تقديم engagement_time_msec وsession_id كجزء من params للحصول على event. يجب أن تعكس المعلَمة engagement_time_msec مدّة تفاعل الحدث بالمللي ثانية

    وفي ما يلي مثال لذلك:

  {
   "app_instance_id": "12345678901234567890123456789012",
   "events": [
     {
        "name": "campaign_details",
        "params": {
          "campaign_id": "google_1234",
          "campaign": "Summer_fun",
          "source": "google",
          "medium": "cpc",
          "term": "summer+travel",
          "content": "logolink",
          "session_id": "123",
          "engagement_time_msec": "100"
        }
     }
   ]
  }
  ```



While `session_start` is a [reserved event
name](/analytics/devguides/collection/protocol/ga4/reference#reserved_names),
creating a new `session_id` creates a new session without the need to send
`session_start`. Understand how [sessions are
counted](//support.google.com/analytics/answer/9191807).

## Try it

Here's an example you can use to send a [`tutorial_begin`] event to your Google
Analytics server:



```javascript
const firebase_app_id = `1:1234567890:android:321abc456def7890`;
const api_secret = `<secret_value>`;

fetch(`https://www.google-analytics.com/mp/collect?firebase_app_id=${firebase_app_id}&api_secret=${api_secret}`, {
  method: "POST",
  body: JSON.stringify({
    app_instance_id: 'app_instance_id',
    events: [{
      name: 'tutorial_begin',
      params: {},
    }]
  })
});
```

The format of `firebase_app_id` is platform specific. See **Application ID**
under [Firebase config files and objects].



## Override timestamp

The Measurement Protocol uses the *first* timestamp it finds in the following
list for each event in the request:

1.  The `timestamp_micros` of the event.
1.  The `timestamp_micros` of the request.
1.  The time that the Measurement Protocol receives the request.

The following example sends a request-level timestamp that applies to all of
the events in the request. As a result, the Measurement Protocol assigns both the
`tutorial_begin` and `join_group` events a timestamp of
`requestUnixEpochTimeInMicros`.

```javascript
{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin"
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ]
}
```

The following example sends both a request-level timestamp and an event-level
timestamp. As a result, the Measurement Protocol assigns the `tutorial_begin`
event a timestamp of `tutorialBeginUnixEpochTimeInMicros`, and the `join_group`
event a timestamp of `requestUnixEpochTimeInMicros`.

```javascript
{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin",
      "timestamp_micros": tutorialBeginUnixEpochTimeInMicros
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ]
}
```

## Limitations

The following limitations apply to sending Measurement Protocol events to Google
Analytics:

Note: For information on the limitations of 360 features, see [Google Analytics
360](//support.google.com/analytics/answer/11202874).

*   Requests can have a maximum of 25 events.
*   Events can have a maximum of 25 parameters.
*   Events can have a maximum of 25 user properties.
*   User property names must be 24 characters or fewer.
*   User property values must be 36 characters or fewer.
*   Event names must be 40 characters or fewer, can only contain alpha-numeric
    characters and underscores, and must start with an alphabetic character.
*   Parameter names including item parameters must be 40 characters or fewer,
    can only contain alpha-numeric characters and underscores, and must start
    with an alphabetic character.
*   Parameter values including item parameter values must be 100 characters or
    fewer for a standard Google Analytics property, and 500 characters or fewer
    for a Google Analytics 360 property.
*   Item parameters can have a maximum of 10 custom parameters.
*   The post body must be smaller than 130kB.
*   App Measurement Protocol events sent to Google Analytics 4 don't populate
    Search audiences in Google Ads for app users.

For additional requirements of each use case, see [common use cases].