Monitoraggio delle conversioni

Implementazione

Riepilogo

L'implementazione del monitoraggio delle conversioni si compone di tre parti:

  1. Raccogliere il rwg_token dal punto di ingresso della pagina di destinazione o dell'app.
  2. Permettere la rwg_token per la finestra di attribuzione appropriata
  3. Inviare un evento di conversione al momento del pagamento

Questa implementazione del monitoraggio delle conversioni non richiede l'utilizzo di Google Analytics o di altri JavaScript di terze parti.

Prima di iniziare a lavorare all'implementazione del monitoraggio delle conversioni, devi decidere se monitorare le conversioni a livello di dispositivo o di utente:

  • Il livello di dispositivo include l'uso di cookie del browser, spazio di archiviazione locale, archiviazione locale delle app o qualsiasi altro metodo che consenta di conservare il token per la finestra di attribuzione di 30 giorni. Perché il token viene memorizzato localmente sul dispositivo dell'utente, se l'utente cambia il dispositivo in uso, cancella i dati e l'archiviazione locale o utilizza una modalità di navigazione in incognito o privata, l'evento di conversione potrebbe non essere attribuito correttamente. Quando utilizzi il monitoraggio delle conversioni a livello di dispositivo, devi implementarlo nuovamente su tutte le piattaforme supportate (inclusi i dispositivi mobili).
  • Il livello utente include la persistenza nel database dell'applicazione, tramite un sistema di analisi lato server o altri sistemi lato server. Poiché il token viene archiviato sul lato server, se l'utente cambia il dispositivo in uso, cancella i dati dello spazio di archiviazione locale/i cookie o utilizza una modalità di navigazione in incognito o privata, l'evento di conversione verrà comunque attribuito una volta che l'utente accede di nuovo. Quando utilizzate il monitoraggio delle conversioni a livello di utente, in base all'architettura del sistema potreste essere in grado di implementarlo una sola volta sul lato server e riutilizzarlo su tutte le piattaforme supportate.

Raccolta del rwg_token in corso...

Ogni volta che Google mostra un action_link che hai fornito tramite i feed, tale URL verrà modificato in modo da includere un parametro di ricerca univoco: rwg_token. Il valore rwg_token è una stringa codificata che contiene alcuni metadati sul link su cui l'utente ha fatto clic. Lo archivierai e lo rispedirai come parte dell'evento di conversione.

Per ogni pagina di destinazione/punto di ingresso dell'app devi analizzare il valore impostato per il parametro di ricerca rwg_token e archiviarlo. I requisiti per l'archiviazione di questo parametro sono descritti nel passaggio, Persistente il rwg_token.

Di seguito è riportato un esempio di come analizzare questo token per il monitoraggio a livello di dispositivo tramite il browser. In alternativa, puoi raccogliere questo token sul lato server quando rispondi alla richiesta:

<script>
  var query = location.search.substring(1);
  var params = query.split('&');
  var rwgToken = undefined;
  for (var i = 0; i < params.length; ++i) {
    var pair = params[i].split('=');
    if (pair[0] == 'rwg_token') {
      rwgToken = decodeURIComponent(pair[1]);
      break;
    }
  }
</script>

Persistente nel rwg_token

Ti verrà richiesto di mantenere il parametro URL rwg_token, che verrà aggiunto a tutti i link di azione forniti da te, per una durata totale di 30 giorni. Il valore di rwg_token deve essere archiviato e restituito senza modifiche. Se è presente un token esistente da una visita precedente, il vecchio token deve essere sostituito e la finestra di archiviazione di 30 giorni deve essere reimpostata.

Quando scegli di mantenere il token, puoi archiviarlo a livello di dispositivo o a livello di utente:

  • Il livello di dispositivo include l'utilizzo di cookie del browser, spazio di archiviazione locale, archiviazione locale delle app o qualsiasi altro metodo che consenta di conservare il token per la finestra di attribuzione di 30 giorni.
  • Il livello utente include la persistenza nel database dell'applicazione, tramite un sistema di analisi lato server o altri sistemi lato server.

Di seguito è riportato un esempio di monitoraggio delle conversioni a livello di dispositivo, che memorizza il token in un browser web tramite un cookie proprietario. Questo esempio presuppone che tu abbia analizzato il valore del token in una variabile come nell'esempio precedente. Per utilizzare questo esempio, è necessario aggiornare "rootdomain" con il tuo dominio.

