The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Для загрузки статистических данных из рекламных аккаунтов Facebook в
пакете rfacebookstat
необходимо использовать функцию
fbGetMarketingStat
.
fbGetMarketingStat
Функция имеет множество аргументов с помощью которых вы можете максимально точно обозначить формат получаемых из API Facebook данных.
act_
, вы можете указать вектор из ID
аккаунтов если требуется загрузить данные из набора аккаунтов. По
умолчанию запрашивает значение опции
rfacebookstat.accounts_id.action_report_time = "impression"
, вы
увидите конверсию 1 января. Когда вы запросите API с помощью
action_report_time = "conversion"
, вы увидите
преобразование 2 января.fbGetToken
, по умолчанию запрашивается значение
опции. rfacebookstat.access_tokenlibrary(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')
.
Разбивки помогают обогащать ваши данные за счёт дополнительных полей и группировок, на данный момент поддерживаются следующие разбивки:
Актуальный список группировок всегда можно найти в официальной документации API Facebook по ссылке.
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")
Вы можете сгруппировать результаты в поле actions. Аргумент action_breakdowns позволяет применить указанные ниже разбивки.
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, action_target_id и action_destination (название action_target_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.
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 можно узнать по следующим ссылкам:
Вы можете применять фильтры к запрашиваемым данным. Использовать для
этого необходимо аргумент 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
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"
. Важно не
ставить проблемы между списком значений.
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")
.
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 объектов, но такая запись будет более громоздка. Давайте приведу вам аналогию с представленными выше фильтрами.
Упрощённый формат: "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"}]
По использованию аргумента request_speed
есть целая статья,
но я всё же немного опишу зачем данный аргумент нужен.
В API Facebook на данный момент существует 2 уровня доступа к API (раздел в справке 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 секундную паузу
между отправкой запросов.
Для получения стандартного доступа требуется перейти в ваше приложение в раздел настроек API Marketing и отправить заявку на “Ads Management Standart Access”.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.