首页 文章

创建Facebook广告系列并获取广告系列ID - Marketing API

提问于
浏览
0

这是facebook告诉人们根据文档创建活动的方式:https://developers.facebook.com/docs/marketing-api/buying-api/

但是,新Campaign构造函数中的null字段参数是什么?我放在那里的任何东西都会成为广告系列的ID,但却是无效的 . 你如何获得广告系列的ID?

当我运行此代码时,我没有收到任何错误,但我的广告管理器上没有创建任何内容,当我回显$ campaign-> id时,它只是空白,因为id为null . 但是,如果我print_r($ campaign)它返回一个包含许多字段但没有ID字段的大对象 .

Facebook代码:

use FacebookAds\Object\Campaign;
use FacebookAds\Object\Fields\CampaignFields;
use FacebookAds\Object\Values\CampaignObjectiveValues;

$campaign = new Campaign(null, 'act_<AD_ACCOUNT_ID>');
$campaign->setData(array(
CampaignFields::NAME => 'My campaign',
CampaignFields::OBJECTIVE => CampaignObjectiveValues::LINK_CLICKS,
));

$campaign->create(array(
 Campaign::STATUS_PARAM_NAME => Campaign::STATUS_PAUSED,
));

这是facebook文档:https://developers.facebook.com/docs/marketing-api/using-the-api

但是,它不是很有用,因为它只是指向一个没有相关信息的快速入门指南 .

2 回答

  • 1

    facebook的例子不完整 . 确保您启动Facebook Ad API .

    如果创建成功,Facebook库会将id分配给您调用create()的广告系列对象,并且可以按如下方式访问:

    $campaign->{CampaignFields::ID};
    

    以下是如何制作广告系列的完整示例:

    // 1. The facebook api has to be initiated before making request
        Api::init("App Id", "App Secret", "User Token");
    
        $campaign = new Campaign(null, 'act_<account id>');
    
        // 2. Populating the campaign object
        $campaign->setData([
            CampaignFields::NAME => 'TEST Campaign',
            CampaignFields::OBJECTIVE => CampaignObjectiveValues::LINK_CLICKS
        ]);
    
        try {
    
            // 3. If the operation is successful the id will be set
            $campaign->create();
    
            // Grabbing the id.
            $facebookCampaignId = $campaign->{CampaignFields::ID};
    
            // Printing the id
            var_dump($facebookCampaignId);
        } catch (RequestException $requestException) {
    
            // Can be null
            $facebookResponse = $requestException->getResponse();
    
            if (!empty($facebookResponse)) {
    
                // Its easier to debug using the response by Facebook.
                var_dump($facebookResponse->getBody());
            }
    
        } catch (Exception $exception) {
            var_dump($exception->getMessage());
        }
    

    Full example of creating a Facebook Campaign with flight dates and a spent cap.

  • 0

    在调用create方法后,您应该使用$ campaign-> id获取id . 检查您是否收到某些错误,也许您没有获得ID,因为未创建广告系列 .

    如果您正在寻找PHP SDK doc,请访问:https://github.com/facebook/facebook-php-ads-sdk

    试试这个例子:

    use FacebookAds\Object\Campaign;
    use FacebookAds\Object\Fields\CampaignFields;
    
    try{
        $campaign  = new Campaign(null, $account->id);
        $campaign->setData(array(
            CampaignFields::NAME => 'My First Campaign',
            CampaignFields::OBJECTIVE => 'LINK_CLICKS',
        ));
        $campaign->validate()->create(array(
            Campaign::STATUS_PARAM_NAME => Campaign::STATUS_PAUSED,
        ));
        echo "Campaign ID:" . $campaign->id . "\n";
    }
    catch (Exception $e) {
        echo 'Error message: ' .$e->getMessage() ."\n" . "
    "; echo 'Error Code: ' .$e->getCode() ."
    "; }

相关问题