Inserzioni per i viaggi

Promuovi automaticamente l'inventario dei tuoi viaggi su Facebook. Le inserzioni per i viaggi di Facebook sfruttano i segnali delle intenzioni cross-device per promuovere automaticamente le opzioni di viaggio pertinenti dal tuo inventario con creatività uniche su Facebook.

Le inserzioni per i viaggi supportano inserzioni per gli hotel, inserzioni per i voli e inserzioni con destinazione.

Questa guida presuppone le seguenti condizioni:

  • Avere un catalogo e un insieme di prodotti pronti.
  • Aver configurato gli eventi di viaggio richiesti sul tuo sito web o sulla tua app mobile.
  • (Obbligatoria) aver creato una Pagina Facebook e un account pubblicitario.

Strategie di targetizzazione

Le inserzioni per i viaggi supportano diverse strategie di targetizzazione. Puoi raggiungere diversi obiettivi aziendali associando ogni gruppo di pubblico all'insieme di prodotti corretto:

  • Retargeting: mostra hotel, destinazioni o voli rilevanti alle persone che hanno visitato il tuo sito web o la tua app in cerca di hotel, destinazioni o voli.

  • Cross-selling e up-selling: rivolgiti direttamente alle persone che hanno acquistato un volo proponendo hotel pertinenti o usa strategie di up-selling proponendo ad esempio l'imbarco prioritario o la scelta dei posti.

  • Acquisizione di clienti: espandi la copertura della tua inserzione e trova nuovi clienti mediante la targetizzazione per l'acquisizione di nuovi gruppi di pubblico.

Configurazione delle inserzioni per i viaggi

Quando crei inserzioni per i viaggi, segui la stessa procedura di configurazione di un qualsiasi altro tipo di inserzione di Facebook con l'API:

Passaggio 1: creazione di una campagna

Le inserzioni per i viaggi utilizzano l'obiettivo PRODUCT_CATALOG_SALES. Specifica un catalogo di viaggi in promoted_object a livello della campagna:

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

Passaggio 2: creazione del gruppo di inserzioni

Dopo aver creato la campagna e l'elemento campaign_id, puoi creare il gruppo di inserzioni. Il gruppo di inserzioni definisce l'offerta e le opzioni di targetizzazione per le inserzioni.

Retargeting

Per effettuare il retargeting dei visitatori del sito web o dell'app, utilizza un pubblico dinamico dello stesso tipo dell'insieme di prodotti che stai promuovendo; ad esempio, promuovi un insieme di hotel a un pubblico interessato agli hotel, un insieme di voli a un pubblico interessato ai voli e un insieme di destinazioni a un pubblico interessato alle destinazioni.

Cross-selling e up-selling

Per effettuare il cross-selling e l'up-selling per le persone che hanno effettuato acquisti sul tuo sito web e/o sulla tua app, utilizza un pubblico dinamico contenente persone che abbiano effettuato un acquisto e promuovi loro opzioni di viaggio tratte da un altro catalogo; ad esempio, definisci come destinatario un pubblico di acquirenti di voli con un insieme di hotel o un altro insieme di voli, evidenziando la selezione dei posti.

Acquisizione di clienti

  • Crea un pubblico utilizzando la targetizzazione per i dati demografici di base, ad es. "donne degli Stati Uniti di età superiore a 18 anni".
  • Includi i clienti definiti come destinatari attraverso le campagne di retargeting esistenti, ma valuta se escludere le persone che hanno effettuato acquisti negli ultimi 10 giorni.
  • Utilizza un insieme di prodotti generale con oltre 100 hotel.
  • Esegui un'ottimizzazione per le OFFSITE_CONVERSIONS con i segnali delle intenzioni più forti come Purchase o InitiateCheckout.

Consulta anche Inserzioni del catalogo Advantage+, Targetizzazione del pubblico ampio

Esempio di creazione di un gruppo di inserzioni

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

Le inserzioni per i viaggi non supportano le specifiche di targetizzazione del pubblico dinamico in linea nel gruppo di inserzioni. Devi prima creare un pubblico separatamente.

Passaggio 3: creazione della creatività dell'inserzione

Puoi usare i modelli di tag nelle tue creatività dell'inserzione per le inserzioni per i viaggi. Quando Facebook mostra la tua inserzione, i modelli di tag vengono sostituiti con le effettive scelte di viaggio dell'utente. Puoi utilizzare i modelli di tag nell'inserzione stessa, così come nell'URL visualizzato dall'utente dopo aver cliccato sull'inserzione.

