Skip to main content

Holidu Whitelabels

Welcome to the developer hub for the Holidu Whitelabel!

On this page you will learn how to integrate the Holidu whitelabel into your website. The organization who will use the whitelabel is referred to as "partner", this could be the company we have the contract with directly, or a technical agency working for this company.

At the top of this website you'll find a navigation, which will bring you to the developer hub for building an API with Holidu. This has no relevance with the Whitelabel, therefore please stay on this page (/page/holidu-whitelabels)

1. The whitelabel options​

The whitelabel comes in two forms:

  • Digital Starter
  • Whitelabel Standard

Technically the "Digital Starter" and the "Standard", are the same. Only the payment conditions differ, which has no influence on the technical part.

Whitelabel Digital StarterWhitelabel Standard
DomainSubdomain Holidu (e.g. partner.holidu.de)Subdomain Partner (e.g. book.partner.de) or Reverse Proxy (e.g. www.partner.de/book)
DesignHeader & Footer provided by Holidu **+
Logo & colors of the partner are included in the whitelabel
Header & Footer created & hosted** by partner or by Holidu+
Logo & colors of the partner are included in the whitelabel
Adjustment of the quick search on the partner websiteDone by the partner, based on the provided documentationDone by the partner,
based on the provided documentation
DeeplinkingAvailable, including documentationAvailable, including documentation
GTM TrackingNot AvailableAvailable, is to be added to the header provided by the partner
Inventory APINot AvailableAccess to the Inventory API from Holidu, where the partner can connect and load inventory into their CMS
Guest cards & certificationsAvailableAvailable
Indexation of Whitelabel contentThe Whitelabel content is not being indexed. In order to index content, please refer to the Inventory APIThe Whitelabel content is not being indexed. In order to index content, please refer to the Inventory API
Work to be expected

Please examine this and the next chapter carefully. It will help you plan the work and if you are an agency, it will help you to draft an offer to your customer.

For agencies: please bear in mind, that we don't take responsibility for what you include in the estimation for your work and the amount of effort related to it - as an agency you are still responsible for evaluating what will all be needed to implement the whitelabel and make your customer happy.

Based on the chosen product and the desires that you as a partner have (or your customer, in case you are an agency), different work is to be expected. The table provides a high level overview, the next chapter provides more details for each part.

Whitelabel Digital StarterWhitelabel Standard
DomainNo effort from partner neededSetup of DNS entries, update cookie banner and for reverse proxy: configuration nginx
DesignNo effort from partner neededHeader & Footer created & hosted by partner, based on the requirements specified by Holidu on this page
Adjustment of the quick search on the partner websiteDone by the partner, based on the provided documentationDone by the partner,
based on the provided documentation
DeeplinkingDone by the partner, based on the provided documentationDone by the partner,
based on the provided documentation
GTM TrackingNot AvailableScript is to be added to the header, provided by the partner. Most likely also involves work setting up Google Analytics on side of the partner
Inventory APISetting up the connection to load inventory from the API into the CMS to be done by the partner, including scripts to update & maintain the inventory. Most likely additional work is needed on the side of the partner to update their website with the new content in their CMS.Setting up the connection to load inventory from the API into the CMS to be done by the partner, including scripts to update & maintain the inventory.
Most likely additional work is needed on the side of the partner to update their website with the new content in their CMS.
Guest cards & certificationsNot AvailableNo effort from partner needed
Indexation of Whitelabel contentNot AvailableNot Available
In the chapter below you will find more details around the expected work

1.2 Whitelabel for affiliate partners​

If you're an affiliate or media partner, such as a publisher, travel brand or loyalty program, this section is for you. Sections 1 and 1.1 describe the Digital Starter and Standard packages for destination marketing organizations (DMOs) and don't apply to you.

As an affiliate partner, you get one whitelabel: the full Holidu booking platform, running under your brand and hosted by Holidu. Commercial terms are set out in your partnership agreement, not on this page.

