Reservation Widget Setup for Sabatini Domenii

Configure your reservation widget and generate custom booking links

Facebook
  1. From your Facebook page, click "Edit Action Button"
    Detailed instructions here
  2. Select "Contact Us" from the options list
  3. Copy the URL below into the URL field
    content_copy https://sabatini-domenii.ialoc.ro?experience=focus&source=facebook
Instagram
  1. Add the link below to your Instagram page
    Detailed instructions here
  2. Custom link
    content_copy https://sabatini-domenii.ialoc.ro?experience=focus&source=instagram
TikTok
  1. Add the link below to your TikTok page
    Detailed instructions here
  2. Custom link
    content_copy https://sabatini-domenii.ialoc.ro?experience=focus&source=tiktok
Google Maps

Use the Link Generator tab to create a Google Maps booking link with source=google-card

content_copy https://sabatini-domenii.ialoc.ro?experience=focus&source=google-card
WordPress Plugin Setup
  1. Search for "ialoc Widget Embed" in WordPress plugins or download here
  2. Activate the plugin (Settings → ialoc Widget)
  3. Configure the booking link using the Link Generator tab above (use custom URL option)
JavaScript Embed
Popup Mode Recommended - Opens in overlay
<script type="text/javascript">
!function(e,t,i,n,s,o,c,a,d,r){if(!e[n]){for(;a<c.length;)s(o,c[a++]);(d=t.createElement(i)).async=1,d.src="https://ialoc.ro/assets/widget-v2/embed.min.js",(r=t.getElementsByTagName(i)[0]).parentNode.insertBefore(d,r),e[n]=o}}(window,document,"script","ialocEmbedWidget",function(e,t){e[t]=function(){e._q.push([t,arguments])}},{_q:[]},"init show hide".split(" "),0);
var widgetOptions = {
    source: 'ialoc-widget-embed',
    locale: 'ro',
    embedMode: 'popup'
};
ialocEmbedWidget.init(widgetOptions);
</script>
Inline Mode Embeds directly in page
<div id="ialocWidgetContainer"></div>
<script type="text/javascript">
!function(e,t,i,n,s,o,c,a,d,r){if(!e[n]){for(;a<c.length;)s(o,c[a++]);(d=t.createElement(i)).async=1,d.src="https://ialoc.ro/assets/widget-v2/embed.min.js",(r=t.getElementsByTagName(i)[0]).parentNode.insertBefore(d,r),e[n]=o}}(window,document,"script","ialocEmbedWidget",function(e,t){e[t]=function(){e._q.push([t,arguments])}},{_q:[]},"init show hide".split(" "),0);
var widgetOptions = {
    source: 'ialoc-widget-embed',
    locale: 'ro',
    embedMode: 'inline',
    venueId: '2838',
    onWidgetReady: function () {
        ialocEmbedWidget.show();
    }
};
ialocEmbedWidget.init(widgetOptions);
</script>
Conversion Tracking Pixel
Basic Code (without tracking):
<script type="text/javascript">
!function(e,t,i,n,s,o,c,a,d,r){if(!e[n]){for(;a<c.length;)s(o,c[a++]);(d=t.createElement(i)).async=1,d.src="https://ialoc.ro/assets/widget-v2/embed.min.js",(r=t.getElementsByTagName(i)[0]).parentNode.insertBefore(d,r),e[n]=o}}(window,document,"script","ialocEmbedWidget",function(e,t){e[t]=function(){e._q.push([t,arguments])}},{_q:[]},"init show hide".split(" "),0);

var widgetOptions = {
    source: 'ialoc-widget-embed',
    locale: 'ro',
    embedMode: 'popup'
};

ialocEmbedWidget.init(widgetOptions);
</script>
Enable Tracking via Callback:

Add a callback function to widgetOptions. This is called after reservation completion and allows you to run conversion code on your site (not in iframe).

Callback receives:
{
    "reservation_hash": "...",
    "reservation_url": "...",
    "reservation_thanks_url": "...",
    "message": "..."
}

reservation_thanks_url does NOT redirect automatically. To redirect: window.location.href = data.reservation_thanks_url;

