Отправляйте события приложения в GA4 с помощью протокола измерений.

1. Введение

Последнее обновление: 08.06.2021

Что вы построите

В этом практическом занятии вы узнаете, как отправлять внешние события в GA4 с помощью протокола Measurement Protocol .

В этом практическом занятии предполагается, что у вас уже есть приложение с интегрированной Google Analytics для Firebase. Если вы хотите узнать, как интегрировать Google Analytics с Firebase, сначала обратитесь к этому практическому занятию . Если вы хотите узнать, как создать приложение с Firebase, обратитесь к практическому занятию по разработке Android-приложений с использованием Firebase — дружественный чат .

Что вы узнаете

  • Шаги для совершения первого звонка депутату парламента
  • Understand parameters required for the call
  • Send and validate your test call
  • Build a sample script in Python to make the call

Что вам понадобится

  • Your Android or iOS App
  • Any IDE to make changes
  • GA4 Account
  • Дополнительно — среда разработки Python (или Colab ).

2. Collect the mandatory fields

Создание секретного ключа API в GA4

Перейдите в GA4 и создайте новый секретный ключ API, перейдя в раздел Администрирование > Потоки данных > выберите поток > Протокол измерения > Создать

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

Вы можете указать любое псевдонимное имя, и будет отображено секретное значение, которое вы можете использовать в своем вызове.

Если вы не уверены, как получить доступ к GA4, вы можете перейти в свой проект Firebase, проверить настройки проекта > Интеграции > Google Analytics и нажать «Управление». Подключение к Google Analytics должно быть видно, и вы сможете перейти непосредственно оттуда.

73b4d77a57eddfba.png

Collect app_instance_id

Для получения идентификатора экземпляра приложения (app_instance_id) можно использовать любой из перечисленных ниже методов.

  1. Using BigQuery Export
  2. Fetching Natively in your App Source Code

Оба эти момента подробно описаны ниже.

  1. Using BigQuery Export

Если у вас включен экспорт в BigQuery , выполните следующие действия.

  • Sign in to Firebase
  • Перейдите в раздел «Настройки проекта» > «Интеграции» > «BigQuery».
  • Нажмите на кнопку «Просмотреть в BigQuery» рядом с набором данных.

Примечание: набор данных станет доступен только через 24-48 часов после включения этой опции.

63d061088b622961.png

  • В BigQuery вы можете проверить наличие user_pseudo_id в таблице. Это app_instance_id, который вы можете использовать в своем запросе.

4b1b80bdc2884581.png

  1. Загрузка данных непосредственно в исходный код вашего приложения.

Если ваше приложение создано на Java, вы можете использовать что-то подобное для получения 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();
            }
        }
    });

Для Kotlin вы можете попробовать следующее.

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
*/

Ниже приведены дополнительные ссылки в зависимости от вашей инфраструктуры.

3. Составление запроса

Вы можете создать пример вызова, используя Event Builder в GA4. (Для этого необходимо войти в систему и включить cookie-файлы). Убедитесь, что переключатель установлен в положение "firebase".

fd78d961f3e48238.png

Вам необходимо заполнить следующие поля.

  • api_secret - Уже создан ранее в GA4
  • firebase_app_id — Чтобы получить этот идентификатор, перейдите в раздел Администрирование > Потоки данных > выберите свой поток . Он должен отображаться, как показано ниже.

19801c8e5cb29222.png

  • app_instance_id - Вы уже получили это значение.
  • Поле user_id не является обязательным. Пока можете оставить его пустым.
  • Категория — выберите в выпадающем списке «Пользовательская» и укажите любое название события по вашему выбору (не используйте автоматически собираемые события ). В данном случае мы используем «test_from_codelab».

54cce53df64d697.png

При желании вы также можете указать параметры события и/или свойства пользователя, нажав на кнопки ниже.

16a8f531a3894021.png

После заполнения всех полей вы увидите что-то подобное, с кнопкой «Проверить событие».

475801f25c3caf26.png

Как только вы дойдете до этого места, нажмите кнопку «ПРОВЕРИТЬ СОБЫТИЕ», выделенную оранжевым цветом. Должно отобразиться сообщение, указанное ниже, подтверждающее действительность события, и вы увидите кнопку «ОТПРАВИТЬ В GA». На этом этапе, если событие будет признано недействительным, инструмент укажет вам точное поле, где возникла проблема, и вы сможете исправить это и повторить попытку.

23e4e6800705b4aa.png

Теперь вы можете нажать на кнопку, и она должна отправить тестовое событие в GA4.

4. Проверка событий в GA4

После отправки события вы можете перейти в свою учетную запись GA4 и проверить состояние в режиме реального времени. Вы должны увидеть, что событие прошло успешно.

994b51ca46bb1973.png

Для того чтобы события отобразились в режиме реального времени и сразу отобразились в отчете, может потребоваться около 24 часов, поэтому не стоит беспокоиться, если вы не увидите их в обычном отчете о событиях!

Если у вас возникли проблемы или несоответствия, может быть полезно ознакомиться с известными ограничениями протокола измерений здесь.

5. Создание скрипта на Python

Теперь, когда вы протестировали это, вы можете изучить вызов API и полезную нагрузку события, чтобы построить аналогичную архитектуру на Python (или на любом другом языке по вашему выбору), которая сможет выполнять этот вызов. Затем вы можете запланировать его с желаемой частотой и запустить в работу. Для этой части вы можете использовать любую IDE на ваш выбор, поддерживающую Python, или просто использовать блокнот 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"
      }
    }
  ]
}

Это можно перевести на Python, используя что-то подобное.

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.

6. Поздравляем!

Поздравляем, вы успешно использовали протокол Measurement Protocol в GA4. Теперь вы можете создавать мощные архитектурные решения для отправки более значимых данных в Google Analytics и улучшения маркетинговой и бизнес-аналитики. Чтобы максимально эффективно использовать это, мы также рекомендуем подключиться к Google Ads и импортировать эти события в качестве конверсий. Подробные инструкции по этому поводу вы найдете в шаге 6 этого руководства . Для отслеживания конверсий Google Ads будет отображать только данные, связанные с IDFA или идентификаторами устройств, собранными из Firebase SDK за последние 60 дней. Имейте в виду, что это все еще альфа-версия API, и обязательно ознакомьтесь с ограничениями, перечисленными здесь , которые должны быть устранены до полного запуска.

Вы узнали

  • Как собрать необходимые переменные для совершения звонков MP
  • Как отправлять и проверять тестовые события
  • Как создать скрипт для отправки MP-звонков