Руководство api яндекс

Время на прочтение
6 мин

Количество просмотров 14K

Привет! Я Илья Назаров, менеджер отдела интернет-продвижения Digital Lab – студии веб- и мобильной разработки. Сегодня разберем просмотр геолокаций из Яндекс.Аудиторий в Excel и Power BI.

Большинство рекламодателей и специалистов по настройке рекламы знают, зачем нужны Яндекс.Аудитории. Один из самых востребованных вариантов – сегменты на основе геолокации. Что может быть проще? Рисуете на карте полигоны или загружаете адреса, указываете радиусы и задаете условия взаимодействия людей с локациями. 

Через несколько часов аудитории готовы: они расскажут про ваш бизнес всем, кто подходит под критерии и пользуется интернетом. Но проходит время. Люди, входившие в аудитории, оказываются недоступны. Или вы получаете доступ к аудитории, созданной кем-то другим. И вот вы уже не помните и не понимаете, вокруг каких локаций и с какими условиями настроены аудитории, даже если они понятно названы. Знакомая ситуация?

Возможности веб-интерфейса Яндекс.Аудиторий по работе с готовыми сегментами сильно ограничены. Максимум вы можете:

  • найти похожих пользователей,

  • поделиться сегментом с кем-нибудь,

  • придумать ему другое название,

  • удалить.

Первые 3 действия требуют четкого понимания того, что именно содержится внутри. Поэтому ревизия давно забытых или чужих аудиторий нередко заканчивается действием 4 и созданием нового сегмента с названием, «по которому точно никогда не забуду, кто там находится».

Вспоминаем все

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

  1. зовете программиста, который покажет свой кунг-фу Python этому Яндексу;

  2. гуглите и пытаетесь сами во всем разобраться;

  3. повторяете за мной и пользуетесь стандартными инструментами специалистов по контекстной рекламе и интернет-маркетологов (например, Excel), а заодно повышаете свою квалификацию.

Хотя мы будем работать напрямую с API Яндекса, никакие навыки программирования не понадобятся.Получить координаты точек из аудитории можно в Excel, но интереснее увидеть их на карте, поэтому предлагаю воспользоваться Power BI. Он покажет их прямо на дашборде (в Excel все аналогично, но о нем – в самом конце).

Устанавливаем Power BI

Скачайте и установите Power BI Desktop. Программа только для Windows, поэтому маководам нужно использовать Parallels Desktop. Регистрация не обязательна: и без нее все замечательно работает.

Шаг 1. Получаем токен для доступа к API Яндекса

Токен – это своего рода пароль, который помогает API Яндекса вас узнавать и отвечать на запросы вашей программы, предоставляя нужные данные. Чтобы его получить, нужно зарегистрировать новое приложение по этой инструкции или воспользоваться моей ссылкой для получения токена.

Но где же моя ссылка? Хочу предупредить: полученный по ссылке токен категорически не рекомендуется давать никому, даже мне. Его обладатель получит доступ к чтению статистики и изменению Яндекс.Метрики, Яндекс.Аудиторий и Яндекс.Директа.

Узнаю ли я ваш токен без вашего ведома? Нет. Вы получите его на странице Яндекс (убедитесь сами по адресной строке), поэтому токен увидите только вы и сам Яндекс.

Сможете ли вы отключить или поменять токен? Да. Достаточно поменять пароль аккаунта Яндекс или отозвать доступ на странице Яндекс.Паспорта в разделе «Входы и устройства» > «Устройства, сервисы и программы».

Зарегистрируйте собственное предложение (на самом деле это просто) или пройдите по этой ссылке на страницу авторизации Яндекса.

Убедитесь, что вы залогинены в нужном аккаунте, и разрешите доступ к нему для приложения Power BI connector.

После нажатия на большую желтую кнопку вы увидите токен.

Пока не закрывайте эту страницу!

Шаг 2. Находим полный список аудиторий

Запустите Power BI.

  1. Нажмите нижнюю часть кнопки Get data («Получить данные»), чтобы открыть меню часто используемых источников данных.

  2. В нижней части меню выберите пункт Blank query.

Откроется редактор Power Query.

Нажмите кнопку Advanced Editor для открытия расширенного редактора. Удалите весь имеющийся там код и вместо него вставьте этот:

let
    token = "", // вставьте свой токен между двойными кавычками
                header = [

        #"Authorization" = "OAuth " & token,
        #"Content-Type" = "application/json" // для GET списка сегментов
],
    Url = "https://api-audience.yandex.ru/v1/management/segments", // список сегментов
    
    Options = [
            Headers = header // заголовки запроса
    ],
     Source = Web.Contents(Url,Options),

    Json = Json.Document(Source),
    Segments = Json[segments],
     getFieldNames = (rec as any) => let

        names = List.Transform(rec, Record.FieldNames),
        combine = List.Combine(names)
    in
        if Value.Is(rec, type record)
        then Record.FieldNames(rec)
        else List.Distinct(combine),
                unpack = 

            Table.FromRecords(Segments,getFieldNames(Segments),MissingField.UseNull)

in
    unpack

Получится примерно следующее:

Теперь во вторую строку (token = “”) вставьте полученный токен между двойными кавычками и нажмите Done. Вы увидите таблицу с сегментами Яндекс.Аудиторий, к которым есть доступ у аккаунта с этим токеном.

Шаг 3. Достаем нужное и отсекаем лишнее

Среди вас наверняка найдутся те, кому не нужно объяснять, что делать дальше. Поэтому рассказываю тем, кто редко или неуверенно пользуется Power BI. Остальные могут воспринимать этот текст как совет, а не руководство к действию.

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

Для фильтрации:

  1. В правой части заголовка колонки type нажмите кнопку с треугольником, направленным вершиной вниз, чтобы открыть меню фильтра.

  2. Оставьте галочку только напротив значения geo.

  3. Нажмите кнопку OК.

Убедитесь, что в колонке status остались только строки со статусом processed (готовые). Если это не так, отфильтруйте колонку status точно так же, как только что фильтровали колонку type. Картинка без комментариев:

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

  1. Нажмите на кнопку Manage Columns.

  2. Выберите пункт Choose Columns.

  3. В открывшемся списке оставьте только колонки name и points.

У вас останется таблица из двух колонок: name – название аудитории из интерфейса Яндекс.Аудиторий, points – список географических координат точек внутри нее.

  1. Нажмите кнопку с расходящимися в разные стороны стрелками рядом с заголовком колонки points.

  2. В появившемся меню извлечения элементов из списка выберите Expand to New Rows («Развернуть в новые строки»).

  3. Список координат по каждой аудитории распакуется в новые строки таблицы. В каждой строке будет находиться одна координата. Нужно извлечь оттуда широту и долготу.

  1. Снова нажмите расходящиеся в разные стороны стрелки в правой части заголовка колонки points. Появится меню извлечения элементов из записи.

  2. Просто нажмите OК.

  3. Вы увидите 2 новые колонки: с географической широтой и долготой.

  4. Теперь поменяйте тип данных в таблице: Переключитесь на вкладку Transform («Преобразования») и выделите все колонки, кликая по их заголовкам с зажатой кнопкой Shift (или нажмите Ctrl+A).

  5. Нажмите Detect Data Type («Определить тип данных»).

