powerbi

Вконтакте Ads API > Power BI & Excel

Функция 7+ в 1:wink: Неофициальная обёртка для методов рекламного API Вконтакте. Выгружайте статистику рекламных кампаний Вконтакте напрямую в Power BI или Excel.

В отчётах перевел все (или большинство) англоязычных названий колонок и значений на великий и могучий (поменяйте пару строк в коде, если перевод не нужен). Старался документировать код, поэтому найдёте где это делается:wink:

Функция тестировалась в работе с API Вконтакте https://vk.com/dev/ads, но, вероятно, будет работать и с другими методами (об этом ниже)

Инструкция по работе

  1. Создайте в редакторе Power Query, встроенном в Power BI или Excel новую функцию и вставьте в неё исходный код. Переименуйте свой запрос, например, в VK
  2. Получите токен по этой инструкции или используйте имеющийся, например, от rvkstat
  3. Создайте текстовый параметр в Power BI или Excel и запишите в него токен, или просто подставьте его первым аргументом в вызове фукнции

Видео о том, как работать с коннектором

Описание параметров

Все параметры необязательные, но токен всё равно нужно получить :wink:

Параметр Тип Значение по умолчанию Описание
access_token text - Токен доступа. Получите по этой инструкции или используйте имеющийся
account_id number - Идентификатор рекламного аккаунта
client_id number - Идентификатор клиента агентского рекламного аккаунта или null, если аккаунт не агентский
level text - Уровень детализации статистики. Если не указать параметр, то будут возвращаться списки: рекламных кабинетов, клиентов, кампаний. Для получения списка объявлений используйте “adlist”. Другие допустимые значения: “office” — статистика по всему аккаунту, “client” — по клиентам, “campaign” — по кампаниям и “ad” — по объявлениям
period text “overall” Детализация периода. По-умолчанию данные суммируются за весь выбранный период статистики. Возможна детализация по месяцам “month” или по дням “day”
date_from date 0 Дата начала периода. По-умолчанию автоматически берется дата создания объекта статистики
date_to date 0 Дата окончания периода. По-умолчанию подставляется сегодняшнее число или месяц, в зависимости от значения period
method text - Методы. есть 2 встроенных значения: “demographics” - для получения демографических данных с дополнительной обработкой ответов и “postsreach” - для получения характеристик поста. Вообще сюда можно указать любую функцию API, например, ads.getFloodStats (см. примеры ниже). По сути меняет url (relative path)
ids list - Список идентификаторов. Если не указано, то в зависимости от level автоматически запрашивается список всех кампаний или объявлений для выбранного client_id. Можно подставить свои идентификаторы, соответствующие level и получить статистику выборочно
q record - Query. Можно передать список любых параметров запроса (GET-параметры запроса), что в сочетании с method позволяет обращаться к другим методам API

Примеры работы

Список рекламных кабинетов

VK(access_token)

Вызывает метод ads.getAccounts

access_token можно получить по этой инструкции или по инструкции Алексея Селезнева к функции rvkstat

Список клиентов агентства

VK(access_token,account_id)

Вызывает метод ads.getClients Обязательный параметр:

Список кампаний

VK(access_token,account_id,client_id)

Вызывает метод ads.getCampaigns Обязательные параметры:

Список рекламных объявлений

VK(access_token,account_id,client_id,"adlist")

Вызывает метод ads.getAds Обязательные параметры:

Статистика эффективности кабинета, клиентов, кампаний или объявлений

VK(access_token,account_id,client_id,"office")

Вызывает метод ads.getStatistics Обязательные параметры:

Чтобы указать детализацию статистики по датам, укажите параметр period. Например, для получения статистики по всем кампаниям с детализацией по месяцам (статистика помесячно):

VK(access_token,account_id,client_id,"campaign","month")

Чтобы ограничить дату начала и дату окончания статистики, укажите параметры date_from и date_to. Например, следующий код вернёт статистику по объявлениям за весь январь 2020 г с детализацией периода по дням (т.е. статистика за каждый день)

VK(access_token,account_id,client_id,"campaign","day",#date(2020,1,1),#date(2020,1,31))

Если не задан список идентификаторов (параметр ids), то в зависимости от значения level выполнится запрос списка всех кампаний или объявлений и их идентификаторы будут подставлены автоматически. Если же вы хотите получить статистику по кампаниям с идентификаторами 123 и 124, то перечислите их в параметре ids в виде списка:

VK(access_token,account_id,client_id,"campaign","overall",#date(2020,1,1),#date(2020,1,31),null,{123,124})

Убедитесь, что идентификаторы в списке соответствуют уровням level: если в level = “campaign”, то передавайте идентификаторы кампаний, а не объявлений, иначе API вернет ошибку, что идентификаторы не существуют или указаны неверно.

Демографическая статистика

Вызывает метод ads.getDemographics Метод работает аналогично получению статистики с помощью ads.getStatistics (это его дополнение), просто вместо общей статистики возвращает демографические данные (пол, возраст, город). Например, чтобы получить демографию по кампаниям с идентификаторами 123 и 124 за весь период их работы, вызовите функцию:

VK(access_token,account_id,client_id,"campaign",null,null,null,"demographics",{123,124})

Обязательные параметры:

Взаимодействия с рекламными записями

Например, взаимодействия (лайки, репосты, отписки, вступления и т.п.) рекламных постов кампании с идентификатором 123 за всё время можно получить следующим образом:

VK(access_token,account_id,client_id,"campaign",null,null,null,"postsreach",{123})

Вызывает метод ads.getPostsReach Обязательные параметры:

Оставшиеся “баллы API”

VK(access_token,account_id,null,null,null,null,null,"ads.getFloodStats")

Вызов метода ads.getFloodStats Обязательные параметры:

Полный список тематик объявлений

VK(access_token,account_id,null,null,null,null,null,"ads.getCategories")

Вызов метода ads.getCategories Массив v1 устарел. Смотрите v2

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

Повышение собственной производительности

Несколько советов, помогающих упростить вашу работу:

Вопросы

С вопросами и предложениями стучитесь: