Як працювати з Measurement Protocol в Google Analytics 4

Точний і комплексний аналіз даних надзвичайно важливий для управління вебресурсами. Один із ключових інструментів для збору й аналізу інформації — Measurement Protocol в Google Analytics 4.

Це протокол передачі статистичних даних. З його допомогою можна відправляти дані з вашої CRM/ERP системи безпосередньо в Google Analytics через HTTP-запити. В цьому матеріалі я розкажу, як налаштувати Measurement Protocol, оптимізувати збір даних через нього та розв'язати поширені проблеми з ним.

  1. Основні принципи роботи з Measurement Protocol.
  2. Як налаштувати передачу подій по MP.
  3. Формування запиту для GA4 за вимогами документації MP.
  4. Приклад надсилання події за допомогою MP.
  5. Перевірка налаштування передачі подій.
  6. Оптимізація передачі даних.
  7. Ліміти в MP.
  8. Поширені проблеми в роботі з MP.

Основні принципи роботи з Measurement Protocol

Measurement Protocol (MP) є доповненням до аналітичної інфраструктури та не замінює автоматичний збір даних, який отримується через gtag.js, Google Tag Manager і/або Google Analytics для Firebase SDK.

Він корисний, коли потрібно бачити та аналізувати дії, які неможливо відстежити стандартним JavaScript-кодом. Наприклад, взаємодію із застосунками, надсилання форм на сервер або взаємодію із зовнішніми пристроями.

Розгляну декілька випадків застосування Measurement Protocol:

  1. Відстеження електронної комерції. Коли платіжна система або сервер повідомляє про успішну оплату, MP відправляє дані про виконану трансакцію до Google Analytics (GA). А саме ідентифікатор трансакції, суму оплати, придбані товари й інші дані, які допоможуть зрозуміти ефективність магазину та поведінку покупців.
  2. При роботі з мобільними застосунками або іншими платформами, де складно вбудувати JavaScript-код для відстеження. MP передає в GA такі події, як відкриття застосунку, кліки на рекламу або використання конкретних функцій. Використання MP дозволяє отримати інсайти про ефективність функціоналу застосунку й покращити користувацький досвід.
  3. Якщо на сайті є форма, що відправляє дані на сервер без перезавантаження сторінки (AJAX-запит), використовується MP для передачі подій без прив’язки до клієнтської сторони. Тобто, дані про подію, наприклад, підписка на розсилку, відправляються безпосередньо із серверу до системи аналітики, обходячи браузер користувача.

    Ще один приклад. Якщо форма застосовується для конверсій (підписка на розсилку, оформлення замовлення), MP використовується для відправлення події конверсії на сервер аналітики після успішного надсилання форми. Така подія може містити назву форми, місце, в якому знаходиться форма, час відправлення й інші необхідні для аналізу деталі.
  4. За необхідності аналізу даних поза браузером, застосування Measurement Protocol дозволяє надсилати інформацію безпосередньо до системи аналітики. Наприклад, для аналізу серверних логів або згенерованих на сервері даних.

Серверні логи — це файли, які автоматично створюються і зберігаються на сервері, записуючи різноманітну інформацію про події, що відбуваються на сервері. Логи містять дані про відвідування вебсторінок, запити до баз даних, помилки системи, час доступу користувачів до ресурсу та інше.

Дані, які генеруються на сервері, містять: 

  • інформацію про трансакції в інтернет-магазині; 
  • результати виконання серверних скриптів; 
  • деталі обробки запитів до API;
  • інші внутрішні процеси, що відбуваються на сервері.

Наприклад, під час кожної покупки в інтернет-магазині сервер обробляє трансакцію, зберігаючи інформацію (що куплено, яка сума, хто покупець) у серверних логах. За допомогою MP можна відправити ці дані до системи аналітики для аналізу, зокрема для відстеження продажів і поведінки покупців.

Таким чином, MP гнучко працює з Google Analytics і збирає інформацію про взаємодію користувачів, що виходить за межі стандартних можливостей JavaScript-відстеження.