Данные готовы для загрузки в модель.

Вернитесь на вкладку Home.

  1. Нажмите Close & Apply («Закрыть и применить»).

  2. Окно Power Query Editor автоматически закроется, данные начнут загружаться в модель.

Шаг 4. Рисуем карту

Вернитесь в Power BI Desktop. 

На панели Visualizations («Диаграммы») щелкните по диаграмме Map («Карта») с изображением глобуса.

На рабочей области появится заглушка карты, на месте которой появится сама карта.

  1. Справа на панели Fields появятся загруженные данные с названиями колонок. Схватите мышкой колонку points.latitude и перетащите ее в поле Latitude («Широта») на панели Visualizations. Если в Visualizations не видите Latitude, то выберите заглушку карты щелчком мыши, и поле появится.

  2. Повторите действие, перетащив мышкой points.longitude в поле Longitude («Долгота»).

Вы увидите карту с точками:

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

Срезы (слайсеры)

Схватите мышкой название колонки name и перетащите его в любое свободное место на рабочей области.Как только вы отпустите мышку, Power BI создаст новую диаграмму Table («Таблица») со списком аудиторий.

Не снимая выделения с таблицы аудиторий, щелкните мышкой по кнопке Slicer («Срезы») на панели Visualizations.

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

Больше не нужно гадать!

Шаг 5. Работаем в Excel

Шаги 2 и 3 можно сделать в Excel начиная с 2016-й версии (вообще можно с 2012-й, но понадобится что-то установить – гугл в помощь).Мне не нужно заново повторять эти шаги, поэтому просто копирую все, что сделал в Power BI. Сначала в Power BI нажимаю кнопку Transform data («Преобразовать данные»).

Открывается уже знакомый редактор запросов Power Query Editor, где:

  1. Выбираю нужный запрос.

  2. Захожу в расширенный редактор.

  3. Копирую весь имеющийся там код в буфер обмена.

Показываю на примере Excel 2019 для Windows.

  1. Переключитесь на вкладку «Данные».

  2. Нажмите «Получить данные» для открытия контекстного меню.

  3. Выберите группу «Из других источников».

  4. Выберите пункт «Пустой запрос».

Откроется редактор Power Query.

  1. Нажмите «Расширенный редактор».

  2. Замените код в окне расширенного редактора на скопированный из Power BI или из начала статьи.

  3. Нажмите «Готово».

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

  1. Нажмите «Изменить учетные данные», появится окно «Доступ к веб-содержимому». 

  2. Нажмите «Подключение».

Появится таблица, аналогичная таблице в Power Query. Нажмите «Закрыть и загрузить», и данные загрузятся на лист.

Что делать с ними в Excel? Можно добавлять в каждую аудиторию по одной точке и получить сервис прямого геокодирования, где адрес превращается в географические координаты (но есть и более удобные инструменты, о которых можем поговорить потом).

На самом деле в Excel можно делать почти все то же самое, что и в Power BI. Например, напрямую работать с API Яндекса. Сегодня мы научились загружать аудитории, но можно и подключиться к Яндекс.Метрике или получить статистику из Яндекс.Директ.

Заключение

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

API Яндекс.Директа – это интерфейс рекламной системы для разработчиков программ. Он позволяет автоматизировать работу с Яндекс.Директ и использовать все его функции – от получения статистики до создания рекламных кампаний с нуля. И всё абсолютно бесплатно.

Результат работы с API – ваше приложение по управлению контекстной рекламой в Яндекс.Директ с собственными настройками и алгоритмами. Кстати, для этого совсем не обязательно быть профи в программировании – достаточно базовых знаний PHP или Python.

Как всё это применять и что нужно, чтобы начать работу – смотрите в этой статье.

Для чего нужен API Яндекс.Директ

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

  • Массовое создание и редактирование кампаний, объявлений и ключевых фраз;
  • Управление ставками;
  • Получение статистики по показам и кликам;
  • Прогноз бюджета.

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

Вы разрабатываете что-то наподобие Директ Коммандера. Эта программа – готовое решение Яндекса на основе API Яндекс.Директа. Как её применять, смотрите руководство по старой и новой версиям.

Приложения, созданные по API Яндекс.Директа, рассчитаны на пользователей, у которых есть аккаунт в Директе. Это прямые рекламодатели, агентства и их клиенты с доступом только на чтение (могут только получать и просматривать данные) или на редактирование (они получают в API все те же самые функции, что в интерфейсе).

Структура API

По сути API Директа – это набор сервисов, каждый из которых привязан к конкретному классу объектов и имеет отдельный URL. Объекты API взаимосвязаны между собой, как показано на скриншоте:

API Яндекс.Директ – структура API

Изображение из руководства Яндекса для разработчиков

Сервисы верхнего уровня – Campaign и AdGroup. Первый содержит настройки рекламной кампании, второй нужен для работы с группами объявлений.

На следующем уровне – сервисы Ad (параметры объявления), Keyword (ключевые фразы), Audience Target (условия нацеливания на аудиторию) и DynamicTextAdTarget (условия нацеливания для динамических объявлений).

Далее идут сервисы для работы с элементами объявления: AdImage (изображениями), VCard (виртуальной визиткой), SitelinksSet (блоком быстрых ссылок), AdExtension (расширением к объявлению).

Для управления условиями ретаргетинга и подбора аудитории есть специальный сервис – RetargetingList.

У каждого сервиса свой набор методов для выполнения операций с его объектами. Основные методы, которые доступны для всех объектов – это добавление (add), изменение параметров (update), удаление (delete) и получение параметров (get).

Есть также специфические методы, которые поддерживают определенные объекты. Например, отправление объявлений на модерацию (moderate) – метод для сервиса Ads. Весь список доступных методов по областям применения смотрите в документации API.

Итак, с чего начать, чтобы разработать собственное приложение для работы с контекстной рекламой в Яндекс.Директе? Во-первых, нужен доступ к API. Далее рассмотрим пошагово, как его получить.

Шаг 1: создание и регистрация приложения на Яндекс.OAuth

Авторизуйтесь в Яндекс.Директе. Используйте для этого аккаунт разработчика – именно от этого имени ваше приложение будет выполнять запросы и управлять данными.

Перейдите по ссылке oauth.yandex.ru. Нажмите кнопку «Зарегистрировать новое приложение»:

API Яндекс.Директ – переход к регистрации нового приложения

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

Далее вы попадаете на форму «Создание приложения», где нужно указать все его необходимые параметры:

API Яндекс.Директ – форма создания приложения

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

В блоке «Платформы» отметьте галочкой «Веб-сервисы»:

API Яндекс.Директ – платформы для приложения

Появится поле адреса. В нем вы указываете, куда направлять пользователя после того, как он разрешил или отказал приложению в доступе. Адресов Callback URI может быть несколько, например, для тестового и боевого режима.

На этапе создания приложения нажмите ссылку «Подставить URL для разработки».

API Яндекс.Директ – адрес перенаправления пользователя

