R - мова програмування для статистичної обробки даних і роботи з графікою, а також вільна програмне середовище обчислень з відкритим вихідним кодом в рамках проекту GNU. Користувачі щодня викладають в вільний доступ нові корисні пакети, тому бібліотека пакетів R багата і значно розширює базові можливості мови.
Я написав ряд функцій для роботи з API Facebook і їх зібрав в пакет rfacebookstat. доступний у вільному доступі на GitHub.
1. Створіть додаток в Facebook
1.1. Щоб почати роботу з API Facebook, потрібно додати новий додаток. Для цього перейдіть в ліве меню і в розділі «Розробник» виберіть команду «Управління додатками».
1.2. У кабінеті розробника натисніть кнопку «+ Додати новий додаток».
1.3. Далі ви потрапите в меню «Установка і настройка продукту». Натисніть на кнопку «Почати» навпроти пункту «Вхід через Facebook».
1.4. Перейдіть в налаштування програми. У вкладці «Основне» знаходиться інформація по ID і секрету додатки, яка знадобиться для роботи з API.
На цій вкладці також заповніть поля:
Можна вказати довільну назву додаток, а решта поля заповнити як на прикладі нижче.
1.5. У нижній частині вікна натисніть «Додати платформу».
Зі списку запропонованих платформ виберіть веб-сайт.
Якщо вам знадобиться повний доступ до API, докладна інструкція знаходиться тут.
2. Встановіть пакет rfacebookstat
Пакет rfacebookstat доступний у вільному доступі в репозиторії GitHub.
2.1. Для установки пакетів з GitHub попередньо встановіть пакет devtools за допомогою стандартної команди install.packages.
2.2. Підключіть пакет devtools і встановіть його за допомогою пакет rfacebookstat.
3. Отримайте токен для роботи з API Facebook
Для початку роботи з API Facebook залишилося отримати токен доступу. Для цього використовуйте функцію fbGetToken в пакеті rfacebookstat.
3.1. На вкладці «Налаштування» -> «Основне» отримаєте ID вашого застосування і введіть його в прикладі нижче замість 00000000000000.
3.2. Можливо, вперше отримуючи токен, ви потрапите на сторінку з попередженням, що деякі дозволу ще не схвалені для використання Facebook. Пропустіть це попередження за допомогою кнопки «Продовжити як. ».
Підтвердіть вхід через Facebook.
Вставте токен в консоль R в якості відповіді на запит «Enter your token».
Отриманий токен буде діяти протягом декількох годин, але ви можете змінити його на довгостроковий токен за допомогою функції fbGetLongTimeToken.
3.4. Підставте ваш ClientID і секрет додатки, а також об'єкт, в який зберегли отриманий токена. У наведеному прикладі я створював об'єкт token.
Довгостроковий токен буде дійсний протягом двох місяців.
Ми завершили підготовчий етап і можемо перейти безпосередньо до імпорту даних.
4.1. синтаксис
4.2. аргументи функції
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. дивіться в таблиці нижче або офіційної документації.
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 - значення, за яким буде фільтруватися вказане поле.
4.2.7. date_start - початкова дата звітного періоду в форматі YYYY-MM-DDD.
4.2.8. date_stop - кінцева дата звітного періоду в форматі YYYY-MM-DDD.
4.2.9. api_version - версія API Facebook.
4.2.10. access_token - токен доступу.
5. Приклади використання функції fbGetMarketingStat
5.1. Перед тим як запускати описані нижче приклади, згенеруйте API-токен і збережіть його в об'єкт token.
5.3. Отримайте статистику по кількості унікальних показів і унікальних кліків, з фільтром за віковими групами «18-24», «25-34» та сортуванням даних в порядку зменшення кількості унікальних показів (поле unique_impressions).
Використовуючи API Facebook і пакет функцій на мові R rfacebookstat, ви зможете:
Привіт Олексій. Дякую за статтю. Тільки освоюю R studio.Подскажіте ласка. Як отримувати дані про переходи?
Тобто на сайті є піксель Фейсбук і в ньому вже є івенти, це все успішно відслідковується. Але я не можу зрозуміти як брати по API дані.
Ось приклад функції
CampaignStat <- fbGetMarketingStat( accounts_id = "act_00000000000",
access_token = longtime_token)
Трохи погуглити я знайшов що потрібно брати дані як то через action_type або через actions: offsite_conversion.fb_pixel_purchase
Загалом буду дуже вдячний якщо підкажете шматок коду де потрібно вставити щоб тягнути конверсії.
Добрий день, з конверсіями там складніше якщо вам треба їх розбивати по типу, тобто якщо треба цілком все конверсії отримати то просто додайте поле actions в аргумент fields.
Для того що б можна було розбити конверсії за типом через breakdowns треба допрацьовувати функцію, можливо як з'явиться трохи вільного часу я це зроблю.
Спасибі за відмінну статтю. У мене таке питання, Ads Manager пише що ctr = 7,45%, а в RStudio ctr того ж едсета дорівнює 9%. Кому вірити?