Integrazione

Guida all'integrazione del booking engine sul sito web della struttura

Introduzione

Il booking engine di BookinGenius può essere integrato nel proprio sito web in diversi modi, mediante un semplice link diretto, oppure attraverso una form HTML appositamente personalizzata, oppure attraverso il widget ufficiale.

Per configurare l'url base per l'accesso al booking engine ci sono 3 variabili da tenere in considerazione: il tipo di interfaccia, la lingua e il canale di vendita.

Ecco come si presenta la struttura dell'url del booking engine:

https://secure.begenius.it/bookingenius/<codice_interfaccia>/<codice_lingua>/<etichetta_canale>/

L'url è sempre su protocollo "https", se venisse usato il protocollo "http", un redirect automatico verrebbe eseguito dal sistema in automatico prima di aprire il booking engine; si raccomanda quindi sempre l'uso del protocollo "https".

Interfaccia

Esistono 2 tipologie di interfaccia del booking engine:

  • singola struttura (codice interfaccia hotel_web): l'interfaccia di prenotazione diretta della singola struttura;
  • multi-struttura (codice interfaccia group_web): l'interfaccia di prenotazione per gruppi di strutture, con la possibilità di effettuare ricerche sull'intero gruppo, sulla singola struttura o in base alle destinazioni configurate.

Lingua

Esistono 2 tipologie di interfaccia del booking engine:

  • italiano (codice lingua it);
  • inglese (codice lingua en);
  • tedesco (codice lingua de);
  • francese (codice lingua fr);
  • spagnolo (codice lingua es);
  • portoghese (codice lingua pt);
  • russo (codice lingua ru).

Ogni struttura può attivare tutte le lingue o solo alcune di esse.

Canali di vendita

In BookinGenius la struttura ha la possibilità di creare più canali di vendita per il booking engine, potendo quindi configurare la presenza di alcune camere o tariffe solo per certi canali piuttosto che altri.

Quando la struttura crea un canale di vendita ne definisce l'etichetta (univoca) oltre a vari parametri per personalizzare la visualizzazione dell'interfaccia di prenotazione o il tracking: questa etichetta è quella che verrà usata per comporre l'url del booking engine.

Processo di integrazione

Una volta che la struttura ha completato la procedura di attivazione del proprio account di BookinGenius, le informazioni necessarie per l'integrazione saranno disponibili in queste pagine:

  • menù "Configurazione > Hotel > Lingue" per attivare le lingue disponibili;
  • menù "Configurazione > Hotel > Canali di vendita" per configurare i canali di vendita;
  • menù "Configurazione > Webmaster > links" per ottenere la lista dei link già formati per ogni canale e per i feed delle offerte.

Una volta ottenute le informazioni utili, sarà possibile procedere all'integrazione del booking engine.

Form HTML

In alternativa al link diretto, è possibile costruire una form personalizzata per attivare una ricerca disponibilità sul booking engine.

I parametri da inviare in GET al booking engine sono i seguenti:

  • checkin: la data di checkin, formato accettato YYYY-MM-DD;
  • checkout: la data di checkout, formato accettato YYYY-MM-DD;
  • rooms: struttura dati con l'elenco delle configurazioni camera;
  • code: il codice usato per le offerte segrete/corporate/vip/promo (stringa);
  • v: la versione del booking (valore fisso a 1)

Il parametro rooms può essere valorizzato in 2 formati diversi:

  • stringa: ogni configurazione camera è separata dalle altre col simbolo '-', e al suo interno, la composizione adulti e bambini è rappresentata da una sequenza di numeri separati da ',' di cui il primo rappresenta il numero adulti ed i successivi le età dei bambini:
    • 1 camera per 2 adulti: rooms=2
    • 1 camera per 2 adulti e 1 bambino di 5 anni: rooms=2,5
    • 1 camera per 2 adulti e 2 bambini di 5 anni e 7 anni: rooms=2,5,7
    • 2 camere per 2 adulti e 1 adulto: rooms=2-1
    • 2 camere per 2 adulti e 1 bambino di 5 anni e 1 adulto: rooms=2,5-1
  • array: ogni configurazione camera sarà un elemento dell'array (con indice esplicito partendo dal valore 0 per la camera 1), e al suo interno, sempre in formato array, la composizione di adulti e bambini:
    • 1 camera per 2 adulti: rooms[0][a]=2
    • 1 camera per 2 adulti e 1 bambino di 5 anni: rooms[0][a]=2&rooms[0][c][]=5
    • 1 camera per 2 adulti e 2 bambini di 5 anni e 7 anni: rooms[0][a]=2&rooms[0][c][]=5&rooms[0][c][]=7
    • 2 camere per 2 adulti e 1 adulto: rooms[0][a]=2&rooms[1][a]=1
    • 2 camere per 2 adulti e 1 bambino di 5 anni e 1 adulto: rooms[0][a]=2&rooms[0][c][]=5&rooms[1][a]=1