В поле появится тестовый адрес, который позволит получать отладочные токены вручную. Они нужны для проверки работы приложения, подробнее об этом далее в статье.

В блоке «Доступы» выберите «Яндекс.Директ» и отметьте «Использование API Яндекс.Директа»:

API Яндекс.Директ – выбор доступа

Завершите создание приложения:

API Яндекс.Директ – завершение регистрации

На этом регистрация закончена. При этом OAuth-сервер Яндекса сразу же генерирует и показывает на странице идентификатор и пароль приложения.

API Яндекс.Директ – идентификатор и пароль приложения

Они понадобятся вам далее.

Шаг 2: создание заявки на доступ

В аккаунте Яндекс.Директа долистайте до нижнего меню и перейдите по ссылке «API»:

API Яндекс.Директ – переход к настройкам API

Далее нажмите «Получить доступ к API»:

API Яндекс.Директ – ссылка на получение доступа к API

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

При первом входе нужно принять пользовательское соглашение:

API Яндекс.Директ – пользовательское соглашение

На странице «Настройки API» перейдите на вкладку «Мои заявки», чтобы создать и отправить заявку на доступ к API. Нажмите кнопку «Новая заявка» и выберите её тип.

API Яндекс.Директ – кнопка для создания заявки

Тестовый доступ – это ограниченный доступ к API, то есть только к Песочнице – тестовой среде для отладки приложений. Она имитирует работающие рекламные кампании, их достаточно для того, чтобы протестировать и отладить приложение. Полный доступ (боевой) дает возможность управлять реальными рекламными кампаниями клиентов.

Так как приложение еще не разработано, создайте заявку на тестовый доступ. Для этого:

1) Из выпадающего списка выберите идентификатор, который получили после регистрации приложения на OAuth-сервере:

API Яндекс.Директ – создание заявки на доступ

2) Укажите email для связи со службой поддержки;

3) Заполните остальные данные о приложении по максимуму – укажите, для чего оно предназначено, его основные функции и возможности и т.д.:

API Яндекс.Директ – параметры приложения в заявке

4) Подтвердите согласие с пользовательским соглашением и отправьте заявку.

API Яндекс.Директ – согласие с правилами разработки

Статус заявки отслеживайте здесь же – на вкладке «Мои заявки» в настройках. Дождитесь её одобрения – это может занять до 7 дней. Только после этого можно начинать разрабатывать приложение. В случае отклонения – узнайте причины и исправьте ошибки.

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

На вкладке «Мои приложения» можно увидеть, какие приложения уже имеют доступ к аккаунту Яндекс.Директ через API. В том числе, если вы использовали Директ.Коммандер, он появится в этом списке:

API Яндекс.Директ – список приложений, у которых есть доступ к аккаунту

Шаг 3: создание тестового пользователя и тестовых данных для него

1) Зарегистрируйте аккаунт тестового пользователя в Яндекс.Директе;

2) Создайте от его имени рекламную кампанию в интерфейсе Яндекс.Директа – достаточно одного объявления с одним ключевиком, чтобы получить доступ к API;

3) В разделе API интерфейса Директа нажмите ссылку «Получить доступ к API» и примите пользовательское соглашение;

4) Включите песочницу – среду для отладки приложения, где можно управлять тестовыми кампаниями без реальных показов и внесения средств.

Для этого откройте вкладку «Песочница» на странице настроек API и начните ею пользоваться:

API Яндекс.Директ – использование песочницы

В следующем окне задайте параметры песочницы:

API Яндекс.Директ – настройки песочницы

Поставьте галочку «Создать тестовые кампании». Если вы выбрали роль «Клиент» создаются три кампании. Для роли «Агентство» – 3 клиента с 3 кампаниями, их логины формируются автоматически. На одну кампанию каждого клиента зачисляется некоторая сумма.

Включение флажка «Общий счет» создает клиента с подключенным общим счетом. Для агентства опция недоступна.

Нажмите «Продолжить», чтобы начать управлять песочницей.

Внимание! Если сменить параметры, все данные удаляются. Нужно создавать песочницу заново.

5) От имени тестового пользователя получите отладочный токен. С помощью него можно проверять работу приложений.

Когда пользователь авторизуется в Яндекс.Директе и нажимает кнопку «Подтвердить», то есть дает доступ к своим данным приложения, сервер Яндекса генерирует токен и передает его приложению.

Как всё происходит:

  • Приложение направляет пользователя на страницу Яндекс.OAuth;
  • На этой странице пользователь разрешает доступ к своим данным приложению;
  • Яндекс.OAuth перенаправляет пользователя на адрес, указанный в поле Callback URL. Код подтверждения или описание ошибки передается в параметре URL перенаправления;
  • Приложение получает адрес перенаправления и извлекает код подтверждения;
  • Приложение отправляет POST-запрос с этим кодом;
  • Яндекс.OAuth возвращает токен в теле ответа.

Если объяснять с технической стороны, запрос к API выполняется по протоколу HTTPS методом POST (отправление данных). В этом запросе содержится HTTP-заголовок с токеном пользователя, от имени которого осуществляется запрос. Ответ содержит заголовок RequestId – это уникальный идентификатор запроса.

Некоторые приложения (например, консольные или установленные на телевизорах Smart TV) не могут получить код подтверждения из URL. В этом случае пользователь самостоятельно его получает от Яндекс.OAuth и вводит в приложении или на странице авторизации.

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

Далее вы выполняйте запросы к песочнице. Вот пример запроса:

API Яндекс.Директ – пример запроса к песочнице

Практика использования API Яндекс.Директ

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

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

Отчет содержит ту же статистику, которая доступна в сервисе Яндекс Wordstat за прошедший месяц.

Ограничения:

  • За сутки можно получить статистику для тысячи фраз;
  • На сервере хранится максимум 5 отчетов по всем кампаниям;
  • Отчеты хранятся на сервере в течение 5 часов, а затем автоматически удаляются.

Так выглядит структура входных данных в формате JSON:

{

   «method»: «CreateNewWordstatReport»,

   «param»: {

      /* NewWordstatReportInfo */

      «Phrases«: [

         (string)

         …

      ],

      «GeoID«: [

         (int)

         …

      ]

   }

}

Phrases – это массив ключевых фраз, по которым нужно получить статистику поисковых запросов (добавить можно не более 10). минус-фразы из нескольких слов пишите в скобках, например: холодильник -морозильник -(морозильная камера) -ремонт.

GeoID – идентификаторы регионов, по которым нужно получить статистику поисковых запросов. Можно исключить регион, поставив минус. Если вы не указали этот параметр, либо указали только минус-регионы, либо минус-регионы совпадают c плюс-регионами, статистика выдается по всем регионам.

Вообще в API Яндекс.Директа можно решать самые разнообразные задачи, например:

— Интегрировать функции Яндекс.Директ и данные из собственной базы.

Примеры применения: автоматическое добавление в ключевые фразы названий брендов или моделей товаров, остановка / возобновление показов объявлений в зависимости от наличия товаров на складе, обновление текстов объявлений при изменении прайс-листа. И многое другое, в зависимости от данных, которые у вас есть;

