--- title: "2. Get Facebook Marketing Insight" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{2. Get Facebook Marketing Insight} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( eval=FALSE, collapse = TRUE, comment = "#>" ) ``` Ð”Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ ÑтатиÑтичеÑких данных из рекламных аккаунтов Facebook в пакете `rfacebookstat` необходимо иÑпользовать функцию `fbGetMarketingStat`. ## Ðргументы функции `fbGetMarketingStat` Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ множеÑтво аргументов Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ которых вы можете макÑимально точно обозначить формат получаемых из API Facebook данных. * *accounts_id* - ID рекламных аккаунтов, перед ID необходимо указать Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ `act_`, вы можете указать вектор из ID аккаунтов еÑли требуетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ данные из набора аккаунтов. По умолчанию запрашивает значение опции *rfacebookstat.accounts_id*. * *sorting* - Поле Ð´Ð»Ñ Ñортировки полученных данных, так же вы можете указать направление добавив "_ascending" или "_descending" в поле Ñортировки. Ðапример "reach_descending". Ð”Ð»Ñ Ð´ÐµÐ¹Ñтвий вы можете Ñортировать по типу дейÑÑ‚Ð²Ð¸Ñ Ð² форме "actions: <action_type>". Ðапример, ["actions: link_click_ascending"]. Ð’Ñ‹ можете задать только одно поле Ð´Ð»Ñ Ñортировки. * *level* - Уровень группировки данных, принимает одно из Ñледующих значений: ad, adset, campaign, account. По умолчанию имеет значение account. * *action_breakdowns* - Разбивки по дейÑтвиÑм, более подробно о них можно узнать в [документации](https://developers.facebook.com/docs/marketing-api/insights/breakdowns#actionsbreakdown) к API Facebook, так же более подробно они будут раÑÑмотрены позже в Ñтой виньетке. * *breakdowns* - Общие разбивки которые предоÑтавлÑÑŽÑ‚ дополнительные возможноÑти по группировке данных, подробноÑти в [документации](https://developers.facebook.com/docs/marketing-api/insights/breakdowns#ageandgender) к API Facebook, так же Ñтот аргумент будет более подробно раÑÑмотрен немного ниже. * *fields* - ÐŸÐ¾Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ðµ вы хотите загрузить из API, полный ÑпиÑок вÑех полей доÑтупен по [ÑÑылке](https://developers.facebook.com/docs/marketing-api/reference/ad-account/insights). * *filtering* - ТекÑÑ‚Ð¾Ð²Ð°Ñ Ñтрока или вектор. Фильтрацию отчёта вы можете задавать либо в JSON формате либо в упрощенном формате, более подробно о фильтрации будет напиÑано немного ниже. * *date_start* - Дата начала отчётного периода. * *date_stop* - Дата Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ отчётного периода. * *date_preset* - С попомщью Ñтого аргумента, вы можете иÑпользовать преднаÑтройки Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа данных за отноÑительный период, например за прошлый меÑÑц. ДопуÑтимые значениÑ: today, yesterday, this_month, last_month, this_quarter, lifetime, last_3d, last_7d, last_14d, last_28d, last_30d, last_90d, last_week_mon_sun, last_week_sun_sat, last_quarter, last_year, this_week_mon_today, this_week_sun_today, this_year * *request_speed* - СкороÑть отправки запроÑов, возможные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ "normal", "fast" или "slow". Так же можно задать чиÑловое значение, которое будет задавать количеÑтво Ñекунд в паузе между отправкой запроÑов к API. * *fetch_by* - позволÑет разбить большой запроÑ, за длительный период, на чаÑти по неделÑм, меÑÑцам, кварталам и годам. Приннимает одно из Ñледующих значений: "day", "week", "month", "quarter", "year". * *api_version* - ВерÑÐ¸Ñ API к которой будет отправлен запроÑ, по умолчанию берётÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ из опции *rfacebookstat.api_version*. * *action_report_time* - ДопуÑтимые значениÑ: impression, conversion. ОпределÑет отчет о времени дейÑÑ‚Ð²Ð¸Ñ ÑтатиÑтики. Ðапример, еÑли человек видел объÑвление 1 ÑнварÑ, но Ñовершил конверÑию 2 ÑнварÑ, при запроÑе API Ñ `action_report_time = "impression"`, вы увидите конверÑию 1 ÑнварÑ. Когда вы запроÑите API Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ `action_report_time = "conversion"`, вы увидите преобразование 2 ÑнварÑ. * *attribution_window* - Окна атрибуции * *interval* - Группировка по временному интервалу, возможные значениÑ: day, all_days, overall, monthly, weekly, либо вы можете чиÑлом указать количеÑтво дней, и результат вашего запроÑа будет Ñгруппирован такими временными отрезками. * *use_unified_attribution_setting* - ЕÑли Ð´Ð»Ñ Ñтого параметра уÑтановлено значение true, результаты вашей рекламы будут показыватьÑÑ Ñ Ð¸Ñпользованием унифицированных наÑтроек атрибуции, определенных на уровне группы объÑвлений, а параметр use_account_attribution_setting будет игнорироватьÑÑ. * *use_account_attribution_setting* - ЕÑли Ð´Ð»Ñ Ñтого параметра уÑтановлено значение true, результаты ваших объÑвлений будут отображатьÑÑ Ñ Ð¸Ñпользованием наÑтроек атрибуции, определенных Ð´Ð»Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ð½Ð¾Ð³Ð¾ аккаунта. * *console_type* - Тип выводимых в конÑоль данных, возможные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ progressbar, message. * *username* - Логин на Facebook под которым вы проходили авторизацию, иÑпользуетÑÑ Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ñ‹Ñ… данных Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ API. * *token_path* - Путь к папке в которой хранитÑÑ Ñ„Ð°Ð¹Ð» Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ñ‹Ð¼Ð¸ данными на Facebook, которые вы получили при авторизации. * *access_token* - Токен доÑтупа к API полученный Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции `fbGetToken`, по умолчанию запрашиваетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ опции. *rfacebookstat.access_token* ## Пример запроÑа ÑтатиÑтики ```{r} library(rfacebookstat) options(rfacebookstat.access_token = "ваш токен", rfacebookstat.accounts_id = "act_000000000") fb_data <- fbGetMarketingStat( level = "campaign", fields = "campaign_name, impressions, clicks, spend, actions", date_start = "2019-05-01", date_stop = "2019-05-10") ``` Выше приведён проÑтейший ÑпоÑоб загрузки ÑтатиÑтики по показам, кликам, тратам и дейÑтвиÑм в разрезе дней и рекламных кампаний. ИÑпользование опций *rfacebookstat.access_token* и *rfacebookstat.accounts_id* не ÑвлÑетÑÑ Ð¾Ð±Ñзательным, но поможет вам избежать Ð´ÑƒÐ±Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтих параметров в аргументах вÑех функций пакета, поÑтому Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÑŽ именно такой ÑпоÑоб уÑтановки значений accout_id, access_token, business_id и api_version. ## Учётные данные С помощью аргументов *username* и *token_path* Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ `fbGetMarketingStat()` определÑет какие учётные данные ей необходимо иÑпользовать Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа данных, и где Ñти учётные данные хранÑÑ‚ÑÑ. Более подробно об авторизации и Ñтих аргументах напиÑано в виньетке про авторизацию, открыть можно Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ функции `vignette('rfacebookstat-authorization', package = 'rfacebookstat')`. ## Разбивки (breakdowns) Разбивки помогают обогащать ваши данные за Ñчёт дополнительных полей и группировок, на данный момент поддерживаютÑÑ Ñледующие разбивки: * ad_format_asset * age * body_asset * call_to_action_asset * country * description_asset * gender * image_asset * impression_device * link_url_asset * product_id * region * title_asset * video_asset * dma * frequency_value * hourly_stats_aggregated_by_advertiser_time_zone * hourly_stats_aggregated_by_audience_time_zone * place_page_id * publisher_platform * platform_position * device_platform Ðктуальный ÑпиÑок группировок вÑегда можно найти в официальной документации API Facebook по [ÑÑылке](https://developers.facebook.com/docs/marketing-api/insights/breakdowns#ageandgender). ```{r} library(rfacebookstat) options(rfacebookstat.access_token = "ваш токен", rfacebookstat.accounts_id = "act_000000000") fb_data_breakdowns <- fbGetMarketingStat( level = "campaign", fields = "campaign_name, impressions, clicks, spend, actions", breakdowns = "region", date_start = "2019-05-01", date_stop = "2019-05-10") ``` ## Разбивки по дейÑтвиÑм (action_breakdowns) Ð’Ñ‹ можете Ñгруппировать результаты в поле *actions*. Ðргумент *action_breakdowns* позволÑет применить указанные ниже разбивки. * action_device - УÑтройÑтво, на котором произошло отÑлеживаемое Ñобытие конверÑии. Ðапример, «ПК», еÑли человек выполнил конверÑию Ñ ÐŸÐš. * action_destination - Куда переходÑÑ‚ люди, нажав вашу рекламу. Ðто может быть ваша Страница Facebook, внешний URL-Ð°Ð´Ñ€ÐµÑ Ð¿Ð¸ÐºÑÐµÐ»Ñ ÐºÐ¾Ð½Ð²ÐµÑ€Ñий или приложение, Ñконфигурированное Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ комплекта разработчика ПО. * action_reaction - КоличеÑтво реакций на ваши объÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ продвигаемые публикации. Кнопка реакций в рекламе позволÑет людÑм по-разному отреагировать на ее Ñодержание. Можно выбрать "ÐравитÑÑ", "Супер", "Ха-ха", "Ух ты!", "СочувÑтвую" или "Возмутительно". * action_target_id - Идентификатор меÑта назначениÑ, в которое переходÑÑ‚ люди, нажавшие на ÑÑылку в вашей рекламе. Ðто может быть ваша Страница Facebook, внешний URL вашего пикÑÐµÐ»Ñ ÐºÐ¾Ð½Ð²ÐµÑ€Ñий, или приложение, Ñконфигурированное Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ SDK. * action_type - Тип дейÑтвий, выполненных в отношении вашей рекламы, Страницы, Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ мероприÑÑ‚Ð¸Ñ Ð¿Ð¾Ñле показа объÑÐ²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ñƒ-либо, даже еÑли Ñти люди не нажимали объÑвлениÑ. Типы дейÑтвий включают отметки «ÐравитÑÑ» Страницы, уÑтановки приложений, конверÑии, ответы на мероприÑÑ‚Ð¸Ñ Ð¸ Ñ‚.д. ```{r} library(rfacebookstat) options(rfacebookstat.access_token = "ваш токен", rfacebookstat.accounts_id = "act_000000000") fb_data_action_breakdowns <- fbGetMarketingStat( level = "campaign", fields = "campaign_name, impressions, clicks, spend, actions", action_breakdowns = "action_reaction", date_start = "2019-05-01", date_stop = "2019-05-10") ``` ### ОпиÑание полей возвращаемых в разбивке action_type * app_custom_event.fb_mobile_achievement_unlocked: Разблокированные функции в мобильном приложении * app_custom_event.fb_mobile_activate_app: ЗапуÑки мобильного Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ * app_custom_event.fb_mobile_add_payment_info: Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± оплате в мобильном приложении * app_custom_event.fb_mobile_add_to_cart: Ð”Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² корзину в мобильном приложении * app_custom_event.fb_mobile_add_to_wishlist: Ð”Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² ÑпиÑок желаний в мобильном приложении * app_custom_event.fb_mobile_complete_registration: РегиÑтрации в мобильном приложении * app_custom_event.fb_mobile_content_view: ПроÑмотры материалов мобильного Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ * app_custom_event.fb_mobile_initiated_checkout: Оформление заказов в мобильном приложении * app_custom_event.fb_mobile_level_achieved: ДоÑÑ‚Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð² мобильном приложении * app_custom_event.fb_mobile_purchase: Покупки в мобильном приложении * app_custom_event.fb_mobile_rate: Оценки в мобильном приложении * app_custom_event.fb_mobile_search: ПоиÑковые запроÑÑ‹ в мобильном приложении * app_custom_event.fb_mobile_spent_credits: Траты кредитов в мобильном приложении * app_custom_event.fb_mobile_tutorial_completion: ИÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±ÑƒÑ‡Ð°ÑŽÑ‰ÐµÐ¹ программы в мобильном приложении * app_custom_event.other: Другие дейÑÑ‚Ð²Ð¸Ñ Ð² мобильном приложении * app_install: УÑтановки Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ * app_use: ИÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ * checkin: ПоÑÐµÑ‰ÐµÐ½Ð¸Ñ * comment: Комментарии к публикации * credit_spent: Траты кредитов * games.plays: КоличеÑтво раз, когда играли в вашу игру * landing_page_view: ПроÑмотры целевой Ñтраницы * leadgen.other: Лиды (Форма) * like: Отметки «ÐравитÑÑ» Страницы * link_click: КоличеÑтво кликов на ÑÑылку * mobile_app_install: УÑтановки мобильного Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ * offsite_conversion.custom.<custom_conv_id>: Индивидуально наÑтроенные рекламодателем конверÑии * offsite_conversion.fb_pixel_add_payment_info: Добавление платежной информации * offsite_conversion.fb_pixel_add_to_cart: Ð”Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð²Ð°Ñ€Ð¾Ð² в корзину * offsite_conversion.fb_pixel_add_to_wishlist: Ð”Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² ÑпиÑок пожеланий * offsite_conversion.fb_pixel_complete_registration: Ð—Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ð°Ñ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ * offsite_conversion.fb_pixel_custom: Специально наÑтроенные ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð¿Ð¸ÐºÑелÑ, заданные рекламодателем * offsite_conversion.fb_pixel_initiate_checkout: Инициирует оформление заказа * offsite_conversion.fb_pixel_lead: Потенциальные клиенты * offsite_conversion.fb_pixel_purchase: Покупки * offsite_conversion.fb_pixel_search: ПоиÑк * offsite_conversion.fb_pixel_view_content: ПроÑматривает контент * onsite_conversion.flow_complete: Завершенные рабочие процеÑÑÑ‹ на Facebook * onsite_conversion.messaging_block: Заблокированные перепиÑки * onsite_conversion.messaging_conversation_started_7d: Ðачата перепиÑка * onsite_conversion.messaging_first_reply: Ðовые перепиÑки * onsite_conversion.post_save: Ð¡Ð¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸ * onsite_conversion.purchase: Покупки на Facebook * outbound_click: ИÑходÑщие клики * photo_view: Отметки фотографии Страницы * post: РепоÑты публикации * post_reaction: Реакции на публикацию * rsvp: Ответы на мероприÑтие * video_view: 3-Ñекундные проÑмотры видео ## Применить одновременно неÑколько разбивок Ðекоторые разбивки можно применÑть одновременно. Типы группированиÑ, помеченные звездочкой (*), можно объединить Ñ action_type, action_target_id и action_destination (название action_target_id). * action_type * * action_target_id * * action_device * * action_device, 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 * * publisher_platform * * publisher_platform, impression_device * * publisher_platform, platform_position * * publisher_platform, platform_position, impression_device * * product_id * ## Окна атрибуции КоличеÑтво дней между проÑмотром или нажатием рекламы и выполнением дейÑÑ‚Ð²Ð¸Ñ Ð½Ð°Ð·Ñ‹Ð²Ð°ÐµÑ‚ÑÑ Ð¾ÐºÐ½Ð¾Ð¼ атрибуции. Ð’ функции `fbGetMarketingStat()` управление окнами атрибуции оÑущеÑтвлÑетÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ аргумента *attribution_window*. ДейÑÑ‚Ð²Ð¸Ñ Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ð¾Ð¹ измерÑÑŽÑ‚ÑÑ Ð½Ð° оÑновании кликов и проÑмотров: * ÐÑ‚Ñ€Ð¸Ð±ÑƒÑ†Ð¸Ñ Ð¿Ð¾ кликам: человек нажал рекламу и выполнил дейÑтвие. * ÐÑ‚Ñ€Ð¸Ð±ÑƒÑ†Ð¸Ñ Ð¿Ð¾ проÑмотрам: человек поÑмотрел рекламу, не нажал ее, но выполнил дейÑтвие в пределах окна атрибуции. По умолчанию окно атрибуции наÑтроено на 1 день поÑле проÑмотра и 28 дней поÑле клика. Ðто означает, что вы видите дейÑтвиÑ, которые произошли в течение 1 Ð´Ð½Ñ Ð¿Ð¾Ñле проÑмотра рекламы и в течение 28 дней поÑле ее нажатиÑ. Ð’Ñ‹ можете изменить окно атрибуции на 1, 7 или 28 дней поÑле проÑмотра или Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ñ‹. Чтобы поÑмотреть вÑе дейÑтвиÑ, ÑвÑзанные Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ð¾Ð¹, вы можете наÑтроить атрибуцию как поÑле проÑмотра, так и поÑле клика на один и тот же период времени. Ðапример, чтобы узнать, Ñколько покупок было Ñовершено поÑле проÑмотра или клика по рекламе за поÑледние 7 дней, выберите Ð´Ð»Ñ Ð¾ÐºÐ¾Ð½ атрибуции по проÑмотрам и кликам продолжительноÑть `attribution_window = c("7d_view", "7d_click")`. Ðргумент *attribution_window* принимает вектор ÑоÑтоÑщий из окон атрибуции по которым вы хотите получить данные, при Ñтом значение Ð¿Ð¾Ð»Ñ Ð¿Ð¾ каждой модели атрибуции которое вы получаете в маÑÑиве *actions* будет выделено в отдельный Ñтолбец. Ðапример еÑли вы применÑете атрибуции *7d_view* и *7d_click* то поле *lead* будет предÑтавлено в трёх Ñтолбцах: *lead*, *lead_7d_view*, *lead_7d_click*. Возможные модели атрибуции: account_default, default, inline, 1d_view, 7d_view, 28d_view, 1d_click, 7d_click, 28d_click, 1d_view_1d_click, 7d_view_1d_click, 28d_view_1d_click, 28d_view_7d_click, 7d_view_7d_click, 28d_view_7d_click, 7d_view_28d_click, 28d_view_28d_click. ### Пример иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾ÐºÐ¾Ð½ атрибуции ```{r} library(rfacebookstat) options(rfacebookstat.access_token = "ваш токен", rfacebookstat.accounts_id = "act_000000000") fb_data_action_breakdowns <- fbGetMarketingStat( level = "campaign", fields = "campaign_name, impressions, clicks, spend, actions", action_breakdowns = "action_reaction", attribution_window = c('default', '1d_view', '28d_view', '28d_click'), date_start = "2019-05-01", date_stop = "2019-05-10") ``` Более подробно об окнах атрибуции в Facebook можно узнать по Ñледующим ÑÑылкам: * [Об окнах атрибуции в Ads Manager](https://www.facebook.com/business/help/2198119873776795?id=768381033531365) * [API Insights / СтатиÑтика / Окна атрибуции](https://developers.facebook.com/docs/marketing-api/insights/#sample) * [СиÑтема правил Ð´Ð»Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ñ‹](https://developers.facebook.com/docs/marketing-api/ad-rules) ## Ð¤Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð’Ñ‹ можете применÑть фильтры к запрашиваемым данным. ИÑпользовать Ð´Ð»Ñ Ñтого необходимо аргумент `filtering`. Указывать выражение Ð´Ð»Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ð¸ Ñ‹ можете в упрощённом формате или в виде JSON объектов, ниже Ñ Ð¿Ñ€Ð¸Ð²ÐµÐ´Ñƒ пример иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±Ð¾Ð¸Ñ… вариантов. Ð”Ð»Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ð¸ вам необходимо указать поле по которому вы будете фильтровать данные, оператор и значение. ДопуÑтимые операторы Ð´Ð»Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ð¸: 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, STARTS_WITH, ANY, ALL, AFTER, BEFORE, NONE ### Пример фильтрации в упрощенном формате ```{r} library(rfacebookstat) options(rfacebookstat.access_token = "ваш токен", rfacebookstat.accounts_id = "act_000000000") fb_data <- fbGetMarketingStat( level = "campaign", fields = "campaign_name, impressions, clicks, spend, actions", filtering = "impressions LESS_THAN 5000", date_start = "2019-05-01", date_stop = "2019-05-10") ``` Ð’ приведённом примере мы указали фильтр `impressions LESS_THAN 5000` и таким образом оÑтавили Ñтроки в которых поле impressions имеет значение менее 5000. ЕÑли вам необходимо иÑпользовать множеÑтвенный оператор (IN_RANGE, NOT_IN_RANGE, IN, NOT_IN) то в упрошенном формате запиÑÑŒ будет выглÑдеть так: `"publisher_platform IN instagram,facebook"`. Важно не Ñтавить проблемы между ÑпиÑком значений. ```{r} library(rfacebookstat) options(rfacebookstat.access_token = "ваш токен", rfacebookstat.accounts_id = "act_000000000") fb_data <- fbGetMarketingStat( level = "campaign", fields = "campaign_name, impressions, clicks, spend, actions", filtering = "publisher_platform IN instagram,facebook", breakdowns = "publisher_platform", date_start = "2019-05-01", date_stop = "2019-05-10") ``` ЕÑли вы хотите применить неÑколько фильтров, то вы можете передать в аргумент `filtering` вектор из выражений, например: `c("clicks LESS_THAN 500", "impressions GREATER_THAN 1000")`. ```{r} library(rfacebookstat) options(rfacebookstat.access_token = "ваш токен", rfacebookstat.accounts_id = "act_000000000") fb_data <- fbGetMarketingStat( level = "campaign", fields = "campaign_name, impressions, clicks, spend, actions", filtering = c("clicks LESS_THAN 500", "impressions GREATER_THAN 1000"), date_start = "2019-05-01", date_stop = "2019-05-10") ``` ### Пример фильтрации в JSON формате Как Ñ ÑƒÐ¶Ðµ пиÑал выше вы можете опиÑывать фильтры в виде JSON объектов, но Ñ‚Ð°ÐºÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ будет более громоздка. Давайте приведу вам аналогию Ñ Ð¿Ñ€ÐµÐ´Ñтавленными выше фильтрами. Упрощённый формат: `"impressions LESS_THAN 5000"` JSON: `"[{"field":"impressions","operator":"LESS_THAN","value":"5000"}]"` --- Упрощённый формат: `"publisher_platform IN instagram,facebook"` JSON: `[{"field":"publisher_platform","operator":"IN","value":["instagram","facebook"]}]` --- Упрощённый формат: `c("clicks LESS_THAN 500", "impressions GREATER_THAN 1000")` JSON: `[{"field":"clicks","operator":"LESS_THAN","value":"500"},{"field":"impressions","operator":"GREATER_THAN","value":"1000"}]` ## Лимиты API и аргумент request_speed По иÑпользованию аргумента `request_speed` еÑть Ñ†ÐµÐ»Ð°Ñ [ÑтатьÑ](https://alexeyseleznev.wordpress.com/2017/12/26/rfacebookstat-1-5-0-%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B0%D1%80%D0%B3%D1%83%D0%BC/), но Ñ Ð²ÑÑ‘ же немного опишу зачем данный аргумент нужен. Ð’ API Facebook на данный момент ÑущеÑтвует 2 ÑƒÑ€Ð¾Ð²Ð½Ñ Ð´Ð¾Ñтупа к API ([раздел в Ñправке](https://developers.facebook.com/docs/marketing-api/get-started/authorization) API Facebook): * Разработка - ТеÑтирование приложений Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ API. * Стандартный уровень доÑтупа Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ€ÐµÐºÐ»Ð°Ð¼Ð¾Ð¹ - Дополнительные реÑурÑÑ‹, например менее Ñтрогие Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ ÐºÐ¾Ð»Ð¸Ñ‡ÐµÑтва обращений, а также возможноÑть принÑть учаÑтие в программе Ð´Ð»Ñ Ð¿Ð°Ñ€Ñ‚Ð½ÐµÑ€Ð¾Ð² Facebook. По умолчанию вÑе Ñоздаваемые вами Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÑŽÑ‚ уровень "Разработка". Данный уровень имеет Ñерьёзные Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð½Ð° количеÑтво отправлÑемых в API запроÑов. Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ `fbGetMarketingStat` при иÑпользовании аргумента `interval` равным `"day"` загружает данные по днÑм, и на каждый день отправлÑет отдельный Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð² API. Так же отдельно разделÑÑŽÑ‚ÑÑ Ð·Ð°Ð¿Ñ€Ð¾ÑÑ‹ еÑли вы загружаете данные Ñразу по неÑколько аккаунтам, таким образом еÑли вы планируете загрузить данные Ñ 1 ÑÐ½Ð²Ð°Ñ€Ñ Ð¿Ð¾ 21 ÑÐ½Ð²Ð°Ñ€Ñ Ð¿Ð¾ 3ём аккаунтам Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ (31 * 3) 93 запроÑа к API. Ð’ Ñлучае еÑли вы имеете Ñтандартный доÑтуп то Ð´Ð»Ñ Ð²Ð°Ñ Ñто не будет проблемой, и вы можете уÑтановить `request_speed = "fast"`, но Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹ Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¼ доÑтупа "Разработка" такой объём отправлÑемых запроÑов может выйти далеко за лимиты API, от чаÑти `fbGetMarketingStat` умеет обходить такие лимиты каждый раз ÑƒÑ…Ð¾Ð´Ñ Ð² бан при их превышении, но ÑкороÑть загрузки данных при попадании в бан будет очень низкий, иногда бан может ÑоÑтавлÑть 5 минут. ПоÑтому еÑли ваше приложение имеет уровень доÑтупа "Разработке" при загрузке данных по днÑм за длительный период рекомендуетÑÑ Ð¸Ñпользовать `request_speed = "slow"`. ЕÑли значение "slow" не помогает вы можете ÑамоÑтоÑтельно задавать паузу в Ñекундах между запроÑами, например `request_speed = 4` будет задавать 4 Ñекундную паузу между отправкой запроÑов. Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñтандартного доÑтупа требуетÑÑ Ð¿ÐµÑ€ÐµÐ¹Ñ‚Ð¸ в [ваше приложение](https://developers.facebook.com/apps/) в раздел наÑтроек API Marketing и отправить заÑвку на "Ads Management Standart Access".