首页 文章

AdSets api称Facebook为Facebook

提问于
浏览
0

我正在使用Java SDK从Facebook营销API . 我在阅读Insights时遇到了问题 . 我调用了我的帐户的广告,并为每个广告集调用了getInsights()函数 . 在对两个不同广告的见解请求之间,我有一个Thread.sleep(5000) . 但是,我仍然得到错误17:“达到用户请求限制” . 我用这个代码:

public static final APIContext context = new APIContext(
            "ACCESS TOKEN",
            "SECRET KEY"
    );
public static void main(String[] args) throws APIException, ParseException
{

    String sDate1="2018-04-01"; 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

    Calendar c = Calendar.getInstance();
    String finala="2018-07-16";  
    Date datefinal=new SimpleDateFormat("yyyy-MM-dd").parse(finala); 
    System.out.println(datefinal);
    c.setTime(df.parse(sDate1));

    sDate1=df.format(c.getTime());
    System.out.println(c.getTime());

    while(!datefinal.before(c.getTime())) {
            System.out.println(df.format(c.getTime()));
    try {   
        AdAccount account = new AdAccount("ACCOUNT ID", context);
            try {
            APINodeList<AdSet> adsets = account.getAdSets().setTimeRange("{\"since\":\""+sDate1+"\",\"until\":\""+sDate1+"\"}").requestAllFields().execute();
            adsets = adsets.withAutoPaginationIterator(true);
            for(AdSet adset : adsets) {
                System.out.println(adset.getFieldName());
                Thread.sleep(5000);
                //System.out.println(adset.getFieldId());
                APINodeList<AdsInsights> adsInsightss = adset.getInsights()
                      .setTimeRange("{\"since\":\""+sDate1+"\",\"until\":\""+sDate1+"\"}")
                      .requestField("campaign_name")
                      .requestField("clicks")
                      .requestField("cpc")
                      .requestField("cpm")
                      .requestField("cpp")
                      .requestField("ctr")
                      .requestField("date_start")
                      .requestField("date_stop")
                      .requestField("frequency")
                      .requestField("impressions")
                      .requestField("reach")
                      .requestField("spend")
                      .requestField("unique_clicks")
                      .requestField("unique_ctr")
                      .requestField("website_ctr")
                      .requestField("website_purchase_roas")
                      .execute();
                if(adsInsightss.size()>0) {
                    System.out.println(adset.getFieldName());

                    }

            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    } catch (ClassNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    c.setTime(df.parse(sDate1));
    c.add(Calendar.DATE, 1);

    sDate1=df.format(c.getTime());

    }
}

我想只获得在我指定的日期范围内至少有一次展示的广告集 . 或者至少在一次通话中获得所有见解 . 谢谢!

1 回答

  • 0

    我通过用以下代码替换try块中的代码来解决它:

    APINodeList<AdsInsights> adsInsightss = account.getInsights().setTimeRange("{\"since\":\""+sDate1+"\",\"until\":\""+sDate1+"\"}").setParam("level", "ad").setParam("limit", 1000).requestField("adset_name")
                              .requestField("campaign_name")
                              .requestField("clicks")
                              .requestField("cpc")
                              .requestField("cpm")
                              .requestField("cpp")
                              .requestField("ctr")
                              .requestField("date_start")
                              .requestField("date_stop")
                              .requestField("frequency")
                              .requestField("impressions")
                              .requestField("reach")
                              .requestField("spend")
                              .requestField("unique_clicks")
                              .requestField("unique_ctr")
                              .requestField("website_ctr")
                              .requestField("website_purchase_roas")
                              .requestField("action_values").execute();
    

相关问题