— A/B-тестирование объявлений.

Принцип тот же, что в интерфейсе: в самом начале все варианты из группы объявлений показываются равномерно. По мере накопления статистики система выбирает объявление с самым высоким CTR (самое привлекательное по мнению целевой аудитории) и показывает его чаще;

— Мониторинг и анализ эффективности рекламных кампаний.

Можно настроить автоматическое получение сводной и детальной статистики по показам, кликам, конверсиям и другим показателям и выгрузку её в сторонние программы (системы поддержки принятия решений, системы финансового учета и т.д.)

Все примеры использования API смотрите в меню «Практика использования» по ссылке.

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

Хотите тоже написать статью для читателей Yagla? Если вам есть что рассказать про маркетинг, аналитику, бизнес, управление, карьеру для новичков, маркетологов и предпринимателей. Тогда заведите себе блог на Yagla прямо сейчас и пишите статьи. Это бесплатно и просто

API Яндекс.Директа это интерфейс рекламной системы для программирования контекстной рекламы. С помощью данного сервиса можно довести работу с Яндекс.Директом до автоматизма, а также совершенно бесплатно воспользоваться всеми функциями этого сервиса – от создания рекламы с нуля до получения статистических данных. Теперь это возможно не только для профессионалов, но и для тех, кто владеет только базовыми знаниями Python и PHP.

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

Такой инструмент, как API позволит сгенерировать приложение для автоматического выполнения всех нужных вам рутинных операций. Также в нём будет возможность создавать удобные инструменты для рекламных кампаний. Автоматизировать получится почти всё, вплоть до обновления цены за один клик по выбранному вами алгоритму.

Созданные с помощью API Яндекс-сервиса программы рассчитаны на тех пользователей, у которых уже есть аккаунт в сервисе: рекламодателей, рекламные агентства и их клиентов, которым открыт только доступ для просмотра. Тем клиентам, которым открыт доступ к редактированию материала, в API доступны такие же функции, как и в интерфейсе.

Структура API

Фактически, API Яндекс.Директа является набором сервисов. Каждый из них имеет свой URL и привязан к определённому классу объектов. API-объекты связаны между собой таким образом:


К верхнему уровню относятся сервисы AdGroup и Campaign. AdGroup необходим для работы с группами объявлений, а в сервисе Campaign содержатся настройки для рекламных кампаний.

Сервисы следующего уровня помогут работать с элементами рекламных объявлений.

Также имеется специальный сервис для подбора рекламной аудитории – RetargetingList.
Для начала работы с контекстной рекламой в Яндекс.Директе необходим доступ к API. Рассмотрим алгоритм его получения.

Шаг 1. Создание и регистрация приложения на Яндекс.OAuth

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

Пройдя по ссылке oauth.yandex.ru, кликните «Зарегистрировать новое приложение».


Вы попадаете в раздел «Создание приложения». В предложенной форме укажите необходимые вам параметры.


Обязательные для заполнения поля помечены звёздочкой. Однако максимальный объём информации о приложении сделает его более прозрачным для будущих клиентов.

В блоке «Платформы» необходимо выбрать графу «Веб-сервисы».


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

При создании приложения нажмите «Подставить URL для разработки».


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

В блоке «Доступы» вам нужно выбрать «Яндекс.Директ» и отметить «Использование API Яндекс.Директа».


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


Регистрация окончена. Сервер Яндекса тут же сгенерирует и покажет ID приложения и пароль для входа в него.

Шаг 2. Создание заявки для доступа

В нижнем меню аккаунта сервиса перейдите по ссылке «API».

Затем необходимо нажать «Получить доступ к API».

Потребуется принять пользовательское соглашение.

На странице «Настройки API» для того, чтобы создать и отправить заявку на доступ в API нужно будет перейти в раздел «Мои заявки», затем нажать «Новая заявка» и выбрать её тип.


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

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


2. указать адрес электронной почты для связи со техподдержкой;
3. заполнить дополнительные данные о программе с указанием его предназначения, основных функций и возможностей;


4. подтвердить вашу заявку Пользовательским соглашением и отправить её.


Требуется дождаться одобрения заявки, что может занять до 7 дней. В случае отказа нужно узнать её причины и исправить недостатки. Отслеживать статус заявки можно в разделе «Мои заявки».

Во вкладке «Мои приложения» вы увидите, какие программы уже имеют доступ к аккаунту через API.

Шаг 3. Создание тестового пользователя и данных для него

1. Регистрируете тестовый аккаунт в Яндекс.Директе
2. Создаёте тестовую рекламную кампанию – достаточно всего одного объявления с одним ключевиком.
3. В Директе, в разделе API нажимаете «Получить доступ к API».
4. Включаете так называемую песочницу – среду для наладки программы, в которой вы можете управлять тестовой кампанией.


5. В качестве тестового пользователя получаете токен для отладки.

Большинство рекламодателей и специалистов по настройке рекламы знают, зачем нужны Яндекс.Аудитории. Один из самых востребованных вариантов – сегменты на основе геолокации. Что может быть проще? Рисуете на карте полигоны или загружаете адреса, указываете радиусы и задаете условия взаимодействия людей с локациями.

Через несколько часов аудитории готовы: они расскажут про ваш бизнес всем, кто подходит под критерии и пользуется интернетом. Но проходит время. Люди, входившие в аудитории, оказываются недоступны. Или вы получаете доступ к аудитории, созданной кем-то другим. И вот вы уже не помните и не понимаете, вокруг каких локаций и с какими условиями настроены аудитории, даже если они понятно названы. Знакомая ситуация?

Возможности веб-интерфейса Яндекс.Аудиторий по работе с готовыми сегментами сильно ограничены. Максимум вы можете:

  • найти похожих пользователей,
  • поделиться сегментом с кем-нибудь,
  • придумать ему другое название,
  • удалить.

Первые 3 действия требуют четкого понимания того, что именно содержится внутри. Поэтому ревизия давно забытых или чужих аудиторий нередко заканчивается действием 4 и созданием нового сегмента с названием, «по которому точно никогда не забуду, кто там находится».

Вспоминаем все

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

  1. зовете программиста, который покажет свой кунг-фу Python этому Яндексу;
  2. гуглите и пытаетесь сами во всем разобраться;
  3. повторяете за мной и пользуетесь стандартными инструментами специалистов по контекстной рекламе и интернет-маркетологов (например, Excel), а заодно повышаете свою квалификацию.

Хотя мы будем работать напрямую с API Яндекса, никакие навыки программирования не понадобятся.Получить координаты точек из аудитории можно в Excel, но интереснее увидеть их на карте, поэтому предлагаю воспользоваться Power BI. Он покажет их прямо на дашборде (в Excel все аналогично, но о нем – в самом конце).

Устанавливаем Power BI

Скачайте и установите Power BI Desktop. Программа только для Windows, поэтому маководам нужно использовать Parallels Desktop. Регистрация не обязательна: и без нее все замечательно работает.

Шаг 1. Получаем токен для доступа к API Яндекса

