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:
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.
Quando crei inserzioni per i viaggi, segui la stessa procedura di configurazione di un qualsiasi altro tipo di inserzione di Facebook con l'API:
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
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.
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.
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.
OFFSITE_CONVERSIONS
con i segnali delle intenzioni più forti come Purchase
o InitiateCheckout
. Consulta anche Inserzioni del catalogo Advantage+, Targetizzazione del pubblico ampio
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.
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
Per le opzioni di up-selling, come la selezione dei posti o l'imbarco prioritario per un pubblico che ha acquistato i voli:
PURCHASE
.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
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+.
Puoi usare i tipi di sovrapposizione seguenti in base al tipo di catalogo utilizzato nel gruppo di inserzioni:
price
, strikethrough
e % off
price
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.
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:
TOP_LEFT
, TOP_RIGHT
, BOTTOM_LEFT
e BOTTOM_RIGHT
. Per il triangolo, sono supportati solo TOP_LEFT
e TOP_RIGHT
.price
, strikethrough
e % off
. Nota: strikethrough
e % off
sono disponibili solo per gli hotel.Scopri di più su come aggiungere le sovrapposizioni.
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
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
Tipo e nome del campo | Descrizione |
---|---|
tipo: |
|
tipo: | Esegui il rendering dell'anteprima con il segnale delle intenzioni dell'utente, ad es. 2016-12-24.
|
tipo: | Esegui il rendering dell'anteprima con il segnale delle intenzioni dell'utente, ad es. 2017-01-01.
|
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
.
Per recuperare commenti o Mi piace per le inserzioni del catalogo Advantage+, usa l'API Post Dynamic.