CLIENT CASE STUDY — Analytics Engineering — Conversion Event Tracking
Analytics Engineering · A5 · GTM + GA4 + Looker Studio — 7 Conversion Events
Rev. 2026.05 · Live client

Seven conversion events.
Every path to revenue visible.

→ LIVE CLIENT Full-stack conversion event tracking — GTM data layer design through Looker Studio reporting GTM · GA4 · Looker Studio

The client had no reliable conversion tracking — free trial sign-ups, subscription purchases, paywall views, and form submissions were all invisible in analytics. We designed the data layer architecture, configured all seven conversion events and seven custom parameters in GTM, wired them into GA4 with custom dimensions, and built four Looker Studio dashboards that surface conversion performance, content interaction, onboarding behaviour, and the full subscription funnel.

7 conversion events tracked 7 custom parameters mapped 4 dashboards delivered 3-phase implementation
Section01
— The challenge

No event tracking. No conversion data. No way to know what was working.

Invisible conversions
→ full attribution

"Free trial sign-ups, subscription purchases, and paywall views were happening every day — but none of it was in analytics. Marketing was spending budget with no way to prove which campaigns were driving actual conversions, because the tracking simply didn't exist."

→ Problem 01

Zero conversion event tracking — every key action was invisible

Free trial sign-ups, subscription purchases, contact form submissions, appointment bookings, and paywall views were all happening on the site with no tracking in place. GA4 was installed but only capturing pageviews. The most commercially important user actions — the ones that directly tied to revenue — were completely invisible to analytics.

→ Problem 02

No content-to-conversion attribution — can't see what drives sign-ups

The content team was publishing articles with no visibility into whether specific content was moving users toward a free trial or subscription. There was no way to answer the most important question in content analytics: which articles are actually driving conversions? Without article-level attribution data captured at the moment of sign-up, optimising the content strategy was impossible.

→ Problem 03

Marketing spend with no conversion attribution

Paid campaigns were running across multiple channels, but without conversion events firing in GA4 there was nothing for the ad platforms to optimise toward. Google Ads was optimising toward clicks instead of actual sign-ups. Campaign performance was being measured by traffic metrics — CTR, CPC, sessions — rather than the only metric that matters: how many users converted.

→ Problem 04

No funnel visibility — drop-off points were completely unknown

The subscription funnel — from plan page visit to paywall view to trial sign-up to paid subscription — had never been mapped in analytics. There was no way to see where users were dropping off, which steps had the worst conversion rates, or where a product change might have the highest impact. Every product decision affecting the funnel was being made without data.

Section02
— What we track

Seven conversion events, seven custom parameters — every action mapped.

GTM data layer
→ GA4 events
+ custom dimensions
Event name Trigger Custom parameters captured
subscription_generated dataLayer push on purchase confirm user_id · user_type · subscription_plan · articles_read_before_conversion
free_trial_signup dataLayer push on trial confirm screen user_id · user_type · articles_read_before_trial
onboarding_completed dataLayer push on final onboarding step user_id · user_type · newsletter_type_selected · age_category_selected
contact_form_submitted Form submission success callback user_id · user_type
book_appointment dataLayer push on booking confirmation user_id · user_type
paywall_view dataLayer push on paywall element render user_id · user_type
plan_page_visited GTM pageview trigger on /plans URL user_id · user_type

All seven events use consistent user_id and user_type parameters — making it possible to segment every conversion report by whether the user was anonymous, on a free plan, or already paid at the time of the action.

Section03
— How it was built

Data layer design, GTM configuration, GA4 setup — three phases, fully deployed.

Phase 1 · GTM
Phase 2 · GA4
Phase 3 · Looker Studio
→ Phase 01

Data Layer Architecture

Designed the full dataLayer schema — event names, parameter keys, and push timing — for all seven conversion events. Handed off to the dev team as a spec.

→ Phase 02

GTM Tags, Triggers & Variables

Built Data Layer Variables for every parameter. Configured GA4 Event tags and Custom Event triggers for all seven events. Validated each tag in GTM Preview mode.

→ Phase 03

GA4 Custom Dimensions

Created seven custom dimensions in GA4 (Admin → Custom Definitions) to register each parameter — user_id, user_type, subscription_plan, articles_read, newsletter preferences, age category.

→ Phase 04

Conversion Event Configuration

Marked subscription_generated and free_trial_signup as conversion events in GA4. Configured Google Ads conversion import to pull directly from GA4 for campaign optimisation.

