Facebook仅提供了一个shellcurl命令作为如何拉回到达估计的示例。 像这样..
curl -G \
-d "currency=USD" \
-d "targeting_spec=___" \
-d "access_token=___" \
"https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/reachestimate"
如何正确设置所有 Targeting_Specs 参数的格式并为 PHP Curl 扩展编写此内容?
这里有几点需要注意。
将 shell curl 命令转换为 PHP 时,人们可能会认为,由于 Targeting_spec 将具有大量数据,因此将其获取到 Facebook 图表的最佳方法是发布数据。 然而,这个图调用的 facebook 图不会接受帖子,它只是返回(尝试时出现无效帖子错误),所以我发现你需要使用 get param string
$postData = array(
'currency' => 'USD',
'access_token' => $this->_access_token,
'targeting_spec' => urlencode(json_encode($targetingArray)),
);
目标数组将包含目标数据,例如性别、最小年龄、最大年龄、邮政编码等,以及您可能拥有的任何高级人口统计数据,例如行为、兴趣、收入、净值等。这些最终需要格式化为 json 字符串。 您可以通过创建一个与 json 结构匹配的 PHP 数组,然后使用 json_encode 来完成此操作。
要查看 Targeting_Spec 的最终结果格式,请按照定位规范文档中给出的示例进行操作。请参阅此网址https://developers.facebook.com/docs/marketing-api/targeting-specs/v2.3
注意:定位规范中的高级人口统计数据包含 json 中的名称值,并且由于 facebook 在这种情况下需要 get 字符串,因此您需要对 Targeting_spec 参数 json 字符串进行 urlencode,如上所示。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://graph.facebook.com/v2.2/" . $this->_ad_account->id . "/reachestimate" .
'?access_token=' . $postData['access_token'] . '&' .
'targeting_spec=' . $postData['targeting_spec'] . '&' .
'currency=' . 'USD'
);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);