Guida

Come tracciare l'ID annuncio Facebook nel tuo CRM

Traccia l'ID annuncio Facebook nel CRM: {{ad.id}} nella URL, campi nascosti nel form, l'ID salvato sul lead e il join con la spesa per il CPL per annuncio.

Di Simone Manto, fondatore di DropCPL · Pubblicato il

Per tracciare l’ID annuncio Facebook nel tuo CRM, il click deve portarlo e il form deve tenerlo:

  1. Aggiungi {{ad.id}}, {{adset.id}} e {{campaign.id}} ai parametri URL dell’annuncio.
  2. Copiali dalla URL in campi nascosti del form sulla landing page.
  3. Salvali sul lead nel tuo CRM.
  4. Unisci i lead alla spesa per ID annuncio: CPL per annuncio.

Salva gli ID, non i nomi. Un nome è un’etichetta che chiunque può modificare; l’ID è la chiave che Meta usa quando riporta la spesa per annuncio.

Passo 1: metti l’ID annuncio Facebook nella URL

In Ads Manager apri l’annuncio, scorri fino a Monitoraggio (Tracking) e incolla questo nel campo Parametri URL (URL parameters):

ad_id={{ad.id}}&adset_id={{adset.id}}&campaign_id={{campaign.id}}

Tutti e tre fanno parte dei parametri URL dinamici documentati da Meta. Meta li compila con gli ID di annuncio, ad set e campagna, così ogni click arriva con i suoi. La guida ai parametri URL di Facebook ha la lista completa e una versione UTM del template.

Se il tuo form o il tuo CRM catturano già i campi UTM, riusali invece di aggiungerne di nuovi:

utm_source={{site_source_name}}&utm_medium=paid&utm_campaign={{campaign.id}}&utm_term={{adset.id}}&utm_content={{ad.id}}

utm_content={{ad.id}} mette l’ID annuncio in un campo che il tuo stack salva già. Qualunque chiave tu scelga, usa le stesse su ogni annuncio.

Passo 2: copia gli ID in campi nascosti del form

I parametri stanno nella barra degli indirizzi; il form deve raccoglierli. Aggiungi un input nascosto per ogni valore e poche righe di script che li compilano dalla query string:

<form method="post" action="/lead">
  <!-- campi visibili: nome, email, telefono -->
  <input type="hidden" name="ad_id">
  <input type="hidden" name="adset_id">
  <input type="hidden" name="campaign_id">
  <input type="hidden" name="fbclid">
  <button type="submit">Invia</button>
</form>

<script>
  const keys = ['ad_id', 'adset_id', 'campaign_id', 'fbclid'];
  const params = new URLSearchParams(window.location.search);
  for (const key of keys) {
    const fromUrl = params.get(key);
    if (fromUrl) sessionStorage.setItem(key, fromUrl);
    const value = fromUrl || sessionStorage.getItem(key);
    const field = document.querySelector(`input[name="${key}"]`);
    if (field && value) field.value = value;
  }
</script>

Le cose che decidono se funziona:

  • Lo script viene dopo il form nell’HTML, quindi gli input esistono quando li cerca.
  • Dai agli input esattamente il nome delle proprietà del CRM a cui corrispondono.
  • sessionStorage conserva i valori quando un form multi-step passa a una seconda URL nella stessa scheda. Finisce quando la scheda si chiude, quindi non salva una visita di ritorno giorni dopo.
  • Un form incorporato in un iframe di un altro dominio non può leggere la barra degli indirizzi della landing page. Passa i valori nella URL dell’iframe, oppure usa l’opzione per i campi nascosti del tuo strumento di form.
  • fbclid non serve per il join, ma tienilo per la Conversions API; la voce di glossario su fbclid spiega cosa può fare e cosa no.