What's included​

  • Domain: hosted by Holidu, either on a subdomain (for example yourbrand.holidu.com or holidays.yourdomain.com) or under a path on your own domain via reverse proxy (for example yourdomain.com/holidays). We agree on the setup before work starts. See sections 3.1 to 3.3.
  • Branding: your logo and colors on the whitelabel booking pages. You can use the Holidu header and footer or supply your own, following the requirements in section 4.2. You can also remove the back button in the checkout, or switch off the search so that only the booking module is used.
  • Inventory: to focus on what's most relevant to your audience, we can preset the inventory by region, filters or property type.
  • Languages and currencies: 13+ languages and 18 currencies. See supported languages and currencies.
  • Search and deeplinks: link your search box, articles and destination pages to the whitelabel with preset destinations, dates and filters (section 5). Add the parameters utm_source and utm_term to every link, with your partner name as the value.
  • Tracking and reporting: every booking made on your whitelabel is attributed to you. You get weekly booking and commission reports by email, and you can add your own Google Tag Manager container for live data (section 6).
  • Booking, payment and guest service: handled entirely by Holidu, including changes, cancellations and guest support. Booking and guest data stay with Holidu and are not shared with you, apart from the reports described above.
  • Search engine indexing: whitelabel pages are not indexed. To rank for destinations, write your own destination content and link it to the whitelabel with property cards or deeplinks. Don't republish Holidu property content for indexing.

What we need from you​

  1. The completed whitelabel configuration form (after signing), covering domain, branding and any inventory presets
  2. Your logo files and color codes (section 4.1)
  3. Your header and footer, if you're not using ours (section 4.2)
  4. The DNS records for your subdomain, or the reverse proxy configuration (e.g. nginx) for a path setup (section 3)
  5. Holidu's cookies added to your cookie banner, if you use your own cookie banner instead of Holidu's (section 3.2.1)
  6. A short paragraph on your privacy page naming Holidu as your booking platform partner. We'll provide the wording.
  7. Once we hand over the whitelabel, links from your search box and content to it (section 5)

2. Details around the expected work​

2.1 Domain​

In case of the Digital Starter:

  • No action is needed by you, the partner

In case of Whitelabel Standard:

  • In case of a subdomain: Together with you, the partner, we need to setup the DNS entries to support the page on the side of the partner.
  • The list of cookies provided by Holidu (documentation below) is to be added to the cookie banner by you, the partner. Also the consent manager has to come from you.
  • In case of Reverse Proxy, the configuration in nginx is to be setup by you, the partner (documentation provided below).

2.2 Design​

In case of the Digital Starter:

  • No action is needed by you, the partner

In case of whitelabel Standard:

  • When it is desired that the header & footer from you, the partner, are included in the whitelabel, these need to be seperately hosted by you, the partner, and these need to be delivered according to the technical specifications listed below. Please read these carefully, as for instance the header & footer need to be scoped and this can require some work from your side. Requirements header & footer

In case of the Digital Starter:

  • The quick search needs to be updated by the partner, so that it links to the whitelabel and that the search is translated into the right parameters that the whitelabel recognizes (documentation is found below).
  • Any other (deep)links on the website need to be adjusted by the partner so that they redirect to the new whitelabel (documentation is found below). The partner will need to identify on which pages the links are to be updated and then update these.

In case of whitelabel Standard:

  • The same as above.

2.4 GTM Tracking​

In case of the Digital Starter:

  • GTM Tracking is not available here. The partner will receive predefined PDF & CSV reports, but no data in GTM.

In case of Whitelabel Standard:

  • You embed your complete GTM loader script directly in the header/footer you host. Alternatively, if you use the Holidu default header, send us the full GTM <script> snippet (not just the container ID) and we will include it in our header configuration. See Section 6.1 for details.

2.5 Inventory API​