Токен – это своего рода пароль, который помогает API Яндекса вас узнавать и отвечать на запросы вашей программы, предоставляя нужные данные. Чтобы его получить, нужно зарегистрировать новое приложение по этой инструкции или воспользоваться моей ссылкой для получения токена.

Но где же моя ссылка? Хочу предупредить: полученный по ссылке токен категорически не рекомендуется давать никому, даже мне. Его обладатель получит доступ к чтению статистики и изменению Яндекс.Метрики, Яндекс.Аудиторий и Яндекс.Директа.

Узнаю ли я ваш токен без вашего ведома? Нет. Вы получите его на странице Яндекс (убедитесь сами по адресной строке), поэтому токен увидите только вы и сам Яндекс.

Сможете ли вы отключить или поменять токен? Да. Достаточно поменять пароль аккаунта Яндекс или отозвать доступ на странице Яндекс.Паспорта в разделе «Входы и устройства» > «Устройства, сервисы и программы».

Зарегистрируйте собственное предложение (на самом деле это просто) или пройдите по этой ссылке на страницу авторизации Яндекса.

Убедитесь, что вы залогинены в нужном аккаунте, и разрешите доступ к нему для приложения Power BI connector.

После нажатия на большую желтую кнопку вы увидите токен.

Пока не закрывайте эту страницу!

Шаг 2. Находим полный список аудиторий

Запустите Power BI.

  1. Нажмите нижнюю часть кнопки Get data («Получить данные»), чтобы открыть меню часто используемых источников данных.
  2. В нижней части меню выберите пункт Blank query.

Откроется редактор Power Query.

Нажмите кнопку Advanced Editor для открытия расширенного редактора. Удалите весь имеющийся там код и вместо него вставьте этот:

let

    token = «», // вставьте свой токен между двойными кавычками

                header = [

        #»Authorization» = «OAuth » & token,

        #»Content-Type» = «application/json» // для GET списка сегментов

],

    Url = «https://api-audience.yandex.ru/v1/management/segments», // список сегментов

    Options = [

            Headers = header // заголовки запроса

    ],

     Source = Web.Contents(Url,Options),

    Json = Json.Document(Source),

    Segments = Json[segments],

     getFieldNames = (rec as any) => let

        names = List.Transform(rec, Record.FieldNames),

        combine = List.Combine(names)

    in

        if Value.Is(rec, type record)

        then Record.FieldNames(rec)

        else List.Distinct(combine),

                unpack = 

            Table.FromRecords(Segments,getFieldNames(Segments),MissingField.UseNull)

in

    unpack

Получится примерно следующее:

Теперь во вторую строку (token = “”) вставьте полученный токен между двойными кавычками и нажмите Done. Вы увидите таблицу с сегментами Яндекс.Аудиторий, к которым есть доступ у аккаунта с этим токеном.

Шаг 3. Достаем нужное и отсекаем лишнее

Среди вас наверняка найдутся те, кому не нужно объяснять, что делать дальше. Поэтому рассказываю тем, кто редко или неуверенно пользуется Power BI. Остальные могут воспринимать этот текст как совет, а не руководство к действию.

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

Для фильтрации:

  1. В правой части заголовка колонки type нажмите кнопку с треугольником, направленным вершиной вниз, чтобы открыть меню фильтра.
  2. Оставьте галочку только напротив значения geo.
  3. Нажмите кнопку OК.

Убедитесь, что в колонке status остались только строки со статусом processed (готовые). Если это не так, отфильтруйте колонку status точно так же, как только что фильтровали колонку type. Картинка без комментариев:

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

  1. Нажмите на кнопку Manage Columns.
  2. Выберите пункт Choose Columns.
  3. В открывшемся списке оставьте только колонки name и points.

У вас останется таблица из двух колонок: name – название аудитории из интерфейса Яндекс.Аудиторий, points – список географических координат точек внутри нее.

  1. Нажмите кнопку с расходящимися в разные стороны стрелками рядом с заголовком колонки points.
  2. В появившемся меню извлечения элементов из списка выберите Expand to New Rows («Развернуть в новые строки»).
  3. Список координат по каждой аудитории распакуется в новые строки таблицы. В каждой строке будет находиться одна координата. Нужно извлечь оттуда широту и долготу.

  1. Снова нажмите расходящиеся в разные стороны стрелки в правой части заголовка колонки points. Появится меню извлечения элементов из записи.
  2. Просто нажмите OК.
  3. Вы увидите 2 новые колонки: с географической широтой и долготой.
  4. Теперь поменяйте тип данных в таблице:Переключитесь на вкладку Transform («Преобразования») и выделите все колонки, кликая по их заголовкам с зажатой кнопкой Shift (или нажмите Ctrl+A).
  5. Нажмите Detect Data Type («Определить тип данных»).

Данные готовы для загрузки в модель.

Вернитесь на вкладку Home.

  1. Нажмите Close & Apply («Закрыть и применить»).
  2. Окно Power Query Editor автоматически закроется, данные начнут загружаться в модель.

Шаг 4. Рисуем карту

Вернитесь в Power BI Desktop. 

На панели Visualizations («Диаграммы») щелкните по диаграмме Map («Карта») с изображением глобуса.

На рабочей области появится заглушка карты, на месте которой появится сама карта.

  1. Справа на панели Fields появятся загруженные данные с названиями колонок. Схватите мышкой колонку points.latitude и перетащите ее в поле Latitude («Широта») на панели Visualizations. Если в Visualizations не видите Latitude, то выберите заглушку карты щелчком мыши, и поле появится.
  2. Повторите действие, перетащив мышкой points.longitude в поле Longitude («Долгота»).

Вы увидите карту с точками:

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

Срезы (слайсеры)

Схватите мышкой название колонки name и перетащите его в любое свободное место на рабочей области.Как только вы отпустите мышку, Power BI создаст новую диаграмму Table («Таблица») со списком аудиторий.

Не снимая выделения с таблицы аудиторий, щелкните мышкой по кнопке Slicer («Срезы») на панели Visualizations.

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

Больше не нужно гадать!

Шаг 5. Работаем в Excel

Шаги 2 и 3 можно сделать в Excel начиная с 2016-й версии (вообще можно с 2012-й, но понадобится что-то установить – гугл в помощь).Мне не нужно заново повторять эти шаги, поэтому просто копирую все, что сделал в Power BI. Сначала в Power BI нажимаю кнопку Transform data («Преобразовать данные»).

Открывается уже знакомый редактор запросов Power Query Editor, где:

  1. Выбираю нужный запрос.
  2. Захожу в расширенный редактор.
  3. Копирую весь имеющийся там код в буфер обмена.

Показываю на примере Excel 2019 для Windows.

  1. Переключитесь на вкладку «Данные».
  2. Нажмите «Получить данные» для открытия контекстного меню.
  3. Выберите группу «Из других источников».
  4. Выберите пункт «Пустой запрос».

Откроется редактор Power Query.

  1. Нажмите «Расширенный редактор».
  2. Замените код в окне расширенного редактора на скопированный из Power BI или из начала статьи.
  3. Нажмите «Готово».

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

  1. Нажмите «Изменить учетные данные», появится окно «Доступ к веб-содержимому». 
  2. Нажмите «Подключение».

