Neste guia, pressupomos que você tenha criado um catálogo e um conjunto de produtos e configurado os eventos de veículo obrigatórios no seu site ou app para celular. Se ainda não tiver feito isso, veja como configurar catálogos e eventos.
Para criar anúncios de automóveis, você precisará de uma Página do Facebook e uma conta de anúncios.
PRODUCT_CATALOG_SALES
como o objetivo da campanha. promoted_object
no nível da campanha.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 => 'Product Catalog Sales Campaign',
CampaignFields::OBJECTIVE => CampaignObjectiveValues::PRODUCT_CATALOG_SALES,
CampaignFields::PROMOTED_OBJECT => array(
'product_catalog_id' => <PRODUCT_CATALOG_ID>,
),
));
$campaign->create(array(
Campaign::STATUS_PARAM_NAME => Campaign::STATUS_PAUSED,
));
from facebookads.adobjects.campaign import Campaign
campaign = Campaign(parent_id='act_<AD_ACCOUNT_ID>')
campaign[Campaign.Field.name] = 'Product Catalog Sales Campaign'
objective = Campaign.Objective.product_catalog_sales
campaign[Campaign.Field.objective] = objective
campaign[Campaign.Field.promoted_object] = {
'product_catalog_id': <PRODUCT_CATALOG_ID>,
}
campaign.remote_create(params={
'status': Campaign.Status.paused,
})
Campaign campaign = new AdAccount(act_<AD_ACCOUNT_ID>, context).createCampaign()
.setName("Product Catalog Sales Campaign Group")
.setObjective(Campaign.EnumObjective.VALUE_PRODUCT_CATALOG_SALES)
.setPromotedObject("{\"product_catalog_id\":\"" + <PRODUCT_CATALOG_ID> + "\"}")
.setStatus(Campaign.EnumStatus.VALUE_PAUSED)
.execute();
String campaign_id = campaign.getId();
curl \
-F 'name=Product Catalog Sales Campaign' \
-F 'objective=PRODUCT_CATALOG_SALES' \
-F 'promoted_object={"product_catalog_id":"<PRODUCT_CATALOG_ID>"}' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/campaigns
Assim que tiver a campanha e campaign_id
, crie o conjunto de anúncios. O conjunto define as opções de lance e direcionamento dos anúncios.
Se você não especificar destination_type
no nível do conjunto de anúncios, o destino padrão dos anúncios será a URL do site especificada no seu catálogo.
Para criar um conjunto de anúncios que direcione os anúncios de inventário automotivo a um destino de tráfego no Facebook, especifique destination_type FACEBOOK
nos dados do conjunto. Consulte Anúncios de catálogo Advantage+ com destino no Facebook.
Faça o redirecionamento de visitantes do site que visualizaram veículos no seu conjunto de produtos definido.
use FacebookAds\Object\AdSet;
use FacebookAds\Object\Fields\AdSetFields;
use FacebookAds\Object\Fields\TargetingFields;
use FacebookAds\Object\Values\AdSetBillingEventValues;
use FacebookAds\Object\Values\AdSetOptimizationGoalValues;
$adset = new AdSet(null, 'act_<AD_ACCOUNT_ID>');
$adset->setData(array(
AdSetFields::NAME => 'Product Catalog Sales Adset',
AdSetFields::BID_AMOUNT => 3000,
AdSetFields::BILLING_EVENT => AdSetBillingEventValues::IMPRESSIONS,
AdSetFields::OPTIMIZATION_GOAL =>
AdSetOptimizationGoalValues::OFFSITE_CONVERSIONS,
AdSetFields::DAILY_BUDGET => 15000,
AdSetFields::CAMPAIGN_ID => <CAMPAIGN_ID>,
AdSetFields::TARGETING => array(
TargetingFields::GEO_LOCATIONS => array(
'countries' => array('US'),
),
TargetingFields::DYNAMIC_AUDIENCE_IDS => array(<DYNAMIC_AUDIENCE_ID>),
),
AdSetFields::PROMOTED_OBJECT => array(
'product_set_id' => <PRODUCT_SET_ID>,
),
));
$adset->create(array(
AdSet::STATUS_PARAM_NAME => AdSet::STATUS_PAUSED,
));
from facebookads.adobjects.adset import AdSet
from facebookads.adobjects.targeting import Targeting
adset = AdSet(parent_id=ad_account_id)
adset[AdSet.Field.name] = 'Product Catalog Sales Adset'
adset[AdSet.Field.bid_amount] = 3000
adset[AdSet.Field.billing_event] = AdSet.BillingEvent.impressions
adset[AdSet.Field.optimization_goal] = \
AdSet.OptimizationGoal.offsite_conversions
adset[AdSet.Field.daily_budget] = 15000
adset[AdSet.Field.campaign_id] = campaign_id
adset[AdSet.Field.targeting] = {
Targeting.Field.geo_locations: {
Targeting.Field.countries: ['US'],
},
Targeting.Field.dynamic_audience_ids: [
dynamic_audience_id,
],
}
adset[AdSet.Field.promoted_object] = {
'product_set_id': product_set_id,
}
adset.remote_create()
AdSet adSet = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdSet()
.setName("Product Catalog Sales Adset")
.setBidAmount(3000L)
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS)
.setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_OFFSITE_CONVERSIONS)
.setDailyBudget(15000L)
.setCampaignId(<CAMPAIGN_ID>)
.setTargeting(
new Targeting()
.setFieldDynamicAudienceIds(Arrays.asList(<DYNAMIC_AUDIENCE_ID>))
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("US"))
)
)
.setPromotedObject("{\"product_set_id\":\"" + <PRODUCT_SET_ID> + "\"}")
.setStatus(AdSet.EnumStatus.VALUE_PAUSED)
.execute();
String ad_set_id = adSet.getId();
curl \
-F 'name=Product Catalog Sales Adset' \
-F 'bid_amount=3000' \
-F 'billing_event=IMPRESSIONS' \
-F 'optimization_goal=OFFSITE_CONVERSIONS' \
-F 'daily_budget=15000' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'targeting={
"geo_locations": {"countries":["US"]},
"dynamic_audience_ids": ["<DYNAMIC_AUDIENCE_ID>"]
}' \
-F 'promoted_object={"product_set_id":"<PRODUCT_SET_ID>"}' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adsets
Os anúncios de automóveis não são compatíveis com especificações de direcionamento de público dinâmico inline no conjunto de anúncios. Primeiro, você precisa criar um público separadamente.
Em anúncios de automóveis, é possível usar tags de modelo nos criativos do anúncio. Quando o Facebook exibe seu anúncio, substituímos as tags de modelo pelas escolhas reais de veículos. Você pode usar tags de modelo no anúncio e na URL. Essas tags ficam visíveis quando uma pessoa clica no anúncio.
Tipo | Nome |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vehicle.city
, vehicle.dealer_name
, vehicle.description
, vehicle.make
, vehicle.mileage
, vehicle.model
, vehicle.price
, vehicle.region
, vehicle.sale_price
, vehicle.title
, vehicle.url
, vehicle.year
, entre outros.{{....}}
com as tags de modelo.{{dealer_name}}
".template_url_spec
para especificar a URL que aparecerá depois que alguém clicar no anúncio. Se a URL não for fornecida ou se não for possível obtê-la ao renderizar o anúncio, exibiremos a URL do catálogo.Para obter mais informações sobre opções de criativos, consulte Introdução aos anúncios de catálogo Advantage+.
Exemplo – Fornecer um criativo em carrossel para anúncios de automóveis
use FacebookAds\Object\AdCreative; use FacebookAds\Object\Fields\AdCreativeFields; use FacebookAds\Object\Fields\AdCreativeLinkDataFields; use FacebookAds\Object\Fields\AdCreativeObjectStorySpecFields; use FacebookAds\Object\Values\AdCreativeCallToActionTypeValues; use FacebookAds\Object\AdCreativeObjectStorySpec; use FacebookAds\Object\AdCreativeLinkData; $object_story_spec = new AdCreativeObjectStorySpec(); $object_story_spec->setData(array( AdCreativeObjectStorySpecFields::PAGE_ID => <PAGE_ID>, AdCreativeObjectStorySpecFields::TEMPLATE_DATA => (new AdCreativeLinkData())->setData(array( AdCreativeLinkDataFields::MESSAGE => 'Check out these vehicles from {{dealer_name}}', AdCreativeLinkDataFields::NAME => '{{vehicle.year}} {{vehicle.make}} {{vehicle.model}}', AdCreativeLinkDataFields::LINK => '{{vehicle.url}}', AdCreativeLinkDataFields::DESCRIPTION => '{{vehicle.description}}', AdCreativeLinkDataFields::ADDITIONAL_IMAGE_INDEX => 0, AdCreativeLinkDataFields::CALL_TO_ACTION => array( 'type' => AdCreativeCallToActionTypeValues::LEARN_MORE, ), )), )); $creative = new AdCreative(null, 'act_<AD_ACCOUNT_ID>'); $creative->setData(array( AdCreativeFields::NAME => 'Advantage+ Catalog Ad Template Creative Sample', AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec, AdCreativeFields::TEMPLATE_URL_SPEC => array( 'web' => array( 'url' => 'http://www.example.com/vehicle'. '?id={{vehicle_id | urlencode}}', ) ), AdCreativeFields::PRODUCT_SET_ID => <PRODUCT_SET_ID>, )); $creative->create();
Use a ad_set_id
e a creative_id
para criar o anúncio.
curl -X POST \
-F 'name="My Ad"' \
-F 'adset_id="<AD_SET_ID>"' \
-F 'creative={
"creative_id": "<CREATIVE_ID>"
}' \
-F 'status="PAUSED"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/ads
Você pode gerar uma prévia do Criativo Advantage+ para Catálogo com a API de Prévias de Anúncio. Inclua o parâmetro product_item_ids
para especificar quais itens do catálogo serão exibidos na prévia.
Gere uma prévia do anúncio com a API de Prévias de Anúncio. Inclua product_item_ids
para especificar quais itens do catálogo serão exibidos na prévia, bem como start_date
e end_date
para definir as datas.
use FacebookAds\Object\AdCreative; use FacebookAds\Object\Fields\AdPreviewFields; use FacebookAds\Object\Values\AdPreviewAdFormatValues; $creative = new AdCreative(<CREATIVE_ID>); $preview = $creative->getPreviews(array(), array( AdPreviewFields::AD_FORMAT => AdPreviewAdFormatValues::DESKTOP_FEED_STANDARD, AdPreviewFields::PRODUCT_ITEM_IDS => array( '<VEHICLE_FBID>', ), ));