Facebook Ads API PHP:如何获得自定义受众的广告

时间:2015-08-05 15:19:49

标签: php facebook facebook-graph-api facebook-php-sdk facebook-ads-api

任何人都可以告诉我获取共享一个自定义受众的帐户ID的正确方法,即adaccounts
使用API​​ v2.4在PHP中查询

$account = new AdAccount($accountId);
    $fields = array(
        CustomAudienceFields::ID,
        CustomAudienceFields::NAME, 
        CustomAudienceFields::SUBTYPE,
        CustomAudienceFields::ACCOUNT_ID,
        CustomAudienceFields::ADACCOUNTS,
    );
    $params = array('filters'=>array(
                    array(
                        'field'=>'subtype',
                        'type'=>'in',
                        'value'=>['WEBSITE','CUSTOM'],
                    ),
                ),);    

    $CustomAudience = $account->getCustomAudiences($fields,$params);

结果

[adaccounts] => Array ( [data] => Array ( [0] => 9.1432423423488E+14 [1] => 8.9623423402405E+14 [2] => 8.71252342345443E+14 [3] => 8.832242342342387E+14 [4] => 8.92234234079338E+14 ) )

注意:我自己在CustomAudienceFileds.php中添加了此属性:
“CustomAudienceFields :: ADACCOUNTS”

问题
所有值都是浮点数,或者我不知道这些值实际上是什么。 我将这些值转换为int,但它们似乎是负面和错误的帐户ID 请让我知道我错在哪里和哪里。

当我查询时,它在Graph Api Explorer工具中工作得非常好:
在图表Api Explorer v2.4中查询:
act_34234234234344 / customaudiences?字段= adaccounts
结果:
 “adaccounts”:{         “数据”:[           534534534534555,           564563453454534,           345345345345345,           234234234234234         ]       }

1 个答案:

答案 0 :(得分:0)

实际上,响应中返回的值是科学记数法,因此只需遍历每个值(adaccountid)并使用 spinrtf 将其转换为整数,如下所示:

$i =0;
foreach ($CustomAudience as $audience) {
  foreach($audience->adaccounts['data'] as $accountid)
  {
    if($i ==0)
        $info["adaccountsIds"] =  sprintf('%.0F',$accountid);
    else
        $info["adaccountsIds"] .= ','.sprintf('%.0F',$accountid);

   $i++;
  }
}  

我不会说它回答,这是一个解决方法。欢迎提供更多答案