Publicités automobiles – Gestion des publicités

Dans ce guide, nous partons du principe que vous possédez un catalogue et un ensemble de produits, et que vous avez configuré les évènements associés aux véhicules requis sur votre site Web ou votre application mobile. Dans le cas contraire, consultez la configuration du catalogue et la configuration des évènements.

Pour créer des publicités automobiles, vous avez besoin d’une Page Facebook et d’un compte publicitaire.

Étape 1. Créer une campagne

  1. Choisissez PRODUCT_CATALOG_SALES comme objectif de campagne.
  2. Spécifiez un catalogue de véhicules dans le champ promoted_object au niveau de la campagne.
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

Étape 2. Créer un ensemble de publicités

Une fois que vous avez créé la campagne et obtenu son campaign_id, vous pouvez créer l’ensemble de publicités. L’ensemble de publicités définit les options d’enchère et de ciblage pour vos publicités.

Si vous ne spécifiez pas de destination_type au niveau de l’ensemble de publicités, la destination par défaut de vos publicités est l’URL du site Web indiquée dans votre catalogue.

Destination sur Facebook

Pour créer un ensemble de publicités qui dirige les publicités d’inventaire pour le secteur automobile vers une destination sur Facebook, spécifiez destination_type FACEBOOK dans vos données d’ensemble de publicités. Voir Publicités de catalogue Advantage+ avec une destination sur Facebook.

Reciblage

Reciblez les visiteurs du site Web qui ont vu des véhicules dans votre ensemble de produits défini.

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

Les publicités automobiles ne sont pas compatibles avec les spécifications de ciblage d’audience dynamique intégré au niveau de l’ensemble de publicités. Vous devez d’abord créer une audience séparément.

Étape 3. Créer un contenu publicitaire

Vous pouvez utiliser des tags de modèle dans les contenus publicitaires de vos publicités automobiles. Lorsque Facebook diffuse votre publicité, nous remplaçons les tags de modèle par les préférences de véhicules réelles. Vous pouvez utiliser des tags de modèle dans la publicité et dans l'URL. Les tags du modèle sont visibles lorsqu’une personne clique sur la publicité.

Tags de modèle pour les véhicules

TypeNom

BODY_STYLE

vehicle.body_style

CUSTOM_LABEL_0

vehicle.custom_label_0

CUSTOM_LABEL_1

vehicle.custom_label_1

CUSTOM_LABEL_2

vehicle.custom_label_2

CITY

vehicle.city

DEALER_ID

vehicle.dealer_id

DEALER_NAME

vehicle.dealer_name

DESCRIPTION

vehicle.description

DRIVETRAIN

vehicle.drivetrain

EXTERIOR_COLOR

vehicle.exterior_color

MAKE

vehicle.make

MILEAGE

vehicle.mileage

MODEL

vehicle.model

PRICE

vehicle.price

REGION

vehicle.region

SALE_PRICE

vehicle.sale_price

STOCK_NUMBER

vehicle.stock_number

TITLE

vehicle.title

TRIM

vehicle.trim

URL

vehicle.url

VEHICLE_ID

vehicle.vehicle_id

VIN

vehicle.vin

YEAR

vehicle.year

Règles relatives aux tags de modèle

  • Renseignez ces champs dans le tag du modèle : 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.
  • Utilisez les doubles accolades {{....}} avec les tags de modèle.
  • Avant d'utiliser des tags de modèle, assurez-vous de fournir tous les détails nécessaires dans le cadre des événements liés à votre véhicule. Par exemple, le titre de votre publicité pourrait être : « Découvrez les bonnes affaires de {{dealer_name}} ».
  • Renseignez le champ template_url_spec pour spécifier l’URL qui s’affiche lorsqu’une personne clique sur la publicité. Si vous laissez ce champ vide, ou si nous ne parvenons pas à le récupérer au moment de diffuser la publicité, nous affichons l’URL issue du catalogue.
  • Vous pouvez choisir d’afficher un seul produit ou un carrousel de plusieurs produits. Dans le cas d’une publicité pour un seul produit, vous pouvez afficher plusieurs images du même produit dans un carrousel, en supposant que votre catalogue contienne plusieurs images par produit. Vous pouvez également afficher des cartes statiques combinées à des cartes dynamiques.

Pour en savoir plus sur les options de contenu publicitaire, voir Création d’un modèle de contenu publicitaire.

Exemple - Créer un carrousel de contenu publicitaire pour les publicités automobiles

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();

Étape 4. Créer une publicité

Utilisez les paramètres ad_set_id et creative_id pour créer la publicité.

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/v20.0/act_<AD_ACCOUNT_ID>/ads
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const Ad = bizSdk.Ad; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_ACCOUNT_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'name' : 'My Ad', 'adset_id' : '<adSetID>', 'creative' : {'creative_id':'<adCreativeID>'}, 'status' : 'PAUSED', }; const ads = (new AdAccount(id)).createAd( fields, params ); logApiCallResult('ads api call complete.', ads);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\Ad; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_ACCOUNT_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'My Ad', 'adset_id' => '<adSetID>', 'creative' => array('creative_id' => '<adCreativeID>'), 'status' => 'PAUSED', ); echo json_encode((new AdAccount($id))->createAd( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.ad import Ad from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'My Ad', 'adset_id': '<adSetID>', 'creative': {'creative_id':'<adCreativeID>'}, 'status': 'PAUSED', } print AdAccount(id).create_ad( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_ACCOUNT_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdAccount(id, context).createAd() .setName(\"My Ad\") .setAdsetId(<adSetID>L) .setCreative( new AdCreative() .setFieldId(\"<adCreativeID>\") ) .setStatus(Ad.EnumStatus.VALUE_PAUSED) .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_account = FacebookAds::AdAccount.get(id) ads = ad_account.ads.create({ name: 'My Ad', adset_id: '<adSetID>', creative: {'creative_id':'<adCreativeID>'}, status: 'PAUSED', })

Étapes suivantes

Afficher un aperçu de la publicité

Vous pouvez générer un aperçu de votre contenu publicitaire pour catalogue Advantage+ à l’aide de l’API Ad Previews. Incluez le paramètre product_item_ids afin de spécifier les articles du catalogue qui s’afficheront dans l’aperçu.

Générez un aperçu de votre publicité avec l’API Ad Previews. Incluez le paramètre product_item_ids afin de spécifier les articles du catalogue qui s’afficheront dans l’aperçu, et les paramètres start_date et end_date pour indiquer des dates spécifiques.

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>',
  ),
));