Как отслеживать с помощью Google Analytics на странице перенаправления с помощью PHP?
У меня есть сайт, на котором я хочу отслеживать, кто нажал на определенные ссылки с GA.
Скажем, у меня есть эта страница:/index.php?id=32
На этой странице я запускаю некоторый запрос на основе переменной ID (в данном случае: 32), и я получаю URL-адрес 32-разрядного элемента из базы данных для перенаправления посетителя.
Я использую функцию PHP: header ('Местоположение: http://www.example.com');. Прежде чем я перенаправляю пользователя, я хочу, чтобы Google собирал информацию о посетителях и только затем перенаправлял на нужную веб-страницу.
Я попытался вставить код GA и ECHO непосредственно перед перенаправлением, однако это не сработало. Как можно отслеживать такие страницы с помощью GA?
Ответы
Ответ 1
Вообще говоря,
Если ваша страница использует перенаправления, страница перенаправления становится целевая страница. Например, если вы изменили свой сайт так, что index.html теперь перенаправляется на home.html, тогда index.html становится реферер для home.html. Если кто-то достиг вашего сайта через Google поиск, который отправил их сначала в index.html, у вас не будет никаких данных в отношении поиска Google.
По этой причине вы должны поместить отслеживание Google Analytics кода на странице перенаправления, а также на целевой странице. Сюда, страница перенаправления будет захватывать фактическую информацию о реферере для ваши отчеты.
Обратите внимание, что некоторые браузеры могут перенаправляться до JavaScript вызов из кода может быть выполнен.
(cf. https://support.google.com/analytics/answer/1009614?hl=en)
Ваш конкретный случай
Поскольку PHP обрабатывается и выполняется перед любым Javascript, трекер Google Analytics не имеет возможности отправлять данные на свой сервер.
Решение
Учитывая, что вы не можете отслеживать страницу перенаправления PHP, существует ряд возможных альтернатив:
- Отслеживание кампании (я бы лично не использовал этот метод в этом конкретном случае.)
-
/products.php?utm_source=index&utm_medium=redirection-page&utm_campaign=32
Последние два элемента в списке реализованы на отдельных ссылках на начальной странице, прежде чем вы перейдете на страницу перенаправления PHP.
Ответ 2
Если вы посмотрите на свой журнал ошибок, вы увидите сообщение об ошибке "Невозможно отправить заголовок перенаправления, уже был отправлен заголовок". Невозможно выполнить перенаправление через заголовок местоположения, когда у вас уже есть вывод HTML/Javascript перед вашим PHP-фрагментом (потому что в тот момент вы уже неявно отправляете свои заголовки http).
Можно было бы использовать протокол измерений googles для создания серверного решения, которое отслеживает страницу перед перенаправлением. В этом случае вам нужно будет создать client_id самостоятельно, и в случае, если перенаправленные вами свойства являются вашими собственными, добавьте его в URL-адрес перенаправления для междоменного отслеживания.
Если это не касается, вы можете использовать Curl или fopen для отправки вызова в GA через Url, как это:
https://www.google-analytics.com/collect?v=1&tid=UA-XXXX-Y&cid=XXXXXXXXt=pageview&dp=%2redirect
Если UA-XXXX-Y имеет идентификатор учетной записи из google, cid - это идентификатор клиента, который вы создали, и /redirect - это имя вашей страницы. Если вы хотите распознавать повторяющихся пользователей, вам нужно сохранить идентификатор клиента в файл cookie и проверить каждое посещение, если файл cookie существует и получить идентификатор, если он это делает.
Ответ 3
Я бы предложил что-то вроде следующего. Он использует hitCallback для перенаправления, поэтому событие будет отправлено в GA, а затем произойдет перенаправление. Он также устанавливает тайм-аут, так что если analytics.js не будет недоступен (по какой-либо причине), зритель все равно (в конечном итоге) отправляется в нужное место.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>example</title>
<script>
setTimeout(redirect, 2000);
var redirected = false;
function redirect() {
if (!redirected) {
redirected = true;
location.href = 'http://your.website.here.com';
}
}
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-NNNNNNN-N', 'auto');
ga('send', 'event', 'Event Name', 'redirect', {
hitCallback: redirect
});
</script>
</head>
<body>
</body>
</html>
коды отслеживания и URL-адреса должны, конечно, быть обновлены в соответствии с вашими.
Литература:
Ответ 4
если вы отключите переадресацию и просмотрите страницу, видите ли вы, что вызов был сделан в GA на вашей сетевой вкладке? Я обнаружил, что иногда события push не отображаются в GA как 24 часа.
Если вы видите, что он действительно отправляется в google, я бы оставил его включенным и дождался дня, прежде чем проверять GA, чтобы увидеть, что что-то было зарегистрировано.