mat swinianski

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

  1. 01

    Joining the datasets

    Heap Analytics

    I 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.

  2. 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.

  3. 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.

  4. 04

    Paid channel ingestion

    Fivetran

    I 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.

  5. 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.

  6. 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.

  7. 07

    The dashboard

    Looker

    It 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

Stack

Web & product analytics
Heap Analytics
Paid channels
Facebook AdsGoogle AdsReddit AdsQuora AdsTwitter
Ingestion
Fivetran
Serving
Looker

It answered which channels brought people in, which were there at the end, and what each one cost.

Problem shaped like this? mat@swinianski.com

← Back to home