首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook营销API -未正确生成广告创意

Facebook营销API -未正确生成广告创意
EN

Stack Overflow用户
提问于 2017-12-09 03:38:14
回答 1查看 210关注 0票数 0

我正在编写一个通过API生成Facebook广告的脚本。由于某些原因,广告创意的变量没有被添加到广告中。主要的问题是标题和正文没有被添加。下面是我用来生成广告创意的代码:

代码语言:javascript
复制
    try{
    $creative = new AdCreative(null, $accountId);
    $creative->setData(array(
        AdCreativeFields::NAME => $ad_info['Ad Name'],
        AdCreativeFields::TITLE => $ad_info['Title'],
        AdCreativeFields::BODY => $ad_info['Body'],
        AdCreativeFields::IMAGE_HASH => $image->hash,
        //AdCreativeFields::OBJECT_URL => $ad_info['Preview Link'],
        AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec,
        AdCreativeFields::URL_TAGS => $ad_info['URL Tags'],
    ));

    $creative->create();
    echo 'Creative ID: '.$creative->id . "\n";
}
catch (Exception $e) {
    echo '<pre>creative';print_r($e);exit;
    if($e->getMessage()){
        echo 'Error message: ' .$e->getMessage() ."\n" . "<br/>";
    }
    //echo 'Error Code: ' .$e->getCode() ."<br/>";
}

以及在广告中添加创意的代码:

代码语言:javascript
复制
        $ad = new Ad(null, $accountId);
    $ad->setData(array(
        AdFields::CREATIVE =>
            array('creative_id' => $creative->id),
        AdFields::NAME => $ad_info['Ad Name'],
        AdFields::ADSET_ID => $adsetId,
        AdFields::STATUS => 'ACTIVE',
        AdFields::TRACKING_SPECS => array('action.type' => $ad_info['action type'], 'fb_pixel' => $fb_pixel),
    ));

    $ad->create();

它没有抛出错误,其他变量,如广告名称、状态等似乎都正确地添加到了广告中。根据Facebook的API文档,我可以断定上述所有内容都是正确的。我甚至尝试在创意生成和添加到广告之间添加一个睡眠功能。问题可能是什么?

EN

回答 1

Stack Overflow用户

发布于 2017-12-14 09:54:56

我知道问题出在哪里了。如果广告是链接广告,则广告创意对象不会应用于广告,该脚本生成的广告就是链接广告。为了让标题和正文等内容出现,您必须将它们添加到AdCreativeLinkData中,如下所示:

代码语言:javascript
复制
        $link_data->setData(array(
          AdCreativeLinkDataFields::DESCRIPTION => $ad_info['Link Description'],
          AdCreativeLinkDataFields::LINK => $ad_info['Link'],
          AdCreativeLinkDataFields::NAME => $ad_info['Title'],
          AdCreativeLinkDataFields::MESSAGE => $ad_info['Body'],
          AdCreativeLinkDataFields::IMAGE_HASH => $image->hash,
          AdCreativeLinkDataFields::CALL_TO_ACTION => array(
            'type' => AdCreativeCallToActionTypeValues::SIGN_UP,
            'value' => array(
              'link' => $ad_info['Link'],
              'link_caption' => $ad_info['Link'],
            ),
          ),
        ));

一旦我将NAME和MESSAGE变量添加到这个对象中,广告的标题和正文就会完美地显示出来。

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

https://stackoverflow.com/questions/47721093

复制
相关文章

相似问题

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