Le inserzioni del catalogo Advantage+ ti permettono di mostrare alle persone inserzioni in base alla loro intenzione di acquisto cross-device. Puoi raccogliere i segnali delle intenzioni degli utenti dalle app mobili e dai siti web e usare questi dati per creare un pubblico in modo da targetizzare i potenziali clienti.
Questo documento illustra come:
Per raccogliere i segnali dell'utente, usa App Events per l'app mobile o il pixel di Meta per il sito web.
Se disponi di un'app e pubblichi le inserzioni solo per computer, devi comunque installare l'SDK di Facebook. Questo aiuta a catturare segnali ed espandere il pubblico di destinazione.
Devi aggiungere i seguenti eventi alla tua app attraverso SDK di Facebook per iOS e Android:
Evento | Evento iOS | Evento Android |
---|---|---|
Ricerca |
|
|
Visualizzazione di contenuti |
|
|
Aggiunta al carrello |
|
|
Acquisto | // Send through logPurchase |
|
Tutti questi eventi devono includere un content_id
(oppure un array JSON di content_id
).
A differenza del pixel di Meta, App Events non ha il parametro product_catalog_id
. Di conseguenza devi associare il catalogo e l'app all'endpoint external_event_sources
descritto sotto.
Evento di aggiunta al carrello su iOS:
[[FBSDKAppEvents shared] logEvent:FBSDKAppEventNameAddedToCart valueToSum:54.23 parameters:@{ FBSDKAppEventParameterNameCurrency : @"USD", FBSDKAppEventParameterNameContentType : @"product", FBSDKAppEventParameterNameContentID : @"123456789" } ];
Evento di acquisto su iOS con due articoli diversi acquistati con quantità:
[[FBSDKAppEvents shared] logPurchase:21.97 currency:@"USD" parameters:@{ FBSDKAppEventParameterNameContent : @"[{\"id\":\"1234\",\"quantity\":2},{\"id\":\"5678\",\"quantity\":1}]", FBSDKAppEventParameterNameContentType : @"product" } ];
Evento di acquisto su Android con due articoli acquistati con quantità:
Bundle parameters = new Bundle(); parameters.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD"); parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product"); parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT, "[{\"id\":\"1234\",\"quantity\":2},{\"id\":\"5678\",\"quantity\":1}]"); logger.logEvent( AppEventsConstants.EVENT_NAME_PURCHASED, 21.97, parameters );
Evento di acquisto su Android con due articoli acquistati:
Bundle parameters = new Bundle(); parameters.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD"); parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product"); parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, "[\"1234\",\"5678\"]"); logger.logEvent( AppEventsConstants.EVENT_NAME_PURCHASED, 21.97, parameters );
Considera che con le inserzioni del catalogo Advantage+ è possibile usare CONTENT_ID
o CONTENT
per indicare gli ID dei prodotti. Il parametro CONTENT
ti consente di fornire informazioni aggiuntive sui prodotti.
Per usare le inserzioni del catalogo Advantage+ con un Mobile Measurement Partner (MMP), devi avviare separatamente gli eventi richiesti mentre una persona utilizza la tua app. I punti di interazione chiave che devi monitorare sono quando qualcuno cerca dei prodotti, visualizza un prodotto, aggiunge qualcosa a un carrello e acquista gli articoli. Devi selezionare gli eventi nel tuo MMP che corrispondono ai seguenti eventi delle inserzioni del catalogo Advantage+ standard:
Nome | Descrizione |
---|---|
| Una persona cerca dei prodotti. |
| Un account del Centro gestione account visualizza un prodotto. |
| Una persona aggiunge un articolo al carrello. |
| Un account del Centro gestione account acquista uno o più articoli. |
Inoltre, ti occorrono altri due parametri per registrare correttamente ciascun evento come un evento di inserzioni del catalogo Advantage+. Questi due parametri rappresentano l'ID dell'articolo che viene visualizzato, aggiunto al carrello o acquistato e indicano se l'ID è un prodotto o un gruppo di prodotti. I parametri aggiuntivi disponibili sono:
Nome | Descrizione |
---|---|
stringa | Uno tra |
stringa | Uno tra I campi |
stringa | Facoltativo. Se non viene fornito alcun Consulta "Scegliere il giusto |
stringa | Facoltativo. |
stringa | Facoltativo. |
Nota: è consigliabile inviare i parametri _valueToSum
e fb_currency
quando viene effettuato un acquisto.
I seguenti eventi devono essere aggiunti al tuo sito web, se applicabile:
Search
ViewCategory
ViewContent
AddToCart
Purchase
Questi eventi devono essere inviati con i seguenti parametri di dati:
Nome | Descrizione |
---|---|
stringa o stringa[] | Uno tra |
oggetto[] | Uno tra I campi |
stringa | Facoltativo. Se non viene fornito alcun Consulta "Scegliere il giusto |
stringa | Facoltativo. |
Di seguito è mostrato un esempio di evento standard Search
. Consigliamo di fornire da 5 a 10 articoli per content_ids
dai principali risultati della tua ricerca.
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Insert Your Facebook Pixel ID below. fbq('init', '<FB_PIXEL_ID>'); fbq('track', 'PageView'); fbq('track', 'Search', { search_string: 'leather sandals', content_ids: ['1234', '2424', '1318', '6832'], // top 5-10 search results content_type: 'product' }); </script> <!-- End Facebook Pixel Code -->
Di seguito è mostrato un esempio di evento ViewCategory
. Consigliamo di fornire da 5 a 10 articoli per content_ids
dai principali risultati della tua ricerca. Tieni presente che ViewCategory
non è un evento standard, quindi viene usata la funzione trackCustom
.
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Insert Your Facebook Pixel ID below. fbq('init', '<FB_PIXEL_ID>'); fbq('track', 'PageView'); fbq('trackCustom', 'ViewCategory', { content_name: 'Really Fast Running Shoes', content_category: 'Apparel & Accessories > Shoes', content_ids: ['1234', '2424', '1318', '6832'], // top 5-10 results content_type: 'product' }); </script> <!-- End Facebook Pixel Code -->
Di seguito è mostrato un esempio di evento standard ViewContent
. Per maggiori dettagli sulla configurazione del pixel, consulta Pixel di Meta.
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Insert Your Facebook Pixel ID below. fbq('init', '<FB_PIXEL_ID>'); fbq('track', 'PageView'); fbq('track', 'ViewContent', { content_ids: ['1234'], content_type: 'product', value: 0.50, currency: 'USD' }); </script> <!-- End Facebook Pixel Code -->
Un evento standard AddToCart
dipende da come la piattaforma di e-commerce gestisce l'aggiunta di un articolo al carrello. Se viene fatto in modo dinamico, viene collocato in un gestore di eventi onclick
in modo da venire attivato al clic sul pulsante. Se viene caricata una pagina a parte, l'evento del pixel può essere attivato normalmente.
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Insert Your Facebook Pixel ID below. fbq('init', '<FB_PIXEL_ID>'); fbq('track', 'PageView'); // If you have a separate add to cart page that is loaded. fbq('track', 'AddToCart', { content_ids: ['1234', '1853', '9386'], content_type: 'product', value: 3.50, currency: 'USD' }); </script> <!-- End Facebook Pixel Code -->
Se l'evento deve essere attivato al clic sul pulsante e non viene caricata alcuna pagina a parte:
<!-- The below method uses jQuery, but that is not required --> <button id="addToCartButton">Add To Cart</button> <!-- Add event to the button's click handler --> <script type="text/javascript"> $( '#addToCartButton' ).click(function() { fbq('track', 'AddToCart', { content_ids: ['1234'], content_type: 'product', value: 2.99, currency: 'USD' }); }); </script>
Evento standard Purchase
con due articoli con quantità:
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Insert Your Facebook Pixel ID below. fbq('init', '<FB_PIXEL_ID>'); fbq('track', 'PageView'); fbq('track', 'Purchase', { contents: [ {'id': '1234', 'quantity': 2}, {'id': '4642', 'quantity': 1} ], content_type: 'product', value: 21.97, currency: 'USD' }); </script> <!-- End Facebook Pixel Code -->
Evento standard Purchase
con due articoli:
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Insert Your Facebook Pixel ID below. fbq('init', '<FB_PIXEL_ID>'); fbq('track', 'PageView'); fbq('track', 'Purchase', { content_ids: ['1234', '4642'], content_type: 'product', value: 21.97, currency: 'USD' }); </script> <!-- End Facebook Pixel Code -->
content_type
Nota:fb_content_type
è il tipo di contenuto per dispositivi mobili.
Se la pagina riguarda una SKU specifica (dimensioni, colore e così via), utilizza product
per content_type
e passa gli ID prodotto (colonna id
nell'elenco prodotti) in content_ids
. Tutti gli eventi AddToCart
e Purchase
devono utilizzare content_type=product
perché le persone acquistano prodotti specifici. Le persone non acquistano una camicia senza forma di taglia e colore indefiniti, ma una camicia specifica di taglia e colore determinati.
Se la pagina riguarda un gruppo di prodotti correlati con dimensioni, colore ecc. variabili ma appartenenti allo stesso gruppo di prodotti, usa product_group
e passa gli ID gruppo prodotti (colonna item_group_id
nell'elenco prodotti) in content_ids
. Un caso d'uso comune è quello di una pagina ViewContent
in cui l'utente non ha ancora scelto la taglia. Non usareproduct_group
con AddToCart
o Purchase
.
È importante che il content_type
corrisponda al tipo di ID incluso nel parametro content_ids
o contents
.
Passando ID prodotti specifici (content_type=product
) Meta è in grado di consigliare un maggior numero di prodotti rilevanti poiché ha le informazioni necessarie relative alla variante specifica (taglia, colore e così via) per la quale l'utente ha manifestato interesse. Verranno visualizzati sempre prodotti (non gruppi di prodotti), anche se content_type=product_group
.
Se non viene fornito alcun content_type
, Meta assocerà l'evento a ogni elemento con lo stesso ID, indipendentemente dal tipo. Si consiglia di inviare content_type
, poiché ti darà maggiore controllo sull'ID specifico da associare all'evento.
Devi associare le origini degli eventi a ciascuno dei tuoi cataloghi prodotti in modo che Facebook possa ottenere questi dati e mostrare il prodotto corretto in un'inserzione. Puoi eseguire questa operazione accedendo alla pagina del catalogo del Business Manager e cliccando sul pulsante Associa origine evento. Assicurati di selezionare l'app e il pixel che riceveranno gli eventi delle inserzioni del catalogo Advantage+.
In alternativa, puoi effettuare una chiamata API POST
con una lista di origini di eventi esterne come i parametri di una stringa di query con codifica UTF-8:
use FacebookAds\Object\ProductCatalog;
$product_catalog = new ProductCatalog(<PRODUCT_CATALOG_ID>);
$product_catalog->createExternalEventSource(array(), array(
'external_event_sources' => array(
<PIXEL_ID>,
<APP_ID>,
),
));
from facebookads.adobjects.productcatalog import ProductCatalog
product_catalog = ProductCatalog(<PRODUCT_CATALOG_ID>)
product_catalog.add_external_event_sources([
<PIXEL_ID>,
<APP_ID>,
])
curl \
-F 'external_event_sources=["<PIXEL_ID>","<APP_ID>"]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PRODUCT_CATALOG_ID>/external_event_sources
Nota: devi avere le autorizzazioni per catalogo, pixel e app così come per l'azienda.
Nome | Descrizione |
---|---|
| Obbligatorio. |
Il passo successivo è la creazione dei gruppi di pubblico del prodotto sulla base dell'attività su app mobili e sito web. Puoi scegliere quali eventi usare e targetizzare le inserzioni usando i gruppi di pubblico del prodotto.
Per gli eventi delle app standard, il pubblico sarà aggregato sotto i nomi delle azioni del pixel delle inserzioni:
Search
ViewContent
AddToCart
Purchase
Usa questi nomi di eventi nelle tue regole per il pubblico, anche se sono inclusi utenti su Android e iOS.
Crea il pubblico del prodotto effettuando una chiamata API POST
all'endpoint /act_{ad-account-id}/product_audiences
.
https://graph.facebook.com/v21.0
/act_AD_ACCOUNT_ID/product_audiences
Nome | Descrizione |
---|---|
stringa | Obbligatorio. |
stringa | Facoltativo. |
stringa numerica | Obbligatorio. L'insieme di prodotti di destinazione per questo pubblico |
Oggetto JSON | Obbligatorio. |
int | Obbligatorio. |
oggetto[] | Obbligatorio. |
Oggetto JSON | Facoltativo. |
int | Obbligatorio, se è specificata l'esclusione. |
oggetto[] | Obbligatorio, se è specificata l'esclusione. |
Ogni regola deve includere event
con l'operatore eq
come regola di livello superiore o come parte di una regola and
di livello superiore.
Se viene usato lo stesso event
sia nelle inclusioni che nelle esclusioni, tutti gli ulteriori parametri devono essere esattamente gli stessi.
Creare un pubblico che includa persone che hanno visualizzato o aggiunto prodotti al carrello senza aver completato l'acquisto:
curl -X POST \
-F 'name="Test Product Audience"' \
-F 'product_set_id="<PRODUCT_SET_ID>"' \
-F 'inclusions=[
{
"retention_seconds": 86400,
"rule": {
"event": {
"eq": "AddToCart"
}
}
},
{
"retention_seconds": 72000,
"rule": {
"event": {
"eq": "ViewContent"
}
}
}
]' \
-F 'exclusions=[
{
"retention_seconds": 172800,
"rule": {
"event": {
"eq": "Purchase"
}
}
}
]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/product_audiences
Se vuoi definire come destinatarie le persone che hanno visualizzato un prodotto sul web con iPhone, ma che non hanno acquistato alcun dispositivo, crea il pubblico riportato di seguito.
Questa operazione prevede che tu includa un parametro userAgent
nel tuo pixel di Meta.
curl -X POST \
-F 'name="Test Iphone Product Audience"' \
-F 'product_set_id="<PRODUCT_SET_ID>"' \
-F 'inclusions=[
{
"retention_seconds": 86400,
"rule": {
"and": [
{
"event": {
"eq": "AddToCart"
}
},
{
"userAgent": {
"i_contains": "iPhone"
}
}
]
}
}
]' \
-F 'exclusions=[
{
"retention_seconds": 172800,
"rule": {
"event": {
"eq": "Purchase"
}
}
}
]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/product_audiences
Una volta creato il pubblico del prodotto, puoi recuperarlo con l'API Custom Audiences. Puoi ottenere i parametri originali usati per la creazione del pubblico con il parametro data_source
.
Il pubblico del prodotto è un tipo specifico di pubblico personalizzato generato in modo dinamico dagli eventi relativi al prodotto. L'endpoint act_{ad-account-id}/product_audiences
è un endpoint POST
specifico per creare questi gruppi di pubblico.
Recupero del pubblico personalizzato:
curl -X GET \
-d 'fields="data_source,subtype"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/customaudiences
Recupero di uno specifico gruppo di pubblico del prodotto:
use FacebookAds\Object\ProductAudience;
$product_audience = new ProductAudience(<PRODUCT_AUDIENCE_ID>);
$product_audience->read();
from facebookads.objects import ProductAudience
product_audience = ProductAudience(<PRODUCT_AUDIENCE_ID>)
product_audience.remote_read()
CustomAudience customAudience2 = new CustomAudience(<PRODUCT_AUDIENCE_ID>, context).get()
.execute();
curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PRODUCT_AUDIENCE_ID>