Widget per prenotazioni dirette
Aggiungi il widget StayParity al sito dell’hotel con un tag script. Attributi, aggiornamento delle date, risultati, cache e configurazione CSP.
Il widget mostra la tariffa diretta e, se l’hotel è il più economico o eguaglia il minimo, le tariffe OTA. Funziona in un iframe isolato: non può leggere la pagina che lo contiene e la pagina non può accedere al suo contenuto.
La pagina del widget spiega i risultati per il visitatore. Qui trovi le istruzioni di integrazione.
Aggiungere il widget
- In Settings → Website badge, attiva Badge.
- Copia Snippet, che include la chiave dell’hotel. Senza un URL configurato,
data-book-urlcontienehttps://your-hotel.example/book. Se lo lasci così, il pulsante Book direct porta il visitatore a quell’indirizzo di esempio. Sostituiscilo con l’indirizzo di prenotazione o rimuovi l’attributo per omettere il pulsante. - Incolla il tag dove deve comparire il widget, ad esempio accanto al selettore delle date.
<!-- StayParity badge. Put it where guests pick dates. -->
<script src="https://badge.stayparity.com/embed.js"
data-hotel="wk_aurora"
data-book-url="https://hotelaurora.gr/book"
async></script>Lo script aggiunge l’iframe dopo il proprio tag. Occupa la larghezza del contenitore e adatta l’altezza al contenuto. Usa un tag per ogni posizione del widget.
Attributi
| Attributo | Valore iniziale | Funzione |
|---|---|---|
data-hotel | obbligatorio | Chiave wk_…. Senza questa non compare nulla. |
data-book-url | nessuno | URL https:// per Book direct, nella stessa scheda. Un indirizzo non valido omette il pulsante. |
data-stay | domani | Data YYYY-MM-DD nel fuso orario del visitatore. Una data inesistente torna a domani. |
data-occupancy | 2 | Intero da 1 a 10. Un valore non valido torna a 2. |
Un nuovo controllo parte solo per i numeri di ospiti monitorati dall’hotel. Per altri viene mostrata una tariffa solo se esiste già un risultato.
Aggiornare il soggiorno
Quando il visitatore cambia le date, invia un messaggio all’iframe:
// When the guest picks dates
const frame = document.querySelector('iframe[src^="https://badge.stayparity.com/"]');
frame.contentWindow.postMessage(
{ type: "rate-parity:stay", stay: "2026-10-16", occupancy: 2 },
"*"
);stay è una stringa YYYY-MM-DD e occupancy è un numero. Converti valori come "3" del modulo in numeri: una stringa in occupancy viene ignorata. Ometti un campo per mantenerne il valore. Sono accettati solo messaggi della pagina che contiene l’iframe; non puoi cambiare l’hotel.
Attendi che l’iframe sia caricato. I messaggi precedenti vengono persi e un iframe fuori dall’area visibile può caricarsi più tardi. Usa gli attributi per la selezione iniziale.
Il destinatario "*" è necessario perché il sandbox non ha un’origine propria. Il messaggio contiene solo data e numero di ospiti.
Che cosa vede il visitatore
Si confrontano le tariffe più basse disponibili per fornitore, senza garantire la stessa camera o condizioni equivalenti.
| Risultato | Testo del widget | Tariffe mostrate |
|---|---|---|
| Hotel più economico | Best price, right here | Tariffa diretta, OTA e risparmio |
| Pari al minimo OTA | Same price here | Tariffa diretta e OTA |
| OTA più economica | Our price today | Solo tariffa diretta |
| Senza tariffa OTA | Our price today | Solo tariffa diretta |
Il widget indica il tempo trascorso dall’ultimo controllo e aggiunge Book direct se l’URL è valido. Durante il controllo mostra Checking today's prices…. Senza un prezzo entro circa 30 secondi, mostra Book direct with us e mantiene il pulsante. Book direct with us appare subito quando:
- l’hotel è inattivo.
- quel numero di ospiti non viene monitorato e non è ancora stato letto un prezzo per esso.
- il controllo viene rifiutato perché il soggiorno è passato, oltre l’orizzonte del piano o la quota è esaurita.
- la richiesta fallisce o viene limitata.
Le tariffe usano la valuta dell’hotel e il formato del browser. I testi del widget sono in inglese.
Informazioni escluse
- Con un’OTA più economica vengono omesse tutte le OTA. La discrepanza resta nell’applicazione e negli avvisi secondo le impostazioni.
- Non compaiono identificatori interni, origine dei dati né livello di attendibilità.
- Se la risposta indica chiave sconosciuta o widget disattivato, l’iframe si chiude dopo la prima richiesta. Fino alla risposta mostra Checking today's prices… in un riquadro alto circa 96 pixel. Il widget già caricato può restare visibile fino a cinque minuti. Se la richiesta è limitata, mostra il messaggio generico di prenotazione diretta.
L’iframe non usa cookie né archiviazione del browser.
Content Security Policy
Se il sito usa CSP, consenti l’origine in queste direttive:
script-src https://badge.stayparity.com;
frame-src https://badge.stayparity.com;Aggiungi l’origine alle fonti esistenti senza sostituirle. Non serve cambiare style-src: le dimensioni vengono impostate tramite DOM. Nemmeno connect-src: le richieste dei prezzi avvengono dentro l’iframe con la sua politica. Con nonces o strict-dynamic, aggiungi al tag il nonce del sito; il solo elenco di host può non bastare.
Disattivare o sostituire
- Disattiva Badge in Settings → Website badge. I nuovi visitatori non vedranno il widget; il widget salvato nel browser può restare visibile fino a cinque minuti. Riattivandolo funziona lo stesso tag.
- Replace snippet genera una nuova chiave. La precedente viene rifiutata alla richiesta successiva senza cache. Aggiorna tutte le pagine che la usano. Il widget in cache può restare visibile fino a cinque minuti.
Solo gli amministratori possono modificare queste opzioni.
Caricamento
Lo script usa async senza bloccare l’analisi dell’HTML. L’iframe si carica avvicinandosi all’area visibile e richiede solo il soggiorno mostrato.