Расхождения в доходах API Google Analytics

У меня есть расхождения в метрике дохода между данными, которые я собираю из API Google Analytics, и пользовательскими отчетами в пользовательском интерфейсе.

Расхождения для каждого значения сохраняются на том же уровне, когда данные, собранные через API, больше, чем данные в пользовательских отчетах.

Это тело запроса, который я использую:

{
"reportRequests":[
{
    "viewId":"xxxxxxxxxx",
    "dateRanges": [{"startDate":"2017-07-01","endDate":"2018-12-31"}],
    "metrics": [
        {"expression": "ga:transactionRevenue","alias": "transactionRevenue","formattingType": "CURRENCY"},
        {"expression": "ga:itemRevenue","alias": "itemRevenue","formattingType": "CURRENCY"},
        {"expression": "ga:productRevenuePerPurchase","alias": "productRevenuePerPurchase","formattingType": "CURRENCY"}
    ],
    "dimensions": [
        {"name": "ga:channelGrouping"},
        {"name": "ga:sourceMedium"},
        {"name": "ga:dateHour"},
        {"name": "ga:transactionId"},
        {"name": "ga:keyWord"}
    ],
    "pageSize": "10000"
}]}

Вот выдержка из ответа:

{{  
"reports": [
    {
      "columnHeader": {
        "dimensions": [
          "ga:channelGrouping",
          "ga:sourceMedium",
          "ga:dateHour",
          "ga:transactionId",
          "ga:keyWord"
        ],
        "metricHeader": {
          "metricHeaderEntries": [
            {
              "name": "transactionRevenue",
              "type": "CURRENCY"
            },
            {
              "name": "itemRevenue",
              "type": "CURRENCY"
            },
            {
              "name": "productRevenuePerPurchase",
              "type": "CURRENCY"
            }
          ]
        }
      },
      "data": {
        "rows": [
          {
            "dimensions": [
              "(Other)",
              "bing / (not set)",
              "2018052216",
              "834042319461-01",
              "(not set)"
            ],
            "metrics": [
              {
                "values": [
                  "367.675436",
                  "316.55053699999996",
                  "316.55053699999996"
                ]
              }
            ]
          },
...

Итак, если я создаю пользовательский отчет в пользовательском интерфейсе Google Analytics и ищу идентификатор транзакции 834042319461-01, я получаю следующий результат:

Пользовательский отчет Google Analytics отфильтрован по идентификатору транзакции 834042319461-01

В итоге у меня есть доход в 367,675436 в ответе API, но значение 333,12 в пользовательском отчете, что на 10,37% больше в значении API. Я получаю это увеличение 10,37% для всех значений.

¿Почему у меня есть это несоответствие?

¿Что бы вы порекомендовали сделать, чтобы решить эту проблему?

Благодарю.

2 ответа

Держу пари, что вы используете выборку (ваш временной диапазон в пользовательском интерфейсе ниже, чем в API?): https://support.google.com/analytics/answer/2637192?hl=en

Выборка применяется, когда:

  • вы настраиваете отчеты
  • количество сеансов для всего временного диапазона отчета (независимо от того, возвращает ли ваш запрос меньше сеансов) превышает 500 КБ (GA) или 100 М (GA 360)

Следствием является то, что:

  • отчет будет основан на подмножестве данных (% зависит от общего количества сеансов)
  • поэтому данные вашего отчета будут не такими точными, как обычно

Что вы можете сделать, чтобы уменьшить выборку:

  • увеличьте размер выборки (только уменьшит выборку до некоторой степени, но в большинстве случаев не удалит полностью выборку). В UI это делается с помощью опции в верхней части отчета, в API это сделано с использованием samplingLevel вариант
  • уменьшить временной диапазон
  • создавать отфильтрованные представления, чтобы ваши отчеты содержали данные, которые вам нужны, без необходимости настраивать отчеты

Поскольку вы смотрите на конкретный идентификатор транзакции, это может не быть проблемой выборки.

Если соотношение является постоянным, то по вашему вопросу оно составляет 10,37%. Я считаю, что это тот случай, когда вы используете валюту.

Попробуйте использовать local вызовы API с метрикой валюты при совершении звонков на денежной основе

Например -

ga:localTransactionRevenue вместо ga:transactionRevenue

Другие вопросы по тегам