Як налаштувати передачу подій по Measurement Protocol

  1. Створіть відповідне середовище. У CRM-системі, ERP або сервері має бути можливість відправляти HTTP-запити. Впевніться, що сервер здатний взаємодіяти з Measurement Protocol через HTTP.
  2. Залучіть бекенд-розробника, що внесе необхідні зміни у код для збереження ідентифікаторів і надсилання запитів через MP. Важливо визначити, які дані необхідно передавати, і включити їх у відповідні запити.
  3. Залучіть маркетолога, що складе технічне завдання для бекенд-розробника. Наприклад, пропише важливі для відстеження події  та дані, що повинні бути включені в MP, спосіб ідентифікації користувачів і вимірювання подій. 
  4. Налаштуйте Measurement Protocol. За допомогою бекенд-розробника налаштуйте відправлення вимірювань через MP. Встановіть параметри, які відповідають потребам компанії в аналізі даних.
  5. Проведіть тестування. Перевірте коректність відправлення даних через MP. Забезпечте взаємодію між маркетологом і бекенд-розробником для виправлення можливих помилок.

Формування запиту для GA за вимогами документації Measurement Protocol

POST-запит є одним із найпоширеніших методів HTTP та використовується для надсилання даних на сервер.

Measurement Protocol у GA4 підтримує лише POST-запити. Щоб відправити дані про подію, надішліть HTTP POST-запит до GA4.

Вставте наступний код у відповідний JavaScript-файл або HTML-код сторінки:

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

Де <payload_data> — тіло запиту, яке містить назви параметрів та їхні значення. Являє собою URL-кодований рядок довжиною не більше 8192 байт.

Необхідні URL-параметри

  • api_secret — ключ для доступу до облікового запису GA.
    Щоб створити api_secret, перейдіть до «Admin» — «Data streams» — виберіть свій потік — «Measurement Protocol API secrets» — «Create»;

Щоб створити api_secret, перейдіть до «Admin» — «Data streams» — виберіть свій потік — «Measurement Protocol API secrets» — «Create»;

  • measurement_id — ідентифікатор потоку даних.
    Цей ідентифікатор пов’язаний із потоком, який можна знайти в інтерфейсі Google Analytics у розділі «Admin» — «Data streams» — виберіть свій потік — «MEASUREMENT ID».

Цей ідентифікатор пов’язаний із потоком, який можна знайти в інтерфейсі Google Analytics у розділі «Admin» — «Data streams» — виберіть свій потік — «MEASUREMENT ID».

Необхідні параметри для JSON body, що є частиною <payload_data>:

  • client_id — унікальний ідентифікатор користувача в GA, є обов’язковим параметром;
  • user_id — унікальний ідентифікатор користувача на сайті;
  • timestamp_micros — часова мітка Unix у мікросекундах (не мілісекундах) події повинні мати дату не більше ніж три календарні дні;
  • events — масив параметрів із подіями.

Щоб отримати client_id за допомогою Google tag API (gtag.js), використайте метод gtag('get'). Відповідно до документації, скористайтеся наступним кодом:

gtag('get', '<target>', 'client_id', (clientID) => {
  console.log('Client ID:', clientID);
});

<target> вказує на ідентифікатор облікового запису GA4 (приклад G-XXXXXXXXXX), з якого планується отримати client_id.

Якщо у вас є мобільний застосунок, до попередніх параметрів додайте:

  • firebase_app_id — ідентифікатор застосунку у Firebase, використовується GA4 для ідентифікації застосунку, з якого надсилаються дані;
  • app_instance_id — унікальний ідентифікатор екземпляра застосунку, згенерований розробником, для ідентифікації конкретного встановлення застосунку;
  • transaction_id — унікальний ідентифікатор трансакції;
  • ad_network_id — ідентифікатор рекламної мережі.

Крім цих, обов'язкових, існують додаткові параметри для JSON body, які можуть збільшити передачу даних і полегшити їхній аналіз:

  • session_id (ідентифікатор сесії) — визначає унікальну сесію користувача та дозволяє відстежувати його взаємодію протягом періоду активності;
  • pageview — перегляд сторінки;
  • screenview — перегляд екрана застосунку;
  • event — подія;
  • transaction — трансакція;
  • item — товар;
  • social — соціальна взаємодія, наприклад, лайки в Facebook, ретвіти в X тощо;
  • exception — інформація про помилки, які з’являються на сайті;
  • timing — інформація про різні часові інтервали, наприклад, час завантаження сторінки.

