Вконтакте Ads API > Power BI & Excel
Функция 7+ в 1:wink: Неофициальная обёртка для методов рекламного API Вконтакте. Выгружайте статистику рекламных кампаний Вконтакте напрямую в Power BI или Excel.
В отчётах перевел все (или большинство) англоязычных названий колонок и значений на великий и могучий (поменяйте пару строк в коде, если перевод не нужен). Старался документировать код, поэтому найдёте где это делается:wink:
Функция тестировалась в работе с API Вконтакте https://vk.com/dev/ads, но, вероятно, будет работать и с другими методами (об этом ниже)
Инструкция по работе
- Создайте в редакторе Power Query, встроенном в Power BI или Excel новую функцию и вставьте в неё исходный код. Переименуйте свой запрос, например, в VK
- Получите токен по этой инструкции или используйте имеющийся, например, от rvkstat
- Создайте текстовый параметр в Power BI или Excel и запишите в него токен, или просто подставьте его первым аргументом в вызове фукнции
Описание параметров
Все параметры необязательные, но токен всё равно нужно получить 😉
Параметр | Тип | Значение по умолчанию | Описание |
---|---|---|---|
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 | — |
Примеры работы
Список рекламных кабинетов
VK(access_token)
Вызывает метод ads.getAccounts
access_token можно получить по этой инструкции или по инструкции Алексея Селезнева к функции rvkstat
Список клиентов агентства
VK(access_token,account_id)
Вызывает метод ads.getClients Обязательный параметр:
- account_id — идентификатор рекламного кабинета
Список кампаний
VK(access_token,account_id,client_id)
Вызывает метод ads.getCampaigns Обязательные параметры:
- account_id — идентификатор рекламного кабинета
- client_id — идентификатор клиента
Список рекламных объявлений
VK(access_token,account_id,client_id,"adlist")
Вызывает метод ads.getAds Обязательные параметры:
- account_id — идентификатор рекламного кабинета
- client_id — идентификатор клиента
- level = “adlist”
Статистика эффективности кабинета, клиентов, кампаний или объявлений
VK(access_token,account_id,client_id,"office")
Вызывает метод ads. getStatistics Обязательные параметры:
- account_id — идентификатор рекламного кабинета
- client_id — идентификатор клиента
- level — уровень детализации статистики:
- “office” — по всему аккаунту
- “client” — по клиентам
- “campaign” — по кампаниям
- “ad” — по объявлениям
Чтобы указать детализацию статистики по датам, укажите параметр 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})
Обязательные параметры:
- account_id — идентификатор рекламного кабинета
- client_id — идентификатор клиента
- level — уровень детализации статистики:
- “office” — по всему аккаунту
- “client” — по клиентам
- “campaign” — по кампаниям
- “ad” — по объявлениям
- method = “demographics”
Взаимодействия с рекламными записями
Например, взаимодействия (лайки, репосты, отписки, вступления и т.
VK(access_token,account_id,client_id,"campaign",null,null,null,"postsreach",{123})
Вызывает метод ads.getPostsReach Обязательные параметры:
- account_id — идентификатор рекламного кабинета
- levels — возможные значения: по кампаниям “campaigns” или по объявлениям “ad”
- ids — список идентификаторов, соответствующих ids_typeв зависимости от того, какой задан ids_type вызывает метод ads.getCampaigns или ads.getAds для получения идентификаторов всех кампаний или объявлений соответственно
- method = “postsreach”
Оставшиеся “баллы API”
VK(access_token,account_id,null,null,null,null,null,"ads.getFloodStats")
Вызов метода ads.getFloodStats Обязательные параметры:
- account_id — идентификатор рекламного кабинета
- method = “ads.getFloodStats”
Полный список тематик объявлений
VK(access_token,account_id,null,null,null,null,null,"ads. getCategories")
Вызов метода ads.getCategories Массив v1 устарел. Смотрите v2
В тех случаях, когда передаются идентификаторы кампаний или объектов, идентификаторы рекламных кабинетов или клиентов можно опустить, но такое поведение я не тестировал.
Повышение собственной производительности
Несколько советов, помогающих упростить вашу работу:
- Создайте текстовый параметр, запишите в него токен, и ссылайтесь на этот параметр при вызове функции
Вопросы
С вопросами и предложениями стучитесь:
- в фейсбук https://www.facebook.com/iliah.nazarov
- в телеграм https://t.me/IlyaNazarov
Блог об аналитике, визуализации данных, data science и BI: vk api
При размещении рекламы некоторые площадки в настройках аудитории позволяют загрузить список конкретных людей, которые увидят рекламу. Для парсинга id по конкретным пабликам существуют специальные инструменты, но куда интереснее (и дешевле) сделать это собственноручно при помощи Python и VK API. Сегодня расскажем, как для рекламной кампании LEFTJOIN мы спарсили целевую аудиторию и загрузили её в рекламный кабинет.
В материале «Собираем данные по рекламным кампаниям ВКонтакте» подробно описан процесс получения токена пользователя для VK API
Парсинг пользователей
Для отправки запросов потребуется токен пользователя и список пабликов, чьих участников мы хотим получить. Мы собрали около 30 сообществ, посвящённых аналитике, BI-инструментам и Data Science.
import requests import time group_list = ['datacampus', '185023286', 'data_mining_in_action', '223456', '187222444', 'nta_ds_ai', 'business__intelligence', 'club1981711', 'datascience', 'ozonmasters', 'businessanalysts', 'datamining.team', 'club.shad', '174278716', 'sqlex', 'sql_helper', 'odssib', 'sapbi', 'sql_learn', 'hsespbcareer', 'smartdata', 'pomoshch_s_spss', 'dwhexpert', 'k0d_ds', 'sql_ex_ru', 'datascience_ai', 'data_club', 'mashinnoe_obuchenie_ai_big_data', 'womeninbigdata', 'introstats', 'smartdata', 'data_mining_in_action', 'dlschool_mipt'] token = 'ваш_токен'
Запрос на получение участников сообщества к API ВКонтакте вернёт максимум 1000 строк — для получения последующих тысяч потребуется смещать параметр offset на единицу. Но нужно знать, до какого момента это делать — поэтому опишем функцию, которая принимает id сообщества, получает информацию о числе участников сообщества и возвращает максимальное значение для offset — отношение числа участников к 1000, ведь мы можем получить ровно тысячу человек за раз.
def get_offset(group_id): count = requests.get('https://api.vk.com/method/groups.getMembers', params={ 'access_token':token, 'v':5.103, 'group_id': group_id, 'sort':'id_desc', 'offset':0, 'fields':'last_seen' }).json()['response']['count'] return count // 1000
Следующим этапом опишем функцию, которая принимает id сообщества, собирает в один список id всех подписчиков и возвращает его. Для этого отправляем запросы на получение 1000 человек, пока не кончается offset, вносим данные в список и возвращаем его. Проходя по каждому человеку дополнительно проверяем дату его последнего посещения социальной сети — если он не заходил с середины ноября, добавлять его не будем.
def get_users(group_id): good_id_list = [] offset = 0 max_offset = get_offset(group_id) while offset < max_offset: response = requests.get('https://api.vk.com/method/groups.getMembers', params={ 'access_token':token, 'v':5.103, 'group_id': group_id, 'sort':'id_desc', 'offset':offset, 'fields':'last_seen' }).json()['response'] offset += 1 for item in response['items']: try: if item['last_seen']['time'] >= 1605571200: good_id_list.append(item['id']) except Exception as E: continue return good_id_list
Теперь пройдём по всем сообществам из списка и для каждого соберём участников, а затем внесём их в общий список all_users. В конце переводим сначала список в множество, а затем опять в список, чтобы избавиться от возможных дубликатов: одни и те же люди могли быть участниками разных пабликов. Лишним не будет после каждого паблика приостановить работу программы на секунду, чтобы не столкнуться с ограничениями на число запросов.
all_users = [] for group in group_list: print(group) try: users = get_users(group) all_users.extend(users) time.sleep(1) except KeyError as E: print(group, E) continue all_users = list(set(all_users))
Последним шагом записываем каждого пользователя в файл с новой строки.
with open('users.txt', 'w') as f: for item in all_users: f.write("%s\n" % item)
Аудитория в рекламном кабинете из файла
Переходим в свой рекламный кабинет ВКонтакте и заходим во вкладку «Ретаргетинг». Там будем кнопка «Создать аудиторию»:
После нажатия на неё откроется новое окно, где можно будет выбрать в качестве источника файл и указать название для аудитории:
После загрузки пройдёт несколько секунд и аудитория будет доступна. Первые минут 10 будет указано, что аудитория слишком мала: это не так и панель вскоре обновится, если в вашей аудитории действительно более 100 человек.
Итоги
Сравним среднюю стоимость привлечённого в наше сообщество участника в объявлении с автоматической настройкой аудитории и в объявлении, аудиторию для которого мы спарсили. В первом случае получаем среднюю стоимость в 52,4 рубля, а во втором — в 33,2 рубля. Подбор качественной аудитории при помощи методов парсинга данных из ВКонтакте помог снизить среднюю стоимость на 37%.
Для рекламной кампании мы подготовили такой пост (нажмите на картинку, чтобы перейти к нему):
Vk Trampling Гей индийский секс видео на rajwap.cc 1
2:55
1791
177
5:41
2042
149
0:59
1171
172
2:54
1770
9000 2 1540:42
2976
164
9:36
2397
189
1:57
644
20
8:21
998
121
0:41
839
90
5:07
164
34
1:14
2123
83
26:23
611
23
101:30
1061
133
23:27
90 002 2247108
4:47
1090
169
22:35
980
177
7:29
2692
153
12:19
537
41
2:01
360
177
18:13
464
187
1:02
2917
163
10:50
1225
147
1:09
2393
89
37:02
382
19
8:20
2751
126
3:28
2389
194
5:42
160
164
10:37
560
97
9 0002 0:202628
171
12:28
2134
26
10 :29
638
152
1:07
2291
154
20:10
2298
103
0:07
2504
51
0:27
1161
33
4:17
1998
184
7:46
2284
56
2:20
900
9 0002 1854:55
1555
88
2:44
2271
17
9:17
1420
30
12:19
1816
14
5:55
124
114
5:14
641
89
10:41
1401
124
8:20
2485
171
4:10
1277
97
4:56
2073
31
0:30
1787
171
10:11
826
13
7:05
2678
46
2:37
1255
1 72
1:09
1367
77
10:32
1596
66
16:57
2853
154
10:33
2463
23
8:23
457
17
90 002 11:221405
57
1:23
2292
24
17 :21
1270
78
11:33
2369
85
5:26
1829 9 0003
167
4:04
1272
40
9:52
1523
23
0:26
109
60
5:53
614
91
14:02
841
900 02 486:25
1253
169
11:37
1906
106
4:41
175
198
30:23
1544
127
26:32 900 03
1203
98
16:23
1700
55
1:32
517
199
7:11
427
144
1:04
1815
24
11:04 900 03
2062
149
15:10
2976
146
0:53
2140
76
15:10
2636
102
0:54
426
30
12:16
1349
57
2:29
312
158
3:45
2686
191
4:17
335
117
0:41
372
7 7
10:11
2718
13
Vk Trampling Гей порно видео, которые сделают вашу маленький член очень твердый друг, это то, что приходит первым, когда смотришь гей-порно Vk Trampling с неприятными горячими индийскими сучками бхабхи. Они хотят показать вам все тело, готовое к сексу, в замедленной съемке, чтобы вы могли насладиться сочной красоткой в полной мере. А если добавить восточную красоту сексуальных развратных индийских шлюх, то получится отличное гей-порно с Vk Trampling Gay. И как только эти горячие индийские девушки-бхабхи встают, чтобы скакать на твердом большом члене, не остается никаких сомнений в том, что они могут удовлетворить любой фаллос. Гей-видео Vk Trampling обновляется ежедневно, так что не стесняйтесь добавлять в закладки наш Indian Porn Tube.
Recent Trends
baby form реальный секс videovk вытаптывание gayfast bar xxx karne wala sin kya hota haiindian любовники oyoporn teen 3some два мальчика и одна девушка сперма внутриindian hakim sexdesi boob sucking wildwwwxxxvideofateomanfree дези симпатичная девушка просочилась видео индийский pornmosslm
Закрыть всплывающее окно
Неверное имя пользователя или пароль.
Уууупс, похоже, что ссылка, которую вы используете, недействительна. Пожалуйста, свяжитесь со службой поддержки.
Имя пользователя (*):
Поле обязательно для заполнения
Пароль (*):
Поле обязательно для заполнения
‘vk bi danh gen’ Поиск
Vk Ck bu cu
9,6к 82% 1 мин 12 сек — 1080p
ебать vk iu когда я иду на работу
18к 85% 3мин — 1080p
Каждый раз, когда я трахаю Vk Ck, мне не нужно тратить деньги на покупку геля, потому что сладкая и вкусная пизда Vk даже более гладкая, чем десятикратное нанесение геля
248,6к 100% 31мин — 360p
Странный парень с вк
12сек — 1080p
Давай Би
День, когда мы пошли Би
44,9к 99% 10 минут — 720p
Официальный фильм Devil’s Film
Межрасовый бисексуальный анал в тройничке с большими членами
7,4 млн 99% 10 минут — 1080p
Badboy Studio
Реакция на би порно видео
30,3к 94% 2 мин — 720p
Badboy Studio
горячий би секс
76,9к 100% 13мин — 1080p
Dudebubblebutt
BI LATINO FUCK WHITE BIG ASS
7,4к 89% 3мин — 1080p
Георг гей би мальчик секс gghhhhhhh
88,2к 85% 50 сек. — 360p
StagCollective
Представляем Beefy Bi Tyler James
13,3к 97% 11 минут — 1080p
Babynaxalite
Би МЖЖ Женатая пара сосет член 1
288,1к 98% 8мин — 720p
Lets Go Bi
Зрелая красотка превратила нас в би
1,6 млн 98% 10 минут — 720p
С би
34,9к 78% 38сек — 1080p
BiCollegeFucks
— Два горячих парня устроили би-шоу для своей подруги
81,2к 100% 1мин 0сек — 480p
Mile High Official
Анальный секс втроем для любознательных европейцев
7,3 млн 100 % 10 минут — 1080p
пассивная би засовывает себе в задницу маркер
17,8к 84% 6мин — 480p
Heatwave Video
Bi-Bi Brazil #2 (2005) — Запах секса в воздухе такой густой, что его можно попробовать на вкус
112,8к 100% 96мин — 720р
BiCollegeFucks
BiCollegeFucks — Парня-серфингиста трахают в би-тройничке
43,9к 99% 56сек — 480p
Эстель и ее друзья
Эстель и друзья: Би-партизаны Том 1
55,5к 100% 12 минут — 1080p
Badboy Studio
Корниньо отпустил жену и даже отсосал любовнику — Camboy Bi
705,2к 100% 2 мин — 1080p
Mile High Official
Счастливчик-би получает возможность трахнуть задницу после того, как его дразнят
1,3 млн 97% 10 минут — 1080p
Александр Xvv
би друг
3,4к 80% 1мин 14сек — 1080p
Миниатюрная черноволосая красотка с двумя парнями-би
220,5к 99% 6мин — 720p
Негр ломится в би горн
63,6к 100% 18сек — 720p
Удар в задницу, би непристойная фантазия
18,3к 90% 8мин — 360p
Би муж глубоко шарит
44,2к 92% 1 мин 20 сек — 1080p
Поехали Би
Трахаю би пара на обочине дороги
858.