Holidu Whitelabels
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 Starter | Whitelabel Standard | |
|---|---|---|
| Domain | Subdomain Holidu (e.g. partner.holidu.de) | Subdomain Partner (e.g. book.partner.de) or Reverse Proxy (e.g. www.partner.de/book) |
| Design | Header & 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 website | Done by the partner, based on the provided documentation | Done by the partner, based on the provided documentation |
| Deeplinking | Available, including documentation | Available, including documentation |
| GTM Tracking | Not Available | Available, is to be added to the header provided by the partner |
| Inventory API | Not Available | Access to the Inventory API from Holidu, where the partner can connect and load inventory into their CMS |
| Guest cards & certifications | Available | Available |
| Indexation of Whitelabel content | The Whitelabel content is not being indexed. In order to index content, please refer to the Inventory API | The Whitelabel content is not being indexed. In order to index content, please refer to the Inventory API |
1.1. Effort related to the whitelabel implementation for the partner or their agency.
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 Starter | Whitelabel Standard | |
|---|---|---|
| Domain | No effort from partner needed | Setup of DNS entries, update cookie banner and for reverse proxy: configuration nginx |
| Design | No effort from partner needed | Header & Footer created & hosted by partner, based on the requirements specified by Holidu on this page |
| Adjustment of the quick search on the partner website | Done by the partner, based on the provided documentation | Done by the partner, based on the provided documentation |
| Deeplinking | Done by the partner, based on the provided documentation | Done by the partner, based on the provided documentation |
| GTM Tracking | Not Available | Script 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 API | 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. | 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 & certifications | Not Available | No effort from partner needed |
| Indexation of Whitelabel content | Not Available | Not Available |
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_sourceandutm_termto 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
- The completed whitelabel configuration form (after signing), covering domain, branding and any inventory presets
- Your logo files and color codes (section 4.1)
- Your header and footer, if you're not using ours (section 4.2)
- The DNS records for your subdomain, or the reverse proxy configuration (e.g. nginx) for a path setup (section 3)
- Holidu's cookies added to your cookie banner, if you use your own cookie banner instead of Holidu's (section 3.2.1)
- A short paragraph on your privacy page naming Holidu as your booking platform partner. We'll provide the wording.
- 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
2.3 Adjustment of the quick search & other (deep)links on the website
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.
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.
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
| Purpose | Proves domain ownership so ACM can issue the certificate |
|---|---|
| Type | CNAME |
| Name | Something like _a1b2c3.buchen.dmo.de |
| Value | Something like _x7y8z9.acm-validations.aws. |
⚠️ Until this is set correctly, the certificate will stay in "Pending validation" status and nothing will work.
- Domain Routing CNAME (CloudFront)
| Purpose | Routes traffic from the domain to your CloudFront distribution |
|---|---|
| Type | CNAME |
| Name | buchen.dmo.de |
| Value | d1a2b3c4d5e6f7.cloudfront.net |
Common Reasons It's Not Working
- Certificate still pending → The validation CNAME wasn't set (correctly), so no cert is issued yet
- CloudFront alternate domain name missing → buchen.dmo.de must be added as an "Alternate Domain Name (CNAME)" in the CloudFront distribution settings
- Certificate not in us-east-1 → CloudFront requires the ACM certificate to be in the N. Virginia (us-east-1) region
- 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.
3.2.1 Cookies to be added to the partner's cookie banner
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:
| Cookiename | Example value | Type | Expiry date |
|---|---|---|---|
| SHOULD_DISPLAY_NEWSLETTER_POPUP | 1 | Functional | 365 days |
| HAS_CLOSED_NEWSLETTER_NOT_LISTPAGE | 1 | Functional | 365 days |
| HAS_SEEN_APP_TRAFFIC_OVERLAY | 1 | Functional | 100 days |
| searchPathname | Bayern--Deutschland | Functional | 24 hours |
| _lo | de-DE | Functional | 365 days |
| _cu | EUR | Functional | 365 days |
| userId | 11a1a11-1111-1111-1aa1-111a11aa1111 | Functional | 365 days |
| uuid | v_DjyhLVoJ | Functional | 365 days |
| historyFiltersKeys | 1-1 | Functional | 24 hours |
| _historyFilter | 1-1 | Functional | 24 hours |
| PLAY_LANG | de-DE | Functional | SESSION |
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.
- You can find the list of cookies under 3.2.1. List of Cookies
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.
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;
}
}
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
4.2. Header & Footer
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
4.2.1. Requirements for 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.
4.2.3. Footer
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 Adjustment of the Quick Search and other (deep)links on the website
5.1 Construction of the search URLs
The following link:
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 value | Search entry Holidu |
|---|---|
| North Sea | North-Sea--Germany |
| Nordfriesland | Nordfriesland--Germany |
| Amrum | Amrum--North-Sea--Germany |
| Kampen | Kampen-(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
| Parameter | Format | Description |
|---|---|---|
| Search with fixed travel dates | ||
| checkin | Dateyyyy-mm-dd | Arrival day Example: 2023-06-05 |
| checkout | Date yyyy-mm-dd | Departure day Example: 2023-06-07 |
| Search with flexible travel dates | ||
| dateRanges | Date / Period yyyy-mm-dd~yyyy-mm-dd | Period (Start day ~ End day) Example: 2023-07-01~2023-07-31 |
| duration | Whole number (Integer) | Number of travel days Example: 7 |
| checkinWeekdays | Whole number (Integer) | Week day of arrival Mo: 1, So: 7 |
| Travelers / Rooms | ||
| adults | Whole number (Integer) | Number of adults Example: 2 |
| children | Whole number (Integer) | Number of children Example: 2 |
| childrenAges | Whole number (Integer) comma separated | Age of the children Example: 7 Example comma-separated for multiple ages: 7,9 (Value must then be urlencoded 7%2C9) |
| bedrooms | Whole number (Integer) | Number of bedrooms Example: 2 |
| Search categories | ||
| propertyType | string | Type 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 |
| rating | Whole 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 |
| withoutRating | true | Filter on properties without any rating -> Example: withoutRating=true |
| amenities | string | Available amenities -> Example: amenities=SAUNA Example comma-separated for multiple amenities (Value must then be urlencoded %2C) amenities=INTERNET%2CSAUNA |
| propertyViews | string | view from the property -> propertyViews=VIEW_SEA propertyViews=VIEW_LAKE propertyViews=VIEW_MOUNTAIN |
| onlyCancellable | true | Flexible cancellation options available -> Example: onlyCancellable=true |
| toSkiArea | Whole number (Integer) | Max Distance in meters to ski lift (1km, 3km or 10km) toSkiArea=1000 |
| toBeach | Whole number (Integer) | Max Distance in meters to beach (1km, 3km or 10km) toBeach=3000 |
| toCityCenter | Whole number (Integer) | Max Distance in meters to city center (1km, 3km or 10km) toCityCenter=10000 |
| toCoast | Whole number (Integer) | Max Distance in meters to coast (1km, 3km or 10km) toCoast=1000 |
| toLake | Whole number (Integer) | Max Distance in meters to lake (1km, 3km or 10km) toLake=1000 |
| regionIds | Whole 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_PROPERTY | string | Filter on properties with the "sustainability label" --> sustainability=GREEN_PROPERTY |
| minPrice=ome to t&maxPrice=er hub f | Whole 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
- Search criteria
- Accommodation available for 1 week in July
- Deeplink
- Used parameters
- dateRanges (Period)
- duration (in days)
5.3.2. Example 2 - Accommodation for guests with pets
- Search criteria
- Accommodation with the filter "Pets allowed”
- No restriction on travel dates
- Deeplink
- Used parameters
- amenities (Filter value PETS_ALLOWED)
5.3.3. Example 3 - A couples weekend near a ski resort
- Search criteria
- from 02.12. - 14.04. on any weekend from Friday - Sunday.
- Accommodation with the filter "Distance ski area or ski slope" with the value "less than 3km".
- For 2 adults
- Accommodation with sauna
- Deeplink
- Used parameters
- dateRanges (period)
- duration (in days)
- checkinWeekdays (Day of check-in, in the example 5 for Friday)
- adults (Number of adults)
- amenities (Filter value SAUNA)
- toSkiArea (Distance from 3000m to the ski area)
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.
- 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.
- 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

{
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

{
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

{
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

{
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>,
}
6.3. Consent Management Requirements
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.