→ Phase 05

Looker Studio Dashboards

Connected Looker Studio to GA4, surfaced custom dimensions as available fields, and built four dashboards covering conversions, content attribution, onboarding, and funnel analysis.

  • 01
    → Data layer design and dev handoff

    Every event specified before a single line of GTM is configured.

    The data layer spec was written first — defining the exact event name, parameter keys, data types, and the moment each push fires in the user journey. For events like subscription_generated and free_trial_signup, this included the articles_read array, which accumulates article IDs as the user reads content and is included in the final dataLayer push at the conversion point. The spec was handed off to the client's development team as a structured implementation guide.

    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      event: 'free_trial_signup',
      user_id: 'user_abc123',
      user_type: 'free',
      articles_read_before_trial: ['article-42', 'article-17', 'article-88']
    });
  • 02
    → GTM configuration — variables, triggers, tags

    Data Layer Variables feed GA4 Event tags — no hardcoded values, all dynamic.

    In GTM, a Data Layer Variable was created for each parameter (user_id, user_type, subscription_plan, articles_read_before_conversion, articles_read_before_trial, newsletter_type_selected, age_category_selected). Custom Event triggers were set to fire on each dataLayer event name. Each GA4 Event tag maps the DLV to the correct event parameter name, ensuring what arrives in GA4 matches the custom dimension keys registered in the property. Every tag was validated in GTM Preview before publishing.

    • DLV: {{DLV - user_id}} · {{DLV - user_type}} · {{DLV - subscription_plan}}
    • DLV: {{DLV - articles_read_before_conversion}} · {{DLV - articles_read_before_trial}}
    • DLV: {{DLV - newsletter_type_selected}} · {{DLV - age_category_selected}}
    • Trigger: Custom Event — fires on exact dataLayer event name match
    • GA4 Event tag — event_name + all parameters passed via DLV
  • 03
    → GA4 custom dimensions + conversion configuration

    Seven custom dimensions registered — parameters available in all GA4 reports and Looker Studio.

    Custom dimensions were created in GA4 Admin → Custom Definitions for all seven parameters. Once registered, the dimensions became available in GA4's Explore reports and as dimensions in Looker Studio. The subscription_generated and free_trial_signup events were marked as conversions in GA4. Google Ads conversion import was configured to pull these events directly from the GA4 property — replacing click-based optimisation with actual sign-up signals, giving the ad platform the correct goal to bid toward.

→ Collection & Dispatch Layer

GTM owns event collection.

Google Tag Manager is the single place where all event tags, triggers, and variable mappings live. The dataLayer is the contract between the website and GTM — the dev team pushes structured objects, GTM listens and fires the correct GA4 event tag with the correct parameters every time.

→ Event Store & Analysis Layer

GA4 owns event storage and segmentation.

GA4 receives every event with its custom parameters and stores them against custom dimensions. It is the source of truth for raw conversion counts, conversion rates, user-level behaviour, and funnel progression. Google Ads imports conversion data directly from GA4, making the actual sign-up event — not just the ad click — the optimisation signal.

→ Reporting & Visualisation Layer

Looker Studio owns the dashboards.

Looker Studio connects directly to the GA4 property, surfacing custom dimensions as available report fields. All four dashboards — conversion event analysis, content interaction, onboarding, and funnel — query GA4 in real time. No data exports, no spreadsheets, no manual refreshes. Stakeholders see the same numbers GA4 holds, updated daily.

Section04
— What stakeholders see

Four dashboards — conversions, content attribution, onboarding, and the subscription funnel.

4 dashboards
GA4 direct connect
real-time data
→ Dashboard 01 — Conversion Event Analysis

Every conversion event counted, trended, and segmented by user type.

The primary conversion dashboard gives the product and marketing teams a single view of all seven tracked events — daily and cumulative counts, conversion rates, and breakdowns by user_type (anonymous, free, paid). It answers the most important operational questions: how many free trials today, how many subscriptions this week, and what percentage of paywall views are converting to trial sign-ups?

With user_type as a dimension on every event, the team can immediately see whether a campaign is converting anonymous visitors into free users, or free users into paid subscribers — two very different outcomes that require different product and marketing responses.

