Может ли кто-нибудь сказать мне правильный способ получения идентификаторов учетных записей, которые разделяют одну пользовательскую аудиторию, то есть adaccounts
Запрос в PHP с использованием API v2.4
$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»
ПРОБЛЕМА
Все значения находятся в float, или я не знаю, что эти значения на самом деле.
Я преобразовал эти значения в int, но они оказались в отрицательных и неправильных идентификаторах счетов.
Пожалуйста, дайте мне знать, что, что и где я не прав.
Он работает абсолютно нормально в инструменте Graph Api Explorer, когда я запрашиваю это:
Запрос в Graph Api Explorer v2.4:
act_34234234234344 / customaudiences? поля = adaccounts
Результаты:
«adaccounts»: {
«данные»: [
534534534534555,
564563453454534,
345345345345345,
234234234234234
]
}
На самом деле значения, возвращаемые в ответе, были в научной нотации, поэтому просто перебирайте каждое значение (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++;
}
}
Я не скажу, что это ответ, это обходной путь. Еще больше ответов приветствуются
Других решений пока нет …