Приклад надсилання події за допомогою Measurement Protocol  

Для прикладу візьму add_to_cart — подія фіксує, що товар додано в кошик для покупки.

Необхідні параметри для масиву event:

  • currency (рядкова змінна) — валюта елементів, пов’язаних із подією, у форматі ISO 4217;
  • value (десяткове число) — повна сума замовлення, або сума доданих товарів в кошик;
  • items — масив параметрів товару.

Параметри товарів в масиві items:

  • item_id (рядкова змінна) — унікальний ID товару;
  • item_name (рядкова змінна) — назва товару;
  • affiliation (рядкова змінна) — параметр, який дозволяє встановити належність товару постачальнику або магазину;
  • coupon (рядкова змінна) — назва/код купона, пов’язаний із товаром;
  • discount (десяткове число) — одиниця грошової знижки, пов’язана з товаром;
  • index (натуральне число) — номер або позиція товару в списку;
  • item_brand (рядкова змінна) — бренд товару;
  • item_category (рядкова змінна) — категорія товару;
  • Item_category2 (3, 4, 5) (рядкова змінна) — підкатегорії товару;
  • item_list_id (рядкова змінна) — ID списку товарів;
  • item_list_name (рядкова змінна) — назва списку, наприклад, акції, знижки, рекомендовані товари, кращі пропозиції тощо;
  • item_variant (рядкова змінна) — варіант товару або унікальний код, опис для додаткових деталей/параметрів товару;
  • location_id (рядкова змінна) — розташування, пов’язане з товаром;
  • price (десяткове число) — вартість одиниці товару;
  • quantity (натуральне число) — кількість товару. 

Додатково до вищеперелічених параметрів, можна включити до 25 користувальницьких параметрів в масив елементів.

Приклад коду події додавання товару до кошика (add_to_cart), який надсилається POST-запитом:

const measurementId = `G-XXXXXXXXXX`;
const apiSecret = `<secret_value>`;
fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurementId}&api_secret=${apiSecret}`, {
  method: "POST",
  body: JSON.stringify({
    "client_id": "client_id",
    "events": [{
      "name": "add_to_cart",
      "params": {
        "currency": "USD",
        "value": 30.03,
        "items": [
          {
            "item_id": "SKU_12345",
            "item_name": "Stan and Friends Tee",
            "affiliation": "Google Merchandise Store",
            "coupon": "SUMMER_FUN",
            "currency": "USD",
            "discount": 2.22,
            "index": 0,
            "item_brand": "Google",
            "item_category": "Apparel",
            "item_category2": "Adult",
            "item_category3": "Shirts",
            "item_category4": "Crew",
            "item_category5": "Short sleeve",
            "item_list_id": "related_products",
            "item_list_name": "Related Products",
            "item_variant": "green",
            "location_id": "ChIJIQBpAG2ahYAR_6128GcTUEo",
            "price": 10.01,
            "quantity": 3
          }
        ]
      }
    }]
  })
});

Після успішного спрацювання, інтерфейс GA4 покаже, що клієнт додав до кошика товар з назвою Stan and Friends Tee на суму $30,03.

Повний список параметрів, які можна включати в HTTP-запити, та приклади передачі подій через Measurement Protocol можна переглянути в офіційній документації.

Перевірка налаштування передачі подій

Після налаштування необхідних подій, варто зробити перевірку. Для цього виконайте наступні кроки.

Надішліть подію від клієнта

Щоб подія стала дійсною, вона повинна мати елемент client_id, який вже використовувався для відправлення події з gtag.js. Потрібно захопити цей ідентифікатор на стороні клієнта і включити його у виклик MP. 

Отримати ідентифікатор можна з серверних логів, якщо це нова подія. У випадку, коли серверних логів ще немає, самостійно згенеруйте подію натиснувши на кнопку, для якої було впроваджено MP.

Після цього подія буде містити client_id у форматі ‘ecDwKrMi5IRwxXftaSDXxCEOL5mUsWz0qpbD’. 

Надішліть подію на свій об’єкт

Після того, як дізнались client_id, потрібно відправити подію через MP. Для цього вставте наступний код у відповідний JavaScript-файл або HTML-код сторінки. Для прикладу, це буде покупка товару (purchase):

const measurementId = `<measurement_id_value>`;
const apiSecret = `<secret_value>`;
fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurementId}&api_secret=${apiSecret}`, {
  method: "POST",
  body: JSON.stringify({
    "client_id": "XXXXXXXXXX.YYYYYYYYYY",
    "events": [{
      "name": "purchase",
      "params": {
        "currency": "USD",
        "value": "7.17",
        "transaction_id": "NTP-017"
      }
    }]
  })
});