Utilizza il campo template_url_spec per specificare l'URL visualizzato dopo che l'utente clicca sull'inserzione. Se non lo fornisci o se non possiamo ricavarlo durante l'esecuzione del rendering di un'inserzione, mostreremo l'URL proveniente dal catalogo. Per le inserzioni per i voli, questo campo è obbligatorio se non fornisci un URL nel catalogo.

Puoi mostrare un singolo articolo o diversi articoli in un carosello. Per le inserzioni a singolo articolo, puoi visualizzare immagini multiple del medesimo articolo nel carosello, purché il tuo catalogo contenga più immagini per ciascun articolo. Puoi anche mostrare schede statiche in combinazione con quelle dinamiche. Per maggiori informazioni sulle opzioni per le creatività, consulta Inserzioni del catalogo Advantage+, Creazione di un modello di creatività.

Il seguente esempio mostra come creare una creatività carosello per le inserzioni per gli hotel. Le inserzioni con destinazione e le inserzioni per i voli hanno una configurazione simile.

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 =>
        'Book your upcoming stay in {{hotel.city}}',
      AdCreativeLinkDataFields::NAME => '{{hotel.name | titleize}}',
      AdCreativeLinkDataFields::LINK => '<LINK>',
      AdCreativeLinkDataFields::DESCRIPTION =>
        '{{hotel.description}}',
      AdCreativeLinkDataFields::ADDITIONAL_IMAGE_INDEX => 0,
      AdCreativeLinkDataFields::CALL_TO_ACTION => array(
        'type' => AdCreativeCallToActionTypeValues::BOOK_TRAVEL,
      ),
    )),
));

$creative = new AdCreative(null, 'act_<AD_ACCOUNT_ID>');
$creative->setData(array(
  AdCreativeFields::NAME => 'Dynamic Ad Template Creative Sample',
  AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec,
  AdCreativeFields::TEMPLATE_URL_SPEC =>
    array(
      'config' => array(
        'app_id' => '123456789012345',
      ),
      'ios' => array(
        'url' => 'example://home/hotel'.
          '?id={{hotel.hotel_id | urlencode}}'.
          '&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}'.
          '&endDate={{trip.checkout_date date_format:Y-m-d | urlencode}}',
      ),
      'web' => array(
        'url' => 'http://www.example.com/hotel'.
          '?id={{hotel.hotel_id | urlencode}}'.
          '&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}'.
          '&endDate={{trip.checkout_date date_format:Y-m-d | urlencode}}',
      )
    ),
  AdCreativeFields::PRODUCT_SET_ID => <PRODUCT_SET_ID>,
));

$creative->create();
from facebookads.adobjects.adcreative import AdCreative
from facebookads.adobjects.adcreativeobjectstoryspec \
    import AdCreativeObjectStorySpec

story = AdCreativeObjectStorySpec()
story[story.Field.page_id] = <PAGE_ID>
story[story.Field.template_data] = {
    'message': 'Book your upcoming stay in {{hotel.city}}',
    'name': '{{hotel.name | titleize}}',
    'link': '<LINK>',
    'description': '{{hotel.description}}',
    'additional_image_index': 0,
    'call_to_action': {
        'type': 'BOOK_TRAVEL',
    },
}

creative = AdCreative(parent_id='act_<AD_ACCOUNT_ID>')
creative[AdCreative.Field.name] = 'Dynamic Ad Template Creative Sample'
creative[AdCreative.Field.object_story_spec] = story
template_url = ('http://www.example.com/hotel.aspx?id={{hotel.hotel_id}}'
                '&startDate={{trip.checkin_date date_format:Y-m-d}}'
                '&endDate={{trip.checkout_date date_format:Y-m-d}}')