Passo 3: salva l’ID annuncio Facebook nel tuo CRM

  • Crea campi personalizzati per ID annuncio, ID ad set e ID campagna, di tipo testo. Un ID di 18 cifre salvato come numero viene arrotondato da alcuni sistemi, e un ID arrotondato non combacia con niente; la voce di glossario su ad_id spiega perché.
  • Mappa ogni input nascosto sul suo campo nello strumento di form, nell’integrazione o nel webhook.
  • Decidi cosa succede con un invio ripetuto. La mia regola: il lead resta all’annuncio che l’ha creato. Gli invii successivi dello stesso contatto finiscono nelle attività, con il loro ID annuncio, e non sovrascrivono mai l’originale.
  • Se i lead arrivano nel CRM via webhook, controlla che gli ID siano nel payload. Il lead routing di DropCPL manda con ogni lead l’ID annuncio Meta, la landing page, il click ID e i valori UTM.

Passo 4: unisci i lead alla spesa per ID annuncio

La spesa arriva da Ads Manager, per annuncio:

  1. Apri la scheda Inserzioni (Ads) in Ads Manager.
  2. Vai su Colonne, Personalizza colonne e aggiungi ID dell’inserzione (Ad ID), che Meta elenca nella categoria Impostazioni delle colonne. Tieni Importo speso.
  3. Imposta lo stesso intervallo di date dell’export del CRM, poi esporta la tabella in CSV.
  4. In un foglio di calcolo conta i lead del CRM per ID annuncio (basta un CONTA.SE, COUNTIF nella versione inglese) e dividi la spesa di ogni annuncio per il suo conteggio.

Esempio, una settimana:

ID annuncio (esempio)SpesaLead nel CRMCPL
…0033800 €4020,00 €
…0044650 €1350,00 €
…0055300 €0ancora nessun lead
senza ID annuncionessuna9non attribuiti

L’ultima riga è la tua perdita di tracciamento. Nove lead sono arrivati senza ID annuncio, quindi qualcosa tra il click e il CRM ha perso i parametri; l’ultima sezione elenca dove guardare. Tieni d’occhio quella riga nel tempo. Se cresce, sistemala prima di fidarti di qualsiasi CPL che le sta sopra.

Due avvertenze dalla guida su come misurare il CPL per creatività: spesa e lead devono coprire la stessa finestra, e la spesa del giorno in corso non è definitiva. Il costo per risultato per annuncio di Ads Manager usa il conteggio attribuito da Meta, quindi raramente combacia con questa tabella; la guida alle impostazioni di attribuzione Meta spiega il divario.

DropCPL fa questo join al posto tuo, perché gli annunci vengono creati da DropCPL e l’ad_id viene registrato al click. Il click arriva sul dominio di tracking che serve la tua landing page, la spesa per annuncio è sincronizzata dalla Meta Ads API e ogni lead arriva al tuo CRM via webhook con ad_id, landing page e click ID allegati. Inizia gratis →

E i lead delle Instant Forms?

Le lead ads con Instant Forms saltano la landing page: il lead viene creato lato Meta, con l’annuncio già associato. Secondo la documentazione di Meta sul recupero dei lead:

  • Il webhook leadgen che Meta invia quando viene creato un lead include ad_id, insieme a leadgen_id, form_id, page_id e created_time.
  • Leggere tramite API campi specifici dell’annuncio come ad_id o campaign_id richiede un token di una persona che può fare pubblicità sull’account pubblicitario e sulla Facebook Page, più permessi come ads_management.
  • Quando alcune voci arrivano senza ID annuncio, Meta indica tre cause: il lead viene dalla copertura organica (is_organic vale 1), è stato inviato da un’anteprima dell’annuncio, oppure chi ha scaricato i lead non ha privilegi da inserzionista sull’account pubblicitario.

Quindi un’integrazione CRM che legge i lead tramite l’API di Meta può salvare l’ID annuncio senza alcun parametro URL. Controlla che la tua lo mappi su un campo, e il passo 4 funziona allo stesso modo. Se per la tua offerta siano più adatte le Instant Forms o una landing page è una decisione a parte, trattata in Facebook lead ads vs landing page.

Dove si perde l’ID annuncio Facebook

