No backend? No problem.
Everything — the embed and the campaign tracking — runs client-side in JavaScript, since there's no server to process the company key or the tracking parameters.
Sitewide tracking + retrieval function
Add this to the <head> or just before </body> on every page of the site:
<script>
(function(){
var KEYS = ['gclid','gbraid','wbraid','utm_source','utm_medium','utm_campaign','utm_term','utm_content','fbclid'];
// Stores a cookie if this page has any of them in the URL
KEYS.forEach(function(k){
var m = new RegExp('[?&]'+k+'=([^&#]*)').exec(window.location.href);
if(m){
document.cookie = 'fb_' + k + '=' + m[1] + ';max-age=7776000;path=/;SameSite=Lax';
}
});
// Used by the embeds below to retrieve it
window.fbGetTrackingParams = function(){
var qs = '';
KEYS.forEach(function(k){
var m = new RegExp('[?&]'+k+'=([^&#]*)').exec(window.location.href);
var val = m ? m[1] : null;
if(!val){
var match = document.cookie.match(new RegExp('(^| )fb_' + k + '=([^;]+)'));
if(match) val = match[2];
}
if(val) qs += '&' + k + '=' + val;
});
return qs;
};
})();
</script>
Compact widget
<div id="fb-widget-container"></div>
<script>
(function(){
var container = document.getElementById('fb-widget-container');
var params = 'k=YOUR_COMPANY_KEY&lng=gb';
var tracking = window.fbGetTrackingParams ? window.fbGetTrackingParams() : '';
var iframe = document.createElement('iframe');
iframe.src = 'https://app.farebookings.com/booking-widget.php?' + params + tracking;
iframe.width = '100%';
iframe.height = '640';
iframe.frameBorder = '0';
iframe.scrolling = 'no';
iframe.style.border = 'none';
container.appendChild(iframe);
})();
</script>
Full booking form
<div id="fb-form-container"></div>
<script>
(function(){
var container = document.getElementById('fb-form-container');
var params = 'k=YOUR_COMPANY_KEY&d=pp&lng=gb';
var tracking = window.fbGetTrackingParams ? window.fbGetTrackingParams() : '';
var iframe = document.createElement('iframe');
iframe.src = 'https://app.farebookings.com/step1sslv3.php?' + params + tracking;
iframe.width = '100%';
iframe.style.border = 'none';
iframe.style.minHeight = '1400px';
iframe.scrolling = 'no';
container.appendChild(iframe);
})();
</script>
Replace YOUR_COMPANY_KEY with the real key from the Frontend tab of your panel, in both snippets above.
&dark=1 to params.&opts_open=1 to params.lng=gb to lng=es, lng=fr, etc.Verifying tracking works
- Visit any page with
?gclid=test123on the end of the URL. - Open the browser console (F12) → type
document.cookie. fb_gclid=test123should be there.- Navigate to another page (without the parameter) and confirm the cookie is still there before reaching the widget/form.
Building on a different platform?
There are dedicated guides for WordPress and plain PHP sites.