Contesto nei moduli di estensione edge

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.

A tutti i moduli libreria nelle estensioni edge viene fornito un oggetto context quando vengono eseguiti. Questo documento descrive le proprietà fornite dall'oggetto context e il ruolo che svolgono nei moduli libreria.

Contesto della richiesta Adobe (arc)

La proprietà arc è un oggetto che fornisce informazioni sull'evento che attiva la regola. Le sezioni seguenti descrivono le varie sotto-proprietà contenute in questo oggetto.

event

L’oggetto event rappresenta l’evento che ha attivato la regola e contiene i seguenti valori:

logger.log(context.arc.event);
Proprietà Descrizione
xdm L'oggetto XDM dell'evento.
data Livello dati personalizzato.

request

Da non confondere con una richiesta del dispositivo client, request è un oggetto leggermente modificato proveniente da Adobe Experience Platform Edge Network.

logger.log(context.arc.request)

L'oggetto request ha due proprietà di livello principale: body e head. La proprietà body contiene informazioni su Experience Data Model (XDM) e può essere esaminata in Adobe Experience Platform Debugger quando si passa a Launch e si seleziona la scheda Edge Trace.

ruleStash

ruleStash è un oggetto che raccoglierà ogni risultato dai moduli di azione.

logger.log(context.arc.ruleStash);

Ogni estensione dispone di un proprio namespace. Ad esempio, se l’estensione ha il nome send-beacon, tutti i risultati delle azioni send-beacon saranno memorizzati nello spazio nomi ruleStash['send-beacon'].

Lo spazio nomi è univoco per ciascuna estensione e all'inizio ha un valore undefined.

Lo spazio nomi viene sovrascritto con il risultato restituito da ogni azione. Ad esempio, si consideri un'estensione transform contenente due azioni: generate-fullname e generate-fulladdress. Queste due azioni vengono poi aggiunte a una regola.

Se il risultato dell'azione generate-fullname è Firstname Lastname, dopo il completamento dell'azione verrà visualizzato lo stash della regola:

{
  transform: 'Firstname Lastname'
}

Se il risultato dell'azione generate-address è 3900 Adobe Way, dopo il completamento dell'azione verrà visualizzato lo stash della regola:

{
  transform: '3900 Adobe Way'
}

Si noti che "Nome Cognome" non esiste più all'interno dello stash della regola, perché l'azione generate-address lo ha sovrascritto con un nuovo valore.

Se vuoi che ruleStash memorizzi i risultati di entrambe le azioni all'interno dello spazio nomi transform, puoi scrivere il modulo di azione in modo simile all'esempio seguente:

module.exports = (context) => {
  let transformRuleStash = context.arc.ruleStash.transform;

  if (!transformRuleStash) {
    transformRuleStash = {};
  }

  transformRuleStash.fullName = 'Firstname Lastname';

  return transformRuleStash;
}

La prima volta che questa azione viene eseguita, ruleStash inizia come undefined e viene quindi inizializzata come oggetto vuoto. La volta successiva in cui viene eseguita l'azione, riceve ruleStash restituito quando l'azione era stata precedentemente chiamata. L'utilizzo di un oggetto come ruleStash consente di aggiungere nuovi dati senza perdere i dati precedentemente impostati da altre azioni dell'estensione.

Quando si utilizza questa strategia, è necessario fare attenzione a restituire sempre lo stash della regola di estensione completa. Se invece dovessi restituire solo un valore, questo sovrascriverà tutte le altre proprietà eventualmente impostate.

Utilità

La proprietà utils rappresenta un oggetto che fornisce utilità specifiche per il runtime Platform Launch.

logger

L'utilità logger consente di registrare i messaggi che verranno visualizzati durante le sessioni di debug con Adobe Experience Cloud Debugger.

context.utils.logger.error('Error!');

Il registratore dispone dei seguenti metodi, dove message è il messaggio da registrare:

Metodo Descrizione
log(message) registra un messaggio nella console.
info(message) registra un messaggio informativo nella console.
warn(message) registra un messaggio di avvertenza nella console.
error(message) registra un messaggio di errore nella console.
debug(message) Registra un messaggio di debug nella console. Visibile solo se la registrazione verbose è abilitata nella console del browser.

fetch

Questa utility implementa l’API Fetch. Puoi utilizzare la funzione per effettuare richieste agli endpoint di terze parti.

context.utils.fetch('http://example.com/movies.json')
  .then(response => response.json())

getBuildInfo

Questa utility restituisce un oggetto contenente informazioni sulla build della libreria runtime corrente di Platform Launch.

logger.log(context.utils.getBuildInfo().turbineBuildDate);

L’oggetto contiene i valori seguenti:

Proprietà Descrizione
turbineVersion La versione di Turbine utilizzata all'interno della libreria corrente.
turbineBuildDate La data di creazione della versione di Turbine utilizzata all'interno del contenitore in formato ISO 8601.
buildDate La data di creazione della libreria corrente in formato ISO 8601.
environment L'ambiente per il quale è stata generata la libreria. I valori possibili includono development, staging e production.

Di seguito è riportato un oggetto getBuildInfo di esempio per dimostrare i valori restituiti:

{
  turbineVersion: "1.0.0",
  turbineBuildDate: "2016-07-01T18:10:34Z",
  buildDate: "2016-03-30T16:27:10Z",
  environment: "development"
}

getExtensionSettings

Questa utility restituisce l’ultimo oggetto settings salvato dalla vista di configurazione dell’estensione.

logger.log(context.utils.getExtensionSettings());

getSettings

Questa utility restituisce l’oggetto settings più recente salvato dalla vista del modulo libreria corrispondente.

logger.log(context.utils.getSettings());

getRule

Questa utility restituisce un oggetto contenente informazioni sulla regola che attiva il modulo.

logger.log(context.utils.getRule());

L’oggetto conterrà i seguenti valori:

Proprietà Descrizione
id ID della regola
name Nome della regola

In questa pagina