creative[AdCreative.Field.template_url] = template_url
creative[AdCreative.Field.product_set_id] = <PRODUCT_SET_ID>
creative.remote_create()
curl \
  -F 'name=Dynamic Ad Template Creative Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "additional_image_index": 0, 
      "call_to_action": {"type":"BOOK_TRAVEL"}, 
      "description": "{{hotel.description}}", 
      "link": "<LINK>", 
      "message": "Book your upcoming stay in {{hotel.city}}", 
      "name": "{{hotel.name | titleize}}" 
    } 
  }' \
  -F 'template_url_spec={ 
    "config": {"app_id":"123456789012345"}, 
    "ios": { 
      "url": "example:\/\/home\/hotel?id={{hotel.hotel_id | urlencode}}&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}&endDate={{trip.checkout_date date_format:Y-m-d | urlencode}}" 
    }, 
    "web": { 
      "url": "http:\/\/www.example.com\/hotel?id={{hotel.hotel_id | urlencode}}&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}&endDate={{trip.checkout_date date_format:Y-m-d | urlencode}}" 
    } 
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/act_<AD_ACCOUNT_ID>/adcreatives

Up-selling dei voli (solo API v2.10 e versioni successive)

Per le opzioni di up-selling, come la selezione dei posti o l'imbarco prioritario per un pubblico che ha acquistato i voli:

  1. Specifica un pubblico includendo solo gli eventi PURCHASE.
  2. (Preferito) Nelle recommender_settings della creatività dell'inserzione, specifica gli eventi PURCHASE come metodo preferito per consigliare inserzioni.
curl \
  -F 'name=Advantage+ Catalog Ad Template Creative Up-sell Sample' \
  -F 'object_story_spec={ 
    "page_id": "<PAGE_ID>", 
    "template_data": { 
      "additional_image_index": 0, 
      "call_to_action": {"type":"LEARN_MORE"}, 
      "description": "{{flight.description}}", 
      "link": "<LINK>", 
      "message": "Book extra leg room on your flight from {{flight.origin_city}} to {{flight.destination_city}}", 
    } 
  }' \
  -F 'template_url_spec={ 
    "config": {"app_id":"<APP_ID>"}, 
    "ios": { 
      "url": "example:\/\/home\/flight?id={{flight.origin_airport}}&startDate={{trip.departing_departure_date date_format:Y-m-d | urlencode}}&endDate={{trip.returning_departure_date date_format:Y-m-d | urlencode}}" 
    }, 
    "web": { 
      "url": "http:\/\/www.example.com\/flight?id={{flight.origin_airport}}&startDate={{trip.checkin_date date_format:Y-m-d | urlencode}}&endDate={{trip.returning_departure_date date_format:Y-m-d | urlencode}}" 
    } 
  }' \
  -F 'product_set_id=<FLIGHT_SET_ID>' \
  -F 'recommender_settings'={"preferred_events":["Purchase"]}\ 
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/VERSION/act_<AD_ACCOUNT_ID>/adcreatives

Design di sovrapposizione

Le sovrapposizioni consentono agli inserzionisti di aggiungere informazioni sui prezzi (come prezzo diretto o percentuale di sconto) per ciascun articolo incluso nelle inserzioni del catalogo Advantage+.

Opzioni di sovrapposizione per tipo di catalogo

Puoi usare i tipi di sovrapposizione seguenti in base al tipo di catalogo utilizzato nel gruppo di inserzioni:

  • Hotel: price, strikethrough e % off
  • Destinazione: price
  • Volo: price

Nota: sono supportati tutti i modelli di tag per ogni tipo di catalogo per le opzioni di sovrapposizione precedentemente indicate. Per visualizzare i modelli di tag per ciascun tipo di catalogo, consulta hotel, destinazioni e voli.

Opzioni di design delle sovrapposizioni

Le informazioni sui prezzi vengono acquisite dinamicamente dalle colonne del prezzo e dello sconto dell'elenco. Gli inserzionisti possono selezionare la sovrapposizione per le inserzioni del catalogo Advantage+ dalle personalizzazioni seguenti:

  • Forme: rettangolo, cerchio e triangolo.
  • Posizioni: 4 angoli fissi: TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT e BOTTOM_RIGHT. Per il triangolo, sono supportati solo TOP_LEFT e TOP_RIGHT.
  • Caratteri: una lista di tipi di caratteri predefiniti, come Droid Serif, Open Sans e così via.
  • Tipi di sovrapposizioni supportati: price, strikethrough e % off. Nota: strikethrough e % off sono disponibili solo per gli hotel.

Scopri di più su come aggiungere le sovrapposizioni.

Esempio: sovrapposizione prezzo con testo barrato per l'inserzione di un hotel

curl \
  -F 'name=Test Templates in Overlay' \
  -F 'object_story_spec={
    "page_id": "<PAGE_ID>",
    "template_data": {
      "description": "Description",
      "link": "<LINK>", 
      "name": "Name: {{hotel.name}}",
      "message" : "Come visit {{hotel.city}}!",
      "image_overlay_spec": {
        "overlay_template":"pill_with_text",
        "text_font":"droid_serif_regular",
        "text_type":"strikethrough_price",
        "position":"top_left",
        "theme_color":"background_e50900_text_ffffff",
        "float_with_margin":"true",
        "text_template_tags": ["{{hotel.price round}}", "{{hotel.sale_price round}}"],
      }
    }
  }' \
  -F 'product_set_id=<PRODUCT_SET_ID>' \
  -F 'template_url=http://www.example.com' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.10/act_897427477067185/adcreatives