Complete Example with Tracking:
<script type="text/javascript">
!function(e,t,i,n,s,o,c,a,d,r){if(!e[n]){for(;a<c.length;)s(o,c[a++]);(d=t.createElement(i)).async=1,d.src="https://ialoc.ro/assets/widget-v2/embed.min.js",(r=t.getElementsByTagName(i)[0]).parentNode.insertBefore(d,r),e[n]=o}}(window,document,"script","ialocEmbedWidget",function(e,t){e[t]=function(){e._q.push([t,arguments])}},{_q:[]},"init show hide".split(" "),0);

var widgetOptions = {
    source: 'ialoc-widget-embed',
    locale: 'ro',
    embedMode: 'popup',

    callback: function(data) {
        // Conversion code
        fbq('track', 'Lead');

        // Or: gtag('event', 'conversion', { 'send_to': 'AW-XXXX/abc123' });

        // Optional: log for verification
        console.log('Reservation completed:', data.reservation_hash);
        console.log('Thank you URL:', data.reservation_thanks_url);
    }
};

ialocEmbedWidget.init(widgetOptions);
</script>
Notes:
  • callback runs only after a valid reservation is submitted
  • You can do tracking, redirect, or other actions from the function
  • External libraries (Meta, Google Ads, etc.) must already be loaded on the page

Automatic conversion tracking (no code)

Instead of writing your own callback, you can set your Google Ads, Facebook (Meta) Pixel and TikTok Pixel IDs in your ialoc manager account (Settings → Marketing & conversion tracking). When set, the widget fires the conversion events for you on every completed reservation — you don't need the callback above.

Consent is handled automatically

These events are blocked by default and only fire after the visitor agrees to marketing cookies. The widget shows its own cookie-consent bar (with granular options and a link to the cookie policy) and collects that choice for you — no extra setup required.

Only if your site already runs its own cookie-consent tool and you want to avoid a second banner, connect it via ialocEmbedWidget.setConsent(...) (below) — then the widget's bar is never shown.

Example — wire your consent banner:
<script type="text/javascript">
!function(e,t,i,n,s,o,c,a,d,r){if(!e[n]){for(;a<c.length;)s(o,c[a++]);(d=t.createElement(i)).async=1,d.src="https://ialoc.ro/assets/widget-v2/embed.min.js",(r=t.getElementsByTagName(i)[0]).parentNode.insertBefore(d,r),e[n]=o}}(window,document,"script","ialocEmbedWidget",function(e,t){e[t]=function(){e._q.push([t,arguments])}},{_q:[]},"init show hide setConsent".split(" "),0);

ialocEmbedWidget.init({
    source: 'ialoc-widget-embed',
    locale: 'ro',
    embedMode: 'popup'
});

// Call this whenever the visitor accepts/declines marketing cookies in your
// consent banner (Cookiebot, OneTrust, Complianz, Usercentrics, custom, ...).
// true  = visitor accepted marketing/advertising cookies -> pixels may fire
// false = declined or withdrew -> pixels stay off
function ialocUpdateConsent(marketingAccepted) {
    ialocEmbedWidget.setConsent({ marketing: marketingAccepted });
}

// --- examples ---
// Cookiebot:
//   window.addEventListener('CookiebotOnConsentReady', function () {
//       ialocUpdateConsent(Cookiebot.consent.marketing);
//   });
//
// OneTrust (group C0004 = Targeting/Advertising):
//   OneTrust.OnConsentChanged(function () {
//       ialocUpdateConsent(OnetrustActiveGroups.indexOf('C0004') !== -1);
//   });
</script>

Note: the setConsent method name is added to the loader list ("init show hide setConsent") so it can be called even before the script finishes loading. The automatic pixels and your own callback can both be used, but avoid double-counting the same conversion.

Already tracking conversions yourself? Turn the widget off:

If your website already fires its own conversion events (via the callback above or your own pixels), disable the widget's automatic firing to avoid double-counting — pass conversionTracking: false in the init options:

ialocEmbedWidget.init({
    source: 'ialoc-widget-embed',
    embedMode: 'popup',
    conversionTracking: false   // widget will not fire the venue's ad pixels
});
If you don't wire consent

When ad IDs are set but the embedding site never calls setConsent, the widget shows its own small cookie-consent bar (covering analytics & advertising) and only fires after the visitor accepts. The moment your site calls setConsent, that bar never appears — your choice wins.