首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Facebook营销API配置资产自定义asset_feed_spec错误

Facebook营销API配置资产自定义asset_feed_spec错误
EN

Stack Overflow用户
提问于 2021-05-31 11:39:48
回答 1查看 542关注 0票数 2

我一直在尝试根据位置自动生成不同内容的广告(facebook-feed,信使故事)。我一直在追踪文件。

https://developers.facebook.com/docs/marketing-api/dynamic-creative/placement-asset-customization#asset-feed

但是由于某种原因,它返回一个错误,说明整个object_story_spec都是错误的。但这可能与我的asset_feed_spec有关,因为这是我唯一改变的东西。

代码语言:javascript
运行
复制
object_story_spec param is invalid
Object story spec is ill formed. Maybe missing Page ID or creative details, or invalid fields exist

以前有人试过这样做吗?或者有什么方法可以让我得到更清晰的错误信息?

下面是我在尝试创建创意时使用的代码。

代码语言:javascript
运行
复制
$creative->setData([
   AdCreativeFields::CALL_TO_ACTION_TYPE => $callToAction,
   AdCreativeFields::IMAGE_HASH => $image_hash,
   AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec,
   AdCreativeFields::ASSET_FEED_SPEC => $this->getAssetFeedSpec($post_message, $link_url, $headline, $image_hash, $description)
]);

为了提高它的可读性,我创建了一个函数来创建不同的Asset规范。要更好地理解它,请参阅文档中的示例。

https://developers.facebook.com/docs/marketing-api/dynamic-creative/placement-asset-customization#supported-fields

代码语言:javascript
运行
复制
public function getAssetFeedSpec($post_message, $link_url, $headline, $image_hash, $description) {
    return [
      'images' => [
        [
          'hash' => $image_hash
        ]
      ],
      'bodies' => [
        [
          'adlabels' => [
              [
                'name' => 'labelfirst',
              ]
          ],
          'text' => $post_message
        ],
        [
          'adlabels' => [
              [
                'name' => 'labelsecond',
              ]
          ],
          'text' => $headline
        ]
      ],
      'titles' => [
        [
          'text' => $headline
        ]
      ],
      'descriptions' => [
        [
          'text' => $description
        ]
      ],
      'ad_formats' => [
        'SINGLE_IMAGE'
      ],
      'call_to_action_types' => [
        'LEARN_MORE'
      ],
      'link_urls' => [
        [
          'website_url' => $link_url
        ]
      ],
      'videos' => [],
      'asset_customization_rules' => $this->getAssetCustomizationRules()
    ];
}

我还分离了asset_customization_rules,以使这一点更容易理解。

代码语言:javascript
运行
复制
public function getAssetCustomizationRules() {
    return [
        [
            'customization_spec' => [
                'publisher_platforms' => [
                    'facebook',
                    'instagram',
                    'audience_network',
                    'messenger'
                ],
                'facebook_positions' => [
                    'feed',
                ],
                'instagram_positions' => [
                    'stream'
                ],
                'audience_network_positions' => [
                    'classic'
                ]
            ],
            'body_label' => [
                'name' => 'labelfirst'
            ]
        ],
        [
            'customization_spec' => [
                'publisher_platforms' => [
                    'messenger'
                ],
                'messenger_positions' => [
                    'stream'
                ]
            ],
            'body_label' => [
                'name' => 'labelsecond'
            ]
        ]
    ];
}
EN

回答 1

Stack Overflow用户

发布于 2022-01-27 10:06:50

要产生创造性,您需要使用有效的object_story_spec传递page_id,如下所示,

代码语言:javascript
运行
复制
{
"object_story_spec": {
    "page_id": "10506210208xxx"
},
"asset_feed_spec": {
    "videos": [
        {
            "adlabels": [
                {
                    "name": "placement_asset_3667064314xxx"
                }
            ],
            "video_id": "3667064314xxx"
        },
..

它应该在提供了一个有效的page_id之后才能工作,它对我是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67773042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档