Расширенные варианты использования

В этом документе описаны несколько расширенных функций API данных Google Analytics версии 1. Подробное описание API см. в Справочнике API .

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

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

В следующих разделах приведены примеры для каждого типа пользовательского определения. В этих примерах замените GA_PROPERTY_ID на идентификатор вашего объекта недвижимости .

Пользовательские параметры, ограниченные областью действия события

Шаг 1: Выполните запрос к методу API метаданных , указав идентификатор вашего объекта недвижимости.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata

Шаг 2: Найдите интересующее вас пользовательское измерение, относящееся к области действия события, для которого вы хотите создавать отчеты на основе полученного ответа. Если измерение отсутствует, вам необходимо его зарегистрировать .

"dimensions": [
...
    {
      "apiName": "customEvent:achievement_id",
      "uiName": "Achievement ID",
      "description": "An event scoped custom dimension for your Analytics property."
    },
...
],

Шаг 3: Включите пользовательское измерение в запрос отчета. Ниже приведен пример запроса к методу runReport .

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "2020-09-01", "endDate": "2020-09-15" }],
  "dimensions": [{ "name": "customEvent:achievement_id" }],
  "metrics": [{ "name": "eventCount" }]
}

Пользовательские параметры

Шаг 1: Выполните запрос к методу API метаданных , указав идентификатор вашего объекта недвижимости.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata

Шаг 2: Найдите пользовательское измерение, для которого вы хотите создавать отчеты на основе полученного ответа. Если измерение отсутствует, необходимо его зарегистрировать .

"dimensions": [
...
    {
      "apiName": "customUser:last_level",
      "uiName": "Last level",
      "description": "A user property for your Analytics property."
    },
...
],

Шаг 3: Включите пользовательское измерение в запрос отчета. Ниже приведен пример запроса к методу runReport .

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "entity": { "propertyId": "GA_PROPERTY_ID" },
  "dateRanges": [{ "startDate": "7daysAgo", "endDate": "yesterday" }],
  "dimensions": [{ "name": "customUser:last_level" }],
  "metrics": [{ "name": "activeUsers" }]
}

Пользовательские метрики, привязанные к событию

Шаг 1: Выполните запрос к методу API метаданных , указав идентификатор вашего объекта недвижимости.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata

Шаг 2: Найдите интересующую вас пользовательскую метрику, связанную с событием, для которой вы хотите создавать отчеты на основе полученного ответа. Если метрика отсутствует, вам необходимо ее зарегистрировать .

"metrics": [
...
    {
      "apiName": "customEvent:credits_spent",
      "uiName": "Credits Spent",
      "description": "An event scoped custom metric for your Analytics property.",
      "type": "TYPE_STANDARD"
    },
...
],

Шаг 3: Включите пользовательскую метрику в запрос отчета. Ниже приведен пример запроса к методу runReport .

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "30daysAgo", "endDate": "yesterday" }],
  "dimensions": [{ "name": "eventName" }],
  "metrics": [{ "name": "customEvent:credits_spent" }]
}

Ключевые показатели частоты событий для одного ключевого события

Шаг 1: Выполните запрос к методу API метаданных , указав идентификатор вашего объекта недвижимости.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata

Шаг 2: Найдите метрику частоты ключевых событий для одного ключевого события, по которому вы хотите создавать отчеты на основе полученного ответа. Если ключевое событие отсутствует, вам необходимо его настроить .

"metrics": [
...
    {
      "apiName": "sessionKeyEventRate:add_to_cart",
      "uiName": "Session key event rate for add_to_cart",
      "description": "The percentage of sessions in which a specific key event was triggered",
    },
...
],

Шаг 3: Включите ключевой показатель частоты событий в запрос отчета. Ниже приведен пример запроса к методу runReport .

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "30daysAgo", "endDate": "yesterday" }],
  "dimensions": [{ "name": "eventName" }],
  "metrics": [{ "name": "sessionKeyEventRate:add_to_cart" }]
}

