Documentazione

Alloggio: Testhotel HGV (hotelhgv.it) (9002)

I dati della struttura ricettiva vengono adattati dinamicamente nella documentazione inserendo il rispettivo ID dopo l'URL, come mostrato nel seguente esempio: https://widget.bookingsuedtirol.com/docs/it/9002

Installazione

Il seguente snippet deve essere integrato sul sito web all'interno del tag <body />.
Dopo il caricamento il widget verrà avviato nel container Bs-BookingWidget.

<script>
window.BsBookingWidget = {
    // impostazioni
    accommodationId: 9002,
    lang: 'it',
    // arrival: '2016-02-20',
    // departure: '2016-02-23',
    // occupations: [[18,18],[18,4]],
    // promotion: ['INTERNET', 'portale.it', 'Nome campagna'],

    // funzioni callback
    onBookingSuccess: function(data) {
        // viene richiamata dopo una prenotazione effettuata con successo
    },
    onBookingError: function(data) {
        // viene richiamata dopo una prenotazione non riuscita
    },
    onRequestSuccess: function(data) {
        // viene richiamata dopo una richiesta effettuata con successo
    }
};
</script>
<div id="Bs-BookingWidget"></div>
<script src="https://widget.bookingsuedtirol.com/widget.js" async></script>

Avviso: Il widget viene caricato in modo asincrono il che non influisce sul tempo di caricamento della pagina.

Configurazione

Il widget può essere configurato tramite 'l’inizializzazione o passando direttamente i parametri. Usando entrambe le modalità, i parametri hanno la valenza più alta.

Tramite inizializzazione

Definendo un oggetto di tipo BsBookingWidget le impostazioni vengono trasferite direttamente nel widget. Inoltre c’è la possibilità di accedere agli eventi (p.es. la prenotazione andata a buon fine) usando le funzioni di callback e di operare sul contenuto di esse.

Passando i parametri

Le stesse impostazioni possono essere passate come parametri di un URL. Se tali impostazioni sono già definite da un oggetto window.BsBookingWidget, queste vengono sovrascritte.

https://www.URL.com/?lang=de&arrival=2016-02-20&departure=2016-02-23&occupations=[[18,18],[18,4]]

API

accommodationId

ID dell'alloggio

Campo obbligatorio. La struttura ricettiva deve avere il widget attivato.

lang

Lingua

Valore di default: de

arrival

Definisce la data di arrivo nel formato ISO 8601 (AAAA-MM-GG)

2016-02-20

Valore di default: null

departure

Definisce la data di partenza nel formato ISO 8601 (AAAA-MM-GG)

2016-02-23

Valore di default: null

Avviso: Inserendo solo la data di partenza, questa viene automaticamente considerata come data di arrivo.

currentMonth

Definisce il mese mostrato sul calendario nel formato ISO 8601 (AAAA-MM-GG)

2016-04-01

Valore di default: il mese corrente

occupations

Definisce il numero delle camere e la loro occupazione in base all'età delle singole persone.

// esempi

// camera 1: 2 adulti
[[18,18]]

// camera 1: 2 adulti, 2 adulti (14 - e 5 anni)
[[18,18,14,5]]

// camera 1: 2 adulti
// camera 2: 1 adulti, 1 bambino (4 anni)
[[18,18],[18,4]]

// camera 1: 2 adulti
// camera 2: 1 adulto
// camera 3: 2 adulti, 1 bambino (3 anni)
[[18,18],[18],[18,18,3]]

// Genera errori, dato che non sono stati trasmessi adulti
[[12]]

// Genera errori, dato che sono state trasmesse più di 3 camere
[[18],[18,14],[18],[18]]

Valore di default: 2 adulti [[18,18]]

Avviso: È possibile aggiungere al massimo 3 camere. In caso di dati non validi (p.es. un bambino di 4 anni nonostante l’età minima nella struttura ricettiva è di 8) i dati vengono scartati e viene generato un messaggio di errore.

layout

Definisce il layout del widget nella versione estesa.

Valore di default: one-pager

defaultOfferList

Definisce se la visualizzazione delle camere o delle offerte è abilitata per impostazione predefinita.

Valore di default: rooms

offerId

Offre la possibilità di mostrare una determinata offerta tramite il suo ID. L'ID può essere ottenuto tramite l'interfaccia MSS o dalla tabella successiva.

ID Nome dell’offerta
263125 Settimana Relax & Natura
646177 Settimana Relax & Natura
666177 Offerta da x notti in poi

In caso che offerId e roomId siano entrambi definiti, il secondo ha precendenza.

Valore di default: null

roomId

Offre la possibilità di mostrare una determinata camera tramite il suo ID. L'ID può essere ottenuto tramite l'interfaccia MSS o dalla tabella successiva. In caso che offerId e roomId siano entrambi definiti, il secondo ha precendenza.

ID Nome della camera
25722 Camera singola
25723 Stanza singola deluxe
25724 Camera doppia
25725 Stanza tripla

Valore di default: null

promotion

