Чтобы выгрузить данные из Яндекс.Директа с помощью 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

Как узнать идентификаторы целей для 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:

Результат выполнения запроса (в PyCharm)

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

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

Просмотреть код

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

Идентификатор целей в параметре id

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

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