Php Facebook营销API产品受众不';不要保存一些值
我面临以下问题:Php Facebook营销API产品受众不';不要保存一些值,php,facebook,api,methods,Php,Facebook,Api,Methods,我面临以下问题: 我创建一个像素(在项目中使用:ViewProduct、AddToBasket&Purchase) 创建目录+创建产品提要+创建产品集 实现ProductAudience以在Facebook上创建受众 在那之前,一切都很好,但是当我去Facebook,导航到产品受众时,它没有我在创建受众时设置的任何数据。(例如,未设置像素标识、产品集合标识、包含和排除) 我的代码就是这样的: use FacebookAds\Object\ProductAudience; use
use FacebookAds\Object\ProductAudience;
use FacebookAds\Object\Fields\ProductAudienceFields;
$productAudience = new ProductAudience($this->id, <myFacebookAdAccountId>);
$audienceData = [
ProductAudienceFields::PIXEL_ID => <myPixelId>,
ProductAudienceFields::PRODUCT_SET_ID => <myProductSetId>,
ProductAudienceFields::NAME => 'Name for the audience',
];
if (count($this->inclusions)) $audienceData[ProductAudienceFields::INCLUSIONS] = $this->inclusions;
if (count($this->exclusions)) $audienceData[ProductAudienceFields::EXCLUSIONS] = $this->exclusions;
$productAudience->setData($audienceData);
return $productAudience->create();
已返回以下对象:
#data: array:7 [
"id" => "6047126484024"
"name" => "Name for the audience"
"description" => null
"product_set_id" => null
"pixel_id" => null
"inclusions" => null
"exclusions" => null
]
这些值也设置为null。。。我使用的API版本是2.5.0,找到了问题的解决方案
$productAudience = new ProductAudience($this->id);
$productAudience->read([
ProductAudienceFields::PIXEL_ID,
ProductAudienceFields::NAME,
ProductAudienceFields::DESCRIPTION,
'data_source',
]);
它没有设置值,因此product_set_id和其他几个字段仍然设置为null,但我们得到了“creation_params”对象中的所有字段
我还创建了一个帮助器函数,用于设置所需的值:
private function fieldsFromDataSourceToObject(ProductAudience &$productAudience)
{
$creationParams = json_decode($productAudience->data_source['creation_params']);
$productAudience->setData([
ProductAudienceFields::PRODUCT_SET_ID => $creationParams->product_set_id,
ProductAudienceFields::INCLUSIONS => json_decode($creationParams->inclusions, true),
ProductAudienceFields::EXCLUSIONS => json_decode($creationParams->exclusions, true),
]);
}
所以在阅读了现有的产品受众之后,我只调用helper函数,其响应为param
$this->fieldsFromDataSourceToObject($productAudience);
希望这个解决方案能节省一些人的时间。找到了解决我问题的方法
$productAudience = new ProductAudience($this->id);
$productAudience->read([
ProductAudienceFields::PIXEL_ID,
ProductAudienceFields::NAME,
ProductAudienceFields::DESCRIPTION,
'data_source',
]);
它没有设置值,因此product_set_id和其他几个字段仍然设置为null,但我们得到了“creation_params”对象中的所有字段
我还创建了一个帮助器函数,用于设置所需的值:
private function fieldsFromDataSourceToObject(ProductAudience &$productAudience)
{
$creationParams = json_decode($productAudience->data_source['creation_params']);
$productAudience->setData([
ProductAudienceFields::PRODUCT_SET_ID => $creationParams->product_set_id,
ProductAudienceFields::INCLUSIONS => json_decode($creationParams->inclusions, true),
ProductAudienceFields::EXCLUSIONS => json_decode($creationParams->exclusions, true),
]);
}
所以在阅读了现有的产品受众之后,我只调用helper函数,其响应为param
$this->fieldsFromDataSourceToObject($productAudience);
希望这个解决方案能节省一些人的时间