Какая утилита или команда UNIX поможет отправить большой объем данных о событиях в Google Universal Analytics?

https://developers.google.com/analytics/devguides/collection/protocol/v1/reference

По ссылке выше разработан протокол измерений. Предположим, у меня есть CSV-файл с такими столбцами, как EventName, ClientID и т. д., и я хочу отправить его в систему Universal Analytics. Есть ли команда UNIX, утилита или стороннее программное обеспечение, которое позволит мне отправлять эти данные из командной строки или любого более удобного пользовательского интерфейса?


person BreakPhreak    schedule 26.10.2014    source источник
comment
Это просто HTTP-запросы, поэтому вы можете проанализировать csv в сценарии оболочки и отправить запросы через wget или curl или запустить скрипт cli php (который может использовать curl или fopen или...). Вы формируете URL-адрес в соответствии со ссылкой в ​​вашей ссылке (люди, кажется, думают, что есть какая-то скрытая магия, но на самом деле это так просто, как кажется) и отправляете его. Единственное, вы должны включить задержку после вызова URL-адреса, поскольку существует ограничение на количество запросов, которые вы можете отправить за один раз (20 обращений, которые пополняются со скоростью 2 обращения в секунду).   -  person Eike Pierstorff    schedule 27.10.2014
comment
любой сценарий оболочки или что-то еще было бы здорово начать, также некоторые аспекты аутентификации остаются неясными   -  person BreakPhreak    schedule 27.10.2014
comment
В сборе данных GA нет аутентификации. Любой может отправить данные в вашу учетную запись, как только узнает идентификатор вашей учетной записи.   -  person Eike Pierstorff    schedule 27.10.2014
comment
Итак, есть ли небольшой шанс, что вы могли бы просто предоставить очень простой сценарий и добавить его в качестве ответа, который я бы одобрил?   -  person BreakPhreak    schedule 27.10.2014


Ответы (1)


Я сам не мастер bash, поэтому будут любые способы улучшить это (я адаптировал пример, который я нашел в Интернете), но вот простой пример.

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

Однако в примере предполагается, что первый столбец в вашем CSV-файле содержит параметр, который можно использовать как cid. Имейте в виду, что сессия имеет максимум 500 обращений (поэтому после этого вам нужно переключить cid) и что существует ограничение в 20 обращений за сеанс, которое пополняется со скоростью 2 обращения в секунду, поэтому, вероятно, вы хотите встроить задержку в свой сценарий.

В примере предполагается файл csv с точкой с запятой в качестве разделителя (можно настроить в переменной IFS). Также предполагается наличие трех столбцов: один для cid, один для пути к странице и один для заголовка документа. если у вас более трех столбцов, последнее значение (pagetitle) будет потреблять все оставшиеся столбцы (поэтому, если столбцов больше трех, добавьте имена столбцов в строку, начинающуюся с «пока»).

Затем скрипт просто строит URL-адрес (переменные из строки, начинающейся с «пока», обозначаются знаком доллара перед именем) и использует wget для вызова сервера отслеживания Google (сервер возвращает изображение в формате gif, которое wget будет store - я уверен, что есть опция, которая говорит wget отклонить контент из запроса).

#!/bin/bash
UAID="UA-XXXXX-XX" // Google Analytics Account ID
INPUT=data.cvs // Input file name
OLDIFS=$IFS // store default csv delimiter
IFS=; // set csv delimiter
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; } // nice error message if input file is missing
while cid page pagetitle // while there are rows in the csv read fields
do
    wget "www.google-analytics.com/collect?v=1&tid=$UAID&cid=$cid&t=pageview&dp=$page&dt=$pagetitle" // call Google Tracking server 
done < $INPUT // no more rows
IFS=$OLDIFS // restore default csv delimiter

Очевидно, вам придется сделать этот скрипт исполняемым. Я тестировал это (последний Debian/bash), поэтому я уверен, что это сработает. Хотя это может быть не очень эффективно.

person Eike Pierstorff    schedule 28.10.2014
comment
Также нашел эту страницу, на которой объясняется, как загружать файлы через пользовательский интерфейс GA: support.google.com/analytics. /ответ/6015078 - person BreakPhreak; 28.10.2014
comment
Загрузка работает только для изменения существующих данных об обращениях — вы не можете загружать просмотры страниц с нуля. - person Eike Pierstorff; 28.10.2014
comment
так что я не могу загрузить новые события? это правильно пожалуйста? - person BreakPhreak; 29.10.2014
comment
Вы можете загружать данные кампании, атрибуты продукта, специальные параметры или данные о возмещении транзакций, но вы не можете загружать такие взаимодействия, как просмотры страниц, события или транзакции. - person Eike Pierstorff; 29.10.2014
comment
Есть ли стороннее программное обеспечение, которое выполняет эту работу? Так странно, что есть API, но никто не может просто загрузить данные из отчетов (скажем, конверсии Bing). - person BreakPhreak; 29.10.2014