DISCLAIMER:
Nedenstående er én måde at implementere trackingscriptet direkte på sitet. Du bør sikre at vores trackingscript ikke fyrer før kunden har afgivet marketing permission til cookies.
I denne dokumentation kan du læse om, hvordan Heyloyaltys Heycommerce Booking-tracking fungerer. Derudover er trackingscriptet inkluderet i dokumentationen.
Heycommerce Booking-trackingen fungerer fuldstændig som en produkttracking. Der er dog det til forskel, at Booking-trackingen indeholder langt flere feltmuligheder, da der skal trackes en anden mængde data, end det er tilfældet for tracking af produkter.
Felterne indenfor Booking-trackingen består af en række standard- og customfelter. Standardfelterne er defineret på baggrund af Heycommerce, nedenfor kan du læse mere om Standardfelterne. Customfelterne er din mulighed for at tilpasse trackingen efter dit behov. I øjeblikket er det kun muligt at tilpasse felterne med assistance fra Heyloyalty. Du kan tage fat i vores Customer Succes Team, hvis du har brug for at tilpasse felterne:
Telefon: 87 300 399
E-mail: support@heyloyalty.com
Hvis du bruger et eksternt bookingsystem, vil der ikke komme tracking med fra sitet. Derudover skal du være opmærksom på, at hvis ikke du kvitterer for køb på dit eget domæne – skal sessionstiden for ”product interest” være lang nok til, at Heyloyalty modtager data fra dit bookingsystem, ellers kan du risikere, at der bliver mails ud, som ikke skulle sendes.
OBS! Implementeringen af scriptet og sikringen af, at det er opsat korrekt, er kundens ansvar. Heyloyalty er alene forpligtet til at levere et grundscript til kunden. Dette grundscript skal kunden selv tilpasse med de nødvendige oplysninger.
Booking-trackingen består af følgende events:
Vores tracking består af en række events (hændelser), det vil sige, at der er en række events, der udløser vores tracking. Disse events er som følger:
”visit” (besøg)
”addToBasket” (tilføj til kurv)
”removeFromBasket” (fjern fra kurv)
”heartbeat” (holder sessionen i live*)
”pairEmail” (parring af medlems e-mail)
“puchaseBasket” (køb af kurv)
*Heartbeats holder ens session i live, hvis man er på sider, hvor der ikke laves trackingevents. Det kan eksempelvis være på sider, hvor der ikke er produkter. Det giver ikke et trackingevent, og derfor sendes der et heartbeat i stedet.
Med trackingen til Heycommerce Booking har du mulighed for at bruge visit og addToBasket til at sende en række informationer med.
Visit:
{productId}
{categoryId}
{categoryName}
{destination}
{hotelName}
{price}
{bookingId}
{custom}**
Det er ikke nødvendigt at sende alle de ovenstående felter, du skal blot sende de felter, der er relevante for netop din tracking. Hvis du er interesseret i at bruge triggers, der reagerer på kategoriinteresse, er det nødvendigt at sende kategori-id og kategori-navn over.
**Custom er ment til at inkludere de custom-parametre, man selv definerer. Det vil sige, at har man lavet customfelter til eksempelvis {adult_count}, {child_count}, {departure_date}, {return_date}, {all_inclusive} – kan man i feltet {custom} kunne sende alle disse informationer med således:
'adult_count={adult_count}&child_count={child_count}&departure_date={departure_date}&return_date={return_date}&all_inclusive={all_inclusive}'
Et komplet eksempel på visit med tilfældige data vil se således ud:
visit('thisId', '2', 'gotNoCategory, 'Holland', 'MitHotel', 9999, 'bookingId', 'adult_count=2&child_count=1&departure_date=2018-09-20T10:00:00&return_date=2018-10-01T10:00:00&all_inclusive=yes');
Fuldt eks. med customfelter
<script type="text/javascript" language="javascript">
var hlt;
var HCBookingTrackingLoaded = function (HCBookingTracking) {
hlt=HCBookingTracking;
HCBookingTracking.initialize({apiKey}', {sessionTid}, {integrationId});
hlt.visit({productId}, {categoryId}, {categoryName}, {destination}, {hotelName}, {price}, {bookingId}, 'adult_count=2&child_count=1&departure_date=2018-09-20T10:00:00&return_date=2018-10-01T10:00:00&all_inclusive=yes')}
</script>
<script>
(function (d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
h = "https:" == document.location.protocol ? "https://" : "http://";
g.src = h + 'bi.heyloyalty.com/booking.js';
s.parentNode.insertBefore(g, s);
}(document, 'script'));
</script>
addToBasket:
Tilsvarende har basket samme mængde muligheder, dog med den ændring at man til sidst også kan sende et kurvID med, hvis man ønsker at køre tabt kurv ud fra ID.
{productId}
{categoryId}
{categoryName}
{destination}
{hotelName}
{price}
{bookingId}
{basketId}
{custom}
Du skal være opmærksom på, at hvis ikke du har mulighed for at lave en kvitteringsside i forbindelse med køb, skal der sendes et bookingid med over i addToBasket, hvis du ønsker at lave tabt kurv. Hvis du er interesseret i at bruge triggers, der reagerer på kategoriinteresse, er det nødvendigt at sende kategori-id og kategori-navn over.
Komplet eksempel på events:
Nedenfor giver vi dig et komplet eksempel på, hvor man sætter events ind i scriptet. Bemærk! alt i {} skal skiftes ud med dit personlige setup.
Standard felter med booking er her:
product_id
category_id
category_name
booking_id
booking_date (alle datoer skal være Iso8601 eller date strings (yyyy-mm-dd))
departure_date (alle datoer skal være Iso8601 eller date strings (yyyy-mm-dd))
return_date (alle datoer skal være Iso8601 eller date strings (yyyy-mm-dd))
destination
hotel_name
price
adult_count
child_count
Kan du ikke finde feltet i overstående tracking, kan det altid tilføjes som del af "custom".
Hvis de ovenstående felter ikke er præcis dem, du gerne vil have – så kan vi tilføje de ønskede felter til din konto. Felterne kan være af typerne:
- Tekst
- Tal
- Boolean (ja/nej)
- Dato
Eksempel ved {} indsæt relevant information eller null hvis der ikke er noget:
<script type="text/javascript" language="javascript">
var hlt;
var HCBookingTrackingLoaded = function (HCBookingTracking) {
hlt=HCBookingTracking;
HCBookingTracking.initialize({apiKey}', {sessionTid}, {integrationId});
//Added to basket / started booking:
hlt.addToBasket({productId}, {categoryId}, {categoryName}, {destination}, {hotelName}, {price}, {bookingId}, {custom}, {basketId})
//Visited page:
hlt.visit({productId}, {categoryId}, {categoryName}, {destination}, {hotelName}, {price}, {bookingId}, {custom})
//Pair email:
hlt.pairEmail({email})
//Purchase session:
hlt.purchasedBasket()
}
</script>
<script>
(function (d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
h = "https:" == document.location.protocol ? "https://" : "http://";
g.src = h + 'bi.heyloyalty.com/booking.js';
s.parentNode.insertBefore(g, s);
}(document, 'script'));
</script>
Heycommerce Booking-script:
<script type="text/javascript" language="javascript">
var hlt;
var HCBookingTrackingLoaded = function (HCBookingTracking) {
hlt=HCBookingTracking;
HCBookingTracking.initialize('{apiKey}', {sessionTid}, {integrationId});
}
</script>
<script>
(function (d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
h = "https:" == document.location.protocol ? "https://" : "http://";
g.src = h + 'bi.heyloyalty.com/booking.js';
s.parentNode.insertBefore(g, s);
}(document, 'script'));
</script>
Example for Visit
Visit event should be sent on all pages (destinations, category)
<script type="text/javascript" language="javascript">
var hlt;
var HCBookingTrackingLoaded = function (HCBookingTracking) {
hlt=HCBookingTracking;
HCBookingTracking.initialize({apiKey}', {sessionTid}, {integrationId});
hlt.visit({productId}, {categoryId}, {categoryName}, {destination}, {hotelName}, {price}, {bookingId}, {custom})
}
</script>
<script>
(function (d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
h = "https:" == document.location.protocol ? "https://" : "http://";
g.src = h + 'bi.heyloyalty.com/booking.js';
s.parentNode.insertBefore(g, s);
}(document, 'script'));
</script>
Example for basket
The basket event should be fired, whenever a customer adds to the basket or starts an order
<script type="text/javascript" language="javascript">
var hlt;
var HCBookingTrackingLoaded = function (HCBookingTracking) {
hlt=HCBookingTracking;
HCBookingTracking.initialize({apiKey}', {sessionTid}, {integrationId});
hlt.addToBasket({productId}, {categoryId}, {categoryName}, {destination}, {hotelName}, {price}, {bookingId}, {custom}, {basketId})
}
</script>
<script>
(function (d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
h = "https:" == document.location.protocol ? "https://" : "http://";
g.src = h + 'bi.heyloyalty.com/booking.js';
s.parentNode.insertBefore(g, s);
}(document, 'script'));
</script>
Example for purchased basket
The purchased basket event should be fired on the "order complete" page. (it takes no parameters)
<script type="text/javascript" language="javascript">
var hlt;
var HCBookingTrackingLoaded = function (HCBookingTracking) {
hlt=HCBookingTracking;
HCBookingTracking.initialize({apiKey}', {sessionTid}, {integrationId});
hlt.purchasedBasket()
}
</script>
<script>
(function (d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
h = "https:" == document.location.protocol ? "https://" : "http://";
g.src = h + 'bi.heyloyalty.com/booking.js';
s.parentNode.insertBefore(g, s);
}(document, 'script'));
</script>
Exampe for Pair email
This event can be used to pair a new subscriber immediatly after sign-up.
<script type="text/javascript" language="javascript">
var hlt;
var HCBookingTrackingLoaded = function (HCBookingTracking) {
hlt=HCBookingTracking;
HCBookingTracking.initialize({apiKey}', {sessionTid}, {integrationId});
hlt.pairEmail({email})
}
</script>
<script>
(function (d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
h = "https:" == document.location.protocol ? "https://" : "http://";
g.src = h + 'bi.heyloyalty.com/booking.js';
s.parentNode.insertBefore(g, s);
}(document, 'script'));
</script>
Cross Domain tracking
Its possible to parse cookies and sessions from different domains that is done by parsing hccookie and hcsession parameters in the URL. These can be fetched from the current tracking by calling hlt.cookieId and hlt.sessionId.
browserspecific script blocking
It's possible to block trackingscript from the user browser. This will block our script as well. This is an extension normally installed directly on the users end and not something we can do anything to prevent.
Any service that works with javascript elements to track data will be subject to this and we are no exception.
This can, for instance, be a chrome extension like "uBlock".
Comments