In case of the Whitelabel Standard:

  • The Inventory API can be used to load inventory into the CMS of the partner. The partner will need to set up the connection based on the documentation provided below. Important to understand is that the partner is bound to some conditions using this API.
  • The partner is only allowed to index inventory that "belongs to you", in other words, with which you, the partner, have a contractual agreement with. Other inventory can not be made indexable by search engines as stated in the contract between Holidu and you, the partner. In case the partner would like to index the inventory that belongs to them, the partner should set this up themselves.
  • The partner should make sure the inventory is regularly updated, as stated in the contract between Holidu and you, the partner, so that any changes in description and other property related information, are kept up to date. For this we use the variable "updatedSince", so not all inventory has to be redownloaded everyday. The partner needs to configure a script for this themselves, and write a script that updates information on the website when needed.
  • The partner should make sure that inventory that has gone offline, should be removed from the CMS and the partner's website. For this the partner needs to configure a script that identifies, when a property is not provided via the API anymore and then deletes it from the CMS & website.
  • The API has a rate limit which is described later on this page. In the beginning the requests have to be spread, so that all of the inventory can be downloaded. Partners who have a smaller amount of inventory (usually <10k) will most likely not have an issues with the rate limit.

2.6 Guest cards & Certifications​

In case of the Digital Starter or Whitelabel Standard:

  • If it is chosen, the only effort that is needed is to provide us with the logo + description text for each of the guest cards & certifications. The rest of the work will be done by Holidu.




The remainder of this page describes the technical details of the elements described earlier.

3. Configuring the Domain​

3.1 Hosting under a Holidu subdomain​


This is the integration that is being used for "Digital Starter" and "Whitelabel Standard"

Example: alps-region.holidu.com


No action is needed by the partner to set up this domain, besides providing the first part of the domain name [provided_by_the_Partner].holidu.com.

About hosting under a Holidu subdomain

