Подтвердить что ты не робот

Скремблирование посетителей в режиме реального времени из Google Analytics

У меня есть много сайтов и вы хотите создать панель мониторинга, показывающую количество посетителей в реальном времени на каждой из них на одной странице. (хотел бы кто-нибудь еще этого?) В настоящий момент единственным способом просмотра этой информации является открытие новой вкладки для каждого сайта.

Google не имеет API в реальном времени, поэтому мне интересно, можно ли очистить эти данные. Эдуардо Cereto узнал, что Google передает данные в реальном времени по запросу сети реального времени/привязки. У кого-то более сообразительного есть идея, как я должен начать? Вот что я думаю:

  • Выясните, как выполнить аутентификацию программно
  • Осмотрите все запросы реального времени/привязки, чтобы увидеть, как они меняются. У каждого запроса есть уникальный ключ? Откуда это? Ниже приведен мой запрос:

    https://www.google.com/analytics/realtime/bind?VER=8

    & key = [Что это? От куда это? 21 символьный строчный алфавитно-цифровой номер, остается одинаковым для каждого запроса]

    & ds = [Что это? От куда это? 21 символьный строчный алфавитно-цифровой номер, остается одинаковым для каждого запроса]

    & PageId = к.т. стандарт% 2Frt-обзор

    & д = т% 3A0% 7C% 3A1% 3A0% 3A% 2ct% 3A11% 7C% 3A1% 3A5% 3A% 2Cot% 3A0% 3A0% 3A4% 2Cot% 3A0% 3A0% 3A3% 2ct% 3A7 % 7C% 3A1% 3A10% 3À6% 3D% 3DREFERRAL% 3B% 2ct% 3A10% 7C% 3A1% 3A10% 3A% 2ct% 3A18% 7C% 3A1% 3A10% 3A% 2ct% 3A4% 7C5% 7C2% 7C% 3A1 % 3A10% 3A2% 3Dzz% 3B% 2C &! е

    URI переменной q декодирует это (что?): т: 0 |: 1: 0:, т: 11 |: 1: 5:, Ot: 0: 0: 4, Ot: 0: 0: 3, т: 7 |: 1:10: 6 == КВАЛИФИЦИРОВАННОЙ;!, т: 10 |: 1:10:, т: 18 |: 1:10:, т: 4 | 5 | 2 |: 1:10: 2 = ZZ;, & е

    & РИД = RPC

    & SID = [Что это? От куда это? 16 символов в верхнем регистровом алфавитно-цифровом формате, остается одинаковым для каждого запроса]

    & ДИ = 0

    & AID = [Что это? От куда это? целое число начинается с 1, странно увеличивается до 150, а затем 298]

    & TYPE = XMLHTTP

    & zx = [Что это? От куда это? 12 символов в нижнем регистровом алфавитно-цифровом формате, изменяет каждый запрос]

    & т = 1

  • Осмотрите все ответы в реальном времени /bind, чтобы увидеть, как они меняются. Как поступают данные? Похоже, некоторые измененные JSON. Сколько раз мне нужно подключиться для получения данных? Где находятся активные посетители на сайте? Ниже приведен пример данных образца:

    19 [[151, [ "Noop" ] ] ] 388 [[152, [ "RT" , [{ "OT: 0: 0: 4" : { "TimeUnit" : "ПРОТОКОЛ" , "overTimeData" : [{ "ценности" : [49,53,52,40,42, 55,49,41,51,52,47,42,62,82,76,71,81,66,81,86,71,66,65,65,55,51,53,73,71,81 ], "название" : "Общий" }]}, "OT: 0: 0: 3" : { "TimeUnit" : "секунды" , "overTimeData" : [{ "ценность" : [0,1,1,1, 1,0,1,0,1,1,1,0,2,0,2,2,1,0,0,0,0,0,2,1,1,2,1,2,0, 5,1,0,2,1,1,1,2,0,2,1,0,5,1,1,2,0,0,0,0,0,0,0,0,0, 1,1,0,3,2,0], "имя" : "Total" }]}}]]] ] 388 [[153, [ "RT" , [{ "OT: 0: 0: 4" : { "TimeUnit" : "ПРОТОКОЛ" , "overTimeData" : [{ "ценности" : [52,53,52,40,42, 55,49,41,51,52,47,42,62,82,76,71,81,66,81,86,71,66,65,65,55,51,53,73,71,81 ], "название" : "Общий" }]}, "OT: 0: 0: 3" : { "TimeUnit" : "секунды" , "overTimeData" : [{ "ценность" : [2,1,1,1, 1,1,0,1,0,1,1,1,0,2,0,2,2,1,0,0,0,0,0,2,1,1,2,1,2, 0,5,1,0,2,1,1,1,2,0,2,1,0,5,1,1,2,0,0,0,0,0,0,0,0, 0,1,1,0,3,2], "имя" : "Total" }]}}]]] ] 388 [[154, [ "RT" , [{ "OT: 0: 0: 4" : { "TimeUnit" : "ПРОТОКОЛ" , "overTimeData" : [{ "ценности" : [53,53,52,40,42, 55,49,41,51,52,47,42,62,82,76,71,81,66,81,86,71,66,65,65,55,51,53,73,71,81 ], "название" : "Общий" }]}, "OT: 0: 0: 3" : { "TimeUnit" : "секунды" , "overTimeData" : [{ "ценность" : [0,3,1,1, 1,1,1,0,1,0,1,1,1,0,2,0,2,2,1,0,0,0,0,0,2,1,1,2,1, 2,0,5,1,0,2,1,1,1,2,0,2,1,0,5,1,1,2,0,0,0,0,0,0,0, 0,0,1,1,0,3], "имя" : "Total" }]}}]]] ]

