Mengirim peristiwa Measurement Protocol ke Google Analytics

Panduan ini menjelaskan cara mengirim Aliran data web dan aplikasi Measurement Protocol Google Analytics peristiwa ke server Google Analytics Anda, agar Anda dapat melihat peristiwa Measurement Protocol di Laporan Google Analytics.

Pilih platform yang ingin Anda lihat dalam panduan ini:

Memformat permintaan

Measurement Protocol Google Analytics hanya mendukung permintaan POST HTTP.

Untuk mengirim peristiwa, gunakan format berikut:

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

Anda harus menyediakan hal berikut dalam URL permintaan:

  • api_secret: RAHASIA API yang dibuat di UI Google Analytics.

    Untuk membuat rahasia baru, buka Admin > Aliran Data > pilih aliran data Anda > Measurement Protocol > Buat.

  • measurement_id: ID pengukuran yang terkait dengan aliran data, yang ditemukan di UI Google Analytics pada bagian Admin > Aliran Data > pilih aliran data Anda > ID Pengukuran.

    measurement_id bukan merupakan ID Aliran Data.

Lihat parameter kueri untuk mendapatkan referensi lengkap.

Anda harus menyediakan hal berikut dalam isi permintaan:

  • client_id: ID unik untuk klien. ID ini berbeda dengan app_instance_id Firebase. Gunakan gtag.js('get').
  • user_id: Opsional. ID unik untuk pengguna. Hanya boleh berisi UTF-8 karakter. Lihat artikel User-ID untuk analisis lintas platform guna mendapatkan informasi lebih lanjut tentang ID ini.

  • consent: Opsional. Pelajari cara menetapkan izin setelan.

  • timestamp_micros: Opsional. Waktu Unix epoch, dalam mikrodetik, untuk peristiwa, dan properti pengguna dalam permintaan. Jika tidak ditentukan, akan ditetapkan secara default ke waktu permintaan.

  • events: Array item peristiwa. Anda dapat menyertakan beberapa acara dalam satu permintaan.

    Agar aktivitas pengguna ditampilkan dalam laporan seperti laporan Real-Time, engagement_time_msec dan session_id harus dimasukkan sebagai bagian dari params untuk event. Parameter engagement_time_msec harus mencerminkan waktu engagement peristiwa dalam milidetik.

    Berikut contohnya:

  {
   "client_id": "123456.7654321",
   "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"
        }
     }
   ]
  }

Meskipun session_start adalah nama peristiwa yang dicadangkan, pembuatan session_id baru akan membuat sesi baru tanpa perlu mengirim session_start. Pahami cara penghitungan sesi.

Coba

Berikut contoh yang dapat Anda gunakan untuk mengirim peristiwa tutorial_begin ke akun Google Server Analytics:

const measurement_id = `G-XXXXXXXXXX`;
const api_secret = `<secret_value>`;

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

Ganti stempel waktu

Measurement Protocol menggunakan stempel waktu pertama yang ditemukannya dalam daftar berikut untuk setiap peristiwa dalam permintaan:

  1. timestamp_micros peristiwa.
  2. timestamp_micros permintaan.
  3. Waktu Measurement Protocol menerima permintaan.

Contoh berikut mengirimkan stempel waktu tingkat permintaan yang berlaku untuk semua peristiwa tertentu dalam permintaan. Akibatnya, Measurement Protocol menetapkan Peristiwa tutorial_begin dan join_group dengan stempel waktu requestUnixEpochTimeInMicros.

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

Contoh berikut mengirimkan stempel waktu tingkat permintaan dan tingkat peristiwa tanda waktu. Akibatnya, Measurement Protocol menetapkan tutorial_begin peristiwa stempel waktu tutorialBeginUnixEpochTimeInMicros, dan join_group peristiwa stempel waktu requestUnixEpochTimeInMicros.

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

Batasan

Batasan berikut berlaku untuk mengirim peristiwa Measurement Protocol ke Google Analytics:

  • Permintaan dapat memiliki maksimal 25 peristiwa.
  • Peristiwa dapat memiliki maksimal 25 parameter.
  • Peristiwa dapat memiliki maksimal 25 properti pengguna.
  • Nama properti pengguna harus terdiri dari maksimal 24 karakter.
  • Nilai properti pengguna harus terdiri dari maksimal 36 karakter.
  • Nama peristiwa harus terdiri dari maksimal 40 karakter, hanya boleh berisi karakter alfanumerik dan garis bawah, serta harus diawali dengan karakter alfabet.
  • Nama parameter (termasuk parameter item) harus terdiri dari maksimal 40 karakter, hanya boleh berisi karakter alfanumerik dan garis bawah, serta harus diawali dengan karakter alfabet.
  • Nilai parameter termasuk nilai parameter item harus terdiri dari 100 karakter atau lebih sedikit untuk properti Google Analytics standar, dan maksimal 500 karakter untuk properti Google Analytics 360.
  • Parameter item dapat memiliki maksimal 10 parameter kustom.
  • Isi POST harus lebih kecil dari 130 KB.
  • Peristiwa Measurement Protocol aplikasi yang dikirim ke Google Analytics tidak mengisi Penelusuran audiens di Google Ads untuk pengguna aplikasi.

Untuk mengetahui persyaratan tambahan bagi setiap kasus penggunaan, lihat kasus penggunaan umum.