Как да заредим статистиката от рекламни кампании във Facebook с помощта на API и езика за програмиране R

Популярността на Facebook като рекламоносител стремително расте, но анализирането на статистиката в рекламния профил е неудобно. Един от алтернативните начини е да се изтеглят статистическите данни в R и да се визуализират. В тази статия подробно ще разкажа как да получите данни от Facebook API и да работите с тях в R.

R е език за програмиране за статистическа обработка на данни и работа с графика, а също така свободна програмна среда за изчисляване, с отворен код в рамките на проекта GNU. Потребителите ежедневно качват нови полезни пакети за свободен достъп, затова библиотеката с пакети в R е богата и значително разширява базовите възможности на езика.

Написах редица функции за работа с Facebook API и ги събрах в пакет rfacebookstat, който е достъпен свободно на GitHub.

1. Създайте приложение във Facebook

1.1. За да започнете работа с Facebook API, трябва да добавите ново приложение. За целта отидете в лявото меню и в раздел «Разработчик» изберете команда «Manage Apps».

1.2. В профила на разработчика натиснете бутон «+ Add a New App».

Попълнете полето «Видимо име на приложение», «Е-адрес за връзка», «Категория» и натиснете «Създайте ID на приложението».

1.3. По-нататък попадате в меню «Product Setup». Кликнете върху бутона «Get Started» срещу позицията «Facebook Login».

1.4. Преминете към настройките на приложението. Във вложката «Basic» се намира информация за ID и App Secret на приложението, което ще е нужно за работа с API.

На тази вложка също така запълнете полетата:

  • «Видимо име»;
  • «Домейни на приложението»;
  • «Е-адрес за връзка»;
  • «URL- адреса на политиката за конфиденциалност»;
  • «URL- адрес на Потребителското споразумение».

Можете да въведете произволно име на приложението, а останалите полета да попълните, както е показано в примера по-долу.

1.5. В долната част на прозореца натиснете «+ Add Platform».

От списъка с предложени платформи изберете уеб-сайт.

В полето «Site URL» въведете «https://github.com/selesnow/rfacebookstat» и натиснете «Save Changes».

1.6. В менюто на приложението преминете към раздела «Facebook Login». В полето «Valid OAuth redirect URIs» въведете «https://www.facebook.com/connect/login_success.html».

1.7. След това трябва да изберете, от какви рекламни акаунти ще получавате статистиката през API и да копирате техните ID.

За да получите ID на акаунта, преминете в рекламния профил и копирайте цифрите от параметъра act в URL.

Преминете в раздел «Настройки» —> «Допълнително» и в блока «Рекламни акаунти» натиснете бутона «API Ads».

В отворения прозорец въведете ID на избраните рекламни акаунти.

На този етап получихте ниво на достъп до API «Development» и можете да работите с максимум пет рекламни акаунта.

Ако Ви трябва пълен достъп до API, подробна инструкция има тук.

2. Инсталирайте пакета rfacebookstat

Пакета rfacebookstat е достъпен свободно в хранилището GitHub.

2.1. За да инсталирате пакети от GitHub предварително инсталирайте пакета devtools с помощта на стандартната команда install.packages.

install.packages("devtools")

2.2. Включете пакета devtools и го инсталирайте с помощта на пакета rfacebookstat.

library(devtools)install_github('selesnow/rfacebookstat')library(rfacebookstat)

3. Получете токен за работа с API Facebook

За да започнете работа с Facebook API, остава да получите токен за достъп. За целта използвайте функцията fbGetToken в пакета rfacebookstat.

3.1. На вложката «Настройки» —> «Основно» получете ID на Вашето приложение и го въведете в примера по-долу вместо 00000000000000.

token <- fbGetToken(app_id = 00000000000000)

3.2. Възможно е, когато получавате токен, да попаднете на страница с предупреждение, че някои разрешения още не са одобрени за използване от Facebook. Пропуснете това предупреждение с помощта на бутона «Продължете като, ...».

Потвърдете входа чрез Facebook.

https://images.netpeak.net/blog/imgonline-com-ua-convertbvuwjowyhitt.jpg

3.3. След това копирайте генерирания токен за достъп до API. Той ще се появи в адресния ред на Вашия браузър в параметъра access_token.

Вмъкнете токена в R конзолата, като отговор на запитването «Enter your token».

