Case study
Deel: Ad Platforms to Cost Per Attribution
Deel needed to know which marketing channels were working. It was one of the first problems I was given. The evidence sat in separate systems: website and product behaviour in Heap Analytics, registrations in the internal application data. The website was the gateway to the product, so where a signup came from could only be answered by joining them.
The product · Heap and the ad platforms to a Looker dashboard
- 01
Joining the datasets
Heap AnalyticsI combined the Heap Analytics website and product behaviour with the internal application data, so a registration resolved to where it came from.
Decision · Key the model on the registration rather than the session, so every touch it credits belongs to someone who signed up.
- 02
UTM groundwork
A lot of UTM work across the website: links and campaigns tagged so an arriving visit carried its own source.
Decision · A source that was never captured could not be recovered downstream, so the tagging had to be fixed before the model was worth building.
- 03
First touch and last non-organic
For each registration the model captured the first touch, and the last non-organic touch before signup.
Decision · First touch credits discovery. Excluding organic from the second stops a return visit absorbing credit that belonged to paid work.
- 04
Paid channel ingestion
FivetranI added the paid channel sources, mostly through Fivetran: Facebook Ads, Google Ads, Reddit Ads, Quora Ads, Twitter and others.
Decision · A channel got proper ingestion once its experiment had proved out, so the pipeline followed what marketing was running.
- 05
Attribution and cost
The paid channel data was joined to the internal data in the warehouse, so attribution and cost per attribution came from one model.
Decision · Attribution alone ranks channels by volume, so cost had to come out of the same model rather than be joined to it later.
- 06
The unattributed share
A large chunk of traffic stayed unattributed, driven by ad blockers.
Decision · Anyone reading the channel numbers needed to know how much traffic never reached them.
- 07
The dashboard
LookerIt all landed in a dedicated Looker dashboard: channel by channel, with the attribution and the acquisition cost side by side.
Decision · Marketing and growth had to answer their own questions about spend, so the last mile was something they could explore, not a report I sent.
What shipped
- UTM tagging across the website’s links and campaigns, so an arriving visit carried its source
- Heap Analytics website and product behaviour joined to the internal application data, keyed on registration
- A registration-level attribution model: first touch, and last non-organic touch
- Paid marketing channel ingestion, added as each experiment proved out
- A Looker dashboard for marketing and growth: attribution and cost per channel, self-served
Stack
It answered which channels brought people in, which were there at the end, and what each one cost.