Средние значения пользовательских метрик, ограниченные определенным событием

Шаг 1: Выполните запрос к методу API метаданных , указав идентификатор вашего объекта недвижимости.

GET https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID/metadata

Шаг 2: Найдите интересующее вас значение среднего пользовательского показателя, ограниченного областью действия события, на основе которого вы хотите создавать отчеты. Если этот показатель отсутствует, его необходимо зарегистрировать .

"metrics": [
...
    {
      "apiName": "averageCustomEvent:credits_spent",
      "uiName": "Average Credits Spent",
      "description": "The average of an event scoped custom metric for your Analytics property.",
      "type": "TYPE_STANDARD"
    },
...
],

Шаг 3: Включите среднее значение пользовательской метрики в запрос отчета. Ниже приведен пример запроса к методу runReport .

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dateRanges": [{ "startDate": "2020-11-01", "endDate": "2020-11-10" }],
  "dimensions": [{ "name": "eventName" }],
  "metrics": [{ "name": "averageCustomEvent:credits_spent" }]
}

Примеры отчетов по когортам

Отчеты по когортам создают временной ряд удержания пользователей для данной когорты. Подробную документацию по каждому полю API см. в справочнике REST для CohortSpec .

Создать когортный отчет

Вот пример отчета по когорте, в котором:

  • Когорта состоит из пользователей с датой firstSessionDate 2020-12-01 ; это настраивается объектом cohorts . Измерения и метрики в ответе отчета будут основаны только на пользователях этой когорты.
  • В отчете по когортам будут отображаться три столбца; это настраивается с помощью объектов измерений и метрик.
    • « cohort измерений» — это название когорты.
    • Параметр cohortNthDay — это количество дней, прошедших с 2020-12-01 .
    • Показатель cohortActiveUsers — это количество пользователей, которые всё ещё активны.
  • Объект cohortsRange указывает, что отчет должен содержать данные о событиях, начиная с 2020-12-01 и заканчивая 2020-12-06 для данной когорты.
    • При использовании детализации DAILY для обеспечения согласованности рекомендуется использовать измерение cohortNthDay .

Запрос на составление отчета для данной группы выглядит следующим образом:

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dimensions": [{ "name": "cohort" }, { "name": "cohortNthDay" }],
  "metrics": [{ "name": "cohortActiveUsers" }],
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-12-01", "endDate": "2020-12-01" }
      }
    ],
    "cohortsRange": {
      "endOffset": 5,
      "granularity": "DAILY"
    }
  },
}

В ответ на этот запрос может быть представлен примерный ответ в виде отчета:

{
  "dimensionHeaders": [
    { "name": "cohort" }, { "name": "cohortNthDay" }
  ],
  "metricHeaders": [
    { "name": "cohortActiveUsers", "type": "TYPE_INTEGER" }
  ],
  "rows": [
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0000" }],
      "metricValues": [{ "value": "293" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0001" }],
      "metricValues": [{ "value": "143" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0002" }],
      "metricValues": [{ "value": "123" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0003" }],
      "metricValues": [{ "value": "92" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0005" }],
      "metricValues": [{ "value": "86" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0004" }],
      "metricValues": [{ "value": "83" }]
    }
  ],
  "metadata": {},
  "rowCount": 6
}

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

Визуализация динамики численности пользователей когорты с течением времени.

Множественные когорты и доля удержания пользователей

Привлечение и удержание пользователей — это способы развития вашего веб-сайта или приложения. Когортные отчеты фокусируются на удержании пользователей. В этом примере отчет показывает, что за две недели этот ресурс улучшил показатель удержания пользователей за 4 дня на 10%.

Для создания этого отчета мы задаем три когорты: первую с датой firstSessionDate 2020-11-02 , вторую с датой firstSessionDate 2020-11-09 и третью с датой firstSessionDate 2020-11-16 . Поскольку количество пользователей на вашем ресурсе будет разным в течение этих трех дней, мы сравниваем показатель доли удержания пользователей в каждой когорте, равный cohortActiveUsers/cohortTotalUsers а не используем прямой показатель cohortActiveUsers .

Запрос на составление отчета по этим группам выглядит следующим образом:

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dimensions": [{ "name": "cohort" },{ "name": "cohortNthDay" }],
  "metrics": [
    {
      "name": "cohortRetentionFraction",
      "expression": "cohortActiveUsers/cohortTotalUsers"
    }
  ],
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-11-02", "endDate": "2020-11-02" }
      },
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-11-09", "endDate": "2020-11-09" }
      },
      {
        "dimension": "firstSessionDate",
        "dateRange": { "startDate": "2020-11-16", "endDate": "2020-11-16" }
      }
    ],
    "cohortsRange": {
      "endOffset": 4,
      "granularity": "DAILY"
    }
  },
}

В ответ на этот запрос может быть представлен примерный ответ в виде отчета:

{
  "dimensionHeaders": [{ "name": "cohort" },{ "name": "cohortNthDay" }],
  "metricHeaders": [{
      "name": "cohortRetentionFraction",
      "type": "TYPE_FLOAT"
    }
  ],
  "rows": [
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0000" }],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0000" }],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0000" }],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0001" }],
      "metricValues": [{ "value": "0.308" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0001" }],
      "metricValues": [{ "value": "0.272" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0002" }],
      "metricValues": [{ "value": "0.257" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0001" }],
      "metricValues": [{ "value": "0.248" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0003" }],
      "metricValues": [{ "value": "0.235" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_2" },{ "value": "0004" }],
      "metricValues": [{ "value": "0.211" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0002" }],
      "metricValues": [{ "value": "0.198" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0002" }],
      "metricValues": [{ "value": "0.172" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0003" }],
      "metricValues": [{ "value": "0.167" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_1" },{ "value": "0004" }],
      "metricValues": [{ "value": "0.155" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0003" }],
      "metricValues": [{ "value": "0.141" }]
    },
    {
      "dimensionValues": [{ "value": "cohort_0" },{ "value": "0004" }],
      "metricValues": [{ "value": "0.118" }]
    }
  ],
  "metadata": {},
  "rowCount": 15
}

На основе полученных данных представлен график для данной когорты. Из отчета следует, что удержание пользователей в течение 4 дней увеличилось на 10% за две недели. Удержание пользователей в более поздней когорте с firstSessionDate 2020-11-16 превышает удержание пользователей в более ранней когорте с firstSessionDate 2020-11-02 .

Диаграмма удержания участников в нескольких когортах

Еженедельные когорты и использование когорт с другими функциями API.

Для исключения ежедневных колебаний в поведении пользователей используйте еженедельные когорты. В отчетах по еженедельным когортам все пользователи, у которых firstSessionDate приходится на одну и ту же неделю, образуют когорту. Недели начинаются в воскресенье и заканчиваются в субботу. Также в этом отчете мы разделяем когорту, чтобы сравнить пользователей, проявляющих активность в России, с пользователями, проявляющими активность в Мексике. Для этого используется измерение country и dimensionFilter , позволяющий учитывать только две страны.

Запрос на составление отчета по этим группам выглядит следующим образом:

POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dimensions": [
    { "name": "cohort" },
    { "name": "cohortNthWeek" },
    { "name": "country" }
  ],
  "metrics": [{ "name": "cohortActiveUsers" }],
  "dimensionFilter": {
    "filter": {
      "fieldName": "country",
      "inListFilter": {
        "values": [ "Russia", "Mexico" ]
      }
    }
  },
  "cohortSpec": {
    "cohorts": [
      {
        "dimension": "firstSessionDate",
        "dateRange": {
          "startDate": "2020-10-04",
          "endDate": "2020-10-10"
        }
      }
    ],
    "cohortsRange": {
      "endOffset": 5,
      "granularity": "WEEKLY"
    }
  },
}

В ответ на этот запрос может быть представлен примерный ответ в виде отчета:

{
  "dimensionHeaders": [
    { "name": "cohort" },
    { "name": "cohortNthWeek" },
    { "name": "country" }
  ],
  "metricHeaders": [
    { "name": "cohortActiveUsers", "type": "TYPE_INTEGER" }
  ],
  "rows": [
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0000" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "105" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0000" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "98" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0001" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "35" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0002" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "24" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0001" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "23" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0004" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "17" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0003" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "15" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0005" },{ "value": "Mexico" }
      ],
      "metricValues": [{ "value": "15" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0002" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "3" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0003" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "1" }]
    },
    {
      "dimensionValues": [
        { "value": "cohort_0" },{ "value": "0004" },{ "value": "Russia" }
      ],
      "metricValues": [{ "value": "1" }]
    }
  ],
  "metadata": {},
  "rowCount": 11
}

На основе данных из отчета представлена ​​диаграмма, составленная по данной когорте. Согласно этому отчету, данный ресурс лучше удерживает пользователей, проявляющих активность в Мексике, чем пользователей, проявляющих активность в России.

Диаграмма сравнительных групп стран

Сравнения

Сравнения позволяют сравнивать подмножества ваших данных параллельно. Вы можете определить сравнения, указав поле comparisons в определении отчета. Функция «Сравнения» в Data API аналогична функции «Сравнения» во внешнем интерфейсе Google Analytics .

Подробную документацию по каждому полю API см. в справочнике REST для Comparison .

Создать сравнение

Для каждого набора данных, который вы хотите сравнить, можно создать отдельное сравнение. Например, чтобы сравнить данные приложений и веб-сайтов, можно создать одно сравнение для данных Android и iOS и другое сравнение для веб-данных.

Вот пример отчета, в котором определены два сравнения и представлены активные пользователи в разбивке по странам.

Первое сравнение, названное "Трафик приложений", использует inListFilter для сопоставления измерения platform со значениями "iOS" и "Android". Второе сравнение, названное "Веб-трафик", использует stringFilter для сопоставления измерения platform со значением "web".

  POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
  {
    "comparisons": [
      {
        "name": "App traffic",
        "dimensionFilter": {
          "filter": {
            "fieldName": "platform",
            "inListFilter": {
              "values": [
                "iOS",
                "Android"
              ]
            }
          }
        }
      },
      {
        "name": "Web traffic",
        "dimensionFilter": {
          "filter": {
            "fieldName": "platform",
            "stringFilter": {
              "matchType": "EXACT",
              "value": "web"
            }
          }
        }
      }
    ],
    "dateRanges": [
      {
        "startDate": "2024-05-01",
        "endDate": "2024-05-15"
      }
    ],
    "dimensions": [
      {
        "name": "country"
      }
    ],
    "metrics": [
      {
        "name": "activeUsers"
      }
    ]
  }

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

Вот пример фрагмента ответа, содержащего сравнения:

{
  "dimensionHeaders": [
    {
      "name": "comparison"
    },
    {
      "name": "country"
    }
  ],
  "metricHeaders": [
    {
      "name": "activeUsers",
      "type": "TYPE_INTEGER"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "Web traffic"
        },
        {
          "value": "United States"
        }
      ],
      "metricValues": [
        {
          "value": "638572"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "Web traffic"
        },
        {
          "value": "Japan"
        }
      ],
      "metricValues": [
        {
          "value": "376578"
        }
      ]
    },
  {
      "dimensionValues": [
        {
          "value": "App traffic"
        },
        {
          "value": "United States"
        }
      ],
      "metricValues": [
        {
          "value": "79527"
        }
      ]
    },

    ...

  ],

...

}