Перегляньте звіт у реальному часі

Після успішного надсилання події, ви побачите її в інтерфейсі GA4, перейшовши в «Reports» — «Realtime» в лівій панелі навігації.

Після успішного надсилання події, ви побачите її в інтерфейсі GA4, перейшовши в «Reports» — «Realtime» в лівій панелі навігації.

Також перевірте дві діаграми внизу: «Кількість подій з розбивкою за параметром Назва події» та «Конверсії з розбивкою за параметром Назва події». Інформація про відправлену подію повинна з’явитися в режимі реального часу через кілька секунд після її відправлення через MP.

Інформація про відправлену подію повинна з’явитися в режимі реального часу через кілька секунд після її відправлення через MP.

Всі параметри для Measurement Protocol є в офіційній довідці від Google.

Використання Measurement Protocol дозволяє перевіряти події в реальному часі без необхідності чекати до 48 годин. 

Оптимізація передачі даних за допомогою Measurement Protocol

Вирішальним для ефективності та точності аналізу в GA4 є правильний формат і структура даних, які передаються через MP, а також частота їхньої передачі. Далі наведу рекомендації.

Формат і кількість переданих даних

  1. Тип даних. Кожен параметр повинен мати чітке призначення, а його значення — відповідний тип даних. До прикладу, текстовий параметр повинен бути рядком (string), а числовий — числом (number).
  2. Ефективність передачі. Зменште кількість зайвої інформації та обирайте оптимальний обсяг даних для надсилання. Велика кількість може перевантажити мережу і спричинити затримку відправлення.
  3. Контекстуальні дані. Необхідно додавати контекстні дані, які краще пояснюють або описують події, наприклад, ідентифікатор користувача або додаткові атрибути, які допомагають уточнити контекст події. Це полегшує подальший аналіз і покращує інтерпретацію результатів.
  4. Коректність та актуальність. Необхідно впевнитися, що дані надсилаються у реальному часі й відповідають актуальному стану ресурсів. Це особливо важливо для отримання точних аналітичних даних. Якщо дані не отримуються в реальному часі, шукайте помилку під час налаштування передачі подій через MP.

Частота передачі даних

Інтервал відправлення даних за допомогою MP визначається потребами бізнесу та характером подій на платформі. Однак існують загальні рекомендації, які допоможуть оптимізувати процес.

  1. Оптимальний інтервал обирається таким чином, щоб уникнути надмірного навантаження серверів і мережевих ресурсів:
  • для проєктів, у яких важлива висока точність даних в реальному часі (фінансові трансакції, моніторинг стану системи), інтервали коротші — кожні кілька секунд;
  • для аналітичних проєктів, у яких дані використовуються для створення загальної картини й не потребують миттєвої актуалізації, наприклад, звіти про відвідуваність сайту, інтервали довші — кожні кілька хвилин.
  1. Моніторинг ефективності відправлення даних дозволяє вчасно оптимізувати інтервали передачі відповідно до потреб компанії.