Esempio di link dopo il submit della form col parametro room come stringa:

https://secure.begenius.it/bookingenius/hotel_web/it/hoteldemo/?v=1&checkin=2018-11-10&checkout=2018-11-11&rooms=2,5-1

Esempio di link dopo il submit della form col parametro room come array:

https://secure.begenius.it/bookingenius/hotel_web/it/hoteldemo/?v=1&checkin=2018-11-10&checkout=2018-11-11&rooms[0][a]=2&rooms[0][c][]=5&rooms[1][a]=1

Scarica un esempio

Scarica un esempio completo di una form di prenotazione; l'esempio è realizzato usando componenti javascript esterni (JQuery, Pickaday, Moment).

Scarica esempio Form HTML Visualizza esempio Form HTML

Feed delle offerte

Per ogni struttura è possibile ottenere un elenco delle offerte attualmente attive; per ogni offerta vengono pubblicati un insieme minimo di dati sufficienti per poterli pubblicare direttamente sul sito web della struttura.

Per ottenere l'elenco delle offerte, si può consultare il feed RSS del booking engine a questo url:

https://secure.begenius.it/bookingenius/<codice_interfaccia>/<codice_lingua>/<etichetta_canale>/getOffers/<codice_formato>

Il feed delle offerte è disponibile in 2 formati di output:

  • RSS (codice formato rss): l'elenco delle offerte disponibili è fornito in formato RSS 2.0;
  • JSON (codice formato json): l'elenco delle offerte disponibili è fornito come array in formato JSON.

RSS

Esempio di output in formato RSS

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Hotel Demo - Offerte</title>
        <description></description>
        <link>https://secure.begenius.it/bookingenius/hotel_web/it/hoteldemo/</link>
        <lastBuildDate>Fri, 25 May 2018 16:53:49 +0100</lastBuildDate>
        <item>
            <title>Offerta speciale</title>
            <link>https://secure.begenius.it/bookingenius/hotel_web/it/hoteldemo/#offer/123</link>
            <description><![CDATA[Offerte speciali per prenotazioni effettuate direttamente sul nostro sito.]]></description>
            <author>[email protected]</author>
			<preview><![CDATA[Scopri le nostre imperdibili offerte!]]></preview>
			<enabled_dates>
				<date>2018-05-25</date>
				<date>2018-05-26</date>
				<date>2018-05-27</date>
				<date>2018-05-28</date>
				<date>2018-05-29</date>
				<date>2018-05-30</date>
			</enabled_dates>
			<enabled_periods>
				<period>
					<from>2018-05-25</from>
					<to>2018-05-30</to>
				</period>
			</enabled_periods>
            <min_stay>3</min_stay>
            <enclosure url="https://secure.begenius.it/static/photos/1/offer_1_123_b89b627d35310f0cc654e9ef1035b7db.jpg" length="11804" type="image/jpeg"/>
        </item>
    </channel>
</rss>
                                        

JSON

Esempio di output in formato JSON

[
    {
        "id": "309",
        "title": "Offerta speciale",
        "preview": "Scopri le nostre imperdibili offerte!",
        "description": "Offerte speciali per prenotazioni effettuate direttamente sul nostro sito.",
        "thumb": "\/static\/photos\/1\/offer_1_123_b89b627d35310f0cc654e9ef1035b7db.jpg",
        "enabled_dates": [
            "2018-05-25",
            "2018-05-26",
            "2018-05-27",
            "2018-05-28",
            "2018-05-29",
            "2018-05-30"
        ],
        "enabled_periods": [
            ["2018-05-25", "2018-05-30"]
        ],
        "min_stay": "3"
    }
]
                                        