Form multi-step

Lo step due si carica su una nuova URL senza la query string, e i valori spariscono se lo step uno non li ha salvati. Le righe con sessionStorage nello snippet coprono questo caso; lo stesso vale se porti i parametri nella URL dello step due. Un form che si ricarica dopo un errore di validazione ha lo stesso problema.

Redirect

Un redirect tra l’annuncio e la landing page (un link shortener, una regola da http a https, un redirect di consenso o geografico) può ricostruire la URL senza la query string. Controlla cosa arriva dopo un click reale su un annuncio attivo, non cosa hai scritto in Ads Manager.

Nomi degli annunci al posto degli ID

Meta compila i parametri basati sul nome con il nome che l’annuncio aveva alla prima pubblicazione. Rinomina l’annuncio dopo e il CRM tiene il vecchio nome mentre l’export della spesa mostra quello nuovo: il join fallisce su ogni annuncio rinominato.

Annunci duplicati

Un duplicato è un annuncio nuovo. Il riferimento API di Meta sulle copie degli annunci descrive la copia come la creazione di un annuncio, restituito con il suo copied_ad_id. Con {{ad.id}} nel template, ogni copia riporta il proprio ID e si unisce alla propria spesa. Con un valore scritto a mano, per esempio utm_content=video_a, dieci duplicati di un annuncio vincente arrivano tutti come video_a, e le copie che tengono il nome originale si fondono allo stesso modo se fai il join sui nomi.

Visite di ritorno senza parametri

L’articolo di Meta sui parametri URL dice che valgono per la visita arrivata dall’annuncio: chi esce e torna più tardi per conto suo arriva senza. sessionStorage non aiuta, perché finisce con la scheda. Solo un identificatore salvato alla prima visita, in un cookie first-party, collega il ritorno al click originale, e la voce sugli identificatori di tracking spiega perché deve essere impostato lato server.

FAQ

Come trovo l'ID di un annuncio Facebook?+

In Ads Manager apri la scheda Inserzioni, poi Colonne, Personalizza colonne, e aggiungi ID dell'inserzione dalla categoria Impostazioni. Per i lead, la fonte affidabile è il click stesso: metti {{ad.id}} nei parametri URL, così ogni visita porta l'ID dell'annuncio cliccato.

Le lead ads di Facebook includono l'ID annuncio?+

Sì. Il webhook leadgen che Meta invia per ogni nuovo lead include ad_id, e l'API restituisce campi dell'annuncio come ad_id e campaign_id quando il token appartiene a una persona che può fare pubblicità sull'account pubblicitario e sulla Facebook Page, con i permessi giusti. I lead da copertura organica, da un'anteprima dell'annuncio o scaricati senza privilegi da inserzionista possono arrivare senza ID annuncio.

Nel CRM devo salvare il nome o l'ID dell'annuncio?+

L'ID. Meta compila i parametri basati sul nome con il nome che l'annuncio aveva alla prima pubblicazione, quindi una rinomina successiva separa i dati del CRM dall'export della spesa, e i duplicati spesso hanno lo stesso nome. Tieni pure il nome come etichetta leggibile, ma fai il join sull'ID.

Perché i campi dell'ID annuncio nel mio CRM sono vuoti?+

Di solito i parametri erano nella URL ma non sono mai arrivati al form: un redirect ha perso la query string, un form multi-step l'ha persa, oppure la persona è tornata più tardi senza. Clicca un annuncio attivo, controlla la URL che si carica e controlla i campi nascosti prima di inviare un lead di prova.

Posso vedere il CPL per annuncio in Ads Manager?+

Ads Manager mostra il costo per risultato di ogni annuncio, ma il conteggio dei risultati è quello attribuito da Meta, non quello del tuo CRM. Per il CPL dei lead che hai ricevuto davvero, unisci i lead del CRM per ID annuncio con la spesa esportata per ID dell'inserzione.

Pronto a sapere cosa
converte davvero?

Gratis per iniziare.

Inizia gratis →