Google Analytics API - выбор метрики влияет на возвращаемые значения измерений? - PullRequest
3 голосов
/ 16 февраля 2011

Доброе утро.Я видел такое поведение в API Google Analytics, которое, как парень из SQL, я нахожу странным.Я хотел бы получить список всех значений для adContent, поэтому я запрашиваю ga:adContent и (потому что я также должен выбрать метрику без четкой причины) ga:organicSearches.Он находится в той же группе (Campaign), поэтому, возможно, он будет работать лучше на сервере.

Я получаю одну строку: adContent - это "(не установлено)", OrganicSearches - 516 674.Да, я думаю, adContent не используется.Но отдел маркетинга клянется, что это так, и делает несколько убедительных снимков экрана.

Позже я произвольно изменяю метрику на ga:transactions.Во вселенной, в которой я проснулся, это ни на что не должно влиять, кроме действительного значения, возвращаемого в этом столбце.Вместо этого я получаю миллионы строк с вероятными значениями для ga:adContent.Значение для ga:transactions иногда равно нулю, так что это не тот случай, когда GA фильтровал для «метрики> 0».

В моем запросе нет фильтров.Я не изменил диапазон дат между этими двумя вариантами.Кто-нибудь может сказать мне, что происходит?Я ожидаю, что приведенные выше запросы приведут к чему-то вроде этого, которое должно вернуть точно такое же количество строк:

SELECT adContent, SUM(organicSearches)
FROM Campaign
WHERE Date BETWEEN X AND Y
GROUP BY adContent

SELECT adContent, SUM(transactions)
FROM Campaign INNER JOIN ECommerce ON <something>
WHERE Date BETWEEN X AND Y
GROUP BY adContent

Я понимаю, что GA, вероятно, не использует обычную RDMS на серверной части, но наверняка1 + 1 равно 2 в любой базе данных!

1 Ответ

3 голосов
/ 16 февраля 2011

По определению ga:organicSearches почти никогда не будет совпадений для ga:adContent (исключая крайние случаи). ga:adContent для содержания рекламы, где ga:organicSearches для обычных посещений результатов поиска в течение сеанса (например, если вы используете Google несколько раз в течение одного сеанса, чтобы попытаться найти что-то конкретное на сайте). Не используйте его ни для чего, кроме попыток измерить это конкретное явление.

Старайтесь не использовать SQL-структуру здесь; Google Analytics не использует SQL на бэкэнде, поэтому понятия о традиционных отношениях не применимы. IIRC, они используют несколько вещей, среди которых вариант BigTable , который является базой данных типа NoSQL.

Из Google Paper на BigTable от 2006 года :

Мы кратко опишем две таблицы используется Google Analytics. Сырье Таблица кликов (TB200 ТБ) поддерживает строку для каждого сеанса конечного пользователя. Ряд имя является кортеж, содержащий название сайта и время, в которое сеанс был создан. Эта схема гарантирует, что сессии, которые посещают один и тот же веб-сайт является смежным, и это они отсортированы в хронологическом порядке. это таблица сжимается до 14% его первоначальный размер. Сводная таблица (№20 TB) содержит различные предопределенные резюме для каждого сайта. Этот стол генерируется из таблицы сырых кликов по периодически запланированному MapReduce рабочие места. Каждое извлечение работы MapReduce данные последних сеансов из необработанного клика Таблица. Общая пропускная способность системы ограничено пропускной способностью GFS. Эта таблица сжимает до 29% оригинальный размер.

Если вам нужен наименьший общий знаменатель для метрики для списка всех измерений, используйте ga:pageviews.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...