Как узнать идентификатор цели для запроса API Директа?

25.02.2024

Чтобы выгрузить данные из Яндекс.Директа с помощью API, вам необходимо составить запрос с необходимым количеством полей. Среди них – стандартный перечень параметров и показателей рекламных кампаний (показы, клики, расход, CTR, средняя цена клика и т.д. в разрезе условия показа, названия площадки, региона таргетинга, типа устройства, пола, возраста и др.).

Вполне вероятно, что вы захотите выгрузить статистику с привязкой к конкретной конверсии или нескольким целям Яндекс.Метрики. Тогда вам необходимо использовать поле Goals с идентификатором заданной цели и моделью атрибуции.

Идентификаторы целей

Goals — идентификаторы целей Яндекс Метрики, по которым требуется получить статистику. Задается не более 10 элементов в массиве.

Если параметр указан, то в отчете вместо полей ConversionRate, Conversions, CostPerConversion, GoalsRoi и Revenue с агрегированными данными по всем целям будут выведены аналогичные поля с именами вида <поле>_<id_цели>_<модель_атрибуции> и данными по каждой цели в отдельности.

Как это выглядит на практике? Когда вы переходите в Мастер отчетов в интерфейсе Яндекс.Директа, вам доступен выбор целей:

Вы можете выбрать одну цель, две, несколько или вообще оставить выбор без изменений. В этом случае статистика будет выгружаться по всем конверсиям, как будто вы указали поле Conversions:

Если статистика выгружается по одной цели, то отчет будет выглядеть так:

Если целей несколько, то так:

И у каждой такой цели – свой уникальный идентификатор. Когда вы захотите выгрузить данные по API Директа по конкретным конверсиям, вам необходимо будет задать не поле Conversions, а идентификаторы целей в параметре Goals.

Чтобы узнать идентификатор конкретной цели, вам необходимо перейти в счетчик Яндекс.Метрики, в раздел Цели:

На странице будут отображаться все ваши цели с номерами:

Это и есть идентификаторы целей, которые вы будете задавать в теле запроса:

# Тело запроса
body = {
    "params": {
        "SelectionCriteria": {
            "DateFrom": date1,
            "DateTo": date2
        },
       "Goals": [ "GoalID1", "GoalID2" ],
       "AttributionModels": [ "LSC" ],
        # Необходимые поля в отчете
        "FieldNames": [
            "Date",
            "CampaignName",
            "Impressions",
            "Clicks",
            "Cost"
        ],
        "ReportName": "Request1",
        "Page": {
            "Limit": 10000000
        },
        "ReportType": "CUSTOM_REPORT",
        "DateRangeType": "CUSTOM_DATE",
        "Format": "TSV",
        "IncludeVAT": "YES",
    }
}

, где:

  • GoalID1, GoaldID2 – идентификаторы ваших целей из Яндекс.Метрики (не более 10 элементов);
  • LSC – выбранная модель атрибуции.

Возможные значения:

  • FC – первый переход;
  • LC – последний переход;
  • LSC – последний значимый переход;
  • LYDC – последний переход из Яндекс Директа.

Значение по умолчанию – LYDC. Если указано несколько моделей атрибуции, данные будут выведены по каждой модели в отдельности.

После того, как вы запустите программу, на вашем компьютере сохранится новый файл, в котором по всем заданным целям будут выведены аналогичные поля с именами вида <поле>_<id_цели>_<модель_атрибуции> и данными по каждой цели в отдельности:

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

Идентификаторы целей для Ecommerce

Если в Яндекс.Метрике вы настроили электронную торговлю и желаете выгрузить статистику с привязкой к данным целям, вам также необходимо узнать их идентификаторы для составления запроса к API Директа.

Однако в самом интерфейсе Яндекс.Метрики в разделе Цели идентификаторы целей по Ecommerce в общем списке отображаться не будут, хоть они и присутствуют в Мастере отчетов Яндекс.Директа и доступны для выбора:

Как узнать идентификаторы целей для Ecommerce? В API Live версии 4 существует метод GetRetargetingGoals. Он устроен таким образом, что все запросы JSON имеют адрес https://api.direct.yandex.ru/live/v4/json/, а нужный метод указывается в теле запроса.

Для этого вы можете воспользоваться следующим кодом программы:

import json
import requests
import pandas as pd

# Адрес сервиса Reports для отправки JSON-запросов
ReportsURL = 'https://api.direct.yandex.ru/live/v4/json/'

# OAuth-токен пользователя, от имени которого будут выполняться запросы
token = 'значение_вашего_токена'

# Логин клиента рекламного агентства
# Обязательный параметр, если запросы выполняются от имени рекламного агентства
clientLogin = 'логин_вашего_яндекс_директа'

# Создание тела запроса

body = {
   "method": "GetRetargetingGoals",
   "param": {
      "Logins": [clientLogin]
   },
   "locale": "ru",
   "token": token
}

body = json.dumps(body, ensure_ascii=False).encode('utf8')
req = requests.post(ReportsURL, data=body)

#Датафрейм
df = pd.DataFrame(req.json()['data'])

#Датафрейм, который содержит в названии цели слово "Ecommerce"
df2 = df[df['Name'].str.contains ("Ecommerce")]
print(df2)

Так как в вашем аккаунте может быть десятки и сотни разных целей, в отдельном датафрейме df2 благодаря дополнительному условию будут выведены только те, которые относятся к Ecommerce.

Создайте отдельный Python-файл в вашем проекте, вставьте туда вышеприведенный код и запустите программу. Не забудьте добавить ваш токен доступа и логин Яндекс.Директа в соответствующие поля token и clientLogin.

Запустив выполнение программы, вы увидите результат выполнения запроса с идентификаторами целей Ecommerce. Например, вот так это будет выглядеть для проекта в PyCharm:

Для соответствующих целей выпишите нужные значения из столбца GoalID и используйте их в теле запроса основной программы.

Но есть и другой, более простой способ узнать идентификаторы целей для Ecommerce. Сделать это можно прямо при выборе конкретной цели в интерфейсе Яндекс.Директа, в Мастере отчетов. Для этого откройте список Данные по целям и выберите нужную цель. Выделив ее, нажмите правой кнопкой мыши и вызовите через контекстное меню Просмотреть код:

Вам откроется консоль разработчика, в которой подсветится код выделенного вами элемента. Найдите в коде упоминание про название цели в коде, содержащем text. Рядом с названием будет отображаться параметр id, а через двоеточие значение идентификатора цели для Ecommerce:

Например, для Ecommerce: добавление в корзину идентификатор цели равен 194686789. Он совпадает с идентификатором, выгруженным другим способом по API (см. выше).

Точно таким же способом вы можете найти идентификатор для абсолютно любой цели из списка, не используя интерфейс Яндекс.Метрики или специальный запрос API.

Яков Осипенков
Yakov Osipenkov https://lib.osipenkov.ru

Популяризатор веб-аналитики и интернет-рекламы в русскоязычном сообществе, автор блога osipenkov.ru

Все комментарии

Добавить комментарий