Facebook Marketing API: можно ли фильтровать информацию по статусу

Я пытаюсь отфильтровать информацию о наборах объявлений по статусу набора объявлений, но когда я добавляю фильтр состояния, я получаю пустой набор данных:

curl "https://graph.facebook.com/v2.7/act_<redacted>/insights?fields=clicks,impressions,cpc,ctr,account_id&time_range%5Bsince%5D=2016-01-12&time_range%5Buntil%5D=2016-09-12&access_token=<redacted>&format=json&filtering=%5B%7B%22field%22:%22status%22,%22operator%22:%22EQUAL%22,%22value%22:%22ACTIVE%22%7D%5D&level=adset"

вот как выглядит параметр фильтрации до кодирования URL: [{"field":"status","operator":"EQUAL","value":"ACTIVE"}]

Я пробовал все допустимые значения для статуса ACTIVE, PAUSED, DELETED, ARCHIVED безрезультатно. Когда я удаляю параметр фильтрации - я вижу свои данные.

Вопрос: Кто-нибудь знает, можно ли фильтровать по статусу, и если да, то что я делаю не так?


person Ilya    schedule 13.09.2016    source источник


Ответы (3)


Это возможно. Использование последней версии по состоянию на март 2018 года.

Вам нужно фактически запросить все объявления, которые являются АКТИВНЫМИ, а затем предоставить insights в виде «вложенного» списка полей.

Замените 123456 на свой рекламный аккаунт (но оставьте 'act_', который нужен)

act_123456/ads?fields=efficient_status,name,insights{total_action_value,total_actions,actions},adset_id,campaign_id&filtering=[{'field':' Effective_status','operator':'IN','value':['ACTIVE'] }]

Это также работает для /campaigns и /adsets


Вы также можете сделать это (не забудьте указать &level=ad):

act_123456/insights?fields=ad_id,adset_id,campaign_name,action_values,campaign_id,total_action_value&level=ad&filtering=[{"field":"campaign.delivery_info","operator":"IN","value":["active"]} ]

person Simon_Weaver    schedule 07.03.2018
comment
Помните, что активный статус и статус информации о доставке актуальны на момент совершения звонка. - person Simon_Weaver; 09.03.2018
comment
чувак, ты спас мне ночь ‹3 - person gogolaygo; 10.02.2019
comment
@LaylaZhang рад слышать :) одну вещь, которую я должен добавить, это помнить, что эти статусы основаны на текущем статусе кампании. Поэтому, если вы отфильтруете по «активным» за последнюю неделю, но кампания была остановлена, то ее не будет в результатах. - person Simon_Weaver; 10.02.2019
comment
Когда я ищу PHP SDK для delivery_info, я не вижу результатов. Я могу увидеть в SDK: \FacebookAds\Object\Fields\AbstractArchivableCrudObjectFields::EFFECTIVE_STATUS. Когда я ищу https://www.google.com/search?q=site:https://developers.facebook.com+delivery_info&source=lnt&tbs=li:1&sa=X&ved=0ahUKEwijnpb6itTkAhULlawKHVpXAIsQpwUIKQ&biw=1920&bih=947, единственный документ, который я могу найти, это developers.facebook.com/docs/marketing-api/best-practices/, который не помог мне понять, почему мои запросы не т работает. - person Ryan; 16.09.2019

Фильтрация по статистике невозможна. По крайней мере, в версии 2.7. Чтобы получить представление, скажем, о рекламе, я решил сделать следующее: 1. Получить нужные мне объявления с помощью /ads вызова. Это позволяет мне фильтровать по статусу. 2. Получите статистику по той же коллекции объявлений и убедитесь, что в ответ включен идентификатор объявления. 3. Отфильтруйте вторую коллекцию, используя первую.

person Ilya    schedule 06.10.2016
comment
Привет, Илья, держу пари, ты знаешь, как ответить на этот вопрос: stackoverflow.com/questions/42584176/ (Ваше резюме здесь недостаточно подробно, чтобы я мог его понять.) - person Ryan; 03.03.2017

я использую это, чтобы фильтровать кампании с идеями, работает на меня, начните играть с этим

'filtering'=>
                  array(
                        array(
                        "field"=>"campaign.effective_status",
                        "operator"=>"IN",
                        "value"=>$campaigncheckstatus,
                      ),
                  ), 
$campaigncheckstatus =  array("ACTIVE","PAUSED");

не забудьте указать json_encode $campaigncheckstatus при передаче через URL

person Ahsan Khan    schedule 05.10.2016
comment
Меня очень воодушевил ваш ответ, но я не смог заставить его работать в версии 2.7 или 2.8. Вы знаете, как это сделать в 2.8? Вот мой вопрос: stackoverflow.com/questions/42584176/ Спасибо! - person Ryan; 03.03.2017