Offre la possibilità di individualizzare e inoltrare mezzo (sourceofbusiness), partner (promotionvendor) e campagna pubblicitaria (promotion) al PMS.

La corretta compilazione dei campi è definita dallo standard AlpineBits e può essere consultata al punto 4.2.5 Implementation​ ​tips​ and​ best​ ​practice della relativa documentazione.

['mezzo', 'partner', 'campagna pubblicitaria']

Valore di default: [null, null, null] ASA mezzo/-partner/-campagna pubblicitaria

I parametri di Google Analytics utm_medium, utm_source, e utm_campaign offrono la possibillitá di inoltrare i campi anche singolarmente.

L'URL d'esempio https://www.URL.com/?utm_medium=metasearch&utm_source=tripadvisor.com&utm_campaign=tripadvisor_desktop inoltrerebbe al PMS i parametri ['metasearch', 'tripadvisor.com', 'tripadvisor_desktop'].

Avviso: Nell'utilizzo di questa funzione viene inserito un Tracking Cookie con una durata di 30 giorni. In questo caso inserire il Cookie bs_widget_promotion nella propria informativa sulla privacy.

source

Rende possibile l'integrazione del widget su pagine con piú strutture. Per informazioni riguardo questa funzionalitá contatti direttamente il supporto.

Eventi

Nella configurazione globale window.BsBookingWidget é possibile definire delle funzioni, le quali vengono eseguite automaticamente dopo un determinate evento (prenotazione andata a buon fine, prenotazione non riuscita, richiesta andata a buon fine). I dati della prenotazione e/o richiesta vengono passati come parametri.

window.BsBookingWidget = {
    // impostazioni
    // ...

    onBookingSuccess: function(data) {
        // Appare in seguito ad una prenotazione effettuata con successo
    },
    onBookingError: function(data) {
        // Appare in seguito ad una prenotazione non riuscita
    },
    onRequestSuccess: function(data) {
        // Appare in seguito ad una richiesta effettuata con successo
    }
};

onBookingSuccess(bookingData)

Viene richiamata dopo una prenotazione andata a buon fine.

onBookingError(bookingData)

Viene richiamata dopo una prenotazione non riuscita.

onRequestSuccess(requestData)

Viene richiamata dopo una richiesta andata a buon fine.

Avviso: La struttura di requestData è identica a quella di bookingData, a parte per la mancanza del nodo delle informazioni sui prezzi e extras.

Struttura dati della prenotazione/richiesta

{
    bookingId: 3766923, // ID univoco della prenotazione o della richiesta
    arrival: '2016-02-22', // arrivo (ISO 8601)
    departure: '2016-02-29', // partenza (ISO 8601)
    nights: 7, // durata del soggiorno in notti
    price: 1200, // prezzo totale
    offers: [
        {
            id: 35320, // ID dell’offerta
            title: 'Preise', // nome dell’offerta
            price: 600, // prezzo dell’offerta
            service: 3, // trattamento
                        // 0: non definito
                        // 1: solo pernottamento
                        // 2: con colazione
                        // 3: mezza pensione
                        // 4: pensione completa
                        // 5: all-inclusive
            room: {
                id: 22647, // ID della camera
                title: 'Doppelzimmer Superior', // nome della camera
                code: 'DZS', // codice della camera
                roomSeq: 1, // indice progressivo delle camere
                roomType: 1, // tipo di camera
                             // 1: camera
                             // 2: appartamento
                adults: [18,18], // adulti
                children: [] // bambini
            }
        },
        {...}
    ],
    extras: [
        {
            id: 23442, // ID del servizio aggiuntivo
            title: 'E-Bike', // nome del servizio aggiuntivo
            amount: 2, // quantità del servizio aggiuntivo
            price: 18 // prezzo per servizio aggiuntivo
        },        
        {...}
    ],
    // dati dell'ospite
    guest: {
        gender: 'm', // appellativo
                     // m => maschile
                     // f => femminile
        firstname: 'David', // nome
        lastname: 'Spiess', // cognome
        email: 'david.spiess@hgv.it', // indirizzo email
        phone: '+39 0123456789', // numero di telefono
        street: 'Schlachthofstraße 59', // via
        city: 'Bozen', // città
        zipcode: '39100', // CAP
        country: 'ITA' // paese (ISO 3166-1)
        note: 'Bemerkung', // nota

        // dati dell'azienda
        company: {
            name: 'HGV', // nome dell'azienda
            taxnumber: '80011590215', // partita IVA
            street: 'Schlachthofstraße 59', // via
            city: 'Bozen', // città
            zipcode: '39100', // CAP
            country: 'ITA' // paese (ISO 3166-1)
        }
    }
}

Esempio con Google Adwords

L'esempio mostra il tracking di una prenotazione con Google Adwords.

${CONVERSION_ID} e ${CONVERSION_LABEL} sono da considerare come segnaposti.

