Utilisez des publicités Facebook avec votre clientèle existante et pour en toucher de nouvelles. Chaque guide décrit des produits publicitaires Facebook afin de vous aider à atteindre vos objectifs publicitaires. Il existe différents types d’unités publicitaires avec divers aspects, placements et options de contenu. Pour obtenir des conseils sur les unités publicitaires en tant que contenus, consultez le guide des publicités Facebook.
Le contenu d’une publicité est un objet contenant toutes les données permettant d’obtenir le rendu visuel de la publicité elle-même. L’API propose différents types de publicités que vous pouvez créer sur Facebook. Vous pouvez en consulter la liste ici.
Si vous avez créé une campagne avec l’objectif Interactions avec les publications de la Page, vous pouvez maintenant créer une publicité qui fait la promotion d’une publication créée par la Page. C’est ce que nous appelons une publicité Publication de Page. Les publicités Publication de Page nécessitent un champ appelé object_story_id
, qui correspond à la propriété id
d’une publication de Page. Pour en savoir plus sur le contenu publicitaire, consultez cette page.
Un contenu publicitaire se compose de trois parties :
Pour créer l’objet du contenu publicitaire, effectuez l’appel suivant :
La réponse à l’appel d’API sera l’élément id
de l’objet créatif. Enregistrez cette information, vous en aurez besoin pour l’objet publicitaire :
Il existe des limites concernant le texte, la taille de l’image, le format de l’image et d’autres aspects du contenu. Consultez le guide des publicités.
Dans l’API Ads, vous devez effectuer une demande explicite pour chaque champ que vous souhaitez récupérer, à l’exception d’id
. La référence de chaque objet comporte une section permettant d’accéder à l’objet ultérieurement et d’afficher la liste des champs lisibles. Pour le contenu, il s’agit des mêmes champs que ceux ayant été indiqués lors de la création de l’objet, ainsi que du champ id
.
Un placement est un endroit où votre publicité apparaît sur Facebook, comme le flux sur ordinateur, le flux sur mobile ou la colonne de droite. Consultez le Guide des produits publicitaires.
Nous vous encourageons à diffuser des publicités sur toute la gamme des placements disponibles. Le système d’enchères de Facebook est conçu pour fournir des impressions publicitaires au placement le plus susceptible de générer des résultats de campagne au coût le plus bas possible.
La façon la plus simple de profiter de cette optimisation est de laisser ce champ vide. Vous pouvez également sélectionner des placements spécifiques dans le champ target_spec d’un ensemble de publicités.
Cet exemple comprend une publicité pour une publication de Page. Les placements disponibles sont le flux sur mobile, le flux sur ordinateur et la colonne de droite de Facebook. Dans l’API, consultez Options de placement. Si vous choisissez desktopfeed
et rightcolumn
en tant que type de page (page_type
), la publicité est diffusée dans le flux sur ordinateur et dans la colonne de droite. Les publicités créées dans cet ensemble de publicités sont uniquement diffusées sur ordinateur.
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
Deux options s’offrent à vous pour afficher un aperçu d’une publicité : à l’aide de l’API Ad preview ou du plugin d’aperçu des publicités.
Il existe trois façons de générer un aperçu à l’aide de l’API :
Selon les documents de référence sur l’API Preview, l’appel d’API minimal requis est :
Les spécifications de contenu sont constituées de l’ensemble des champs et valeurs requis pour la création du contenu publicitaire.
Actuellement, notre appel pour un contenu publicitaire se présente comme suit :
Prenez object_story_id
et utilisez-le dans l’appel à l’API Preview :
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
Les valeurs disponibles pour ad_format
varient légèrement de celles disponibles pour page_types
. Toutefois, dans ce scénario, le flux sur ordinateur et la colonne de droite de Facebook sont sélectionnés. Vous devez alors effectuer deux appels d’API pour générer les aperçus pour chaque placement :
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 réponse contient une iFrame valable pendant 24 heures.