1. Введение
Последнее обновление: 08.06.2021
Что вы построите
В этой лабораторной работе вы узнаете, как отправлять внешние события в GA4 с помощью протокола измерений .
В этой практической работе предполагается, что у вас уже есть приложение с реализованной Google Analytics для Firebase. Если вы хотите узнать, как интегрировать Google Analytics для Firebase, сначала ознакомьтесь с этой практической работой . Если вы хотите узнать, как создать приложение с Firebase, обратитесь к Firebase Android Codelab-Build Friendly Chat .
Чему вы научитесь
- Шаги, которые нужно сделать, чтобы сделать свой первый звонок депутату
- Понять параметры, необходимые для вызова
- Отправьте и подтвердите свой тестовый звонок
- Создайте пример скрипта на Python для совершения вызова
Что вам понадобится
- Ваше приложение для Android или iOS
- Любая IDE для внесения изменений
- Аккаунт GA4
- Дополнительно — среда разработки Python (или Colab )
2. Соберите обязательные поля
Создать API Secret в GA4
Перейдите в GA4 и создайте новый секрет API, перейдя в Администрирование > Потоки данных > выберите свой поток > Протокол измерений > Создать.
Вы можете указать любой псевдоним, и будет отображено секретное значение, которое вы можете использовать в своем вызове.
Если вы не знаете, как получить доступ к GA4, перейдите в свой проект Firebase, выберите «Настройки проекта» > «Интеграции» > «Google Analytics» и нажмите «Управление». Подключение к Google Analytics должно быть видно, и вы также можете перейти к нему напрямую.
Собрать app_instance_id
Вы можете использовать любой из приведенных ниже методов для получения вашего app_instance_id.
- Использование BigQuery Export
- Нативное извлечение данных из исходного кода вашего приложения
Оба эти аспекта подробно описаны ниже.
- Использование BigQuery Export
Если у вас включен экспорт BigQuery , вы можете выполнить следующие шаги:
- Войти в Firebase
- Перейдите в Настройки проекта > Интеграции > BigQuery.
- Нажмите «Просмотреть в BigQuery» рядом с набором данных.
Примечание: набор данных будет доступен только после того, как переключатель будет включен примерно через 24–48 часов.
- В BigQuery вы можете проверить наличие user_pseudo_id в таблице. Это app_instance_id, который можно использовать в вызове.
- Нативное извлечение данных из исходного кода вашего приложения
Если ваше приложение создано с использованием 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. Построение вызова
Вы можете создать пример вызова с помощью конструктора событий в GA4. (Для этого вам потребуется войти в систему и включить файлы cookie.) Убедитесь, что переключатель установлен в положение «firebase».
Вам необходимо заполнить следующие поля
- api_secret — уже создано ранее на GA4
- firebase_app_id — чтобы получить его, перейдите в раздел «Администрирование» > «Потоки данных» > выберите нужный поток . Он должен выглядеть так, как показано ниже.
- app_instance_id — вы уже получили это значение
- Поле user_id не является обязательным. Пока можно оставить его пустым.
- Категория — выберите «Custom» в раскрывающемся списке и введите любое название события (не используйте автоматически собранные события ). В данном случае мы используем «test_from_codelab».
При желании вы также можете указать параметры события и/или свойства пользователя, нажав на кнопки ниже.
После того, как вы все заполните, вы должны увидеть что-то вроде этого, с кнопкой «Проверить событие».
После этого нажмите кнопку «ПРОВЕРИТЬ СОБЫТИЕ» (подсвеченную оранжевым цветом). Должно появиться сообщение ниже, подтверждающее, что событие действительно, и кнопка «ОТПРАВИТЬ В GA». Если событие окажется недействительным, инструмент укажет вам точное поле, в котором возникла проблема, и вы сможете исправить её и повторить попытку.
Теперь вы можете нажать на кнопку, и она должна отправить тестовое событие в GA4.
4. Проверка событий в GA4
После отправки события перейдите в свою учётную запись GA4 и проверьте Realtime. Вы должны увидеть, что событие получено.
Перенос событий из представления в реальном времени на вкладку отчетов о событиях может занять около 24 часов, поэтому не стоит беспокоиться, если вы не увидите их немедленно в обычных отчетах о событиях!
Если вы столкнулись с проблемами или несоответствиями, может быть полезно ознакомиться с известными ограничениями протокола измерений здесь.
5. Создание скрипта Python
Теперь, когда вы протестировали API, вы можете изучить вызов 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