Measurement Protocol Google Analytics Post request не регистрирует просмотры страниц

Я пытаюсь зарегистрировать источник и medium показов с использованием Протокол измерения Google Analytics.

Я не вижу, чтобы просмотры страниц или источники / носители записывались на панели инструментов GA.

Я запускаю этот фрагмент в теге головы.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
  var randomid = Math.floor(Math.random() * 1000000);
  var path = window.location.pathname;
  var pathuri = encodeURIComponent(window.location.pathname)
  var url = 'https://www.google-analytics.com/collect?v=1&tid=UA-XXXXXXXX-X&cid='+randomid+'&t=pageview&cs=tvstest3&cm=ctvtest3&dp='+pathuri;
  $.post(url, function(data, status){
    console.log("Data: " + data + "\nStatus: " + status);
  });
</script>

Что приводит к сетевому вызову

https://www.google-analytics.com/collect?v=1&tid=UA-XXXXXX-X&cid=537396&t=pageview&cs=tvstest3&cm=ctvtest3&dp=%2Ftest3.html

https://ga-dev-tools.appspot.com/hit-builder/ возвращает Hit is valid!

и если я отправлю запрос на https://www.google-analytics.com/debug/collect

Data: {
  "hitParsingResult": [ {
    "valid": true,
    "parserMessage": [ ],
    "hit": "/debug/collect?v=1\u0026tid=UA-XXXXXXX-X\u0026cid=521292\u0026t=pageview\u0026cs=tvstest3\u0026cm=ctvtest3\u0026dp=%2Ftest3.html"
  } ],
  "parserMessage": [ {
    "messageType": "INFO",
    "description": "Found 1 hit in the request."
  } ]
}

Status: success

Может ли кто-нибудь пролить свет на то, почему я не вижу записываемых просмотров страниц и источника / носителя.

Спасибо!

-cwmacken


person cwmacken    schedule 30.09.2020    source источник


Ответы (2)


Если в вашем представлении включена фильтрация ботов, попадание может не быть записано. Это связано с тем, что использование протокола данных Measurement protocol очень похоже на бот, вводящий данные в вашу собственность.

Попробуйте снять этот флажок в настройках просмотра:

введите описание изображения здесь

person Michele Pisani    schedule 30.09.2020
comment
Вы уверены, что отключение фильтрации ботов приведет к тому, что конечная точка отладки будет записывать обращения? - person DaImTo; 30.09.2020
comment
Нет, я не говорю об отладке конечных точек. Его проблема в том, что он не видит попаданий в GA и в первом примере кода не отправляет их в конечную точку отладки (это тест, который он выполняет позже). - person Michele Pisani; 30.09.2020
comment
Хорошо, если мы согласны с тем, что фильтрация ботов не влияет на конечную точку отладки. - person DaImTo; 30.09.2020
comment
@MichelePisani сделал это, и я вижу это в режиме реального времени. Ожидание правильного распространения в источнике / носителе. Я обновлю, когда увижу там данные. - person cwmacken; 30.09.2020
comment
Просто видел, как это всплывает в источнике / носителе. Спасибо за помощь @MichelePisani, я бы никогда этого не нашел. - person cwmacken; 30.09.2020

конечная точка отладки и конечная точка сбора

конечная точка отладки предназначена только для Проверка совпадений

https://www.google-analytics.com/debug/collect

В этом документе описывается, как проверять обращения Google Analytics Measurement Protocol.

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

https://www.google-analytics.com/collect

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

Ожидание от 24 до 48 часов для просмотра данных в стандартных отчетах из-за задержки обработки.

Опубликовать данные в теле

Кроме того, данные должны быть отправлены в теле вашего запроса как почтовые данные.

POST /collect HTTP/1.1
Host: www.google-analytics.com

v=1&tid=UA-XXXXXXXX-X&cid='+randomid+'&t=pageview&cs=tvstest3&cm=ctvtest3&dp='+pathuri

Код

Я не разработчик JavaScript, но думаю, вам стоит взглянуть на что-то вроде этого.

var http = new XMLHttpRequest();
var url = 'https://www.google-analytics.com/collect';
var params = 'v=1&tid=UA-XXXXXXXX-X&cid='+randomid+'&t=pageview&cs=tvstest3&cm=ctvtest3&dp='+pathuri';
http.open('POST', url, true);

//Send the proper header information along with the request
http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

http.onreadystatechange = function() {//Call a function when the state changes.
    if(http.readyState == 4 && http.status == 200) {
        alert(http.responseText);
    }
}
http.send(params);
person DaImTo    schedule 30.09.2020
comment
@DalmTo Michele прав, я отправлял информацию только в конечную точку отладки, чтобы проверить, правильно ли работал мой вызов. Спасибо за ответ. Оценил. - person cwmacken; 30.09.2020