Появится таблица, аналогичная таблице в Power Query. Нажмите «Закрыть и загрузить», и данные загрузятся на лист.

Что делать с ними в Excel? Можно добавлять в каждую аудиторию по одной точке и получить сервис прямого геокодирования, где адрес превращается в географические координаты (но есть и более удобные инструменты, о которых можем поговорить потом).

На самом деле в Excel можно делать почти все то же самое, что и в Power BI. Например, напрямую работать с API Яндекса. Сегодня мы научились загружать аудитории, но можно и подключиться к Яндекс.Метрике или получить статистику из Яндекс.Директ.

Заключение

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

До новых встреч, Digital Lab!

Яндекс Метрика – популярный в среде маркетологов, арбитражников, разработчиков и владельцев сайтов сервис веб-аналитики. После установки Яндекс.Метрики пользователь начнет получать исчерпывающий набор статистических данных, позволяющих получить полное представление о посещаемости сайта.

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

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

Естественно, чтобы научиться работать с API Яндекс.Метрикой, необходимо уметь программировать на таких языках, как PHP, Java или Python. Однако, поскольку API Яндекс.Метрики интегрирован в различные веб-платформы, в принципе работать с ним могут даже вебмастера, не имеющие или имеющие минимальные навыки программирования. Например, чтобы на сайте, работающем под управлением какой-либо популярной CMS (Drupal, Joomla, WordPress и т.д.) создать страницу, отображающей статистику посещаемости в реальном времени, вебмастеру достаточно установить и настроить соответствующий модуль. Полный список всех веб-платформ, в которые интегрирован API Яндекс.Метрики, вы можете найти здесь.

Виды API Яндекс.Метрики

API Яндекс.Метрики состоит из четырех независимых друг от друга программных интерфейсов – API управления, API отчетов, API совместимый с Google Analytics Core Reporting API и Logs API.

API управления

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

API отчетов

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

API, совместимый с Google Analytics Core Reporting API

Для тех, кому ранее приходилось работать с API Google Analytics Core Reporting этот раздел API Яндекс.Метрики покажется самым удобным, поскольку при формировании запросов используются те же самые названия параметров. Однако по сравнению с API Google Analytics Core Reporting функционал API Яндекс.Метрики ограничен. Текущая (на начало 2022 г.) реализация API Яндекс.Метрики совместима с третьей версией API Google Analytics.

Logs API – работа с неагрегированными данными

Как было указано выше, API отчетов позволяет получить статистические данные, уже обработанные и представленные в виде группировок и метрик. Logs API дает возможность получить доступ к необработанным, «сырым» статистическим данным, из которых программист может самостоятельно сформировать статистический отчет, обрабатывая и анализируя исходные данные.

Ограничения и недостатки API Яндекс.Метрики

API Яндекс.Метрики в целом совершенный и удобный инструмент автоматизации получения статистических отчетов, но, как и любой веб-сервис, он имеет свои недостатки и ограничения:

  • авторизационный OAuth-токен, который необходим для работы с API Яндекс.Метрики (см. следующий параграф) привязан к аккаунту на Яндексе. В случае возникновения любых проблем с аккаунтом (взлом, сброс паролей, передача прав) все OAuth-токены, ассоциированные с этим аккаунтом немедленно аннулируются, восстановить скомпрометированный токен или автоматически получить новый невозможно;
  • чтобы полностью освоить API Яндекс.Метрики, необходимо иметь некоторые навыки программирования;
  • функционал API Яндекс.Метрики, совместимый с Google Analytics Core Reporting API сильно ограничен по сравнению с оригиналом и, по отзывам пользователей, содержит баги;
  • некоторые возможности API Яндекс.Метрики плохо документированы;
  • количество запросов от одного пользователя ограничено 5-тью тысячами в сутки, также с одного IP-адреса за одну секунду допускается делать максимум 30 запросов.

Начало работы с API Яндекс.Метрика

Чтобы начать работу с API Яндекс.Метрики, необходимо зарегистрировать приложение и получить авторизационный OAuth-токен (его еще называют отладочный OAuth-токен). Для этого перейдите на главную страницу API Яндекс.Метрики – https://yandex.ru/dev/metrika/ и щелкните по кнопке «Получить OAuth-токен»:

Кнопка Получить OAuth-токен

На странице https://oauth.yandex.ru/client/new/ задайте название вашего приложения, а также, по желанию, дайте его краткое описание и загрузите иконку (описание и иконка могут быть полезными, если вы собираетесь использовать другие сервисы Яндекса и создавать новые приложения):

Создание приложения

Прокрутите страницу вниз для перехода в раздел Платформы. Выберите опцию «Веб-сервисы» и щелкните по полю «Подставить URL для разработки» для определения Callback URL:

Поле для подстановки URL

Далее в разделе «Доступы*» найдите секцию Яндекс.Метрика. Отметьте флажком чекбокс «Получение статистики, чтение параметров своих и доверенных счётчиков»:

Чекбокс в секции Яндекс Метрика

Прокрутите страницу до конца и щелкните по кнопке «Создать приложение»:

Создание приложения

После этого будет создано новое приложение Яндекс, и вы получите его идентификатор и пароль:

Пароль к приложению

Как идентификатор, так и пароль представляют собой последовательность из 32 букв и цифр. Вот так примерно могут выглядеть идентификатор и пароль зарегистрированного приложения Яндекс:

ID: 1de44f65f12527e866fe45c0ac24f486

Пароль: 4824afc14f683b9kd77fd475c5g79e1u

Скопируйте и сохраните в надежном месте идентификатор и пароль вашего приложения. Чтобы изменить параметры созданного приложения щелкните по кнопке «Редактировать» – так вы сможете расширять доступы, менять пароль и т.д.

Получение отладочного OAuth-токена

Чтобы получить авторизационный (отладочный) OAuth-токен, перейдите по следующей ссылке (вы должны быть авторизованы в системе Yandex):

https://oauth.yandex.ru/authorize?response_type=token&client_id=<ID_вашего_приложения>

То есть, если идентификатор вашего приложения такой, как показанный выше (1de44f65f12527e866fe45c0ac24f486), то ссылка будет выглядеть так:

https://oauth.yandex.ru/authorize?response_type=token&client_id=1de44f65f12527e866fe45c0ac24f486

После перехода по вышеописанной ссылке вы окажетесь на странице https://oauth.yandex.ru/verification_code#access_token=<ваш_отладочный_токен>&token_type=bearer&expires_in=31536000

Отладочный токен

Отладочный OAuth-токен – это последовательность из 39 знаков, он выглядит примерно так:

AQAAAAAISvplAAX36u8Ulq5bkUCCkjYcGZVf2hY

Время жизни отладочного OAuth-токена составляет 365 дней. Скопируйте и сохраните свой отладочный токен. После получения OAuth-токена можно приступить к непосредственной работе с API Яндекс Метрики, но сначала давайте разберемся в используемых форматах и терминологии.

Коротко о визитах, хитах, целях и уникальных посетителях

Чтобы научиться работать с отчетами Яндекс.Метрики, необходимо хорошо понимать смысл используемых терминов. Центральное место в принятой терминологии занимают визиты, хиты, цели и пользователи (уникальные посетители).

