Аналитика

Как перенести данные из ВКонтакте в Power BI

ВКонтакте делит первенство среди соцсетей по популярности в большинстве стран СНГ, даже несмотря на блокировку в Украине, например. В этой статье я расскажу, как с помощью написанного мной программного пакета rvkstat и коннектора R получить данные из API ВКонтакте в Microsoft Power BI. Сделать это можно даже в странах, где соцсеть официально заблокирована.

Установка программного обеспечения

Скачайте и установите актуальную версию языка R и Power BI. Это, пожалуй, самая простая часть работы. Как R, так и Power BI, при установке не требуют от вас никаких дополнительных манипуляций и настройки — просто кликайте по кнопкам Next и Ok.

Если у вас возникли трудности, смотрите короткое видео «Язык R для пользователей Excel».

Установка пакета rvkstat

Одна из сильных сторон языка R — обилие дополнительных пакетов. Один пакет состоит из функций и наборов данных, расширяющих базовые возможности R.

Установить пакет rvkstat можно стандартной командой install.packages ('rvkstat'). После установки пакета загрузите его в память. Это делается функцией library (rvkstat).

функция library(rvkstat)

Более подробно про установку дополнительных пакетов узнайте из видео «Как установить пакет на языке R из CRAN, GitHub или локальных файлов».

Авторизация в API ВКонтакте

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

Пакет rvkstat даёт несколько возможностей по авторизации. В этой статье мы рассмотрим самый простой — через вшитое в пакет приложение.

Для авторизации я рекомендую использовать функцию vkAuth().

vkAuth(
username = "ваш логин в Вконтакте",
token_path = "путь/к/папке/с/учётными/данными"
)

В аргумент username передайте ваш логин, а в token_path пропишите путь к папке, в которой будут храниться файлы с учётными данными.

Команды в RStudio запускаются сочетанием клавиш Ctrl + Enter. После запуска vkAuth() вас перенаправит в браузер, где надо предоставить необходимые разрешения.

необходимые разрешения вконтакте

Затем вас перенаправит на страницу, где сгенерируется код подтверждения авторизации:

 код подтверждения авторизации

Код скопируйте и вставьте в консоль RStudio в качества ответа на запрос: «Enter code from URL:».

Далее пакет запросит у вас разрешение на сохранение учётных данных в файл. Введите в качестве ответа на этот вопрос «y» (первая буква слова yes).

Если вы всё сделали правильно, в области R-консоли увидите такой результат:

результат в области R-консоли

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

  1. В строке «Поиск» выберите: «Изменение переменных среды».
  2. Далее с помощью кнопки «Создать» создайте две переменные среды.
  • RVK_TOKEN_PATH — путь к папке, где хранятся учётные данные;
  • RVK_USER — логин во ВКонтакте.

 с помощью кнопки «Создать» создайте две переменные среды

После создания переменных среды, авторизация в пакете будет автоматической через файл, сохранённый во время первой авторизации. Это удобно: не нужно указывать эти данные в каждой отдельной функции.

Более подробно об авторизации — в видео «Авторизация в API ВКонтакте на языке R».

Как получить данные из рекламного кабинета

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

## Подключаем пакетlibrary
(rvkstat)

## Устанавливаем id аккаунта с которым будем работать
vkSetAccountId(1600134264)

## Получаем список рекламных кампаний
ads <- vkGetAds()

## Получаем список рекламных кампаний
camps <- vkGetAdCampaigns()

## Получаем статистику по объявлениям
vk_stat_by_ads <- vkGetAdStatistics(
ids_type = "ad",
ids = ads$id,
period = "month",
date_from = "2010-01-01",
date_to = Sys.Date())

В принципе, по комментариям понятно, что делает каждая из функций в коде. Тем не менее, давайте разберём более подробно. Каждая из них позволяет указать:

  • vkSetAccountId() — рекламный аккаунт, из которого вы будете запрашивать данные. В rvkstat есть целое семейство функций vkSet*().
  • vkSetUsername — имя пользователя ВКонтакте в рамках текущей R-сессии. Если вы создали переменную среды RVK_USER, эта функция не пригодится.
  • vkSetAccountId — идентификатор рекламного аккаунта в рамках текущей R сессии.
  • vkSetAgencyId — ID агентского аккаунта в рамках текущей сессии.
  • vkSetAccessToken — авторизационный токен, если вы запрашивали его, например, функцией vkGetToken().
  • vkSetTokenPath — устанавливает путь к папке с учётными данными. Если вы создали переменную среды RVK_TOKEN_PATH, эта функция не понадобится.

Теперь функцией vkGetAds() запрашиваем список объявлений из рекламного аккаунта. Функцией vkGetAdCampaigns() запрашиваем список рекламных кампаний.