Получения токен ще действа в течение на няколко часа, но Вие можете да го смените на дългосрочен токен с помощта на функцията fbGetLongTimeToken.

3.4. Въведете вашия ClientID и App Secret за приложението, а също така обекта, в който сте съхранили получения токен. В показания пример създадох обект token.

longtime_token <- fbGetLongTimeToken(                                                               
 client_id = 00000000000000,                                                                
client_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",                                                                
fb_exchange_token = token)

Дългосрочният токен ще е действителен за срок от два месеца.

4. Получете статистика от рекламните акаунти във Facebook

Ние приключихме подготвителния етап и можем да преминем директно към импорта на данни.

Основната функция на пакета rfacebookstat е fbGetMarketingStat. Да разгледаме по-подробно работата с тази функция, защото с нейна помощ могат да се получат всякакви данни за рекламния акаунт.

4.1. Синтаксис

stat <- fbGetMarketingStat(accounts_id = "act_0000000000",                                          
sorting = NULL,                                          
level = "account",                                          
breakdowns = NULL,                                            
fields = 
"account_id,account_name,campaign_name,impressions,unique_impressions,clicks,unique_clicks,reach,spend",                                           filtering = NULL,                                           date_start = Sys.Date() — 30,                                           date_stop = Sys.Date(),                                           
api_version = "v2.8",                                           
access_token = NULL)

4.2. Аргументи на функции

4.2.1. accounts_id — ID на рекламния акаунт. Това е задължителен аргумент. Вие можете да го получите от URL, ако преминете в нужния рекламен Facebook акаунт.

Въвеждайте ID на акаунта с приставка «act_», както е в примера: accounts_id = "act_000000000000".

4.2.2. sorting — cортиране на данни. Незадължителен аргумент. На входа приема списък полета и направлението на сортиране (по нарастване или по намаляване). Пример: reach_descending, impressions_ascending.

4.2.3. level — ниво на детайлизация на данните. Задължителен аргумент. Приема значения ad, adset, campaign, account. Пример — level = "account".

4.2.4. fields — списък полета, по които Вие планирате да получите данни. Задължителен аргумент. Пример: fields = "account_id,account_name,campaign_name,impressions,unique_impressions,clicks,unique_clicks,reach,spend".

Списъка с достъпни полета във версия API 2.8. вижте в таблицата по-долу или в официалната документация.

Покажи таблицата

Игрище

Описание

account_id

numeric string

The ID number of your ad account, which groups your advertising activity. Your ad account includes your campaigns, ads and billing.

По подразбиране

account_name

string

The name of your ad account, which groups your advertising activity. Your ad account includes your campaigns, ads and billing.

action_values

list<AdsActionStats>

The total value of all conversions attributed to your ads.

actions

list<AdsActionStats>

The total number of actions people took that are attributed to your ads. Actions may include engagement, clicks or conversions.

ad_id

numeric string

The unique ID of the ad you're viewing in reporting.

По подразбиране

ad_name

string

The unique ID of the ad you're viewing in reporting.

adset_id

numeric string

The unique ID of the ad set you're viewing in reporting. An ad set is a group of ads that share the same budget, schedule, delivery optimization and targeting.

По подразбиране

adset_name

string

The name of the ad set you're viewing in reporting. An ad set is a group of ads that share the same budget, schedule, delivery optimization and targeting.

app_store_clicks

numeric string

Броят на щракванията върху връзки към магазин за приложения в рекламите ви.

buying_type

string

The method by which you pay for and target ads in your campaigns: through dynamic auction bidding, fixed-price bidding, or reach and frequency buying.

call_to_action_clicks

numeric string

The number of times people clicked the call-to-action button on your ad.

campaign_id

numeric string

The unique ID number of the ad campaign you're viewing in reporting. Your campaign contains ad sets and ads.

По подразбиране

campaign_name

string

The name of the ad campaign you're viewing in reporting. Your campaign contains ad sets and ads.

canvas_avg_view_percent

numeric string

The average percentage of the Facebook Canvas that people saw. Canvas is a screen that opens on mobile after a person clicks the Canvas link in your ad. It may include a series of interactive or multimedia components, including video, images, product catalogs and more.

canvas_avg_view_time

numeric string

The average total time, in seconds, that people spent viewing a Facebook Canvas. Canvas is a screen that opens on mobile after a person clicks the Canvas link in your ad. It may include a series of interactive or multimedia components, including video, images, product catalogs and more.