Сообщите мне, можете ли вы помочь с любым из пунктов выше!

enter image description here

4b9b3361

Ответ 1

Чтобы получить то же самое, Google запустил новый API реального времени. С помощью этого API вы можете легко получать онлайн-посетителей в режиме реального времени, а также несколько Google Analytics со следующими параметрами и метриками. https://developers.google.com/analytics/devguides/reporting/realtime/dimsmets/

Это похоже на API Google Analytics. Чтобы начать разработку, https://developers.google.com/analytics/devguides/reporting/realtime/v3/devguide

Ответ 2

В Google Chrome я вижу данные на панели сети.

Конечная точка запроса https://www.google.com/analytics/realtime/bind

Кажется, что соединение остается открытым в течение 2,5 минут, и за это время он все больше получает все больше данных.

Примерно через 2,5 минуты соединение закрывается и открывается новый.

На панели "Сеть" вы можете видеть только данные для завершенных соединений. Поэтому оставьте его открытым в течение 5 минут или около того, и вы можете начать просмотр данных.

Надеюсь, это может дать вам место для начала.

Ответ 3

Наличие google в цикле кажется довольно избыточным. Предложите использовать общий элемент, поставляемый по требованию с сервера панели мониторинга, и включить этот элемент по абсолютным URL-адресам на всех страницах, которые будут отслеживаться для данного сайта. script, выводящий элемент, может считывать IP-адрес запрашиваемого браузера, и все они могут быть зарегистрированы в базе данных и отфильтрованы для уникальности, что дает счетчик времени в реальном времени.

<?php
$user_ip = $_SERVER["REMOTE_ADDR"];
/// Some MySQL to insert $user_ip to the database table for website XXX  goes here


$file = 'tracking_image.gif';
$type = 'image/gif';
header('Content-Type:'.$type);
header('Content-Length: ' . filesize($file));
readfile($file);
?>

Ammendum: База данных также может добавлять временную метку для каждой строки данных, которые она хранит. Это можно использовать для дальнейшего фильтрации результатов и предоставления числа посетителей за последний час или минуту.

Клиентская сторона Javascript с AJAX для точной настройки или переполнения Команды onblur и onfocus javascript могут использоваться, чтобы определить, видима ли страница, передать данные обратно на сервер панели управления через Ajax. http://www.thefutureoftheweb.com/demo/2007-05-16-detect-browser-window-focus/

Когда посетитель закрывает страницу, это также может быть обнаружено функцией javascript onunload в теге body, и Ajax может использоваться для отправки данных обратно на сервер в последний раз, прежде чем браузер окончательно закроет страницу.

Как вы также можете собрать некоторую информацию о посетителе, например, в Google Analytics, эта страница https://panopticlick.eff.org/ содержит много javascript, которые могут изучить и адаптировать.

Ответ 4

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

Вместо привязки к /bind я получаю данные из /getData (каламбур не предназначен).

В /getData минимальный запрос, по-видимому, выглядит следующим образом: https://www.google.com/analytics/realtime/realtime/getData?pageId&key={{propertyID}}&q=t:0|:1

Здесь короткое объяснение возможных параметров запроса и синтаксиса, пожалуйста, помните, что все это догадки, и я не знаю их всех:

Синтаксис запроса: pageId&key=propertyID&q=dataType:dimensions|:page|:limit:filters

Значения:

pageID: Required but seems to only be used for internal analytics.

propertyID: a{{accountID}}w{{webPropertyID}}p{{profileID}}, as specified at the Documentation link below. You can also find this in the URL of all analytics pages in the UI.


dataType:
    t: Current data
    ot: Overtime/Past
    c: Unknown, returns only a "count" value


dimensions (| separated or alone), most values are only applicable for t:
    1:  Country
    2:  City
    3:  Location code?
    4:  Latitude
    5:  Longitude
    6:  Traffic source type (Social, Referral, etc.)
    7:  Source
    8:  ?? Returns (not set)
    9:  Another location code? longer.
    10: Page URL
    11: Visitor Type (new/returning)
    12: ?? Returns (not set)
    13: ?? Returns (not set)
    14: Medium
    15: ?? Returns "1"

page:
    At first this seems to work for pagination but after further analysis it looks like it also used to specify which of the 6 pages (Overview, Locations, Traffic Sources, Content, Events and Conversions) to return data for.

    For some reason 0 returns an impossibly high metrictotal

limit: Result limit per page, maximum of 50

filters:
    Syntax is as specified at the Documentation 2 link below except the OR is specified using | instead of a comma.6==CUSTOM;1==United%20States


Вы также можете комбинировать несколько запросов в одном запросе, разделяя их запятой (т.е. q=t:1|2|:1|:10,t:6|:1|:10).

Следуя приведенной выше "документации", если вы хотите создать запрос, который запрашивает URL-адрес страницы и город из 10 самых активных посетителей с типом источника трафика CUSTOM, расположенным в США, вы должны использовать этот URL-адрес: https://www.google.com/analytics/realtime/realtime/getData?key={{propertyID}}&pageId&q=t:10|2|:1|:10:6==CUSTOM;1==United%20States


Документация

Документация 2


Надеюсь, что мой ответ будет читабельным и (хотя он немного опоздал) достаточно отвечает на ваш вопрос и помогает другим в будущем.