Μετάβαση στο περιεχόμενο
StayParity

Σήμα για το site

Προσθέστε το σήμα απευθείας κράτησης του StayParity στο site ενός ξενοδοχείου με ένα script tag. Το snippet, οι επιλογές, τι βλέπει ο επισκέπτης και το CSP.

Το σήμα είναι μια μικρή κάρτα στο site του ίδιου του ξενοδοχείου. Δείχνει την απευθείας τιμή για μια διαμονή. Όταν το ξενοδοχείο έχει τη χαμηλότερη ή την ίδια τιμή, δείχνει δίπλα και τις τιμές των OTA. Τρέχει σε iframe με sandbox, οπότε δεν μπορεί να διαβάσει τη σελίδα όπου βρίσκεται, ούτε η σελίδα να μπει μέσα σε αυτό.

Τι λέει το σήμα στους επισκέπτες, και γιατί, θα το βρείτε στη σελίδα Σήμα απευθείας κράτησης. Εδώ εξηγούμε πώς το βάζετε σε ένα site.

Προσθήκη σε σελίδα

  1. Στο portal, πηγαίνετε στο Settings → Website badge και ενεργοποιήστε το Badge.
  2. Αντιγράψτε το snippet από την ομάδα Snippet. Περιέχει ήδη το κλειδί ενσωμάτωσης του ξενοδοχείου. Ελέγξτε το data-book-url: αν δεν έχει οριστεί σύνδεσμος κράτησης, το snippet περιέχει το https://your-hotel.example/book. Αντικαταστήστε το με τη διεύθυνση κρατήσεών σας ή αφαιρέστε το attribute για να μη φαίνεται το κουμπί.
  3. Επικολλήστε το εκεί που θέλετε να εμφανίζεται το σήμα, συνήθως δίπλα στην επιλογή ημερομηνιών στη σελίδα κρατήσεων.
Το 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>

Το script βάζει ένα iframe αμέσως μετά το δικό του tag και δεν αγγίζει τίποτε άλλο στη σελίδα. Το πλαίσιο πιάνει όλο το πλάτος του στοιχείου που το περιέχει και ρυθμίζει μόνο του το ύψος του, ώστε να χωράει η κάρτα. Επικολλήστε το tag μία φορά για κάθε σημείο όπου θέλετε σήμα.

Επιλογές

Όλες είναι attributes data- στο script tag.

AttributeΠροεπιλογήΤι κάνει
data-hotelκαμία, υποχρεωτικόΤο κλειδί ενσωμάτωσης του ξενοδοχείου, wk_…. Χωρίς αυτό το tag δεν δείχνει τίποτα.
data-book-urlκαμίαΗ σελίδα κρατήσεων του ξενοδοχείου. Προσθέτει ένα κουμπί Book direct που την ανοίγει στην ίδια καρτέλα. Μόνο διευθύνσεις https://· οτιδήποτε άλλο το αγνοούμε και το κουμπί δεν εμφανίζεται.
data-stayαύριοΗ νύχτα που θέλετε να δείξει τιμή, σε μορφή YYYY-MM-DD. Το «αύριο» μετράει με τη ζώνη ώρας του επισκέπτη. Αν η ημερομηνία δεν υπάρχει, παίρνει την αυριανή.
data-occupancy2Άτομα, ακέραιος από 1 έως 10. Οποιαδήποτε άλλη τιμή γίνεται 2.

Το σήμα ξεκινά νέο έλεγχο μόνο για τους αριθμούς ατόμων που παρακολουθούμε για το ξενοδοχείο. Για οποιονδήποτε άλλο, δείχνει τιμή μόνο αν την έχουμε ήδη πάρει.

Αλλαγή διαμονής από τη σελίδα σας

Όταν ο επισκέπτης διαλέγει ημερομηνίες στη φόρμα κρατήσεών σας, ενημερώστε το σήμα για να δείξει τις τιμές τους:

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 είναι string YYYY-MM-DD και το occupancy αριθμός, με τους ίδιους κανόνες όπως στα attributes. Μετατρέψτε μια τιμή φόρμας όπως "3" σε αριθμό πριν τη στείλετε· το occupancy ως string αγνοείται. Αν παραλείψετε ένα από τα δύο, κρατά την τρέχουσα τιμή του. Το πλαίσιο δέχεται αυτό το μήνυμα μόνο από τη σελίδα όπου βρίσκεται, και το ξενοδοχείο δεν αλλάζει με μήνυμα.

Στείλτε μηνύματα μόνο αφού φορτώσει το πλαίσιο. Τα προηγούμενα μηνύματα χάνονται. Ένα πλαίσιο χαμηλά στη σελίδα φορτώνει μόνο όταν ο επισκέπτης πλησιάσει, οπότε μπορεί να μην έχει φορτώσει όταν διαλέγει πρώτη φορά ημερομηνίες. Ορίστε data-stay και data-occupancy για την αρχική επιλογή.

Ο στόχος είναι "*" επειδή το πλαίσιο με sandbox δεν έχει δικό του origin για να το ορίσετε. Εδώ αυτό είναι ασφαλές, γιατί το μήνυμα περιέχει μόνο μια ημερομηνία και έναν αριθμό ατόμων.

Τι βλέπουν οι επισκέπτες

