我尝试使用批量请求更新广告组。如果不添加image_file参数,一切都会正常,但添加时会返回错误。
我的ad_specs;
阵 ( [方法] =>岗位 [relative_url] => ?6003452316521名称= ReklamGrubu915&安培; MAX_BID = 50&安培; BID_TYPE = 1&安培;靶向= { “性别”:[ “1”, “2”], “age_min”: “30”, “age_max”: “40”, “国家” :[“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 ?吉= 334" , “IMAGE_FILE”: “img17.jpg”} )
并将图像添加到batch_params
$ batch_params ['img17.jpg'] ='/ var / www / images / img17.jpg'
我发送但它返回此错误;
错误1487242 - 图像调整大小失败 - getimagesize函数返回false
如果我删除了image_file参数,那么每次更新都会正常进行,因此批量请求为true。图像文件存在于右侧目录中。我尝试将image_file参数更改为'attached_files'。然后没有错误看一切正常,返回数据是真的,但我看到Facebook广告管理页面没有图像更改?
有什么想法吗?请问它的错误请帮忙吗?我正在使用PHP SDK。
答案 0 :(得分: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>',
));