clicks

numeric string

The total number of clicks on your ad. This may include offsite clicks to your website, Page likes, post comments, event responses or app installs.

cost_per_10_sec_video_view

list<AdsActionStats>

The average cost for each 10-second video view.

cost_per_action_type

list<AdsActionStats>

The average cost of a relevant action.

cost_per_estimated_ad_recallers

numeric string

The average cost for each estimated ad recall lift.

cost_per_inline_link_click

numeric string

The average cost of each inline link click.

cost_per_inline_post_engagement

numeric string

Средната цена за всяко директно ангажиране с публикация.

cost_per_total_action

numeric string

The average cost of a relevant action.

cost_per_unique_action_type

list<AdsActionStats>

Средната цена за всяко уникално действие.

cost_per_unique_click

numeric string

The average cost for each unique link click (all) on your ad.

cost_per_unique_inline_link_click

numeric string

Средната цена за всяко уникално щракване върху директна връзка.

cpc

numeric string

The average cost for each click (all) attributed to your ads.

cpm

numeric string

The average cost for 1,000 impressions.

cpp

numeric string

The average cost to reach 1,000 people.

ctr

numeric string

Click-through rate for all clicks. The total number of clicks you received (ex: offsite clicks, likes, event responses) divided by the number of impressions.

date_start

string

The start date for your data. This is controlled by the date range you've selected for your reporting view.

По подразбиране

date_stop

string

The end date for your data. This is controlled by the date range you've selected for your reporting view.

По подразбиране

deeplink_clicks

numeric string

Броят на щракванията върху връзки към конкретни части на приложение.

estimated_ad_recall_rate

numeric string

The rate at which an estimated number of additional people, when asked, would remember seeing your ads within 2 days.

estimated_ad_recallers

numeric string

An estimate of the number of additional people who may remember seeing your ads, if asked, within 2 days. This metric shows results for ads using brand awareness, video views and Page post engagement objectives.

frequency

numeric string

The average number of times each person saw your ad.

impressions

numeric string

The number of times your ads were viewed.

По подразбиране

inline_link_click_ctr

numeric string

Процентът пъти, когато хора са видели рекламите ви и са извършили директно щракване върху връзка.

inline_link_clicks

numeric string

The number of clicks on links to select destinations or experiences, on or off Facebook-owned properties. Inline link clicks use a fixed 1-day-click attribution window.

inline_post_engagement

numeric string

The total number of actions that people take involving your ads (or all posts, in some cases). Inline post engagements use a fixed 1-day-click attribution window.

newsfeed_avg_position

numeric string

Средната позиция, където рекламата ви ще се поставя в новините на потребителите с мобилни и настолни устройства. Позиция 1 е най-отгоре в новините.

newsfeed_clicks

numeric string

Общият брой кликвания върху рекламата Ви в новините на потребителите, използващи мобилни устройства и стационарен компютър.

newsfeed_impressions

numeric string

Общ брой пъти, в които рекламата Ви, е показана в Новинарския поток на потребителите на мобилна и настолна версия.

objective

string

The objective you selected for your campaign. Your objective reflects the goal you want to achieve with your advertising.

reach

numeric string

The number of people who saw your ads at least once. Reach is different from impressions, which may include multiple views of your ads by the same people.

relevance_score

AdgroupRelevanceScore

A rating from 1 to 10 that estimates how well your target audience is responding to your ad. This score is shown after your ad receives more than 500 impressions. It's only visible when looking at reporting for ads and does not appear for ad sets and campaigns.

social_clicks

numeric string

The number of any clicks your ad receives (ex: likes, event responses, offsite clicks) when it's shown with social information (ex: Jane Doe likes this).

social_impressions

numeric string

The number of times your ads were viewed when displayed with social information, which shows Facebook friends who engaged with your Facebook Page or ad.

social_reach

numeric string

The number of people who saw your ad when displayed with social information, which shows other Facebook friends who engaged with your Facebook Page or ad.

social_spend

numeric string

Цялата сума, която сте похарчили до момента за показаните социални реклами (пример: Jane Doe харесва това).

spend

numeric string

The total amount of money you've spent on your campaign, ad set or ad during its schedule.

По подразбиране

total_action_value

numeric string

The total value of all conversions attributed to your ads.

total_actions

numeric string

The total number of actions people took that are attributed to your ads. Actions may include engagement, clicks or conversions.

