Google Analytics получает данные против перенаправления, которое вызывает NS_BINDING_ABORTED - PullRequest
2 голосов
/ 11 апреля 2011

Хорошо, так во-первых, извините, если название не имеет особого смысла ... Я не уверен, как еще его обобщить!

Так вот в чем проблема:

IЯ использую jQuery, чтобы прикрепить событие click к кнопке отправки моей формы.Событие jQuery click запускает некоторый код GA для отслеживания просмотра виртуальной страницы, поэтому я могу использовать его в качестве шага в последовательности целей.

Но что происходит, так это то, что между выполнением кода GA и отправкой нет задержки, поэтому я обеспокоен тем, что GA на самом деле не получает данные.

Когда я смотрю на то, что происходит в firebug или httpfox (аддоны браузера, которые смотрят на запросы / ответы) и прокси-сервер charles (внешний сниффер, отдельный от браузера), я вижу две разные вещи.

С помощью firebug / httpfox я вижу запрос GET к GA, но статус 0, и он отображается как (Aborted) NS_BINDING_ABORTED

... хотя он показывает отправленные байты и т. Д.просто ничего для ответа.

Но с прокси-сервером charles я вижу тот же самый запрос GET со статусом 200 и откликом 1x1 пикселей.

Итак, моя теория заключается в том, что GA получает данных, но браузер движется до того, как получает фактический ответ - с этим у меня все в порядке, пока Г.А. получает данные, я в порядке с этим.Но это всего лишь моя теория, и я не знаю ...

Я знаю, что могу написать код, чтобы просто отложить выполнение отправки на 500 мс или что-то еще в качестве страховки, но я не хочу иметьчтобы сделать это, если в этом нет необходимости ..

И я знаю, если ничего другого, я могу просто увидеть, отображаются ли данные в GA, но GA имеет задержку данных 24-48 часов, так что это трудно для QA,

Кто-нибудь знает или имеет какие-либо предположения из опыта ... Кто-нибудь еще испытал эту вещь "прерывания" и может сказать так или иначе, если необходимо отложить отправку или что-то еще?

Ответы [ 2 ]

2 голосов
/ 09 мая 2011

HTTPFox не настоящий сниффер.Он просто пытается подражать одному.Таким образом, данные, которые вы видите на нем, не всегда являются тем, что действительно происходит в фоновом режиме.Чарльз должен дать тебе лучшую картину.Если вы видите код 200 в Чарльзе.Таким образом, есть вероятность, что удар проходит.

Плохая новость заключается в том, что когда вы запускаете попадания во время выгрузки страницы.(Исходящие клики, переходы по ссылкам, отправка форм, window.unload и т. Д.) Они не будут проходить время от времени.Это происходит потому, что Google Analytics JS Call в основном добавляет GIF на страницу.И это возвращается после этого.Чем браузер загрузит гифку.Когда код возвращается, браузер может свободно работать, и если он уходит со страницы, он отменяет все ожидающие запросы, которые могут иметь, включая это маленькое изображение GIF.Таким образом, браузер, возможно, не отправил код отслеживания или, возможно, отправил его, но соединение TCP не прошло, и браузер должен был бы повторно отправить пакет, но он больше не хочет это делать.

Так что, если вам нужна точность, вы должны добавить к ней задержку в 200-500 мс.Но помните, что аналитика Google не является инструментом точности, и если некоторые события не пройдут, это, вероятно, не повлияет на конечный результат вашего анализа.

0 голосов
/ 13 июня 2017

Согласно информации на этой странице: Отправка данных в Google Analytics существует вероятность того, что ваши данные на самом деле не отправляются (плохие новости, как сказал Эдуардо). Переписать наиболее важную информацию этой страницы, связанную с вашими сомнениями:

Многие браузеры прекращают выполнение JavaScript, как только начинается страница выгрузка, что означает, что ваши команды analytics.js для отправки хитов могут никогда не беги.

Примером этого может служить отправка события в Google. Аналитика для записи того, что пользователь нажал кнопку отправки формы. В В большинстве случаев, нажав кнопку отправки, вы сразу начнете загружать на следующей странице, и любые команды ga ('send', ...) не будут выполняться.

Решение этой проблемы - перехватить событие, чтобы остановить страницу разгрузка. Затем вы можете отправить свой удар в Google Analytics, как обычно, и после завершения отправки вы можете отправить форму программным способом.

...