Το σήμα συγκρίνει την απευθείας τιμή με τις τιμές των OTA για εκείνη τη νύχτα και δείχνει τις παρακάτω κάρτες τιμών:

ΠότεΤίτλοςΔείχνει επίσης
Το ξενοδοχείο είναι το φθηνότεροBest price, right hereΤις τιμές των OTA, και «Save … by booking direct»
Το ξενοδοχείο έχει την ίδια τιμή με τη φθηνότερη OTASame price hereΤις τιμές των OTA
Μια OTA είναι φθηνότερηOur price todayΜόνο την απευθείας τιμή
Καμία τιμή OTA για εκείνη τη νύχταOur price todayΜόνο την απευθείας τιμή

Κάθε κάρτα δείχνει πόση ώρα πριν ελέγξαμε τις τιμές, και το κουμπί Book direct αν το tag έχει σύνδεσμο κράτησης.

Όσο τρέχει ο πρώτος έλεγχος για μια διαμονή, η κάρτα γράφει Checking today's prices…. Αν δεν έρθει τιμή μέσα σε περίπου 30 δευτερόλεπτα, γράφει Book direct with us και κρατά το κουμπί. Αυτή η κάρτα μπορεί να εμφανιστεί και αμέσως, αν δεν υπάρχουν διαθέσιμες τιμές, δεν μπορεί να γίνει έλεγχος ή το αίτημα αποτύχει ή περιοριστεί λόγω πολλών αιτημάτων.

Οι τιμές είναι στο νόμισμα του ξενοδοχείου, στη μορφή που ταιριάζει στο locale του επισκέπτη. Τα κείμενα της κάρτας είναι στα αγγλικά.

Τι δεν δείχνει ποτέ

  • Τιμή OTA χαμηλότερη από του ξενοδοχείου. Όταν μια OTA είναι φθηνότερη, το σήμα δεν αναφέρει καμία OTA, ούτε καν τις ακριβότερες. Το ξενοδοχείο βλέπει κανονικά την απόκλιση στο portal και στις ειδοποιήσεις του.
  • Το εσωτερικό id του ξενοδοχείου, από πού πήραμε μια τιμή ή πόσο σίγουροι είμαστε γι' αυτήν.
  • Σφάλμα. Αν ο server απαντήσει ότι το κλειδί είναι άγνωστο ή το σήμα απενεργοποιημένο, το πλαίσιο εξαφανίζεται μετά το πρώτο αίτημα. Μπορεί πρώτα να δείξει για λίγο Checking today's prices…. Αν το αίτημα περιοριστεί λόγω πολλών αιτημάτων, δείχνει Book direct with us.

Το πλαίσιο δεν βάζει cookies και δεν αποθηκεύει τίποτα στον browser του επισκέπτη.

Content Security Policy

Αν το site στέλνει κεφαλίδα Content-Security-Policy, επιτρέψτε στο origin του σήματος να φορτώνει το script και το πλαίσιο:

script-src https://badge.stayparity.com;
frame-src https://badge.stayparity.com;

Προσθέστε τα στις πηγές που ήδη επιτρέπει το site, χωρίς να τις αντικαταστήσετε. Το script ορίζει το μέγεθος του πλαισίου μέσω του DOM, όχι με inline attributes style στο markup, οπότε το style-src δεν χρειάζεται αλλαγή. Οι τιμές φορτώνουν μέσα στο πλαίσιο, με τη δική του πολιτική, οπότε ούτε το connect-src χρειάζεται αλλαγή. Αν η πολιτική για τα scripts χρησιμοποιεί nonce ή strict-dynamic, δώστε στο script tag το nonce του site σας· η προσθήκη του host στην allowlist μπορεί να μην αρκεί.

Απενεργοποίηση ή αντικατάσταση

  • Απενεργοποίηση: κλείστε το Badge στο Settings → Website badge. Οι νέοι επισκέπτες δεν βλέπουν τίποτα, γιατί το πλαίσιο μικραίνει και χάνεται. Ο browser ενός επισκέπτη μπορεί να δείχνει ακόμη μια κάρτα που φόρτωσε τα τελευταία πέντε λεπτά. Αν το ενεργοποιήσετε ξανά, το ίδιο snippet δουλεύει πάλι.
  • Αντικατάσταση: το Replace snippet βγάζει νέο κλειδί ενσωμάτωσης. Το παλιό κλειδί απορρίπτεται στο επόμενο αίτημα χωρίς cache, σε κάθε site που το έχει, μέχρι να επικολλήσετε το νέο snippet. Ο browser μπορεί να δείχνει ακόμη μια κάρτα που αποθηκεύτηκε στην cache τα τελευταία πέντε λεπτά.

Μόνο οι διαχειριστές του λογαριασμού μπορούν να ενεργοποιήσουν ή να απενεργοποιήσουν το σήμα, ή να αντικαταστήσουν το snippet.

Απόδοση

Το script φορτώνει με async, οπότε δεν καθυστερεί ποτέ τη σελίδα. Το πλαίσιο φορτώνει μόνο όταν χρειαστεί (lazy loading): ένα σήμα χαμηλά στη σελίδα φορτώνει όταν ο επισκέπτης κυλήσει κοντά του. Ζητά τιμές μόνο για τη διαμονή που δείχνει.

Σε αυτή τη σελίδα