Пользователем или уникальным посетителем называется посетитель, зашедший на сайт с одного и того же браузера за определенный период времени, например за сутки. Уникальность определяется по файлу cookie, сохраненному на устройстве пользователя.

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

Хит – любое значимое действие, совершенное пользователем на сайте. Хитом может считаться, например:

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

Цель (goal) – определенное действие, совершенное пользователем, которое владелец сайта считает для себя значимым. Целью может быть, например, заполнение и отправка формы, просмотр видео, щелчок по рекламной ссылке или баннеру, покупка рекламируемого товара и т.д. Вот тут подробный гайд по настройке целей.

Группировки и метрики

Метрики и группировки – важнейшие понятия API Яндекс Метрики:

  • метрики – числовые статистические данные, характеризующие посещаемость сайта. Примеры: ym:s:visits – общее количество визитов за выбранный период времени, ym:s:visitsPerDay – число визитов за один день, ym:s:pageviews – общее количество просмотренных посетителями сайта страниц за выбранный период времени, ym:s:users – общее количество пользователей (уникальных посетителей) за выбранный период и т.д.;
  • группировки – это критерии, на основании которых полученные статистические данные соединяются (группируются) в таблицы. Чтобы лучше уяснить смысл этого термина, возьмите на заметку, что в английской версии API Яндекс.Метрики для обозначения группировок используется слово dimensions – величины, измерения, размерности. Примеры: пусть известно общее количество уникальных посетителей сайта за определенный период времени (это метрика ym:s:users), тогда группировка ym:s:browser будет представлять собой таблицу, в которой общее число посетителей разбивается по строкам в соответствии с используемыми ими браузерами. Точно так же группировка ym:s:operatingSystem образует таблицу, в которой посетители распределяются в соответствии с операционными системами их устройств.

Полный список группировок и метрик с их описанием можно найти в документации Яндекс.Метрики на этой странице.

Пара слов о форматах JSON и CSV

Как уже указывалось выше, запросы к API Яндекс.Метрика возвращаются в виде отчетов в формате JSON или CSV (по выбору пользователя, нужный формат указывается в запросе). Формат JSON является форматом, используемым по умолчанию. Запросы к Яндекс Метрике также формируются на основе формата JSON.

Формат JSON изначально был разработан для языка JavaScript (аббревиатура JSON расшифровывается как JavaScript Object Notation), чтобы заменить формат XML, который слишком громоздок для работы с простыми данными. Данные в JSON кодируются в виде пар ключ – значение и легко преобразуются в массивы и объекты JavaScript и наоборот. Формат JSON быстро завоевал заслуженное признание в среде разработчиков и сейчас во всех популярных языках программирования существуют библиотеки для работы с этим форматом.

Пример данных в формате JSON: { «key1»: «value1″,»key2»: «value2″,»key3»: «value3»}

Пример преобразования строки формата JSON в массив на языке PHP:

$strJason = ‘{«key1″:»value1″,»key2″:»value2″,»key3″:»value3»}’;

$arrayPHP = json_decode($strJason, true);

print_r($arrayPHP);

Результат работы программы: Array ( [key1] => value1 [key2] => value2 [key3] => value3 )

Функция json_decode($strJason, true) с дополнительным параметром true преобразует JSON строку в ассоциативный массив PHP. Если выполнить функцию без этого дополнительного параметра (в нашем случае json_decode($strJason);), то JSON строка будет преобразована в PHP объект.

Обратный пример – преобразование ассоциативного массива PHP в строку JSON:

$arrayPHP = array(

‘key1’ => ‘value1’,

‘key2’ => ‘value2’,

‘key3’ => ‘value3’

);

$strJason = json_encode($arrayPHP);

echo $strJason;

Результат работы программы: {«key1″:»value1″,»key2″:»value2″,»key3″:»value3»}

Формат CSV – простейший формат, позволяющий преобразовать текстовые данные в таблицы. Пример исходного текста формата CSV (в нем в качестве разделителей приняты запятые):

Государство, Площадь тыс. кв. км., Столица

Великобритания, 244, Лондон

Германия, 357, Берлин

Франция, 551, Париж

Из этого текста получается такая таблица:

Государство Площадь, тыс. кв. км. Столица
Великобритания 244 Лондон
Германия 357 Берлин
Франция 551 Париж

Если в качестве разделителей выбрать знак «точка с запятой» («;») как здесь:

Государство; Площадь тыс. кв. км.; Столица

Великобритания; 244; Лондон

Германия; 357; Берлин

Франция; 551; Париж

и сохранить текст в файл с расширением *.csv , то такой документ можно будет открывать программой Microsoft Office Excel. В окне Excel созданная таблица будет выглядеть так:

Пример таблицы

Во многих языках программирования имеются встроенные функции для работы с файлами формата CSV. Например, в PHP имеется функция fgetcsv(), которая читает строки из CSV-файла, производит разбор, и возвращает найденные поля в виде списка.

Отметим также, что на основе данных в форматах JSON и CSV можно не только формировать простые таблицы, но и создавать сложные графики и схемы, используя различные популярные инструменты визуализации, такие как D3.js, Google Charts, Chart.js и др.

Работа с API Яндекс.Метрика – простые примеры

Итак, вы получили OAuth-токен и имеете счетчик Яндекс Метрики. Напишем простой скрипт на языке PHP, иллюстрирующий работу с API Яндекс.Метрика, в данном случае с API отчетов. Общий алгоритм работы с API отчетов такой:

  1. сформировать запрос к серверу Яндекса на получение выбранных статистических данных в избранном формате;
  2. полученный ответ сохранить на своем сервере в виде текстового файла с произвольным расширением;
  3. открыть сохраненный файл и произвести разбор для извлечения статистических данных;
  4. вывести или визуализировать полученные данные в виде таблиц или графиков.

Заметьте, что пункты 2 и 3 не обязательны – вы можете получить, обработать и вывести в браузере полученные от Яндекса статистические данные без сохранения. Однако, как было указано выше, Яндекс ограничивает количество запросов от одного аккаунта. Поэтому, если, например, запрос на получение статистики с сервера Яндекса начнут делать сотрудники крупной компании, лимиты на количество запросов будут быстро исчерпаны. Именно поэтому выгодней сохранить результаты запроса на собственном сервере и уже к ним обеспечить доступ сотрудникам компании.

Запросы к серверу проще всего формировать с помощью CURL. Библиотеки и расширения CURL существуют для всех популярных языков программирования.

Пример: файл ymetr.php – получение избранных метрик

<?php

// $your_OAuth_token — ваш авторизационный токен

$your_OAuth_token = ‘AQAAAAAISvplAAX36u8Ulq5bkUCCkjYcGZVf2hY’;

// $counter_ID — номер счетчика, для которого вы запрашиваете статистику

$counter_ID = ‘12345678’;

//$list_of_metrics — список метрик, по которым запрашивается статистика

// ym:s:users — число уникальных посетителей за отчетный период

// ym:s:visits — количество визитов

// ym:s:pageviews — количество просмотренных страниц