Per creare l'inserzione, usa ad_set_id e creative_id.

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

Passaggi successivi

Anteprima dell'inserzione

Puoi generare un'anteprima della tua creatività Advantage+ con l'API Ad Previews. Inserisci il parametro product_item_ids per specificare quali articoli del catalogo visualizzare nell'anteprima.

Genera un'anteprima della tua inserzione con l'API Ad Previews. Inserisci il parametro product_item_ids per specificare quali articoli del catalogo visualizzare nell'anteprima e start_date e end_date per indicare date specifiche.

curl -X GET \ -d 'ad_format="DESKTOP_FEED_STANDARD"' \ -d 'product_item_ids=[ "<PRODUCT_ITEM_ID>" ]' \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v21.0/<CREATIVE_ID>/previews
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdCreative = bizSdk.AdCreative; const AdPreview = bizSdk.AdPreview; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_CREATIVE_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 = { 'ad_format' : 'DESKTOP_FEED_STANDARD', 'product_item_ids' : ['<productItemID>'], }; const previewss = (new AdCreative(id)).getPreviews( fields, params ); logApiCallResult('previewss api call complete.', previewss);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdCreative; use FacebookAds\Object\AdPreview; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_CREATIVE_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'ad_format' => 'DESKTOP_FEED_STANDARD', 'product_item_ids' => array('<productItemID>'), ); echo json_encode((new AdCreative($id))->getPreviews( $fields, $params )->getResponse()->getContent(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adcreative import AdCreative from facebook_business.adobjects.adpreview import AdPreview from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_CREATIVE_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'ad_format': 'DESKTOP_FEED_STANDARD', 'product_item_ids': ['<productItemID>'], } print AdCreative(id).get_previews( 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_CREATIVE_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdCreative(id, context).getPreviews() .setAdFormat(AdPreview.EnumAdFormat.VALUE_DESKTOP_FEED_STANDARD) .setProductItemIds(\"[\\"<productItemID>\\"]\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_CREATIVE_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_creative = FacebookAds::AdCreative.get(id) previewss = ad_creative.previews({ fields: { }, ad_format: 'DESKTOP_FEED_STANDARD', product_item_ids: ['<productItemID>'], })

Parametri

Tipo e nome del campo Descrizione

product_item_ids

tipo: array[string]

  • Hotel: lista di ID Facebook degli hotel o token degli ID degli hotel con codifica Base64url. Ciascun token usa il seguente formato: hotel_catalog:{catalog_id}:{base64urlencode(hotel_id)}
  • Destinazione: lista di ID Facebook delle destinazioni o token degli ID delle destinazioni con codifica Base64url. Ciascun token usa il seguente formato: destination_catalog:{catalog_id}:{base64urlencode(destination_id)}
  • Volo: ID Facebook dei voli o token degli ID dei voli con codifica Base64url. Ciascun token usa il seguente formato: flight_catalog:{catalog_id}:{base64urlencode(destination_id)}

start_date

tipo: string

Esegui il rendering dell'anteprima con il segnale delle intenzioni dell'utente, ad es. 2016-12-24.

  • Per gli hotel, sarebbe il valore di trip.checkin_date
  • Per le destinazioni, sarebbe il valore di trip.travel_start
  • Per i voli, sarebbe il valore di trip.departing_departure_date

end_date

tipo: string

Esegui il rendering dell'anteprima con il segnale delle intenzioni dell'utente, ad es. 2017-01-01.

  • Per gli hotel, sarebbe il valore di trip.checkout_date
  • Per le destinazioni, sarebbe il valore di trip.travel_end
  • Per i voli, sarebbe il valore di trip.returning_departure_date

Recupero di insight e statistiche delle inserzioni per i viaggi

Per recuperare gli insight sulle inserzioni per un oggetto di viaggio, come un hotel, effettua una chiamata GET a /insights. Nota: ricorda di aggiungere il product_id al parametro breakdown.

Per hotel e destinazioni, vengono mostrati i dettagli del product id per ciascun hotel_id o destination_id. Per i voli, i dettagli del product id mostrano origin_airport:destination_airport.

Recupero di commenti e Mi piace

Per recuperare commenti o Mi piace per le inserzioni del catalogo Advantage+, usa l'API Post Dynamic.