<script>
  if (typeof rwg_token !== 'undefined') {
    document.cookie =
    "_rwg_token=" + rwg_token + ";max-age=2592000;domain=rootdomain.com;path=/";
  }
</script>

Quando utilizzi il monitoraggio delle conversioni a livello di utente, il rwg_token deve essere memorizzato sul server e associato all'utente.

Inviare i dati sulle conversioni

Quando un utente completa una transazione attribuibile a un link di azione di Google Places, devi inviare una richiesta POST HTTP all'endpoint di conversione. Ci sono due endpoint, uno per l'ambiente di produzione e uno per l'ambiente sandbox.

  • Produzione: https://www.google.com/maps/conversion/collect
  • Sandbox: https://www.google.com/maps/conversion/debug/collect

Il corpo del post deve essere un oggetto codificato in formato json nel formato:

{
  'conversion_partner_id': partnerId,
  'rwg_token': <rwg_token_val>
}

In entrambi gli ambienti sandbox e di produzione, dovrai fornire un rwg_token valido quando invii un evento di conversione. Ai fini di test nell'ambiente sandbox, puoi utilizzare il seguente token di test.

ADQ7psRE9YyDSVR6YpfD-fYdxoFYVKS1xeTvXdSxqF8a3bnk0W62eMEnUjoNPwjhNHG0elwBnM1awTjr9vXET8yOowCeuODjwA==

Di seguito è riportato un esempio completo di monitoraggio delle conversioni a livello di dispositivo (utilizzando un cookie sul dispositivo dell'utente) in JavaScript su come effettuare la richiesta di post:

const partnerId = XXXXXXXXXX;
const endpoint = `https://www.google.com/maps/conversion/collect`;

const rwgTokenCookie = document.cookie
  .split('; ')
  .find(row => row.startsWith('_rwg_token='));

if (typeof rwgTokenCookie !== 'undefined') {
  const rwgTokenVal = rwgTokenCookie.split('=')[1];
  fetch(endpoint, {
    method: "POST",
    body: JSON.stringify({
      conversion_partner_id: partnerId,
      rwg_token: rwgTokenVal
    })
  });
}

Quando utilizzi il monitoraggio delle conversioni a livello di utente, devi recuperare il token associato all'utente (indipendentemente dalla superficie su cui si trova) dal meccanismo di archiviazione lato server e inviare il token utilizzando gli stessi endpoint di produzione o sandbox.

Requisiti di attribuzione delle conversioni

Lo standard richiesto da Google per l'attribuzione delle conversioni è una finestra di attribuzione di 30 giorni per qualsiasi interazione con un link del luogo, in qualsiasi negozio.

Questa finestra di attribuzione si aspetta che un evento di conversione venga inviato in uno dei seguenti scenari:

  • Un utente segue un link di azione diretta e fa un ordine nella stessa sessione
  • Un utente segue un link di un'azione diretta e torna da un altro canale entro i 30 giorni successivi per effettuare un ordine.
  • Un utente segue un link di azione diretta e poi effettua un ordine in un altro negozio, all'interno della stessa sessione o in una sessione diversa entro un periodo di 30 giorni.

Inoltre, prevediamo che gli eventi di conversione vengano inviati da tutte le piattaforme a cui un utente può arrivare da un link di azione diretta. Che include:

  • Applicazioni web per desktop o dispositivi mobili
  • App per dispositivi mobili, tramite un link diretto all'app o un intent dell'app registrato per il dominio

Se il token è archiviato a livello di utente (vedi la continuazione del token), è previsto che tu fornisca l'attribuzione cross-device. In altre parole, un utente che segue un link di azione dal desktop e poi completa la transazione su un dispositivo mobile (utilizzando lo stesso account utente), deve attivare un evento di conversione.

Se il token viene archiviato esclusivamente a livello di dispositivo, ad esempio nei cookie del browser, non è previsto che tu fornisca l'attribuzione cross-device. In questo caso, ogni dispositivo avrà un token separato se l'utente aveva seguito un link all'azione su quel dispositivo e ogni dispositivo seguirebbe le regole di attribuzione separatamente.