无法通过Ads API创建Facebook广告

时间:2015-05-19 21:00:40

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

我正在尝试通过他们的PHP SDK创建Facebook AD。问题在于广告本身的创建。如果我注释掉最后一块,它会创建adset。当我运行此代码时,我收到错误"需要父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;
}

2 个答案:

答案 0 :(得分:0)

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

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

如果您从文档中复制了此内容,请告知我们,我们可以更新。

答案 1 :(得分:0)

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

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