#javascript #google-analytics #google-analytics-4 #gtag.js
Вопрос:
Задача
Я создаю страницу перенаправления, на которой я хочу передать событие в Google Analytics 4 с помощью gtag.js
Рабочая версия
Я написал сценарий, используя документацию (https://developers.google.com/analytics/devguides/collection/gtagjs/sending-data?hl=cs) и это работает для обычных ссылок, пример кода:
<script type = 'text/javascript'>
gtag('config', '<COUNTER ID>', { 'transport_type': 'beacon'});
gtag('event', 'event_name', { 'event_callback' : redir() });
function redir() {
document.location = "https://www.instagram.com/<INSTAGRAM USERNAME>";
}
</script>
То есть скрипт задает тип транспорта, отправляет событие, а после отправки события вызывает «event_callback», который перенаправляет пользователя на сайт
Проблема
Когда я пытаюсь перенаправить пользователя в приложение Instagram, а не на веб-страницу, Google Analytics не отображает ни переданное событие, ни посещение страницы
Пример кода с другой ссылкой:
<script type = 'text/javascript'>
gtag('config', '<COUNTER ID>', { 'transport_type': 'beacon'});
gtag('event', 'event_name', { 'event_callback' : redir() });
function redir() {
document.location = "instagram://user?username=<INSTAGRAM USERNAME>";
}
</script>
Все то же самое, только с другой ссылкой, которая открывает страницу в приложении для телефона. Но эта версия не работает — событие не приходит в Google analytics
В чем может быть проблема? Я попытался удалить тип транспорта, но это не увенчалось успехом. Я надеюсь на вашу помощь, любые комментарии приветствуются
Ответ №1:
Вы вызываете перенаправление в вызываемый момент, но вам нужно вызвать его после отправки события. event_callback
ожидает функцию, вы даете ее undefined
в обоих случаях.
Причина, по которой ваш первый пример может сработать, заключается в том, что сайтам по умолчанию разрешено выполнять запущенные запросы, даже если вы покидаете страницу.
Прямое открытие приложения может прервать выполнение кода JavaScript.
Воспользуйся:
gtag('event', 'event_name', { 'event_callback' : redir });
или перенесите вызов перенаправления в другую функцию.
gtag('event', 'event_name', { 'event_callback' : () => redir() });
Комментарии:
1. Я попробовал вариант, который вы описали. К сожалению, это не помогло