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

1. Введение

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

Что вы будете строить

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

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

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

  • Шаги, чтобы сделать ваш первый звонок MP
  • Понимать параметры, необходимые для вызова
  • Отправьте и подтвердите свой тестовый звонок
  • Создайте пример сценария на Python, чтобы сделать вызов

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

  • Ваше приложение для Android или iOS
  • Любая IDE для внесения изменений
  • Аккаунт GA4
  • Дополнительно — среда разработки Python (или Colab )

2. Соберите обязательные поля

Создайте секрет API в GA4

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

8dee89e850ae90bb.png

d0be19d8112435a2.png

de5a80a1445d3a14.png

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

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

f0feed0557420678.png

Собрать app_instance_id

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

  1. Использование экспорта BigQuery
  2. Извлечение исходного кода вашего приложения

Оба они подробно описаны ниже

  1. Использование экспорта BigQuery

Если у вас включен экспорт BigQuery , вы можете выполнить следующие шаги.

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

Примечание. Набор данных будет доступен только после того, как переключатель будет включен примерно через 24–48 часов.

1dc4e93dee33316f.png

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

aa6d384e380a11e8.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».

15440faa9ca6a1f1.png

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

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

71174b16f86ff03e.png

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

cf580a708bb0a8a2.png

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

da59bb982f6f906a.png

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

39676ab485d17dc0.png

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

1d63d1e067c46294.png

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

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

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

7b9e9a0f74b64757.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 Реклама будет отображать только данные, связанные с IDFA или идентификаторами устройств, собранные из Firebase SDK за последние 60 дней. Имейте в виду, что это все еще альфа-API, и обязательно ознакомьтесь с перечисленными здесь ограничениями, которые необходимо устранить перед полным запуском.

Вы узнали

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