CLIENT: Zetamar Holidays🇲🇪Montenegro

Vidikovac - Consent-Aware Marketing Attribution and Measurement Platform

Attribution Analytics for a Montenegrin Online Travel Agency

Designed and built a clickable attribution platform for a Podgorica online travel agency selling Adriatic holidays to EU and UK travellers: last click, position-based and data-driven models side by side and reconciled to the booking engine, return on ad spend counted net of cancellations, and every booking traced back to the consented touchpoints that led to it.

Scope of Work
Product design, UI build and clickable demo
Industry
Marketing / Attribution Analytics
SaaSEnterprise
Compliance & Certifications
GDPRUK GDPRMontenegro Law on Personal Data ProtectionePrivacy DirectivePECRGoogle Consent Mode v2EU Digital Markets Act

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Dashboard, Channel ROAS, attribution models, conversions and conversion detail. The market and Net or Gross filters in the top bar carry across all of them, and every one of the 28 demo bookings opens its own detail page.

3 Models
Side by side and reconciled

Last click, position-based (40% first, 40% last, 20% spread over the middle) and data-driven (Markov chain removal effect). Each model adds up to the booking engine's 3,412 net bookings, with 612 shown as unattributed for lack of consent.

Policy v7
Versioned rules on every page

30-day click window, 1-day view window for paid social only, and bookings provisional until the free cancellation deadline or the travel date, whichever comes first. The policy version is shown in the top bar and on every booking.

28 Bookings
Realistic demo data

28 conversions (24 stitched to their touchpoints), 46 campaigns across 12 channels in 8 channel groups, 9 source markets, 7 staff users and 3 versions of the data-driven model.

The Problem

Zetamar spends across four ad platforms and three affiliate networks in nine source markets, and every platform claimed credit for the same bookings: added together, they reported roughly 1.7 times the bookings the booking engine actually took. The numbers ignored cancellations, a growing share of traffic arrived without a click id after consent banners and browser privacy changes, budget moved monthly on gut feel, and finance could not reconcile marketing spend to booking margin.

Our Solution

Vidikovac stitches each booking back to the marketing touchpoints the traveller consented to, counts it net of cancellations, and shows last click, position-based and data-driven attribution side by side, all reconciled to the booking engine. Channel ROAS shows the platform-claimed figure next to Vidikovac's own, and a data health strip flags anything that makes today's numbers unreliable.

The Challenge: Honest Numbers With Missing Data

A travel seller's marketing numbers come from ad platforms that each want the credit, a booking engine where bookings change for months, and traffic that can only be measured when the traveller allows it. Zetamar needed one set of numbers that marketing and finance could both trust.

Every Platform Claims the Same Booking

Google Ads, Meta, Microsoft Advertising and the affiliate networks each count conversions their own way. Added together they reported about 1.7 times the real bookings, so whichever dashboard was loudest won the budget.

Bookings That Are Not Yet Revenue

Travellers book early and change plans, so cancellations run high. Under the EU Package Travel Directive a package can be cancelled with a full refund in unavoidable and extraordinary circumstances, so a booking is not final until the travel date passes. Channels that drove flexible-rate bookings looked better than they were.

Consent Before Any Tracking

Montenegro is outside the EU, but the GDPR and the UK GDPR reach a seller that monitors EU and UK visitors. Under the ePrivacy Directive and PECR, analytics and advertising tags need prior consent, and server-side tagging changes where tags run, not whether consent is needed. Unconsented traffic has to stay out of the journeys.

Platform Data That Is Getting Thinner

Google and Meta are gatekeepers under the Digital Markets Act and ask advertisers for explicit consent signals, so modelled or reduced conversion data is expected for EEA traffic. Hashed emails and phone numbers sent back to the platforms are still personal data and need their own consent.

Our Approach: From Measurement Rules to a Clickable Platform

01

Spec and Rules Research

Mapped 9 user roles from head of growth and channel manager to data protection officer and the traveller, 35 screens including 2 public traveller privacy pages, and the data model for consent records, sessions, touchpoints, bookings, stitched conversions, attribution models and policies, daily cost, marketing mix model (MMM) runs, geo holdout tests, budgets, offline uploads and quality monitors. Wrote down the rules the design follows: GDPR Articles 3(2) and 27, the UK GDPR, Montenegro's personal data law and its GDPR-aligned successor, the ePrivacy Directive and PECR, Google Consent Mode v2, the DMA and the Package Travel Directive as context.

02

Clickable Demo on a Production UI Kit

Built 5 key screens on a production dashboard kit: the dashboard with a data health strip, 5 KPI cards, a 26-week spend and net booking value chart with the maturity band, pacing, tests and the latest MMM headline; Channel ROAS with a model selector, group-by and ROAS bars marked with the other two models; the three-model comparison with reconciliation, model facts and Retrain and Promote panels; the conversions list with a journey panel; and conversion detail with the touchpoint timeline, credit table, booking changes and platform uploads.

03

What a Production Build Adds

Integration with the consent management platform (such as Cookiebot, OneTrust or Didomi), a server-side Google Tag Manager container, the Google Ads, Meta and Microsoft Advertising APIs, Awin, CJ and Tradedoubler, the booking engine feed, BigQuery with dbt, uploaded MMM results from Meridian, Robyn or PyMC-Marketing, ECB exchange rates and Slack and email alerts. Staff roles, an append-only audit log, and the remaining screens: path explorer, campaign detail, incrementality, spend and pacing, collection, offline uploads, data quality, reports, settings and the traveller privacy pages.

Why It Works: One Set of Numbers, Shown Honestly

Every Model Adds Up to the Booking Engine

A reconciliation row compares the booking engine's net bookings with each model's attributed total plus unattributed, and they must match. Bookings with no consented touchpoint are shown as "Unattributed - no consent", never spread across channels.

The Model Choice Is Visible

Channel ROAS draws each row's bar under the selected model with thin markers for the other two, and the comparison table shades cells by difference from the row average. Platform-claimed conversions sit next to Vidikovac's figure with the ratio between them.

Net of Cancellations by Default

The Net basis is the default, every booking carries its maturity date, and the dashboard chart shades value that can still be cancelled for free. The cancellation rate counts only bookings old enough to have matured.

Consent Travels With Every Touchpoint

The booking timeline shows the analytics and ads consent state at each touchpoint and greys out the ones outside the window with the reason. A booking is sent back to the ad platforms with hashed identifiers only when ads consent allows it, and the conversion list never shows traveller names or emails.

Related case studies

View all: Marketing & email
Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab