Tiago Cardoso

Performance and Growth Marketing · Attribution and Revenue Systems

I run paid acquisition for consumer travel brands across the US and Canada, and build the tracking and attribution that ties ad spend to real revenue and margin, not platform-reported ROAS.

~26×
true revenue ROAS revealed by data-driven attribution
100k+
leads captured per year, six-figure margin
1,500+
purchases Meta touched in 2025
3 · 2
brands and markets (US and Canada) owned end to end

How I can help

Marketing that grows revenue, not just clicks

I own paid acquisition end to end: strategy and creative, the tracking and attribution underneath it, and the reporting that turns it into business decisions.

Paid search

Google Ads account architecture, Performance Max, query-level optimisation and bidding aligned to confirmed revenue, not just platform conversions.

Paid social

Full-funnel Meta (prospecting, retargeting, lead and conversion campaigns) with disciplined audience and creative testing.

Tracking and attribution

Server-side tracking, Meta CAPI and enhanced conversions, plus a multi-touch and CRM-revenue model so you can trust your numbers.

Lead gen and lifecycle

Lead magnets, lead and callback funnels, automated email / SMS nurture and lead-to-booking attribution that ties leads to revenue.

Reporting and profitability

Dashboards and automated pipelines that report margin and profit after ad spend for leadership, not vanity ROAS.

Audits and restructures

Account, tracking and attribution audits with a clear, prioritised plan to fix what is leaking and scale what works.


Selected work

Case studies

In-house work for a multi-brand online travel group: three consumer travel brands across the US and Canada. Figures are shown as relative improvements; specifics on request.

Attribution and measurement

Rebuilding attribution to find the revenue last-click was missing

Context

High-consideration trips sold across the US and Canada. A large share of bookings close offline or by phone with a travel agent, often days or weeks after the first ad click.

Problem

Last-click attribution credited only a fraction of the bookings paid media actually influenced. Budget was being set on numbers that understated the truth and hid where profit really came from.

What I did

Built a server-side tracking foundation (server-side GTM, Meta CAPI, Google enhanced conversions) to recover touchpoints the browser was losing, then added a multi-touch model and reconciled everything against confirmed revenue in the CRM: a three-lens view comparing platform-reported, multi-touch and CRM-confirmed outcomes.

Outcome

On identical ad spend, the data-driven view surfaced far more bookings than last-click had credited, and a far higher true revenue ROAS, exposing channels that last-click was undervaluing and letting budget move to where it earned out.

~80%
more bookings surfaced vs last-click
~26×
true revenue ROAS revealed (vs ~13× on last-click)
Paid search · Google Ads

Restructuring and scaling paid search on profit

Context

Paid search runs across three brands and two markets (US and Canada) on a mature but sprawling Google Ads account. The brief: grow bookings without letting cost outrun margin.

Problem

The account had grown organically: overlapping campaigns, uneven coverage and bidding that chased platform-reported conversions rather than confirmed profit.

What I did

Rebuilt the account architecture across brands and markets, restructured Search and Performance Max coverage, tightened query-level optimisation, and aligned bidding to CRM-confirmed conversions by feeding offline bookings back into the platform, so bids learn from real revenue.

Outcome

Scaled spend significantly while keeping the account profitable on a margin basis, growing bookings across the portfolio with budget concentrated where it actually earned out.

~70%
year-on-year spend growth, kept profitable
Six-figure
profit after ad spend
Paid social · Meta for leads

An evergreen lead engine that pays for itself on margin

Context

The group relies on a large email-marketing database to nurture future travellers. The channel needed a steady, low-cost flow of qualified subscribers.

Problem

One-off lead pushes were costly and hard to judge. Lead volume looked healthy, but nobody could see which leads became trips.

What I did

Built an evergreen lead-generation funnel: a set of lead magnets (destination guides, checklists, VIP offers) feeding a fully automated capture pipeline, with attribution that matches subscribers to confirmed bookings, so the channel is judged on revenue and margin, not sign-ups.

Outcome

Over 100,000 leads captured in a single year and, measured on margin rather than revenue, a six-figure profit after ad spend: one of the most efficient channels in the mix.

100k+
leads captured in one year
~12×
revenue ROAS · six-figure margin
Paid social · Meta performance

Running Meta performance on confirmed revenue, not platform ROAS

Context