// ym:s:pageDepth – глубина просмотра

// ym:s:avgVisitDurationSeconds – среднее время визита в минутах и секундах

$list_of_metrics=’ym:s:users,ym:s:visits,ym:s:pageviews,ym:s:pageDepth,ym:s:avgVisitDurationSeconds’;

$parametrs = array(

=> $counter_ID,

‘metrics’ => $list_of_metrics,

‘date1’ => ‘yesterday’, // началоотчетногопериода

‘date2’ => ‘today’, //конец отчетного периода

//Раскомментируйте, если хотите получить статистику для определенной страницы

// ‘filters’ => «ym:pv:URL==’https://somesite.com/somedir/somepage.html ‘»,

‘pretty’ => ‘true’ //задано «удобочитаемое» форматирование вывода

);

// Формируем запрос. Запросы идут только по безопасному протоколу HTTPS

$curl_desc = curl_init(‘https://api-metrika.yandex.net/stat/v1/data/bytime?’ . urldecode(http_build_query($parametrs)));

curl_setopt($curl_desc, CURLOPT_HTTPHEADER, array(‘Authorization: OAuth ‘ . $your_OAuth_token));

curl_setopt($curl_desc, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl_desc, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl_desc, CURLOPT_HEADER, false);

// $result — результат выполнения запроса — данные в формате JSON

// если запрос не прошел $result получит значение false

$result = curl_exec($curl_desc);

curl_close($curl_desc);

if($result) // если данные получены

{

//Создаем директорию, если ее не существует

$dirname = $_SERVER[‘DOCUMENT_ROOT’] . ‘/ymetric_reports’;

if(!file_exists($dirname))

mkdir($dirname, 0777);

$current_time = date(«d-m-y_G-i-s»);

file_put_contents($dirname .»/report_». $current_time . «.json», $result);

}

?>

После копирования кода, прежде всего, введите настоящие значения для переменных $your_OAuth_token и $counter_ID (то есть замените на ваш отладочный OAuth токен и действительный номер Яндекс счетчика). Затем обратите внимание на поля date1 и date2 – начало и конец отчетного периода. Их можно вводить в формате ГГГГ-ММ-ДД, например 2022-01-25 (25 января 2022 года) или использовать условные значения today – сегодня, yesterday – вчера, NdaysAgo – N дней назад, то есть 5daysAgo – 5 дней назад, 100daysAgo – 100 дней назад и т.д. Для остальных полей оставлены значения по умолчанию.

Eсли необходимо получить статистику не для всего сайта, а для отдельной страницы, адрес которой http://somesite.com/somedir/somepage.html, то полю filters надо задать значение «ym:pv:URL==’https://somesite.com/somedir/somepage.html ‘».

Подробнее о значениях полей запроса вы можете прочитать здесь.

Скопируйте и сохраните код в файл ymetr.php. Файл ymetr.php в свою очередь сохраните в любой подходящей директории на вашем сервере.

Программа выполняет следующую работу:

  1. формирует и производит запрос к серверу api-metrika.yandex.net (запрашиваются 4 метрики ym:s:users, ym:s:visits, ym:s:pageviews, ym:ad:clicks);
  2. если результат запроса успешен, полученные статистические данные записываются в файл отчета с расширением *.json

Файл отчета имеет название report_<дата>_<время>.json, где <дата> и <время> соответствуют дате и времени записи файла. Например, report_25-01-22_14-12-21.json – файл создан 25 января 2022 года в 14 часов 12 минут 21 секунду. Файл записывается в папку ymetric_reports, которая создается в той же директории, в которую помещен файл ymetr.php.

Настройте планировщик задач на вашем севере, который бы запускал файл ymetr.php, каждые 20-30 минут (если у вас сайт с высокой посещаемостью, то ymetr.php можно запускать еще чаще, например раз в минуту). После каждого запуска программы будет создаваться новый файл отчета.

Файл read_metr.php – простейший пример извлечения метрик из полученных данных

После того, как данные были получены и сохранены на сервере в файле отчета (в нашем случае в файле report_25-01-22_14-12-21.json), его необходимо открыть и декодировать. Именно это и делает следующий код:

<?php

//header здесь только для того, чтобы русский шрифт выводился нормально

header(‘Content-type: text/html; charset=windows-1251’);

$file_path = ‘ymetric_reports/report_25-01-22_14-12-21.json’;

$json_text = file_get_contents($file_path);

$json_array = json_decode($json_text, true);

//print_r($json_array[‘totals’]);

?>

Уникальных посетителей:

<?php echo $json_array[‘totals’][0][0];?>

<br>

Визитов:

<?php echo $json_array[‘totals’][1][0];?>

<br>

Просмотренных страниц:

<?php echo $json_array[‘totals’][2][0];?>

<br>

Глубина просмотра:

<?php echo $json_array[‘totals’][3][0];?>

<br>

Среднее время визита:

<?php echo $json_array[‘totals’][4][0];?>

Скопируйте код в файл read_metr.php, который поместите в ту же директорию, что и файл ymetr.php. Теперь read_metr.php можно открыть браузером.

FAQ

Получил токен, но авторизоваться не могу, выдает ошибку – в чем может быть проблема?

Наиболее частые причины этой ситуации:
1. истекло время жизни вашего токена – чтобы решить проблему необходимо получить новый OAuth-токен;
2. возможно, вы отредактировали или даже по ошибке удалили приложение, для которого получали OAuth-токен. Например, вы изменили или добавили новое поле Callback URL, расширили права доступа и т.д. В этом случае существующий для этого приложения токен автоматически аннулируется, то есть вам необходимо получить новый OAuth-токен;
3. если вы осуществили сброс пароля вашего аккаунта на Яндексе или выбрали опцию «Выйти на всех устройствах» в паспорте Яндекса, то все ранее выданные вам OAuth-токены также аннулируются;
4. кроме того OAuth-токен по тем или иным причинам может быть отозван модераторами Яндекса. Обратитесь в службу поддержки компании, чтобы прояснить ситуацию и решить проблему.

Почему в отчетах много переходов с источником «Не определено»?

Скорее всего, на сайте неправильно установлен счетчик Яндекса. Обычная причина – отсутствие кода, обрамленного тегами «noscript» или отсутствие самих этих тегов.
Также невозможно определить источник перехода, если пользователь отключил обработку файлов cookie в своем браузере и зашел на сайт через анонимный прокси-сервер.

Что будет, если превысить квоты?

В случае превышения допустимого числа запросов работа с API Яндекс Метрикой временно блокируется. Пользователь получает ответ с HTTP кодом 429 (Too Many Requests – чересчур много запросов). Подробнее о квотах и времени разблокировки можно прочитать на соответствующей странице помощи API Яндекс Метрики.

Понравилась статья? Поделить с друзьями:
  • Амосин инструкция по применению таблетки взрослым от чего помогает отзывы
  • Инструкция по пожарной безопасности для электромонтажника
  • Дорожная карта смелое руководство для тех кто хочет найти свой путь в жизни скачать
  • 1 2 3 hikma инструкция по применению на русском языке
  • Полимеколь для ингаляций инструкция по применению детям