Vai al contenuto
StayParity

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

  1. In Settings → Website badge, attiva Badge.
  2. Copia Snippet, che include la chiave dell’hotel. Senza un URL configurato, data-book-url contiene https://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.
  3. Incolla il tag dove deve comparire il widget, ad esempio accanto al selettore delle date.
The snippet
<!-- 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

AttributoValore inizialeFunzione
data-hotelobbligatorioChiave wk_…. Senza questa non compare nulla.
data-book-urlnessunoURL https:// per Book direct, nella stessa scheda. Un indirizzo non valido omette il pulsante.
data-staydomaniData YYYY-MM-DD nel fuso orario del visitatore. Una data inesistente torna a domani.
data-occupancy2Intero 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:

booking-form.js
// 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.

RisultatoTesto del widgetTariffe mostrate
Hotel più economicoBest price, right hereTariffa diretta, OTA e risparmio
Pari al minimo OTASame price hereTariffa diretta e OTA
OTA più economicaOur price todaySolo tariffa diretta
Senza tariffa OTAOur price todaySolo 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.

In questa pagina