Questo articolo è disponibile anche in:

Integrazione avanzata del codice di integrazione HTML (widget) tramite l'API

Configurazione del Widget


Crea un Widget passando un oggetto Options alla funzione Create:


var widget = DigitaService.Widget.Create(options);


Opzioni di Configurazione


Necessarie


Opzione

Tipo

Descrizione

options.element

string - HTMLElement

Il widget verrà inserito in questo elemento HTML. Puoi passare un accesso diretto a un elemento HTML esistente o fornire l'ID stringa per quell'elemento. Se non fornisci questa proprietà, tenterà di trovare un ID “digitaservice-widget” sulla pagina.

options.engine

string

L'URL assoluto dell'applicazione che verrà caricata nel widget.


Opzionali


Opzione

Tipo

Predefinito

Descrizione

options.height

string

auto

Il widget ha un'altezza predefinita di zero prima di essere caricato. Puoi sovrascrivere questo valore con un valore di segnaposto per evitare salti di pagina a seconda di dove il widget è utilizzato nella pagina padre. Il valore è in pixel ad esempio “600px”. Quando utilizzi options.fixed = true l'altezza sarà bloccata al valore fornito introducendo barre di scorrimento.

options.autoscroll

boolean

true

A seconda della lunghezza del contenuto del widget e della visualizzazione dell'utente, potrebbe essere necessario che la pagina contenente il widget richieda lo scorrimento della pagina che lo ospita. Quando un utente utilizza il Widget, il comportamento predefinito è di scorrere la pagina ospitante verso l'alto del widget per migliorare l'usabilità. Per disabilitarlo, imposta autoscroll su false. Questa proprietà sarà falsa se options.fixed è true.

options.sharingurl

string

L'URL ospitante contenente il widget

Quando si utilizza la Condivisione Sociale, questo è l'URL che le persone condivideranno sui Social Media per portarli alla tua campagna. Se la condivisione è una stringa vuota, utilizzerà la pagina ospitante (contenente il widget) come URL.

options.fixed

boolean

false

Solitamente il widget adatterà automaticamente la dimensione per adattarsi al contenuto dell'engine ed evitare barre di scorrimento. Se questo è impostato su true, l'altezza del widget sarà persistente e non cambierà. Quando utilizzi questa opzione, il valore options.height deve essere impostato su un valore diverso da “auto”. Se l'altezza dell'engine è superiore al valore di altezza, verranno utilizzate barre di scorrimento per la navigazione.

options.width

string

“100%”

La larghezza del widget. Può essere impostata usando una misura CSS come “%” o “px”.


Caricamento


Una volta configurato un Widget, devi caricarlo. Puoi caricare il widget in qualsiasi momento.


Nota: assicurati di impostare qualsiasi callback sotto elencato prima di caricare affinché tu possa catturare tutti gli eventi.


widget.load();


Callback degli Eventi


onReady


Dopo che widget.load() è stato chiamato, questo caricherà e inizializzerà il widget. Quando il widget ha completato questo processo, invocherà un callback opzionale onReady.


widget.onReady = function (event) {
// caricato e pronto per l'uso
console.log(event.type); // “ready”
console.log(event.data); // {}
};


onError


Dopo che widget.load() è stato chiamato, questo caricherà e inizializzerà il widget. Eventuali errori fatali che si verificano successivamente invocheranno un callback opzionale onError.


widget.onError = function (event) {
throw nuovo Error(event.message);
};


onComplete


Quando la partita è stata completata e l'utente sta guardando l'ultima schermata. Fornisce anche un oggetto dati che descrive cosa è successo nella partita.


Nota: se vuoi agire su questo, potresti voler impostare un timeout dentro il callback affinché l'utente abbia tempo di leggere la Schermata Finale, poiché si verifica istantaneamente quando si raggiunge l'ultima schermata. Puoi anche usare onClose.


widget.onComplete = function (event) {
console.log(event.type); // “complete”
console.log(event.data); // {}
console.log("Il punteggio degli utenti era" + event.data.gameMetrics.score);
};


onResize


Si verifica quando l'Engine ha cambiato dimensione, fornisce l'altezza come valore in pixel.


widget.onResize = function (event) {
console.log(event.type); // “resize”
console.log(event.data); // {}
console.log("Altezza dell'Applicazione:" + event.data.height);
};


onFirstInteraction


Quando l'utente interagisce (tocca/clicca) con l'applicazione caricata per la prima volta.


widget.onFirstInteraction = function () {
console.log("L'utente ha interagito con l'applicazione per la prima volta");
};


onRouteChange


Si verifica quando l'applicazione ha cambiato percorso all'interno del widget. (Naviga tra le schermate). L'evento può o non può contenere un oggetto dati a seconda del contesto.


widget.onRouteChange = function (event) {
console.log(event.type) // “routechange”
console.log(event.data) // {} o undefined
console.log("L'utente ha navigato a una nuova schermata");
};


onScrollToTop


Si verifica quando l'applicazione sta cercando di scorrere nuovamente all'inizio della pagina. Può essere utilizzato sulla pagina genitore per assicurarsi che lo scorrimento non venga attivato (CORS) o debba essere regolato. L'evento non contiene un oggetto dati.


widget.onScrollToTop = function () {
console.log("Scorrimento all'inizio");
};


Metriche


Ecco un elenco delle metriche chiave che possono essere utilizzate a seconda del tipo di partita:


Chiave