window.BsBookingWidget = {
    // ...
    onBookingSuccess: function() {
        var img = document.createElement('img');
        img.setAttribute('src', '//www.googleadservices.com/pagead/conversion/${CONVERSION_ID}/?label=${CONVERSION_LABEL}&amp;guid=ON&amp;script=0');
        img.setAttribute('alt', '');
        img.setAttribute('height', 1);
        img.setAttribute('width', 1);
        img.style.borderStyle = 'none';
        document.body.appendChild(img);
    }
};

Tracking

Il widget consente il monitoraggio di eventi e transazioni e-commerce tramite il Google Tag Manager.

Attenzione: Google Analytics Tracking senza Goole Tag Manager non viene supportato e deve essere implementato appositamente.

Configurazione Google Tag Manager

Aggiunga nella voce di menu Tag un nuovo tag del tipo Universal Analytics. Imposti il Tipo di monitoraggio su Evento.

Crei nella voce di menu Variabili le seguenti Variabili di livello dati:

Nome Variabile di livello dati
Categoria eventCategory
Azione eventAction
Etichetta eventLabel
Valore eventValue

Definizione della variabile di livello dati di tipo "categoria"

Deponga le variabili di livello dati del tag creato nei parametri del monitoraggio eventi.

Parametri del monitoraggio eventi

Nella voce di menu Ulteriori impostazioni, Elementi e-commerce si devono attivare le voci Attiva funzioni e-commerce avanzate e Usa livello dati.

Attivare funzioni e-commerce avanzate

Infine si deve eseguire un Attivatore (Trigger), il quale effettuerà il nuovo codice. Entri nella voce di menu Attivatori e crei un Evento personalizzato intitolato BsWidgetEvent.

Creare un attivatore

Dopo di che si deve deporre nel tag il nuovo trigger. Scelga quindi Attiva su e il tipo Altro. Da questa lista si può in seguito scegliere il trigger.

Creare un attivatore

La configurazione è conclusa.

Eventi Google Analytics

Mentre l'utente interagisce con il widget, nello sfondo vengono generati eventi per tutti i tipi di interazioni. Questi eventi vengono memorizzati nella globale variabile dataLayer, la quale può essere selezionata e rielaborata dal Google Tag Manager.

I seguenti eventi vengono supportati:

Categoria Azione Etichetta Valore
HGV-Buchungswidget Zimmerbelegung hinzugefügt
HGV-Buchungswidget Zimmerbelegung entfernt
HGV-Buchungswidget Erwachsene ausgewählt Numero adulti selezionati
HGV-Buchungswidget Kinder ausgewählt Numero bambini selezionati
HGV-Buchungswidget Monat im Kalender geändert Anno e mese p.es. 2016-06
HGV-Buchungswidget Reisedaten ausgewählt Dati soggiorno p.es. 2016-06-14 fino 2016-06-18
HGV-Buchungswidget Weiter zu Anfrage
HGV-Buchungswidget Angebotsliste gewechselt rooms => Lista camere, offers => Lista offerte
HGV-Buchungswidget Verfügbarkeit geprüft
HGV-Buchungswidget Angebot ausgewählt Nome offerta ID offerta
HGV-Buchungswidget Zimmer ausgewählt Nome camera ID camera
HGV-Buchungswidget Verpflegung ausgewählt Trattamento ID trattamento
HGV-Buchungswidget Zimmerdetails geöffnet Nome camera ID camera
HGV-Buchungswidget Angebotsdetails geöffnet Nome offerta ID offerta
HGV-Buchungswidget Bildergalerie geöffnet
HGV-Buchungswidget Zusatzleistung hinzugefügt Nome servizio aggiuntivo Quantità servizi aggiuntivi
HGV-Buchungswidget Schritt "Reisedaten" geöffnet
HGV-Buchungswidget Schritt "Angebotsliste" für 1. Belegung geöffnet
HGV-Buchungswidget Schritt "Angebotsliste" für 2. Belegung geöffnet
HGV-Buchungswidget Schritt "Angebotsliste" für 3. Belegung geöffnet
HGV-Buchungswidget Schritt "Persönliche Daten" geöffnet
HGV-Buchungswidget Schritt "Zusammenfassung" geöffnet
HGV-Buchungswidget Buchung erfolgreich Lingua Prezzo totale
HGV-Buchungswidget Buchung fehlgeschlagen Lingua Prezzo totale
HGV-Buchungswidget Anfrage erfolgreich Lingua

Può prendere visione degli eventi nel Suo account di Google Analytics selezionando Comportamento, Eventi.

Google Analytics Enhanced Ecommerce

Enhanced Ecommerce offre la possibilità di seguire i rimbalzi tra i singoli passi della prenotazione, inoltre è possibile raffigurare in Google Analytics le informazioni delle avvenute prenotazioni.

Conviene deporre nell´account di Google Analytics nella voce di menu Amministrazione, Vista, Impostazioni e-commerce, Impostazioni e-commerce ottimizzate nomi signifativi per i 4 passi della prenotazione.

Nomi signifativi per transazioni in Google Analytics

In seguito si può analizzare la frequenza di rimbalzo nella voce di menu Conversioni, E-Commerce, Analisi acquisto, Transazioni.

Nomi signifativi per transazioni in Google Analytics