Meta is the primary paid-social channel for direct package sales across the three brands and both markets, on a six-figure annual budget.

Problem

Meta reports generous, view-through ROAS that overstates its real contribution. Optimising to that number risks pouring budget into spend that looks efficient on the dashboard but does not show up in the bank.

What I did

Owned campaign structure, audiences, creative and budget pacing across the conversion funnel, and judged every campaign against CRM-confirmed bookings rather than Meta's reported attribution, so the channel scales on what it genuinely touches.

Outcome

A conversion channel that Meta touched on 1,500+ purchases in 2025 and 750+ in the first quarter of 2026, with budget allocated on verified revenue rather than platform-reported ROAS.

1,500+
purchases Meta touched in 2025
CRM-verified
judged on confirmed revenue, not platform ROAS
Analytics and AI

Reading campaign quality with AI, not just the numbers

Context

Reporting captured spend, conversions, revenue and margin, but the quality of what campaigns produced lived in scattered emails, SMS threads and call recordings that no dashboard could see.

Problem

Two campaigns could look identical on cost and conversions yet differ completely in lead quality and intent. Judging on numbers alone missed half the picture, and reading thousands of messages and calls by hand was not feasible.

What I did

Built automated pipelines in Python (with AI assistance) that pull the numbers from the ad platforms, GA4 and the CRM, and connect a large language model (Claude) to Twilio, the Gmail API and BigQuery to gather and analyse the emails, SMS and call transcripts tied to each campaign, scoring it on both the numbers and the quality of demand.

Outcome

A single, decision-ready view of each campaign on both dimensions, surfacing which campaigns brought genuinely qualified demand versus cheap but empty volume, and turning days of manual reading into an automated analysis.

Quant + qual
every campaign scored on both
Email · SMS · calls
analysed automatically with AI

Platforms and tools

The stack I work in

Hands-on across the platforms that run acquisition, measurement and the data behind them.

Acquisition

Google Ads (MCC)

Search, Performance Max and shopping across multiple accounts, with structured scaling and bidding.

Acquisition

Meta Ads

Prospecting, retargeting, lead and conversion campaigns with creative and audience testing.

Measurement

GA4

Event modelling, multi-touch attribution and conversion analysis across the funnel.

Measurement

Google Tag Manager

Client- and server-side containers, dataLayer design and clean, deduplicated event tracking.

Measurement

Meta CAPI and Enhanced Conversions

Server-side conversions and first-party signals to restore match quality after browser loss.

Reporting

Looker Studio

Reporting that blends ad spend, GA4 and CRM revenue into margin and profitability views.

Lifecycle

Zapier and Mailchimp

Automated lead capture and email / SMS lifecycle flows feeding the CRM.

Data

Automation and data

AI-assisted Python automations and BigQuery for reporting and analysis beyond platform limits.


How I work

Profit after ad spend, verified

Most performance problems are measurement problems first. I solve those before I touch the budget.

01Verify before trusting

Platform numbers are a starting point, not the answer. I reconcile them against revenue confirmed in the CRM before acting on them.

02Optimise to margin

I report profit after ad spend, not the friendliest ROAS on the dashboard. Budget follows what actually earns out.

03Build the plumbing

Clean tracking, attribution and reporting are the foundation. When the measurement is right, the optimisation is easy.


About

A practitioner who reports profit, not pixels

I am a performance and growth marketer based in the Azores, Portugal. For several years I have run paid acquisition in-house for a multi-brand online travel group (three consumer travel brands across the US and Canada), owning everything from campaign strategy and creative to the tracking, attribution and reporting beneath it.

What I care about most is whether the spend made money. So I built the measurement layer that ties the ad platforms to confirmed revenue and margin in the CRM, and I optimise to that rather than to a platform's own ROAS. Doing it well means working across marketing, engineering, sales and support, turning commercial goals into tracking specs, funnels and budget decisions.

I am now looking for a senior, fully remote performance or growth role with an international team.

Based inAzores, Portugal
Time zoneUTC±0 · US AM overlap
AvailabilityFully remote
MarketsUS and Canada
LanguagesPortuguese · English (C2)
StackMeta · Google · GA4 · GTM · CAPI
Get in touch

Let's talk growth that shows up in the bank

Open to senior, fully remote performance and growth roles. Tell me a bit about the team and the problem, and I will get back to you.