SDK y bibliotecas
Añade eventos web y suscripción a la newsletter al sitio de tu hotel. Conecta la fidelización y el seguimiento de visitantes existente mediante el backend de tu aplicación.
Elige la credencial adecuada
gme_pk_ es la clave pública de eventos web. gm_pub_ es la clave publicable de newsletter. Configura los orígenes web permitidos de cada fuente antes de usarla.
Las claves de API privadas gmkr_ permanecen en tu servidor. Autorizan el acceso a datos de la cuenta y nunca deben aparecer en código del navegador, HTML ni variables de entorno públicas. El slug de una cuenta no autentica una solicitud.
gm-events.jsUsa una fuente pública de navegador desde los ajustes de eventos web. Añade el origen exacto de tu sitio web o motor de reservas a su lista permitida, incluido https:// y cualquier puerto. La fuente debe estar activada.
- Cola asíncrona de comandos sin dependencias de scripts ni cookies
- Eventos personalizados, identificación de huéspedes y notificación de reservas abandonadas
- allow() y deny() conectan la recogida de eventos con tu aviso de consentimiento
- El consentimiento de marketing incluye el texto, la marca de tiempo y el formulario que aceptó el huésped
Instala y valida un formulario de captación
Sustituye la clave pública y conecta setGuestMakerEventConsent al estado actual y a los cambios de tu aviso de consentimiento. El consentimiento para recoger datos y el de marketing por correo son distintos. Este ejemplo usa test: true para validar sin crear contactos ni iniciar recorridos. Elimínalo después de validar. Los eventos reales se almacenan cuando existe un contacto y un recorrido activo los espera.
<form id="guestmaker-lead">
<label>Email <input name="email" type="email" required></label>
<label>
<input name="marketing_consent" type="checkbox">
<span data-consent-text>I agree to receive news and offers by email.</span>
</label>
<button type="submit">Send</button>
</form>
<script async src="https://www.guestmaker.ai/sdk/gm-events.js"></script>
<script>
window.gme = window.gme || function () {
(window.gme.q = window.gme.q || []).push(arguments);
};
gme('init', {
key: 'gme_pk_YOUR_PUBLIC_KEY',
endpoint: 'https://www.guestmaker.ai',
waitForConsent: true,
persistContact: false
});
var eventsAllowed = false;
// Connect this to your banner's initial state and every consent change.
window.setGuestMakerEventConsent = function (allowed) {
eventsAllowed = allowed === true;
gme(eventsAllowed ? 'allow' : 'deny');
};
document.getElementById('guestmaker-lead').addEventListener('submit', function (event) {
event.preventDefault();
if (!eventsAllowed || !this.reportValidity()) return;
var email = this.querySelector('[name="email"]').value;
var optedIn = this.querySelector('[name="marketing_consent"]').checked;
gme('identify', { email: email });
gme('track', 'lead.captured', {
consent: {
email_marketing: optedIn,
text: this.querySelector('[data-consent-text]').textContent,
captured_at: new Date().toISOString(),
form_id: 'guestmaker-lead',
language: 'en'
},
test: true // Remove after validating to store events and start matching journeys.
});
});
</script>Para recuperar reservas abandonadas, usa abandonOnLeave({ getCart }) y llama a completed(cart) cuando termine una reserva. identify(contact, { consent }) también permite registrar un contacto con consentimiento. Las pruebas de consentimiento nunca vuelven a suscribir a un huésped que se haya dado de baja.
¿Usas otro lenguaje?
Llama a la API REST desde tu servidor con los permisos que necesite tu integración.