与定位custom audience
不同,似乎无法使用Facebook Ads API创建定位saved audience
的广告。有人可以确认是这样的吗?什么是解决方法?这是我得到的错误:
Error #100: Param targeting[custom_audiences][id] must be a valid custom audience id
saved audience
和custom audience
之间存在差异。 saved audience
是您手动创建的受众,指定年龄范围,地理区域和兴趣。虽然custom audience
是您收集的客户列表(已上传或访问者或您的网站等)。您可以通过广告管理器界面手动创建这些受众群体:
使用Graph API Explorer,可以按照以下方式检索saved audiences
:
act_1234567890/saved_audiences
使用Graph API Explorer,可以按照以下方式检索custom audiences
:
act_123456789/customaudiences
请注意,123456789
不是我的真实帐号。我出于安全原因更改了它。
因此,我可以检索custom audiences
和saved audiences
的ID,并创建定位custom audience
的广告可以正常工作,与定位saved audience
不同,这会产生上述错误消息
繁琐的解决方法可能是在本地保存每个saved audience
的{{3}},并在制作广告时使用该规范。问题在于,某些targeting segments
变得无效(Facebook决定随机停止某些细分市场),导致Facebook Ads API陷入困境。此外,这意味着我经常需要让saved audiences
与我的本地副本保持同步。当然,除非我动态检索targeting
saved audience
并重新使用它,否则每次创建广告时都会产生另一个API请求。
答案 0 :(得分:2)
我自己想通了。直接定位saved audience
似乎不可能与custom audience
不同,这是奇怪的。我所做的是首先从保存的受众群体中检索targeting
,然后在制作广告时重复使用该定位。
您可以在此处看到官方文档的屏幕截图,其中只显示custom audiences
和lookalike audiences
。
从targeting
(使用Facebook PHP SDK)检索saved audience
:
$api = Api::instance();
use FacebookAds\Http\Request;
$response = $api->call(
"/987654321", 'GET',
array('fields'=>'targeting')
);
$audience = $response->getContent();
将987654321作为已保存的受众群体ID。
然后将该定位复制到广告(使用Facebook PHP SDK):
use FacebookAds\Object\Targeting;
use FacebookAds\Object\Fields\TargetingFields;
$targeting = new Targeting();
$targeting->setData($audience['targeting']);
此技术的缺点是,saved audience
更新时广告不会更新,并且需要额外的API调用才能减慢广告的制作速度。