2

我尝试使用批量请求更新广告组。如果不添加 image_file 参数,一切都会正常,但添加时会返回错误。

我的广告规格;

数组 ( [method] => post [relative_url] => 6003452316521?name=ReklamGrubu915&max_bid=50&bid_type=1&targeting={"gender":["1","2"],"age_min":"30","age_max": "40","countries":["TR"],"keywords":["#Nike, Inc."],"cities":[{"name":"Istanbul"},{"name":"Ankara "},{"name":"Izmir"}]}&creative={"title":"Ev Yemekleri","body":"Evde harika lezzetler!","link_url":"http://www.xxxxx. com/dealer.php?kat=334","image_file":"img17.jpg"} )

并将图像添加到 batch_params

$batch_params['img17.jpg'] = '/var/www/images/img17.jpg'

我发送它,但它返回此错误;

错误 1487242 - 图像调整大小失败 - getimagesize 函数返回 false

如果我删除 image_file 参数,每次更新都很好,所以批处理请求为真。图像文件存在于正确的目录中。我尝试将 image_file 参数更改为“attached_files”。然后没有错误,看起来一切正常,返回数据为真,但我看到 facebook 广告管理页面没有图像更改?

有任何想法吗 ?请问它是一个错误吗?我正在使用 PHP SDK。

4

1 回答 1

0

当您在广告素材中指定图片的文件名时,您必须将图片文件添加为多部分 MIME POST。您当前正在提供图像路径。($batch_params['img17.jpg'] = '/var/www/images/img17.jpg')。实际上,您需要根据请求将图像上传到 Facebook。

或者,您可以先使用 Fb Ad Image Api 在库中创建图像,然后在创意中使用 image_hash。

$image = new AdImage(null, 'act_<ACCOUNT_ID>');
$image->{AdImageFields::FILENAME} = '<IMAGE_PATH>';

$image->create();
echo 'Image Hash: '.$image->{AdImageFields::HASH}.PHP_EOL;

接着

$creative = new AdCreative(null, 'act_<ACCOUNT_ID>');
$creative->setData(array(
  AdCreativeFields::TITLE => 'My Test Creative',
  AdCreativeFields::BODY => 'My Test Ad Creative Body',
  AdCreativeFields::OBJECT_URL => 'https://www.facebook.com/facebook',
  AdCreativeFields::IMAGE_HASH => '<IMAGE_HASH>',
));
于 2015-06-24T07:56:54.230 回答