Функция vkGetAdStatistics() нужна для запроса статистики. В ней доступны следующие аргументы:

  • account_id — идентификатор аккаунта из которого нужно получить статистику. Мы его задали раньше функцией vkSetAccountId();
  • ids_type — группировка данных. Возможные варианты: по всему кабинету, по клиентам агентства, по кампаниям и по объявлениям: «office», «client», «campaign», «ad»;
  • ids — идентификаторы объектов, по которым надо получить статистику. Если в ids_type вы указали «ad», надо перечислить ID объявлений, по которым нужна статистика. Раньше мы запросили список объявлений, поэтому в этот аргумент передаём их ID через ads$id;
  • period — группировка по времени. Возможные значения здесь: «day», «week», «month», «year», «overall». В моём примере я запрашивал статистику по месяцам, но вы можете указать «day», и получить данные по дням;
  • date_from — дата начала отчётного периода в формате ГГГГ-ММ-ДД;
  • date_to — дата окончания отчётного периода. Мы указали Sys.Date(), для того, чтобы дата завершения всегда была текущим днём;
  • username — имя пользователя ВКонтакте. В нашем случае мы её задали с помощью переменной среды RVK_USER;
  • token_path — путь к папке с учётными данными. Этот аргумент мы задали через переменную среды RVK_TOKEN_PATH.

О том, как работать с рекламным кабинетом по API, смотрите в ролике «Как получить статистику рекламного кабинета ВКонтакте с помощью языка R».

Загрузка данных в Power BI

После того как вы убедитесь, что скрипт работает правильно, и в RStudio получены нужные данные, можно переносить скрипт загрузки данных в Power BI. Открываем Power BI, и переходим в раздел «Получить данные»:

раздел «Получить данные»

Переходим в группу «Другое», там выбираем коннектор «R-скрипт» и жмём кнопку «Подключить».

жмём кнопку «Подключить»

В открывшееся окно R-скрипт переносим RStudio-код, который у нас уже есть, и жмём ОК.

 переносим RStudio-код

В Power BI загрузятся три таблицы. Выбираем их, и жмём «Загрузка». Содержание таблиц:

  • camps справочник рекламных кампаний;
  • ads — справочник объявлений;
  • vk_stat_by_ads — статистика по объявлениям.

три таблицы

Важно. Возможно, в момент загрузки, вы столкнетесь с ошибкой Flood Control. Это связано с тем, что у API ВКонтакте есть лимит на количество одновременных запросов которые вы можете отправить. Power BI по умолчанию все запросы шлет параллельно, то есть одновременно.

ошибка Flood Control

Если вы столкнулись с этим лимитом, в настройках Power BI отключите параллельный запуск запросов. В этом случае загрузка данных будет дольше, но вы не столкнётесь с лимитами API.

параллельный запуск запросов

Как построить визуализацию в Power BI

Данные уже загружены в Power BI, нам остаётся настроить связи между таблицами. На основе полученной модели данных строится визуализация.

Соединяем таблицы вот так:

  1. Таблицу vk_stat_by_ads по полю id соединяем с таблицей ads.
  2. Таблицу ads по полю campaign_id, привязываем к полю id в таблице camps.

Таблицу vk_stat_by_ads по полю id соединяем с таблицей ads

Таблицу ads по полю campaign_id, привязываем к полю id в таблице camps

Теперь можно строить дашборд, используя любые визуальные элементы, доступные в Power BI.

визуальные элементы, доступные в Power BI

Эта схема поддерживает автообновление в Power BI Service, если вы используете персональный шлюз.

Видеоуроки

В статье я хотел в общих чертах показать алгоритм загрузки данных в Power BI. Если вас заинтересовал язык R и пакет rvkstat, даю полезные видеоуроки:

  1. Официальный русскоязычный плейлист пакета rvkstat на русском языке.
  2. Доклад «Как через R коннектор получить данные из ВКонтакте в Power BI».

Эти видео помогут вам углубиться в возможности rvkstat и изучить другие его возможности по работе с API ВКонтакте.

Выводы

ВКонтакте — одна из самых популярных социальных сетей в СНГ, а Power BI одна из самых популярных в мире BI-платформ. Связав эти инструменты, вы легко построите удобные дашборды и проанализируете свои рекламные кампании и объявления.

Что для этого нужно:

  1. Скачать и установить актуальную версию языка R.
  2. Скачать и установить актуальную версию Microsoft Power BI.
  3. Создать Standalone-приложение ВКонтакте.
  4. Установить пакет rvkstat.
  5. Получить токен для доступа к API ВКонтакте.
  6. С помощью функций доступных в пакете rvkstat написать код для загрузки данных в Power BI.
  7. Построить удобный и информативный dashboard.

Если вы интересуетесь языком R, подписывайтесь на мой Telegram и YouTube-канал R4marketing!

68
18
2
Обнаружили ошибку? Выделите ее и нажмите Ctrl + Enter.

Комментарии (77)

Последние комментарии

    Чтобы оставить комментарий, нужно войти

    Чтобы оставлять комментарии, переключитесь на профиль читателя

    Подписаться

    на самую полезную рассылку по интернет-маркетингу

    Самое

    обсуждаемое популярное читаемое
    Cookies policy
    Просматривая этот сайт, вы соглашаетесь с нашей политикой конфиденциальности — Ok