onBeforeLinkClickSend
filterClickDetails
.Il callback onBeforeLinkClickSend
consente di registrare una funzione di JavaScript che può modificare i dati di tracciamento dei collegamenti inviati immediatamente prima dell'invio dei dati ad Adobe. Questo callback consente di manipolare l'oggetto xdm
o data
, inclusa la possibilità di aggiungere, modificare o rimuovere elementi. Puoi anche annullare completamente l’invio di dati in modo condizionale, ad esempio con il traffico bot lato client rilevato. È supportato dall’SDK web 2.15.0 o versione successiva.
Questo callback viene eseguito solo quando clickCollectionEnabled
è abilitato e filterClickDetails
non contiene una funzione registrata. Se clickCollectionEnabled
è disabilitato o se filterClickDetails
contiene una funzione registrata, il callback non viene eseguito. Se onBeforeEventSend
e onBeforeLinkClickSend
contengono entrambi funzioni registrate, onBeforeLinkClickSend
viene eseguito per primo.
Configurare prima del collegamento fai clic su Invia callback utilizzando l’estensione tag Web SDK tag-extension
Seleziona il pulsante Fornisci prima del collegamento, invia codice di callback dell'evento clic quando configura l'estensione tag. Questo pulsante apre una finestra modale in cui puoi inserire il codice desiderato.
- Accedi a experience.adobe.com utilizzando le credenziali Adobe ID.
- Passa a Raccolta dati > Tag.
- Seleziona la proprietà tag desiderata.
- Passa a Estensioni, quindi fai clic su Configura nella scheda Adobe Experience Platform Web SDK.
- Scorri verso il basso fino alla sezione Raccolta dati, quindi seleziona la casella di controllo Abilita raccolta dati su clic.
- Selezionare il pulsante con l'etichetta Fornisci prima del collegamento codice di callback di invio evento clic.
- Questo pulsante apre una finestra modale con un editor di codice. Inserisci il codice desiderato, quindi fai clic su Salva per chiudere la finestra modale.
- Fai clic su Salva in Impostazioni estensione, quindi pubblica le modifiche.
Nell’editor di codice puoi accedere alle seguenti variabili:
content.clickedElement
: elemento DOM su cui è stato fatto clic.content.xdm
: payload XDM per l'evento.content.data
: payload dell'oggetto dati per l'evento.return true
: uscire immediatamente dal callback con i valori della variabile corrente. Il callbackonBeforeEventSend
viene eseguito se contiene una funzione registrata.return false
: uscire immediatamente dal callback e interrompere l'invio di dati all'Adobe. Il callbackonBeforeEventSend
non è eseguito.
È possibile utilizzare qualsiasi variabile definita al di fuori di content
, ma non è inclusa nel payload inviato a Adobe.
// Set an already existing value to something else
content.xdm.web.webPageDetails.URL = "https://example.com/current.html";
// Use nullish coalescing assignments to create objects if they don't yet exist, preventing undefined errors.
// Can be omitted if you are certain that the object is already defined
content.xdm._experience ??= {};
content.xdm._experience.analytics ??= {};
content.xdm._experience.analytics.customDimensions ??= {};
content.xdm._experience.analytics.customDimensions.eVars ??= {};
// Then set the property to the clicked element
content.xdm._experience.analytics.customDimensions.eVars.eVar1 = content.clickedElement;
// Use optional chaining to check if each object is defined, preventing undefined errors
if(content.xdm.web?.webInteraction?.type === "other") content.xdm.web.webInteraction.type = "download";
Analogamente a onBeforeEventSend
, è possibile return true
per completare immediatamente la funzione o return false
per interrompere l'invio di dati all'Adobe. Se si interrompe l'invio di dati in onBeforeLinkClickSend
quando sia onBeforeEventSend
che onBeforeLinkClickSend
contengono funzioni registrate, la funzione onBeforeEventSend
non viene eseguita.
Configurare su prima del collegamento fare clic su Invia callback utilizzando la libreria JavaScript dell'SDK Web library
Registra il callback onBeforeLinkClickSend
durante l'esecuzione del comando configure
. È possibile modificare il nome della variabile content
in qualsiasi valore desiderato modificando la variabile di parametro all'interno della funzione in linea.
alloy("configure", {
datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
onBeforeLinkClickSend: function(content) {
// Add, modify, or delete values
content.xdm.web.webPageDetails.URL = "https://example.com/current.html";
// Return true to complete the function immediately
if (sendImmediate == true) {
return true;
}
// Return false to cancel sending data immediately
if(myBotDetector.isABot()){
return false;
}
}
});
È inoltre possibile registrare una propria funzione invece di una funzione in linea.
function lastChanceLinkLogic(content) {
content.xdm.application ??= {};
content.xdm.application.name = "App name";
}
alloy("configure", {
datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
onBeforeLinkClickSend: lastChanceLinkLogic
});