Ліміти в Measurement Protocol

  1. У запитах максимум 25 подій.
  2. У подіях — максимум 25 параметрів і 25 властивостей користувача.
  3. В іменах властивостей користувача — 24 символи або менше.
  4. Значення властивостей користувача — 36 символів або менше.
  5. Назви подій — 40 символів або менше, лише буквено-цифрові символи і підкреслення, мають починатися з букви.
  6. Назви параметрів, включаючи параметри елементів, — 40 символів або менше, лише буквено-цифрові символи й підкреслення, мають починатися з букви.
  7. Значення параметрів, включаючи параметри елементів, — не більше 100 символів.
  8. Параметри елемента — не більше 10 настроюваних параметрів.
  9. Тіло повідомлення — не більше ніж 130 Кб.
  10. Атрибуція на рівні подій MP підтримується до 63 днів після останньої онлайн-події, навіть якщо вікно конверсії перевищує 63 дні. На відміну від цього, атрибуція на рівні подій для позначення онлайн-подій підтримується для всього вікна конверсії.
  11. Для цілей ремаркетингу ви можете приєднатися до подій MP протягом певної кількості днів після останньої онлайн-події. Для цього потрібен пов’язаний файл cookie або ідентифікатор пристрою:
  • для вебсайту термін від останньої події — 30 днів;
  • для мобільного застосунку — 42 дні.
  1. Події App Measurement Protocol, надіслані в Google Analytics 4, автоматично не заповнюють пошукові аудиторії в Google Ads.

Обмеження та рекомендації по термінах

Важливо усвідомлювати обмеження у часі для надсилання даних через MP. Наприклад, Google рекомендує відправляти дані з історією передачі даних не пізніше, ніж за три дні від моменту першої передачі.

Це обмеження випливає з необхідності збереження актуальності й точності аналітичних даних. Воно обумовлене потребою в економії ресурсів, оскільки система не здатна проаналізувати весь масив. Якщо подія старша за три дні, система втрачає здатність встановлювати зв’язки з джерелом сеансу користувача.

Оптимальні терміни відправлення даних дозволяють максимізувати ефективність використання Measurement Protocol і забезпечують правдивість аналітичної інформації.

Поширені проблеми в роботі з MP

Під час роботи з Measurement Protocol, імовірні проблеми з впровадженням, які виникають з різних причин. Розгляну декілька з них.

  1. Неправильна реалізація, що стає причиною некоректної роботи протоколу:
  • хибне налаштування тегів Google Analytics;
  • неточне кодування Measurement Protocol — помилки у форматі запитів, неправильне використання параметрів тощо.
  1. Проблеми з даними, що впливають на якість аналізу:
  • неповні або неточні дані;
  • дублювання.
  1. Помилки мережі:
  • перебої з підключенням до інтернету або затримки в передачі даних;
  • блокування запитів з боку брандмауерів.
  1. Проблеми із сервером.

    Перевантаження, технічні проблеми, недоступність серверу Google Analytics. В подібних випадках зверніться до служби підтримки Google Analytics.
  1. Зміни в Google Analytics:
  • оновлюйте код Measurement Protocol, щоб використовувати останню версію правил;
  • ознайомтеся з оновленою політикою Google Analytics і внесіть необхідні зміни.
  1. Юридичні й етичні питання:
  • недотримання правил GDPR при зборі й обробці даних.
  1. Обмеження Google Analytics:
  • обмеження на кількість запитів;
  • обмеження на обсяг даних;
  • обмеження на функціональність.

Висновки

  1. Measurement Protocol (MP) є потужним інструментом в Google Analytics 4, який дає розробникам гнучкість у відстеженні й аналізі даних з різних платформ. Використання MP значно розширює можливості стандартного збору, дозволяючи відстежувати дії користувачів, які неможливо простежити за допомогою JavaScript коду.
  2. Серед переваг використання MP:
  • відстеження даних з будь-якого середовища, яке підтримує HTTP-запити;
  • відстеження офлайн-конверсій, серверних подій, взаємодії з зовнішніми пристроями;
  • збагачення даних додатковими параметрами для кращого аналізу;
  • відстеження події в режимі реального часу.
  1. При використанні MP:
  • застосовуйте обов'язкові параметри та рекомендовані формати;
  • обирайте оптимальний інтервал надсилання й обсяг даних;
  • дотримуйтесь термінів надсилання і враховуйте обмеження Google Analytics;
  • діагностуйте й усувайте поширені проблеми з MP.
  1. Протокол не є заміною стандартному збору даних Google Analytics, і його слід застосовувати як доповнення для розширення можливостей аналітики.
Дізнатися більше
4
0
2