Descrizione

data.gameMetrics.CurrentAttempt

Gli tentativi quando dell'utente una volta che ha completato la partita.

data.gameMetrics.prizeID

L'ID premio.

data.gameMetrics.prizeImage

L'immagine del premio.

data.gameMetrics.prizeName

Il nome del premio.

data.gameMetrics.prizeRef

Il riferimento premio.

data.gameMetrics.totalPossibleAttempts

L'importo totale di possibili tentativi.

data.gameMetrics.userWon

true/false a seconda dello stato dell'utente.

data.gameMetrics.score

L'importo totale di punti aggregati che questo utente ottiene completando la partita.


Credenziali


Chiave

Descrizione

data.credentials.isPreviewMode

Verifica se la partita è in modalità anteprima.

data.credentials.projectID

L'id dell'app attuale giocata.

data.credentials.projectLanguage

Il cambio di lingua del progetto nel widget (en, fr).

data.credentials.projectName

Il nome dell'app.

data.credentials.projectType

Il tipo di app (quiz, memory...).

data.credentials.publisherID

L'id del publisher.

data.credentials.sessionID

L'id della sessione dell'attuale giocatore.


Gestione degli Errori


Esistono due modi principali per rilevare errori e recuperare informazioni su problemi che si verificano all'interno del widget:


Callback onError


Il callback onError cattura qualsiasi errore fatale che si verifica dopo che il widget è stato caricato. Questo può essere utile per identificare quando una pagina non esiste o se si verifica un errore critico.

widget.onError = function (event) {
if (typeof event.data.message !== 'undefined') {
switch (event.data.message) {
default:
// Non fare nulla
break;
case 'ERR_15':
console.log("La pagina non esiste");
break;
}
}
};


Callback onRouteChange


Il callback onRouteChange viene attivato quando l'applicazione naviga tra schermate diverse all'interno del widget. Questo è utile per tracciare errori correlati allo stato dell'applicazione e alla disponibilità del contenuto.


widget.onRouteChange = function (event) {
if (typeof event.data.errorCode !== 'undefined') {
switch (event.data.errorCode) {
default:
// Non fare nulla
break;
case 'ERR_01':
console.log("Nessun piano disponibile");
break;
case 'ERR_02':
console.log("Il contenuto non è ancora disponibile");
break;
case 'ERR_03':
console.log("Il contenuto è scaduto");
break;
case 'ERR_04':
console.log("Nessun altro visualizzazioni");
break;
case 'ERR_05':
console.log("Errore di sicurezza");
break;
case 'ERR_07':
console.log("Applicazione non pubblicata");
break;
case 'ERR_08':
console.log("Applicazione premium non disponibile");
break;
case 'ERR_09':
console.log("Uid sessione non rilevato");
break;
case 'ERR_10':
console.log("Uid sessione già usato");
break;
case 'ERR_11':
console.log("Piano non attivato");
break;
case 'ERR_12':
console.log("Dati ricevuti errati");
break;
case 'ERR_13':
console.log("Chiamata SSO fallita");
break;
case 'ERR_14':
console.log("Lingua non disponibile");
break;
}
}
};


Utilizzando sia onError che onRouteChange, puoi tracciare e gestire efficacemente i problemi che possono verificarsi all'interno del widget, garantendo una migliore esperienza utente.


Recuperare Informazioni sull'Utente sulla Schermata Finale (onRouteChange)


Quando usi Dynamic Path™, Calendario dell'Avvento, o Combo™, puoi recuperare informazioni sull'utente alla fine di qualsiasi partita tramite il callback onRouteChange.


Questo metodo è richiesto perché l'evento standard onComplete viene attivato solo quando l'intera esperienza a più passaggi è terminata, non quando ogni partita integrata si conclude.


Questo consente al tuo sistema di ricevere i risultati completi della partita (tramite gameInfo) quando l'utente raggiunge la schermata finale dell'esperienza.


Configurazione


Dopo aver creato il tuo widget:


var widget = DigitaService.Widget.Create(options);


Aggiungi il listener onRouteChange:


widget.onRouteChange = function (event) {
console.log(event.type); // "routechange"
console.log(event.data); // { ... } o undefined
console.log("L'utente ha navigato a una nuova schermata");
};


Rilevamento della Schermata Finale


Quando l'utente raggiunge la schermata finale della partita, il widget restituirà un percorso corrispondente:


event.data.screen === 'screen_end-YOUR_APP_ID'


Sostituisci YOUR_APP_ID con il tuo ID applicazione effettivo.


Recupero delle Informazioni sull'Utente (gameInfo)


Una volta rilevata la schermata finale, puoi estrarre i dati:


event.data.gameInfo


gameInfo contiene un array di informazioni sull'utente, che potrebbe includere:

  • Dati di input degli utenti
  • Risultati o punteggi della partita
  • Campi raccolti durante l'esperienza


Questo payload è disponibile solo dalla schermata finale per esperienze utilizzate all'interno di Dynamic Path, Calendario dell'Avvento, o Combo.


Esempio


widget.onRouteChange = function (event) {
if (event.data && event.data.screen === 'screen_end-12345') {
const data = event.data.gameInfo;
console.log("Informazioni della schermata finale:", data);
// Elabora o inoltra queste informazioni come necessario
}
};

Aggiornato il: 02/10/2026

È stato utile questo articolo?

Condividi il tuo feedback

Annulla

Grazie!