Usa los anuncios de Facebook con tus clientes actuales y llega a otros nuevos. En cada guía, se describen los productos publicitarios de Facebook que te ayudarán a cumplir tus objetivos en este ámbito. Existen diversos tipos de anuncios con una variedad de opciones de aspecto, ubicación y contenido. Para conocer las normas que se aplican a los anuncios en función de su contenido, consulta la Guía de anuncios de Facebook.
El contenido del anuncio es un objeto que contiene todos los datos para representar visualmente el anuncio. La API incluye diferentes tipos de anuncios que se pueden crear en Facebook (puedes consultarlos todos aquí).
Si tienes una campaña con el objetivo “Interacción con publicación de la página”, ahora puedes crear un anuncio que promocione una publicación realizada en la página. Este anuncio se denomina “anuncio de una publicación de la página”. Este tipo de anuncios requiere un campo denominado object_story_id
, que es la propiedad id
de la publicación de una página. Obtén más información sobre el contenido del anuncio en la documentación de referencia.
El contenido del anuncio se divide en tres partes:
Para crear el objeto de contenido del anuncio, realiza la siguiente llamada:
La respuesta de la llamada a la API es el valor de id
del objeto de contenido. Guarda esta información, ya que la necesitarás para el objeto del anuncio:
Existen límites en relación con el texto, el tamaño de la imagen, la relación de aspecto de la imagen y otras características del contenido. Consulta la guía de anuncios.
En la API de anuncios, cada campo que quieras recuperar debe solicitarse de forma expresa, excepto por id
. La referencia de cada objeto contiene una sección sobre cómo leer el objeto e indica qué campos se pueden leer. En el caso del contenido, se especifican los mismos campos que al crear el objeto y se agrega id
.
La ubicación es el lugar en el que tu anuncio se muestra en Facebook, como el feed de la computadora, el feed de un dispositivo móvil o la columna derecha. Consulta la guía de anuncios.
Te recomendamos publicar anuncios en todas las ubicaciones disponibles. La subasta de anuncios de Facebook está diseñada para generar impresiones de anuncios en la ubicación con más probabilidades de impulsar los resultados de la campaña con el menor costo posible.
La manera más sencilla de aprovechar esta optimización es no completar este campo. También puedes seleccionar ubicaciones específicas en el campo "target_spec" del conjunto de anuncios.
Este ejemplo muestra un anuncio de una publicación de la página. Las ubicaciones disponibles son el feed del celular, el feed de la computadora y la columna derecha de Facebook. Consulta las opciones de ubicación en la API. Si eliges desktopfeed
y rightcolumn
como page_type
, el anuncio se mostrará en el feed de la computadora y en la columna derecha. Los anuncios creados en este conjunto de anuncios solo se pueden mostrar en la computadora.
use FacebookAds\Object\AdSet;
use FacebookAds\Object\Fields\AdSetFields;
use FacebookAds\Object\Fields\TargetingFields;
use FacebookAds\Object\Targeting;
use FacebookAds\Object\Values\AdSetBillingEventValues;
use FacebookAds\Object\Values\AdSetOptimizationGoalValues;
$adset = new AdSet(null, 'act_<AD_ACCOUNT_ID>');
$adset->setData(array(
AdSetFields::NAME => 'Desktop Ad Set',
AdSetFields::CAMPAIGN_ID => <CAMPAIGN_ID>,
AdSetFields::DAILY_BUDGET => 10000,
AdSetFields::TARGETING => (new Targeting())->setData(array(
TargetingFields::PUBLISHER_PLATFORMS => array(
'facebook',
'audience_network',
),
TargetingFields::GEO_LOCATIONS => array(
'countries' => array('BR'),
),
)),
AdSetFields::OPTIMIZATION_GOAL =>
AdSetOptimizationGoalValues::POST_ENGAGEMENT,
AdSetFields::BILLING_EVENT => AdSetBillingEventValues::POST_ENGAGEMENT,
AdSetFields::BID_AMOUNT => 1500,
));
$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='act_<AD_ACCOUNT_ID>')
adset[AdSet.Field.name] = 'Desktop Ad Set'
adset[AdSet.Field.campaign_id] = <CAMPAIGN_ID>
adset[AdSet.Field.daily_budget] = 10000
adset[AdSet.Field.targeting] = {
Targeting.Field.publisher_platforms: ['facebook', 'audience_network'],
Targeting.Field.facebook_positions: ['feed'],
Targeting.Field.geo_locations: {
'countries': ['BR'],
},
}
adset[AdSet.Field.optimization_goal] = AdSet.OptimizationGoal.post_engagement
adset[AdSet.Field.billing_event] = AdSet.BillingEvent.post_engagement
adset[AdSet.Field.bid_amount] = 1500
adset.remote_create(params={
'status': AdSet.Status.paused,
})
AdSet adSet = new AdAccount(act_<AD_ACCOUNT_ID>, context).createAdSet()
.setName("Desktop Ad Set")
.setCampaignId(<CAMPAIGN_ID>)
.setDailyBudget(10000L)
.setTargeting(
new Targeting()
.setFieldGeoLocations(
new TargetingGeoLocation()
.setFieldCountries(Arrays.asList("BR"))
)
.setFieldPublisherPlatforms(Arrays.asList("facebook", "audience_network"))
)
.setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_POST_ENGAGEMENT)
.setBillingEvent(AdSet.EnumBillingEvent.VALUE_POST_ENGAGEMENT)
.setBidAmount(1500L)
.setStatus(AdSet.EnumStatus.VALUE_PAUSED)
.execute();
String ad_set_id = adSet.getId();
curl \
-F 'name=Desktop Ad Set' \
-F 'campaign_id=<CAMPAIGN_ID>' \
-F 'daily_budget=10000' \
-F 'targeting={
"geo_locations": {"countries":["BR"]},
"publisher_platforms": ["facebook","audience_network"]
}' \
-F 'optimization_goal=POST_ENGAGEMENT' \
-F 'billing_event=POST_ENGAGEMENT' \
-F 'bid_amount=1500' \
-F 'status=PAUSED' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adsets
Hay dos formas de obtener una vista previa del anuncio: con la API de vista previa del anuncio o el plugin de vista previa del anuncio.
Existen tres formas de generar una vista previa con la API:
De acuerdo con la documentación de referencia de la API de vista previa, la llamada mínima requerida es la siguiente:
Las especificaciones de contenido son una matriz de cada campo y valor necesarios para crear el contenido del anuncio.
En este momento, nuestra llamada de contenido del anuncio tiene el siguiente aspecto:
Usa object_story_id
en la llamada a la API de vista previa:
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdPreviewFields;
use FacebookAds\Object\Fields\AdCreativeFields;
$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$account->getGeneratePreviews(array(), array(
AdPreviewFields::CREATIVE => array(
AdCreativeFields::OBJECT_STORY_ID => <POST_ID>,
),
AdPreviewFields::AD_FORMAT => '<FORMAT>',
));
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adcreative import AdCreative
account = AdAccount('act_<AD_ACCOUNT_ID>')
params = {
'creative': {
AdCreative.Field.object_story_id: '<POST_ID>',
},
'ad_format': '<FORMAT>',
}
account.get_generate_previews(params=params)
APINodeList<AdPreview> adPreviews = new AdAccount(act_<AD_ACCOUNT_ID>, context).getGeneratePreviews()
.setCreative(
new AdCreative()
.setFieldObjectStoryId(<OBJECT_STORY_ID>)
)
.setAdFormat(<FORMAT>)
.execute();
curl -G \
-d 'creative={"object_story_id":"<POST_ID>"}' \
-d 'ad_format=<FORMAT>' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/generatepreviews
Los valores disponibles para ad_format
difieren un poco de page_types
. No obstante, en esta situación, se seleccionan el feed de la computadora y la columna derecha de Facebook. Esto exige que hagas dos llamadas a la API para generar las vistas previas correspondientes a cada ubicación:
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdPreviewFields;
use FacebookAds\Object\Fields\AdCreativeFields;
use FacebookAds\Object\Values\AdPreviewAdFormatValues;
$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$account->getGeneratePreviews(array(), array(
AdPreviewFields::CREATIVE => array(
AdCreativeFields::OBJECT_STORY_ID => <POST_ID>,
),
AdPreviewFields::AD_FORMAT => AdPreviewAdFormatValues::RIGHT_COLUMN_STANDARD,
));
from facebookads.adobjects.adaccount import AdAccount
from facebookads.adobjects.adpreview import AdPreview
from facebookads.adobjects.adcreative import AdCreative
account = AdAccount('act_<AD_ACCOUNT_ID>')
params = {
'creative': {
AdCreative.Field.object_story_id: '<POST_ID>',
},
'ad_format': AdPreview.AdFormat.right_column_standard,
}
account.get_generate_previews(params=params)
APINodeList<AdPreview> adPreviews = new AdAccount(act_<AD_ACCOUNT_ID>, context).getGeneratePreviews()
.setCreative(
new AdCreative()
.setFieldObjectStoryId(<OBJECT_STORY_ID>)
)
.setAdFormat(AdPreview.EnumAdFormat.VALUE_RIGHT_COLUMN_STANDARD)
.execute();
curl -G \
-d 'creative={"object_story_id":"<POST_ID>"}' \
-d 'ad_format=RIGHT_COLUMN_STANDARD' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/generatepreviews
La respuesta es un iFrame válido por 24 horas.