total_unique_actions

numeric string

The number of people who took an action that was attributed to your ads.

unique_actions

list<AdsActionStats>

The number of people who took an action that was attributed to your ads.

unique_clicks

numeric string

The total number of unique people who have clicked on your ad. Ex: if 3 people click on the same ad 5 times, it will count as 3 unique clicks.

unique_ctr

numeric string

Unique click-through rate for all clicks. The number of people who clicked anywhere in your ad, divided by the number of people you reached. Ex: if you received 20 unique clicks and your ad was shown to 1,000 unique people, your unique click-through rate would be 2%.

unique_impressions

numeric string

The number of people who saw your ads at least once.

unique_inline_link_click_ctr

numeric string

Процентът на случаите, когато хората са видели ваша реклама и са извършили щракване върху връзка. Директната скорост през щракване използва прозорец на фиксиран атрибут 1-дневно щракване.

unique_inline_link_clicks

numeric string

The number of people who performed an inline link click.

unique_link_clicks_ctr

numeric string

The percentage of people who saw your ad and performed a link click.

unique_social_clicks

numeric string

The number of individuals who click this ad (ex: likes, event responses, offsite clicks) when it's shown with social information (ex: Jane Doe likes this).

unique_social_impressions

numeric string

Броят хора, на които рекламата е показана рекламата ви със социален контекст.

video_10_sec_watched_actions

list<AdsActionStats>

The number of times your video was watched for an aggregate of at least 10 seconds, or for nearly its total length, whichever happened first.

video_15_sec_watched_actions

list<AdsActionStats>

Броят пъти, когато видеоклипът ви е гледан за общо поне 15 секунди или почти целия, независимо кое се е случило първо.

video_30_sec_watched_actions

list<AdsActionStats>

Броят пъти, когато видеоклипът ви е гледан за общо поне 30 секунди или почти целия, независимо кое се е случило първо.

video_avg_pct_watched_actions

list<AdsActionStats>

(Тази метрика скоро няма да е налична. Използвайте вместо нея video_avg_percent_watched_actions.) Това е общото време на гледане на видеоклип, разделено на преглежданията на вашия видеоклип по време на продължителността му. Това не е приложимо за видеа на живо.

video_avg_percent_watched_actions

list<AdsActionStats>

The average percentage of your video that people watched.

video_avg_sec_watched_actions

list<AdsActionStats>

(Тази метрика скоро няма да съществува. Вместо нея използвайте video_avg_time_watched_actions.) Това е общото време на гледане за вашия видеоклип, разделено на общия брой преглеждания на видеото.

video_avg_time_watched_actions

list<AdsActionStats>

The average time a video was watched.

video_complete_watched_actions

list<AdsActionStats>

The number of times your video was watched for an aggregate of at least 30 seconds, or for nearly its total length, whichever happened first.

video_p100_watched_actions

list<AdsActionStats>

The number of times your video was watched at 100% of its length, including watches that skipped to this point.

video_p25_watched_actions

list<AdsActionStats>

The number of times your video was watched at 25% of its length, including watches that skipped to this point.

video_p50_watched_actions

list<AdsActionStats>

The number of times your video was watched at 50% of its length, including watches that skipped to this point.

video_p75_watched_actions

list<AdsActionStats>

The number of times your video was watched at 75% of its length, including watches that skipped to this point.

video_p95_watched_actions

list<AdsActionStats>

The number of times your video was watched at 95% of its length, including watches that skipped to this point.

website_clicks

numeric string

The number of clicks on links to your website in your ads.

website_ctr

list<AdsActionStats>

Процентът случаи, когато хората са видели рекламата ви и са извършили щракване върху уеб сайт.

4.2.5. breakdowns — аргумент, с чиято помощ може да получите данни в разбивка на различни сегменти. Може да се разделя информацията по следните срезове:

  • age;
  • country;
  • gender;
  • frequency_value;
  • hourly_stats_aggregated_by_advertiser_time_zone;
  • hourly_stats_aggregated_by_audience_time_zone;
  • impression_device;
  • place_page_id;
  • placement;
  • device_platform;
  • product_id;
  • region;
  • actions;
  • publisher_platform;
  • platform_position;
  • impression_device.

В едно запитване може да се комбинират няколко среза. В този момент са достъпни следните комбинации:

Полетата, отбелязани със звездичка «*», могат да се изискват заедно с action_type, action_target_id и action_destination.
  • action_type *;
  • action_target_id *;
  • action_device *;
  • action_device, placement *;
  • action_device, placement, impression_device *;
  • action_device, publisher_platform *;
  • action_device, publisher_platform, impression_device *;
  • action_device, publisher_platform, platform_position *;
  • action_device, publisher_platform, platform_position, impression_device *;
  • action_reaction;
  • action_type, action_reaction; age *;
  • gender *;
  • age, gender *;
  • country *;
  • region *;
  • placement *;
  • placement, impression_device *;
  • publisher_platform *;
  • publisher_platform, impression_device *;
  • publisher_platform, platform_position *;
  • publisher_platform, platform_position, impression_device *;
  • product_id *;
  • hourly_stats_aggregated_by_advertiser_time_zone *;
  • hourly_stats_aggregated_by_audience_time_zone *;
  • action_carousel_card_id / action_carousel_card_name; action_carousel_card_id / action_carousel_card_name, placement;
  • action_carousel_card_id / action_carousel_card_name, placement, impression_device;
  • action_carousel_card_id / action_carousel_card_name, country;
  • action_carousel_card_id / action_carousel_card_name, age;
  • action_carousel_card_id / action_carousel_card_name, gender;
  • action_carousel_card_id / action_carousel_card_name, age, gender.

Пример: breakdowns = "region"

4.2.6. filtering — филтър за данни. Незадължителен аргумент. Филтрите се задават във вид на JSON обекти «ключ:значение». Трябва да се запишат три свойства:

  • field — поле, по което ще се извършва филтрация;
  • operator — логически оператор ('EQUAL', 'NOT_EQUAL', 'GREATER_THAN', 'GREATER_THAN_OR_EQUAL', 'LESS_THAN', 'LESS_THAN_OR_EQUAL', 'IN_RANGE', 'NOT_IN_RANGE', 'CONTAIN', 'NOT_CONTAIN', 'IN', 'NOT_IN', 'ANY', 'ALL', 'NONE');
  • value — значения, по което ще се филтрира посоченото поле.

Пример: filtering = "[{'field':'publisher_platform','operator':'IN','value':['instagram']}]

4.2.7. date_start — начална дата на отчетния период във формат YYYY-MM-DDD.

4.2.8. date_stop — крайна дата на отчетния период във формат YYYY-MM-DDD.

4.2.9. api_version — версия на Facebook API.

4.2.10. access_token — токен за достъп.

5. Примери на използване на функции fbGetMarketingStat

5.1. Преди да стартирате описаните по-долу примери, генерирайте API-токен и го съхранете в обект token.

token <- fbGetToken(app_id = 00000000000000)

5.2. За да получите статистика за броя показвания, кликове и разходи за реклама на ниво акаунт и в разрез по региони, въведете следния код:

AccStat <- fbGetMarketingStat( accounts_id = «act_0000000000»,                                                       
level = "account",                                                       
fields = "account_id,account_name,impressions,clicks,spend",                                                       
breakdowns = "region",                                                       
date_start = "2016-11-01",                                                       
date_stop = "2016-11-30",                                                       
api_version = "v2.8",                                                       
access_token = token)

5.3. Получете статистика за количество уникални показвания и уникални кликове, с филтър по нарастване за групи «18-24», «25-34» и сортиране на данни, подредени по намаляване на броя уникални показвания (поле unique_impressions).

CampStat <-     fbGetMarketingStat(accounts_id = "act_0000000000",                          
level = "campaign",                          
fields = "campaign_name,unique_impressions,unique_clicks",                          
breakdowns = "age",                          
sorting = "unique_impressions_descending",                          
filtering = "[{'field':'age','operator':'IN','value':['18-24','25-34']}]",                          
date_start = "2016-10-01",                          
date_stop = "2016-10-10",                          
api_version = "v2.8",                          
access_token = token)

6. Изводи

Използвайки Facebook API и пакета с функции на език R rfacebookstat, Вие можете да:

  • получите данни от своите рекламни акаунти, кампании, рекламии така нататък в множество различни разрези;
  • строите, въз основа на получени данни, всякакви визуализации, използвайки цялата мощ на езика R;
  • предавате получените данни в произволна база данни или да ги съхранявате във вид на CSV-файл.
2
0
0
Открихте грешка? Маркирайте я и натиснете Ctrl + Enter.