Advantages

  • Easy setup and management: The DNS entries and SSL certificates are entirely with Holidu.
  • Load balancing & hosting: Since we host the website completely, it is faster and we can quickly scale automatically in case of sudden load peaks in website visits. (e.g. for short posts on news channels, especially TV.
  • SSL certificates do not expire: These are automatically renewed by Holidu systems.Particularly suitable when there is little technical support from an agency partner and a set-up needs to be very quick and cost-effective.

Disadvantages

  • The perception of one's own brand may be weaker.

3.2 Hosting under a partner subdomain​


This is one of the integration options that can be used when Standard Whitelabel is chosen.

Example: https://buchen.hochschwarzwald.de/s


Action needed from the partner:

  • Provide the first part of the domain name [provided_by_the_partner].[here comes the partner website].com
  • Need to set up the DNS entries together with Holidu to setup the hosting
  • The DNS entries have to be set up as follows:

There are two separate CNAME records that need to be set by the domain owner (whoever manages DNS for the DMO)

SSL Certificate Validation CNAME

PurposeProves domain ownership so ACM can issue the certificate
TypeCNAME
NameSomething like _a1b2c3.buchen.dmo.de
ValueSomething like _x7y8z9.acm-validations.aws.

⚠️ Until this is set correctly, the certificate will stay in "Pending validation" status and nothing will work.

  1. Domain Routing CNAME (CloudFront)
PurposeRoutes traffic from the domain to your CloudFront distribution
TypeCNAME
Namebuchen.dmo.de
Valued1a2b3c4d5e6f7.cloudfront.net

Common Reasons It's Not Working

  1. Certificate still pending → The validation CNAME wasn't set (correctly), so no cert is issued yet
  2. CloudFront alternate domain name missing → buchen.dmo.de must be added as an "Alternate Domain Name (CNAME)" in the CloudFront distribution settings
  3. Certificate not in us-east-1 → CloudFront requires the ACM certificate to be in the N. Virginia (us-east-1) region
  4. Typos / propagation delay → CNAME values are long and error-prone; DNS propagation can take up to 48h (usually minutes)
  • As the website is owned by you, the partner, your cookie banner will be shown and we need to add functional cookies from Holidu to your cookie banner. Holidu will turn their cookie banner off.

One of the service providers that is to be added, is Google reCAPTCHA (as essential service). In addition, the following cookies are to be listed:

CookienameExample valueTypeExpiry date
SHOULD_DISPLAY_NEWSLETTER_POPUP1Functional365 days
HAS_CLOSED_NEWSLETTER_NOT_LISTPAGE1Functional365 days
HAS_SEEN_APP_TRAFFIC_OVERLAY1Functional100 days
searchPathnameBayern--DeutschlandFunctional24 hours
_lode-DEFunctional365 days
_cuEURFunctional365 days
userId11a1a11-1111-1111-1aa1-111a11aa1111Functional365 days
uuidv_DjyhLVoJFunctional365 days
historyFiltersKeys1-1Functional24 hours
_historyFilter1-1Functional24 hours
PLAY_LANGde-DEFunctionalSESSION
About hosting under your partner subdomain

Advantages

  • Load Balancing & Hosting: Since we host the website completely, it is faster and we can quickly scale automatically in case of sudden load peaks in website visits. (e.g. for short features on news channels, especially TV).
  • SSL certificates do not expire: These are automatically renewed by the Holidu systems. (as long as all DNS entries were set up correctly at the beginning)
  • Strong perception of own brand

Disadvantages

  • Setting up the hosting solution is a little more time-consuming than using a Holidu subdomain (a few hours). Several DNS entries have to be added.

3.3 Hosting using Reverse Proxy​


This is one of the integration options that can be used when Standard Whitelabel is chosen.

Example: www.alps-region.com/book


Action needed from the partner:

  • Provide the path for the domain www.alps-region.com/[here_comes_the_path]
  • Need to setup the nginx configuration as described below under 3.3.1., and maintain this overtime when the whitelabel continues to develop itself
  • The reverse proxy must only be configured for the one chosen domain (e.g. only www.alps-region.com, not both www.alps-region.com and alps-region.com). See section 3.4 for domain format details.
  • Intensive testing is needed to ensure that no consent manager whitelisting issues arise and other domain related complexities remain. For this subsequent time/effort needs to be planned
  • As the website is owned by you, the partner, your cookie banner will be shown and we need to add functional cookies from Holidu to your cookie banner. Holidu will turn their cookie banner off.

3.3.1 Reverse Proxy Configuration in nginx​

All traffic must be served over HTTPS. HTTP requests must be redirected to HTTPS by the partner. Serving the whitelabel over HTTP is not supported.


3.3.2 Reverse Proxy Configuration in nginx​

The configuration described below has to be setup. In this example the path was "/book". In case another path is chosen, /book has to be replaced with the chosen path. The part [INTERNAL DOMAIN NAME] will be provided by holidu. (e.g. [dmo.holidu.com])

Whenever on the whitelabel new pages are added, this configuration needs to be updated by the partner.


Reverse Proxy Configuration in nginx
server {
listen 8080;
server_name localhost;

location /book {
access_log off;
proxy_pass https\://[INTERNAL DOMAIN NAME]/;
proxy_set_header X-Forwarded-Host-Prio $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /api {
access_log off;
proxy_pass https\://[INTERNAL DOMAIN NAME]/api;
proxy_set_header X-Forwarded-Host-Prio $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /assets {
access_log off;
proxy_pass https\://[INTERNAL DOMAIN NAME]/assets;
proxy_set_header X-Forwarded-Host-Prio $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
return 308 /book/s$is_args$args;
}
location ~ ^/s$ {
return 308 /book/s$is_args$args;
}
location ~ ^/s/(._)$ {
return 308 /book/s/$1$is_args$args;
}
location ~ ^/d/(._)$ {
return 308 /book/d/$1$is_args$args;
}
location ~ ^/c/(._)$ {
return 308 /book/c/$1$is_args$args;
}
location ~ ^/payment/(._)$ {
return 308 /book/payment/$1$is_args$args;
}
location ~ ^/booking/(._)$ {
return 308 /book/booking/$1$is_args$args;
}
location ~ ^/pending-booking/(._)$ {
return 308 /book/pending-booking/$1$is_args$args;
}
location ~ ^/help(._)$ {
return 308 /book/help$1$is_args$args;
}
location ~ ^/redirect/(._)$ {
return 308 /book/redirect/$1$is_args$args;
}
location ~ ^/request/(._)$ {
return 308 /book/request/$1$is_args$args;
}
location ~ ^/go/(._)$ {
return 308 /book/go/$1$is_args$args;
}
location ~ ^/.well-known/(._)$ {
return 308 /book/.well-known/$1$is_args$args;
}
location /gtc {
return 308 /book/gtc$is_args$args;
}
location /imprint {
return 308 /book/imprint$is_args$args;
}
location /privacy {
return 308 /book/privacy$is_args$args;
}
location /legal-info {
return 308 /book/legal-info$is_args$args;
}
}
About hosting using reverse proxy

Advantages

  • Strong perception of own brand

Disadvantages

  • The set-up of the hosting solution is more complex and test-intensive.
  • Regular adjustments by your hosting or agency partner are necessary, as the Holidu booking platform is constantly being further developed, this may entail additional costs.
  • Load peaks in website visits cannot be covered 100% by the scaling of the Holidu platform, as the reverse proxy / load balancer is provided by your hosting partner

3.4 Domain format​

Only one exact domain is configured per partner (e.g. either www.alps-region.com or alps-region.com). No redirect between the two variants is performed. Action needed from the partner:

  • The exact domain to be used must be decided before the configuration begins.
  • The partner is responsible for configuring a redirect from the unused variant to the chosen one (e.g. from alps-region.com to www.alps-region.com, or vice versa). Holidu does not perform this redirect.

4. Design​

4.1. Colors & Logo's​

Colors​

We will need some colors to set up the whitelabel in the desired CI. You can try around with the different color codes in our playground. Important: Any bookings made here, are REAL bookings.

https://playground.holidu.de/s

Click "copy color values" and the colors are coped and can be shared with us.


Logo's​

We need your logo 6 times:

  • 1x Logo in svg (your normal dimensions)
  • 5x Logo in png
    • 1x with your normal dimensions
    • 1x in 76x76
    • 1x in 152x152
    • 1x in 57x57
    • 1x in 120x120

For the Whitelabel Pro, we can include your header & footer (this is not a must, you can also choose to still take the Holidu header & footer). Important is, that the header & footer have to be provided in a specific format, for us to be able to use it. We will not re-build the header & footer for you.

Important:

  • The header & footer are hosted by you, the partner and in two elements. This means we will have 2 Html codes.
  • The header & footer have to adhere to the requirements listed below.

You can try whether the header & footer function as you like them to, in our playground. Important: any bookings made on this page, are real bookings.

https://playground.holidu.de/s


Requirements header & footer

These requirements are to be fulfilled, and can cost some considerable resources and time investment. If not planned properly, this can delay the go-live of the whitelabel or cause unexpected costs from your technical agency!


  • The header & footer are provided in two separate HTML codes, which are not connected to each other.
  • The CSS & Javascript is inserted inline into the HTML code.
  • The HTML should only contain the necessary elements, i.e. without < html>, < body> etc. tags.
  • The header cannot be made "sticky", once the user scrolls down it should not be visible anymore, otherwise it collides with existing elements.
  • The JavaScript does not add global variables and functions and is contained in the header or footer elements. Ideally, there is no JavaScript or only a very limited one.
  • The sources (HTML and possibly others) of these elements are requested from the partner's own servers. The response time and uptime should be fast and stable. Holidu will cache the data for a few minutes to hours to ensure stable operation and to compensate for peak loads.
  • The HTML code should contain the Cookie Consent banner, in a < script> tag.
    • The following exceptions have to be added: "holidu.com", "holidu.de", "adyen.com", "maps.googleapis.com", "sentry.io", "gstatic.com", "polyfill.io", "paypal.com", "paypalobjects.com", "https://www.google.com/recaptcha/enterprise.js"
    • If your CMP enforces a strict script-source whitelist for tracking, the following domains must also be permitted so GTM and GA4 can load: "googletagmanager.com", "google-analytics.com", "analytics.google.com" (including regional variants "region1.analytics.google.com", "region2.analytics.google.com"), "stats.g.doubleclick.net".
  • The HTML code should contain the GTM container, in a < script> tag.

You can try whether the header & footer function as you like them to, in our playground. Important: any bookings made on this page, are real bookings.

https://playground.holidu.de/s

  • Shadow Dom

Holidu uses Shadow dom to isolate the CSS of the header & footer to the Whitelabel. Please consider the following:

If you would like to access the HTML elements of header / footer with Javascript, you have to modify how to do this:

Instead of document.querySelector(".some-element-of-wl-header")

You should use document.querySelector("#whitelabelHeader").shadowRoot.querySelector(".some-element-of-wl-header"



4.2.2. Header​

The header can contain elements that appear in the look and feel of the rest of the website. This gives the user a sense of continuity and makes the whitelabel appear more integrated. Ideally, the logo, colors and navigation elements are consistent with the rest of the website.


The footer can contain elements that fit in with the look and feel of the rest of the website, and ideally is similar to the other footers on the rest of the website.



5.1 Construction of the search URLs​


The following link:

https://buchen.alpenregion.de/s/Kampen-(Sylt)--Nordsee--Deutschland?checkin=2023-06-05✓out=2023-06-11&adults=2χldren=2χldrenAges=3%2C5

Consists of:

https://buchen.alpenregion.de --> The domain

/s --> Path to search

/Kampen-(Sylt)--Nordsee--Deutschland --> Region/Travel destination

?checkin=2023-06-05&checkout=2023-06-11&adults=2&children=2&childrenAges=3%2C5 --> Search parameters

  • All search parameters are optional.
  • Region / Travel destination
    • If the entire inventory in the partner's region is to be searched, the red part can be removed.
    • If a search is to be made locally rather than through the entire inventory, a drop-down selection can facilitate the search and make important locations easy to find even for people without detailed knowledge of the region.

Dropdown valueSearch entry Holidu
North SeaNorth-Sea--Germany
NordfrieslandNordfriesland--Germany
AmrumAmrum--North-Sea--Germany
KampenKampen-(Sylt)--North-Sea--Germany

5.2 Search parameters​

5.2.1. Search with fixed travel dates​

To search with fixed travel dates, the parameters checkin and checkout must be specified.


5.2.2. Search with flexible travel dates​

To search with flexible travel dates, the parameters dateRanges and duration must be specified. Optionally, the parameter checkinWeekdays can be specified to determine the day of the week of arrival.

Example 1 - One week in July:

?dateRanges=2023-07-01~2023-07-31&duration=7


Example 2 - A weekend (Fri. - Sun.) in July:

?dateRanges=2023-07-01~2023-07-31&duration=2✓inWeekdays=5


5.2.3. Overview of the most important search parameters​

ParameterFormatDescription
Search with fixed travel dates
checkinDateyyyy-mm-ddArrival day
Example: 2023-06-05
checkoutDate
yyyy-mm-dd
Departure day
Example: 2023-06-07
Search with flexible travel dates
dateRangesDate / Period yyyy-mm-dd~yyyy-mm-ddPeriod (Start day ~ End day) Example: 2023-07-01~2023-07-31
durationWhole number (Integer)Number of travel days Example: 7
checkinWeekdaysWhole number (Integer)Week day of arrival Mo: 1, So: 7
Travelers / Rooms
adultsWhole number (Integer)Number of adults Example: 2
childrenWhole number (Integer)Number of children Example: 2
childrenAgesWhole number (Integer) comma separatedAge of the children Example: 7 Example comma-separated for multiple ages: 7,9 (Value must then be urlencoded 7%2C9)
bedroomsWhole number (Integer)Number of bedrooms Example: 2
Search categories
propertyTypestringType of property -> example:propertyType=VACATION_HOME Example comma-separated for multiple property types (Value must then be urlencoded %2C) propertyType=VACATION_HOME%2CVACATION_APARTMENT Potential property types that can be used are listed here: /page/holidu-whitelabels#7311-potential-propertytype-responses
ratingWhole number (Integer)Filter on rating of e.g. 6 (60) stars or more . Only works for the ratings of 60, 70, 80 and 90 -->
Example: rating=90
Example: rating=60
withoutRatingtrueFilter on properties without any rating ->
Example:
withoutRating=true
amenitiesstringAvailable amenities -> Example:
amenities=SAUNA Example comma-separated for multiple amenities (Value must then be urlencoded %2C) amenities=INTERNET%2CSAUNA
propertyViewsstringview from the property ->
propertyViews=VIEW_SEA
propertyViews=VIEW_LAKE
propertyViews=VIEW_MOUNTAIN
onlyCancellabletrueFlexible cancellation options available -> Example:
onlyCancellable=true
toSkiAreaWhole number (Integer)Max Distance in meters to ski lift (1km, 3km or 10km) toSkiArea=1000
toBeachWhole number (Integer)Max Distance in meters to beach (1km, 3km or 10km) toBeach=3000
toCityCenterWhole number (Integer)Max Distance in meters to city center (1km, 3km or 10km) toCityCenter=10000
toCoastWhole number (Integer)Max Distance in meters to coast (1km, 3km or 10km) toCoast=1000
toLakeWhole number (Integer)Max Distance in meters to lake (1km, 3km or 10km) toLake=1000
regionIdsWhole number (Integer)Combine specific areas in 1 search, using the regionIds assigned by Holidu --> regionIds=13386 Example comma-separated for multiple regions (Value must then be urlencoded %2C) regionIds=13386%2C12726
sustainability=GREEN_PROPERTYstringFilter on properties with the "sustainability label" -->
sustainability=GREEN_PROPERTY
minPrice=ome to t&maxPrice=er hub fWhole number (Integer)Search based on Price. Only works (1) using preditermined combinations of parameter at the same time AND (2) when travel dates are selected. minPrice=0&maxPrice=50
minPrice=0&maxPrice=100
minPrice=0&maxPrice=150
minPrice=0&maxPrice=200
minPrice=200 (this is one exception)

5.3. Deeplinking​

General note: The easiest way to generate deep links is to use the search function on the Whitelabel.

All parameters that can be filtered in the search such as location/region, exact travel period, flexible travel period, price category, type of accommodation or any equipment features can be filtered on the page. All parameters are contained in the URL, so it can simply be copied from the address bar of the web browser and integrated into the CMS.

If the Whitelabel is already being tested, you can use it to view the results in your region with selected sources. If the whitelabel is not yet available and you would like to prepare yourself, you can use www.holidu.com. Please note that holidu.com may have additional sources and the region may be set up differently based on decisions made with the partner. Accordingly, it cannot be guaranteed that you will get the same number of results on the whitelabel for the same search.


5.3.1. Example 1 - Period and duration​



5.3.2. Example 2 - Accommodation for guests with pets​



5.3.3. Example 3 - A couples weekend near a ski resort​



6. GTM Tracking​

6.1. How to include GTM​

Only GA4 property IDs are supported (format: G-XXXXXXXXXX). Universal Analytics (property IDs starting with UA-) was shut down by Google on 2024-07-01 and no longer collects data. Any UA- scripts still embedded in your header or footer should be removed — they will load in the browser but deliver no data.

There are two ways to hook your GTM container into the whitelabel — pick the one that matches your header/footer setup.

  1. You provide your own header & footer. Include the standard GTM loader script from googletagmanager.com/gtm.js with your container ID directly in your header HTML, and add the standard noscript fallback (an iframe pointing to googletagmanager.com/ns.html with the same ID) to your footer HTML. This is the recommended path — it gives you full control over the container and its consent categorization. See Requirements Header & Footer for the exact placement rules.
  2. You use the Holidu default header & footer. Send us the complete GTM loader script snippet (not just the container ID) and we will embed it into the whitelabel’s header configuration on your behalf. If you additionally want extra Gtags or a tracking proxy, provide the full script for those as well — we cannot generate them from an ID alone.

The whitelabel supports one GTM setup at a time — either yours, or Holidu’s. Do not combine both; loading two containers in parallel leads to duplicate events and unreliable data.

6.2. GTM Events​

We commit events to the datalayer using the GA4 standards. Important to note is that we don't have a shopping cart logic in the whitelabel and therefore don't have the add to cart and remove from cart events. Please note, that we do not support any additional custom events.

Below the events are described that we provide

  • view_item_list event
  • view_item event
  • Begin_checkout event
  • purchase event

When each event fires:

  • SearchPage-Listing (viewitemlist) — on the search results page as soon as the offer list has loaded.
  • viewcontent (view_item) — when an offer’s detail page is opened.
  • initiatecheckout (begin_checkout) — when the checkout process starts.
  • purchase — on the payment page, when the user clicks the “Book now” button. This is deliberately fired before the redirect to the booking confirmation page.

Important for subdomain setups: the booking confirmation page is served from www.holidu.de, not from your subdomain. Any tracking you attach to that confirmation page will therefore not fire on your domain. Rely on the purchase event on the payment page for conversion attribution.

6.2.1. View_item_list Event​


View item list event
{
event: 'SearchPage-Listing',
...queryParams,
content_ids: <offer-ids>, All offers
content_type: 'hotel',
offers: <offer-ids>, First 3 offers
num_adults: <adults-number>,
num_children: <kids-number>,
checkin_date: <checkin-date>,
checkout_date: <checkout-date>,
isDesktop: <is-desktop>,
}

6.2.2. View_item Event​


View item event
{
event: 'viewcontent',
content_ids: <offer-id>,
content_type: 'hotel',
suggested_hotels: <first-5-recommended-offers>,
num_adults: <adults-number>,
num_children: <kids-number>,
checkin_date: <checkin-date>,
checkout_date: <checkout-date>,
}

6.2.3. begin_checkout Event​


Begin checkout event
{
event: 'initiatecheckout',
content_ids: <offer-id>,
content_type: 'hotel',
num_adults: <adults-number>,
num_children: <kids-number>,
checkin_date: <checkin-date>,
checkout_date: <checkout-date>,
}

6.2.4. purchase Event​


purchase event
{
event: 'purchase',
content_type: 'hotel',
content_ids: <offer-id>,
checkin_date: <checkin-date>,
checkout_date: <checkout-date>,
num_adults: <adults-number>,
num_children: <kids-number>,
currency: <currency>,
value: <price>,
}

If you run your own consent management platform (CMP) — for example Usercentrics, Cookiebot, consentmanager.net, OneTrust, Iubenda — two configurations on your side are required for tracking to work end-to-end:

Whitelist the whitelabel domain in your CMP. Add your booking domain (e.g. buchen.your-domain.com, or the Holidu subdomain we provide such as your-brand.holidu.de) as an allowed domain in your CMP admin panel. Without this the consent banner will not render correctly inside the whitelabel.

Configure the GTM container correctly in your CMP. By default, most CMPs categorize GTM as “marketing” or “statistics” and block it until the user actively opts in. Please review the categorization for the container that fires the booking events (viewitemlist, view_item, begin_checkout, purchase) together with your data-protection officer, so that conversions and attribution can be recorded reliably. Without an appropriate configuration you will see near-empty reporting even when the container is loading correctly.

Please confirm both configurations to us during the kickoff call.