→ Conversion Event Analysis — key metrics
  • Daily and cumulative counts — all 7 events, filterable by date range
  • Conversion rate: paywall view → free trial sign-up
  • Conversion rate: free trial sign-up → subscription generated
  • Event breakdown by user_type (anonymous / free / paid)
  • Subscription plan distribution — Basic vs Premium split
  • Week-over-week and month-over-month trend comparison
→ Content Interaction Analysis — key metrics
  • Top articles by free trial conversion — which content drives sign-ups
  • Top articles by subscription conversion — which content drives paid upgrades
  • Articles read before trial: avg count + most common article sequences
  • Articles read before subscription: same breakdown for paid conversion path
  • Content-to-conversion attribution — filterable by user_type and date range
→ Dashboard 02 — Content Interaction Analysis

Which articles are actually converting readers into subscribers?

The content interaction dashboard surfaces the articles_read_before_trial and articles_read_before_conversion parameters that are captured at the moment each sign-up fires. It shows which specific articles appear most frequently in the conversion path — both individually and as sequences — giving the content team a direct line of sight between editorial decisions and subscription revenue.

This is the layer that was entirely invisible before the tracking was built. The data was always there in user behaviour — it just hadn't been captured at the conversion point and attributed correctly. Now the content team knows exactly which articles to write more of.

→ Dashboard 03

Onboarding Completion Report

Tracks onboarding_completed events and surfaces user preference data captured during the onboarding flow — newsletter type and age category selections.

  • Onboarding completion rate — what percentage of sign-ups finish
  • Newsletter type selected — distribution of Weekly vs Product News vs other
  • Age category selected — demographic breakdown of completing users
  • Drop-off analysis — where users abandon the onboarding flow
  • Completion trend — day over day, filterable by user_type
→ Dashboard 04

Subscription Funnel Analysis

Visualises the full conversion funnel from plan page visit through to paid subscription — showing volume and drop-off at every step.

  • Funnel: Plan Page Visited → Paywall View → Trial Sign-Up → Subscription
  • Step-level conversion rates — where drop-off is highest
  • Funnel breakdown by user_type — how each segment moves through the funnel
  • Time-to-convert — avg days from plan page visit to paid subscription
  • Funnel trend — week over week change in each step conversion rate
Section05
— The stack

Data Layer, GTM, GA4, Looker Studio — each layer owns its role.

No custom infra
native toolchain
fully maintainable
→ Event specification

Data Layer

The dataLayer is the structured contract between the website and GTM. The client's dev team pushes event objects with defined parameter keys at the correct moment in each user journey. This separation of concerns means analytics configuration can change without requiring code deployments.

→ Tag management

Google Tag Manager

GTM houses all Data Layer Variables, Custom Event triggers, and GA4 Event tags. It is the layer where event collection logic lives — entirely separate from the website codebase. Changes to tracking configuration are deployed through GTM, not through code releases. Preview mode enables full validation before any tag goes live.

→ Event store + ad signal

Google Analytics 4

GA4 receives all seven events with their custom parameters and stores them against seven registered custom dimensions. Conversion events are imported directly into Google Ads — replacing click-based optimisation signals with actual sign-up events. GA4 Explore reports provide ad-hoc analysis beyond what the Looker Studio dashboards surface.

→ Reporting layer

Looker Studio

Four dashboards connect directly to the GA4 property, pulling custom dimensions as available report fields. No scheduled data exports, no BigQuery intermediate layer — Looker Studio queries GA4 directly. Stakeholders access live dashboards through a shared link, with access controls managed at the report level.

001 / Conversion events tracked
7
Subscription · Trial · Onboarding · Form · Appointment · Paywall · Plan Page
002 / Custom parameters mapped
7
user_id · user_type · subscription_plan · articles_read · newsletter · age category
003 / Looker Studio dashboards
4
Conversions · Content Attribution · Onboarding · Funnel Analysis
004 / Implementation phases
3
GTM configuration · GA4 setup · Looker Studio reporting
005 / Ad optimisation signal
Live
Google Ads imports conversion events directly from GA4 — optimising toward actual sign-ups
006 / Manual reporting steps
Zero
GTM → GA4 → Looker Studio — fully automated, no exports, no spreadsheets
Section06

Conversions happening every day that your analytics can't see. Budget spent with no attribution.

We design the data layer, configure GTM, set up GA4 custom dimensions, and build the dashboards that show you exactly which content and campaigns are driving revenue.

Book a 30-min call →
Fixed-price engagements only. We scope it, price it, ship it.
US · UK · EU · APAC · Billing in USD.