【问题标题】:Facebook Marketing API: Is it possible to filter insights by statusFacebook Marketing API:是否可以按状态过滤洞察力
【发布时间】:2016-09-13 19:48:10
【问题描述】:

我正在尝试按广告集状态过滤广告集见解,但是当我添加状态过滤器时,我得到一个空数据集:

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 的所有有效值,但无济于事。 当我删除过滤参数时 - 我看到了我的数据。

问题是: 有谁知道是否可以按状态过滤,如果可以,我做错了什么?

【问题讨论】:

    标签: facebook facebook-graph-api facebook-marketing-api


    【解决方案1】:

    这是可能的。使用截至 2018 年 3 月的最新版本。

    您需要实际请求所有处于活动状态的广告,然后提供 insights 作为“嵌套”字段列表。

    将 123456 替换为您的广告帐户(但留下需要的 'act_'

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

    这也适用于/campaigns/adsets


    您也可以这样做(一定要包含&amp;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 "]}]

    【讨论】:

    • 请记住,活动状态和送货信息状态是您拨打电话时的状态。
    • 哥们,你救了我一晚
    • @LaylaZhang 很高兴听到 :) 我应该补充的一件事是记住这些状态是基于活动的 当前 状态。因此,如果您按上周的“活动”进行过滤,但该广告系列已停止,则它不会出现在结果中。
    • 当我在 PHP SDK 中搜索 delivery_info 时,没有看到任何结果。我可以在 SDK 中看到:\FacebookAds\Object\Fields\AbstractArchivableCrudObjectFields::EFFECTIVE_STATUS。当我搜索google.com/search?q=site:https://… 时,我能找到的唯一文档是developers.facebook.com/docs/marketing-api/best-practices/…,它并没有帮助我了解为什么我的查询不起作用。
    【解决方案2】:

    无法按见解过滤。至少在 v2.7 中。为了获得假设广告的见解,我决定执行以下操作: 1.通过/ads调用获取我需要的广告。这允许我按状态过滤。 2. 获取同一广告集合的见解,并确保我的广告 ID 包含在响应中。 3. 使用第一个过滤第二个集合。

    【讨论】:

    【解决方案3】:

    我正在使用它来过滤具有洞察力的广告系列,为我工作,开始使用它

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

    如果通过 url 传递,不要忘记对 $campaigncheckstatus 进行 json_encode

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-29
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多