Tracking Google Analytics

Il booking engine di BookinGenius è integrabile con Google Analytics (Google Universal Analytics), configurando nei canali di vendita della struttura i parametri per attivare il tracking.

Una volta attivato il tracking sul canale di vendita, è necessario configurare sul sito web l'inizializzazione del widget di Google Analytics per attivare il tracking cross domain, ovvero fare in modo che i parametri di sessione vengano trasferiti correttamente quando un utente accede al booking engine, in questa maniera verrà mantenuta un'unica sessione di ricerca.

Normalmente, il codice di Google Analytics che viene inizializzato sul sito web della struttura è il seguente:


ga('create', 'UA-XXXXXXXX-X', 'auto');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
                                        

Per abilitare il passaggio della sessione al booking engine, andrebbe modificato in questo modo:


ga('create', 'UA-XXXXXXXX-X', 'auto', {'allowLinker': true});
ga('require', 'linker');
ga('linker:autoLink', ['secure.begenius.it'], false, true); 
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
                                        

In questa maniera si attiva il modulo "linker" di Google Analytics, che permette l'aggiunta dei suoi parametri alla form di prenotazione in automatico.

Una volta implementato, si dovrebbe vedere all'invio della form che Google Analytics appende all'indirizzo dei parametri simili a questi:

_ga=1.123456789.123456789.123456789

Ecco il link dell'help di Google Analytics sull'argomento per maggiori dettagli:

https://developers.google.com/analytics/devguides/collection/analyticsjs/linker#overview

Esclusione dei Referral

Una corretta configurazione del tracking cross domain richiede inoltre l'inserimento dei domini del sito web della struttura e del booking engine nell'elenco delle esclusioni dei referral (così da evitare la creazione di nuove sessioni non corrette).

Per procedere a configurare questo elenco, bisogna procedere come segue:

  • accedere al proprio account di Google Analytics;
  • entrare nella sezione "Amministrazione";
  • selezionare la proprietà correlata al sito web della struttura
  • selezionare "Informazioni sul monitoraggio > Elenco esclusioni referral"
  • cliccare il pulsante "Aggiungi esclusione dei referral"
  • inserire il dominio del sito web della struttura e cliccare il pulsante "Crea"
  • cliccare di nuovo il pulsante "Aggiungi esclusione dei referral"
  • inserire il dominio del booking engine secure.begenius.it e cliccare il pulsante "Crea"

Completata la procedura, tutte le transazioni provenienti dal booking engine non saranno più considerate come referral, ma invece verrà visualizzato la corretta sorgente che ha portato il visitatore sul sito web della struttura (social, motori di ricerca, ecc...).

Obiettivi e canalizzazioni

Per ottenere dati migliori dalle analisi statistiche di Google Analytics, è interessante la possibilità di configurare gli obiettivi e le canalizzazioni.

Ogni pagina del booking engine ha un URL specifico che viene inviato a Google Analytics quando il visitatore procede alla prenotazione, come mostrato di seguito:

  • /bookingenius/web/start: il visitatore ha effettuato l'accesso al booking engine;
  • /bookingenius/web/home: il visitatore ha visualizzato l'home page del booking engine;
  • /bookingenius/web/empty-results: il visitatore ha effettuato una ricerca senza risultati;
  • /bookingenius/web/search-results: il visitatore ha effettuato una ricerca con risultati;
  • /bookingenius/web/extra-services: il visitatore ha selezionato una camera e sta visualizzando i servizi accessori;
  • /bookingenius/web/summary: il visitatore sta visualizzando la pagina con la form per il completamento della prenotazione;
  • /bookingenius/web/reservation-completed: il visitatore ha completato una prenotazione
  • /bookingenius/web/offer/<codice_nome_offerta>: il visitatore ha visualizzato la pagina dettaglio di una prenotazione.

Si possono quindi usare questi valori per configurare i propri obiettivi e canalizzazioni.