如何编写 PHP curl 代码并使用正确的参数格式来拉回 Facebook 广告到达率预估

问题描述 投票:0回答:1

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 扩展编写此内容?

php facebook curl facebook-graph-api
1个回答
2
投票

这里有几点需要注意。

将 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);
© www.soinside.com 2019 - 2024. All rights reserved.