【问题标题】:Cant Create Facebook Ad via Ads API无法通过 Ads API 创建 Facebook 广告
【发布时间】:2015-05-19 21:00:40
【问题描述】:

我正在尝试通过他们的 PHP SDK 创建一个 Facebook 广告。问题在于广告本身的制作。如果我注释掉最后一块,它会创建广告集。当我运行此代码时,我收到错误“需要父 ID”

try {   

///////////////////////////// CREATE AD SET ////////////////////////////////////
$data = array(
AdSetFields::NAME => $adname,
AdSetFields::BID_TYPE => 'CPC',
AdSetFields::BID_INFO => array(
'CLICKS' => 6,
),
AdSetFields::CAMPAIGN_STATUS => AdSet::STATUS_PAUSED,
AdSetFields::DAILY_BUDGET => 500000,
AdSetFields::CAMPAIGN_GROUP_ID => $campaign_id,
AdSetFields::TARGETING => array(
 'age_min' => 30,
'age_max' => 45,
'page_types' => array(
    'desktopfeed',
  ),
'geo_locations' => array(
  'countries' => array(
    'US',
     ),      
    ),
  ),
);
     $adset = new AdSet(null, $account_id);
    $adset->create($data);

 $adset_id = $adset->id;
echo $adset_id.'-';


//////////////////////CREATE AD IMAGE ///////////////////////////////


$image = new AdImage(null, $account_id);
$image->{AdImageFields::FILENAME} = '../adimages/epsom.jpg';
$image->create();

$creative = new AdCreative(null, $account_id);
$creative->setData(array(
  AdCreativeFields::TITLE => $adtitle,
  AdCreativeFields::BODY => $addesc,
  AdCreativeFields::OBJECT_URL => $tracking_promoted_url,
  AdCreativeFields::IMAGE_HASH => $image->hash,
));
$creative->create();

echo $creative->id.'-';

/////////////////////////////// CREATE AD GROUP ////////////////////////////

$fields = array(array(
  AdGroupFields::CREATIVE => 
    array('creative_id' => $creative->id),
    AdGroupFields::ADGROUP_STATUS => AdGroup::STATUS_PAUSED,
  AdGroupFields::NAME => 'My First AdGroup',
  AdGroupFields::CAMPAIGN_ID => $adset_id,
));
$ad = new AdGroup();
$ad->create($fields);

echo 'AdGroup ID:' . $adgroup->id . "-";


} catch (RequestException $e) {
     echo 'Caught Exception: '.$e->getMessage().PHP_EOL
   .'Code: '.$e->getCode().PHP_EOL
.'HTTP status Code: '.$e->getHttpStatusCode().PHP_EOL;
}

【问题讨论】:

  • 该错误是来自该 SDK 中的某处还是来自 API 本身?您确定在尝试创建广告之前正确设置了广告集 ID?
  • 这就是 api 返回的内容。我回显了广告集 ID 以确保它正在创建它,并且它似乎输出了它。下面是错误致命错误:未捕获的异常“异常”,带有消息“需要父 ID”。在 /.../src/FacebookAds/Object/AbstractCrudObject.php:125 堆栈跟踪:
  • 你能分享更多你的代码吗?我想知道您是否或如何设置 Ads SDK。例如,您是否在调用 Api::init($app_id, $app_secret, $access_token);和 $api = Api::instance();根据文档? github.com/facebook/facebook-php-ads-sdk
  • 是的,我正在初始化 api...就像我说的,当我删除最后一段代码(广告组)时,它会创建没有广告的广告集。
  • 在您设置广告集 ID 的地方执行 $ad = new AdGroup(); 之后,我看不到任何地方 - 您是否错过了? (campaign_id 是必填字段(并且是广告组 ID,但由于遗留原因而命名为 campaign_id)):developers.facebook.com/docs/marketing-api/adgroup/…

标签: facebook facebook-sdk-4.0 facebook-ads-api


【解决方案1】:

您在创建广告组时缺少父 ID 参数。第二个参数应该是您要在下面创建此广告组的帐户 ID:

$adgroup = new Adgroup(null, $accountId);

如果您是从文档中复制的,请告诉我,我们可以更新。

【讨论】:

    【解决方案2】:

    您可以参考最新的文档:https://developers.facebook.com/docs/marketing-api/reference/ad-campaign

    从那里,您需要指定广告帐户 ID(AD_ACCOUNT_ID)和广告活动 ID(CAMPAIGN_GROUP_ID)

    【讨论】:

      猜你喜欢
      • 2019-01-20
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      相关资源
      最近更新 更多