Tipi di evento

Nota: Adobe Experience Platform Launch viene riclassificato come una suite di tecnologie di raccolta dati nell’Experience Platform. Queste modifiche verranno implementate in tutta la documentazione del prodotto nelle prossime settimane. Fare riferimento al seguente documento per un riferimento consolidato delle modifiche terminologiche.

Un modulo libreria di tipo evento ha un obiettivo: rilevare quando si verifica un’attività e, in tal caso, chiamare una funzione per attivare la regola associata. Sta a te definire cosa deve essere rilevato. Vuoi rilevare quando un utente compie un determinato gesto? Quando esegue uno scorrimento rapido? Quando interagisce con un elemento?

NOTA

In questo documento si presuppone che tu abbia familiarità con i moduli libreria e sul modo in cui vengono integrati nelle estensioni di Platform Launch. Se necessario, consulta la panoramica sul formato dei moduli libreria per un'introduzione alla relativa implementazione prima di proseguire con questa guida.

Oltre al parametro settings comune ad altri tipi di moduli, il parametro module.exports di un tipo di evento accetta anche un secondo parametro, trigger:

module.exports = function(settings, trigger) { … };
Parametro Descrizione
settings Un oggetto contenente le impostazioni configurate dall’utente nella vista del tipo di evento. Puoi definire cosa viene inserito in questo oggetto.
trigger Funzione chiamata dal modulo ogni volta che la regola deve essere attivata. Esiste una relazione uno-a-uno tra un oggetto settings, una funzione trigger e una regola. In altre parole, la funzione di attivazione ricevuta per una regola non può essere utilizzata per attivare una regola diversa.
NOTA

La funzione esportata verrà chiamata una sola volta per ogni regola configurata per l’utilizzo del tipo di evento.

Supponiamo che l’attività da rilevare sia il trascorrere di cinque secondi. Dopo cinque secondi, l’attività ha avuto luogo e la regola deve essere attivata. In questo caso il modulo potrebbe presentarsi così:

module.exports = function(settings, trigger) {
  setTimeout(trigger, 5000);
};

E se volessimo consentire all’utente di Adobe Experience Platform Launch di configurare la durata? A questo scopo possiamo consentire all’utente di inserire una durata nella vista e quindi di salvarla nell’oggetto impostazioni. L’oggetto potrebbe presentarsi così:

{
  "duration": 25000
}

Per poter funzionare con la durata definita dall’utente, il modulo deve essere modificato in questo modo:

module.exports = function(settings, trigger) {
  setTimeout(trigger, settings.duration);
};

Trasmissione dei dati evento contestuali

Quando si attiva una regola, spesso può essere utile fornire ulteriori dettagli sull’evento che si è verificato. Per gli utenti che creano le regole, tali informazioni possono essere utili per ottenere un determinato comportamento. Ad esempio, supponiamo che un addetto marketing desideri creare una regola in cui viene inviato un beacon di analisi ogni volta che l’utente scorre lo schermo. Se l’estensione fornisce un tipo di evento swipe, l’addetto marketing può utilizzarlo per attivare la regola di conseguenza. E se l’addetto marketing volesse includere nel beacon l’angolo specifico di scorrimento? Sarebbe difficile da realizzare senza ulteriori informazioni.

Per fornire informazioni aggiuntive sull’evento che si è verificato, si passa un oggetto quando si chiama la funzione trigger. Esempio:

trigger({
  swipeAngle: 90 // the value would be the detected angle
});

L’addetto marketing può quindi utilizzare questo valore su un beacon di analisi specificando il valore %event.swipeAngle% in un campo di testo. Può anche accedere a event.swipeAngle da altri contesti (come un’azione di codice personalizzato). Puoi includere tutte le informazioni sull’evento che possano essere utili agli addetti marketing. Queste informazioni sono del tutto facoltative.

nativeEvent

Se il tipo di evento è basato su un evento nativo (ad esempio, se l’estensione fornisce un tipo di evento click), si consiglia di impostare la proprietà nativeEvent come segue:

trigger({
  nativeEvent: nativeEvent // the value would be the underlying native event
});

Ciò può essere utile agli addetti marketing che vogliono poter accedere a qualsiasi informazione dell’evento nativo, ad esempio alle coordinate del cursore.

element

Se esiste una forte relazione tra un elemento e l’evento che si è verificato, si consiglia di impostare la proprietà element sul nodo DOM dell’elemento. Ad esempio, supponiamo che l'estensione fornisca un tipo di evento click e che gli addetti al marketing possano configurarlo in modo che la regola venga attivata solo se si fa clic su un elemento con l'ID herobanner. In questo caso, se l'utente fa clic sul banner hero, si consiglia di chiamare trigger e impostare element sul nodo DOM del banner hero.

trigger({
  element: element // the value would be the DOM node
});

Rispetto dell’ordine delle regole

Platform Launch consente agli utenti di definire l’ordine delle regole. Ad esempio, un utente può creare due regole, entrambe che utilizzano il tipo di evento per la modifica dell’orientamento, e desidera personalizzare l’ordine in cui queste si attivano. Supponiamo che l’utente di Platform Launch specifichi il valore di ordine 2 per l’evento di modifica dell’orientamento nella regola A e il valore di ordine 1 per l’evento di modifica dell’orientamento nella regola B. Questo indica che quando si cambia l’orientamento su un dispositivo mobile, la regola B deve essere attivata prima della regola A (le regole vengono attivate in ordine, dal valore più basso a quello più alto).

Come già detto, la funzione esportata nel modulo dell’evento verrà chiamata una volta per ogni regola configurata per l’utilizzo di quel tipo di evento. Ogni volta che viene chiamata la funzione esportata, viene passata una funzione trigger univoca associata a una regola specifica. Nello scenario appena descritto, la funzione esportata sarà chiamata una volta con una funzione trigger associata alla regola B e di nuovo con una funzione trigger associata alla regola A. La regola B viene prima perché l’utente le ha assegnato un valore di ordine inferiore rispetto alla regola A. Quando il modulo libreria rileva una modifica di orientamento, è importante chiamare le funzioni trigger nello stesso ordine in cui sono state fornite al modulo libreria.

Nell’esempio di codice riportato di seguito, osserva che quando viene rilevata una modifica di orientamento, le funzioni di attivazione vengono chiamate nello stesso ordine in cui sono state fornite alla funzione esportata:

var triggers = [];

window.addEventListener('orientationchange', function() {
  triggers.forEach(function(trigger) {
    trigger();
  });
});

module.exports = function(settings, trigger) {
  triggers.push(trigger);
};

In questo modo viene mantenuto l’ordine specificato dall’utente.

Se le funzioni di attivazione venissero chiamate in un ordine diverso, l’implementazione risulterebbe errata:

var triggers = [];

window.addEventListener('orientationchange', function() {
  for (var i = triggers.length - 1; i >= 0; i--) {
    triggers[i]();
  }
});

module.exports = function(settings, trigger) {
  triggers.push(trigger);
};

Le pratiche di programmazione con linguaggio naturale mantengono in genere un ordine corretto, ma è importante essere consapevoli delle implicazioni e portare avanti lo sviluppo di conseguenza.

In questa pagina