En esta guía se da por hecho que ya cuentas con un catálogo y un conjunto de productos, y que ya has configurado los eventos de vehículos obligatorios en tu sitio web o aplicación para móviles. Si no es así, consulta las secciones sobre la configuración del catálogo y la configuración de eventos.
Para crear anuncios de automóviles, necesitas una página de Facebook y una cuenta publicitaria.
PRODUCT_CATALOG_SALES
como el objetivo de la campaña. promoted_object
en el nivel de campaña.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
Una vez que tienes la campaña y el campaign_id
, puedes crear el conjunto de anuncios. El conjunto de anuncios define las opciones de puja y de segmentación para los anuncios.
Si no especificas destination_type
en el nivel de conjunto de anuncios, el destino predeterminado del anuncio es la dirección URL del sitio web especificada en el catálogo.
Para crear un conjunto de anuncios que dirija los anuncios de inventario de automóviles a un destino del tráfico en Facebook, especifica destination_type FACEBOOK
en los datos del conjunto de anuncios. Consulta Anuncios de catálogo de Advantage+ con un destino en Facebook.
Vuelve a segmentar a los visitantes del sitio web que han explorado vehículos del conjunto de productos 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
Los anuncios de automóviles no admiten las especificaciones de segmentación de audiencia dinámica integradas en el conjunto de anuncios. Primero debes crear una audiencia por separado.
Puedes utilizar etiquetas de plantilla en el contenido de los anuncios de automóviles. Cuando Facebook muestre el anuncio, sustituiremos las etiquetas de plantilla por opciones de automóviles reales. Puedes usar etiquetas de plantilla tanto en el anuncio como en la URL. Las etiquetas de plantilla son visibles cuando alguien hace clic en el anuncio.
Tipo | Nombre |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
, etc.{{....}}
”).{{dealer_name}}
”.template_url_spec
para especificar la URL que aparece al hacer clic en el anuncio. Si no la especificas o no podemos obtenerla al mostrar el anuncio, usaremos la URL del catálogo.Para obtener más información sobre las opciones de contenido, consulta la sección Crear contenido de plantilla.
Ejemplo: Crear una secuencia de contenido para los anuncios de automóviles
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();
Utiliza los parámetros ad_set_id
y creative_id
para crear el anuncio.
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
Puedes generar una vista previa del contenido de Advantage+ para catálogo con la API de vistas previas de anuncios. Incluye el parámetro product_item_ids
para especificar qué artículos del catálogo se mostrarán en la vista previa.
Genera una vista previa del anuncio con la API de vistas previas de anuncios. Incluye el parámetro product_item_ids
para especificar los artículos del catálogo que se mostrarán en la vista previa, y los parámetros start_date
y end_date
para indicar las fechas.
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>', ), ));