facebook java ads sdk如何检索"交付,结果,result_rate,cost_per_result",并按天细分

时间:2017-09-13 23:42:55

标签: facebook facebook-graph-api facebook-java-api

我试图使用facebook的java sdk来生成广告报告。我主要遵循示例代码,使用新的AdAccount(ad_account_id,context).getInsights()来检索数据。但对于java sdk,我只能检索部分数据。我不确定我是否使用了正确的API。

    import com.facebook.ads.sdk.*;

    import java.util.ArrayList;
    import java.util.List;
    import config.fbreporting.gettyimages.com.Config;

    public class Sample_code {
        public static void main(String args[]) throws APIException {
            String access_token = Config.ACCESS_TOKEN;
            String ad_account_id = Config.AD_ACCOUNT_ID;
            String app_secret = Config.APP_SECRET;
            APIContext context = new APIContext(access_token).enableDebug(true);
            List<AdsInsights.EnumBreakdowns> breakdowns = new ArrayList<>();
            List<AdsInsights.EnumSummary> summaries = new ArrayList<>();


            APINodeList<AdsInsights> adsInsights =  new AdAccount(ad_account_id, context)
                .getInsights()
                .setLevel(AdsInsights.EnumLevel.VALUE_AD)
                .setFiltering("[{\"field\":\"impressions\",\"operator\":\"GREATER_THAN\",\"value\":\"0\"}]")
//                .setBreakdowns(List<AdsInsights.EnumBreakdowns.VALUE_>)
                .setBreakdowns(breakdowns)
                .setTimeRange("{\"since\":\"2017-08-13\",\"until\":\"2017-09-12\"}")
                .requestField("account_id")
                .requestField("account_name")
                .requestField("ad_name")
                .requestField("adset_id")
                .requestField("adset_name")
                .requestField("ad_id")
                .requestField("actions")
                .requestField("unique_clicks")
                .requestField("unique_inline_link_clicks")
                .requestField("impressions")
                .requestField("reach")
                .requestField("relevance_score")
                .requestField("campaign_id")
                .requestField("campaign_name")
                .requestField("total_action_value")
                .requestField("social_impressions")
                .requestField("spend")
                .requestField("total_actions")
                .requestField("total_conversion_value")
                .requestField("clicks")
                .requestField("date_start")
                .requestField("date_stop")
//                .requestField("delivery")
//                .requestField("result_rate")
//                .requestField("results")
//                .requestField("cost_per_result")

                .execute();
        }
    }

如果我这样使用,它会返回:

{
   "error": {
      "message": "(#100) result is not valid for fields param. please check https://developers.facebook.com/docs/marketing-api/reference/ads-insights/ for all valid values",
      "type": "OAuthException",
      "code": 100,
      "fbtrace_id": "ALSFEzwK4YP"
   }
}

递送 result_rate 结果 cost_per_result

有没有人知道从哪里获得这些领域?

另一个问题是我无法按日设置故障。 AdsInsights.EnumSummary中没有此值。

1 个答案:

答案 0 :(得分:0)

要按天细分,您需要设置参数time_increment = 1。