• Every ad platform claiming credit for the same conversion, leaving your marketing team unable to trust any channel's reported ROAS for budget decisions?

  • Running multi-channel campaigns but your attribution model is still last-click because building something better requires data engineering work your team doesn't have bandwidth for?

Marketing Attribution Platform Development

A platform that collects every touchpoint across paid media, email, SEO, and offline channels -- resolves identity, applies the attribution model that fits your business, and tells you where each conversion actually came from.

We build custom attribution platforms for marketing teams and MarTech companies that have outgrown last-click and need a system their budget decisions can actually rely on.

  • Multi-touch attribution models including Shapley value

  • Cross-channel data collection and identity stitching

  • Incrementality measurement and conversion lift testing

  • Budget optimisation tools built on attribution outputs

A custom marketing attribution platform collects cross-channel touchpoint data, resolves identity across anonymous and logged-in sessions, applies multi-touch attribution models, and outputs budget recommendations tied to real conversion credit. RaftLabs builds marketing attribution platforms for marketing teams and MarTech companies that need more than last-click. Most builds deliver in 10 to 14 weeks at a fixed cost.

Vodafone
Aldi
Nike
Microsoft
Heineken
Cisco
Calorgas
Energia Rewards
GE
Bank of America
T-Mobile
Valero
Techstars
East Ventures
Products shipped
100+
Attribution
Multi-touch
Cost delivery
Fixed
Week delivery
10-14

Last-click attribution is a budget allocation problem

When every channel takes credit for the same conversion, the marketing team can't make a reliable budget decision. Paid search claims the conversion because it was the last click. Paid social claims it because it drove the first visit. Email claims it because the user opened a message three days earlier. Each platform's dashboard looks good. The business has no idea which channel actually moved the needle.

Multi-touch attribution does not just distribute credit differently. It changes what budget decisions you can make with confidence. When you know the marginal contribution of each channel to each conversion -- and you can test that contribution through incrementality measurement -- you can allocate spend toward channels that produce outcomes rather than channels that produce last-click credit.

We build attribution platforms for two audiences: MarTech companies building attribution as a core product feature, and marketing teams at established businesses whose budget decisions depend on cross-channel data they cannot get from ad platform dashboards alone.

What we build

Multi-touch attribution models

Rules-based models -- first-touch, last-touch, linear, time-decay, U-shaped, and W-shaped -- available alongside a data-driven Shapley value model that distributes conversion credit based on each channel's marginal contribution to the outcome. The Shapley value calculation draws from cooperative game theory: it considers every possible ordering of channels in the conversion journey and averages the marginal contribution each channel adds across all orderings, producing a credit distribution that reflects actual causal contribution rather than position in the funnel.

Attribution window configurable by channel and conversion type: a 28-day click plus 1-day view window for upper-funnel display, a 7-day click window for mid-funnel social, and a 1-day click window for bottom-funnel retargeting. These window configurations match the defaults used in Meta Ads Manager and Google Ads, so your platform-reported and model-reported numbers use the same measurement period. Comparison view showing how credit shifts across model types so the marketing team can see the tradeoffs before committing to a model for budget reporting. The comparison is particularly useful for channels like SEO and branded search, which last-touch over-credits and linear models under-credit relative to their actual role in the funnel.

Cross-channel data collection

Server-side event tracking to collect touchpoints without relying on browser cookies or client-side JavaScript that ad blockers can strip. The server-side layer receives events from a first-party endpoint on your domain, enriches them with IP-derived geo data and user agent parsing, and fans them out to your data warehouse and directly to ad platform conversion APIs in parallel -- so a single purchase event feeds both your attribution model and Meta CAPI simultaneously. UTM parameter standardisation and validation at ingestion time enforces a consistent taxonomy across campaigns: source, medium, campaign, content, and term values are validated against an allowlist, and malformed or missing UTMs are flagged before they corrupt attribution data rather than discovered in a reporting audit.

Hashed email matching stitches a user's paid social click to their email open and their organic search visit into a single journey using SHA-256 hashed email as the common identifier -- the same hashing standard used by Meta CAPI and Google Enhanced Conversions. Offline conversion import from in-store POS systems, phone sales records, and CRM closed-won events on a scheduled basis, so offline revenue is attributed to the digital touchpoints that preceded it. Ad platform conversion API integration -- Meta CAPI, Google Enhanced Conversions, TikTok Events API -- passes server-side conversion signals to platforms using matched customer data, improving platform-reported match rates and making the attribution system and platform dashboards draw from the same event feed rather than diverging data sources.

Identity resolution and journey stitching

Anonymous session to known user merge at the point of email capture or login, so pre-identification touchpoints are included in the attribution journey rather than dropped. The merge uses a retroactive alias call -- the pattern used by Segment and RudderStack's user identity API -- that associates the anonymous ID history with the identified user record, so a user who visited via a paid social ad three days before signing up carries that touchpoint forward into their attribution journey. Cross-device journey assembly uses deterministic matching on login events where available, and probabilistic matching on IP address plus user agent fingerprint for anonymous sessions where the user has not identified across devices.

GDPR and CCPA compliance is built into the identity layer: personal data used for matching is stored in a privacy-safe manner with consent flags per user, and users who exercise their right to deletion have their identifying data purged while preserving the anonymised aggregate event data the attribution models depend on. Customer journey visualisation showing every touchpoint from first visit to conversion with timestamps, channel, campaign, and attributed credit per model. De-duplication of cross-channel touch events so a single visit that fires both a client-side pixel and a server-side event is counted once in the attribution model, using event deduplication keys that match the format used by Meta CAPI and Google Enhanced Conversions to prevent double-counting at the platform level as well.

Incrementality measurement

Geo holdout test design and execution to measure whether a channel is driving incremental conversions or claiming credit for purchases that would have happened anyway. Holdout groups are defined at the geography or audience level: the test cell receives the normal campaign, the control cell is held out of media exposure, and the lift is the difference in conversion rate between the two cells adjusted for baseline variance. The holdout period is sized based on your historical conversion volume to reach statistical significance at 90% confidence before a result is acted on.

Conversion lift study integration with Meta and Google layers platform-native incrementality data alongside your own holdout results -- Meta's conversion lift studies use a randomised holdout at the user level, while geo holdouts capture cross-device and cross-channel halo effects that user-level holdouts miss. Test cell and control cell matching on historical behaviour reduces selection bias by ensuring the holdout group has a comparable pre-test conversion baseline. Incrementality-adjusted ROAS calculation by channel replaces reported conversions with incrementally attributed conversions, so a channel claiming 500 reported conversions that an incrementality test shows drove 200 incremental ones has its ROAS recalculated accordingly. LTV prediction by acquisition channel is layered on top: channels with high incrementality and high 90-day LTV receive higher budget priority than channels with high reported conversions but low incrementality and short LTV.

Marketing mix modelling

Bayesian regression-based MMM built on your historical spend and revenue data using PyMC or Prophet as the modelling framework, producing channel contribution estimates at a weekly or monthly aggregation level that is immune to cookie loss and ad blocker interference because it works on aggregate spend and outcome data rather than individual-level tracking. The Bayesian approach produces posterior distributions over channel contribution rather than point estimates, so the model communicates its uncertainty explicitly -- a media planner can see that paid search contribution is estimated at 28% with a credible interval of 22-34%, rather than a single number that implies false precision.

Seasonality and external factor controls are included as model regressors -- holiday calendar effects, economic indicators, and competitor spend proxies -- so the model separates channel contribution from baseline demand shifts that would otherwise inflate or deflate channel coefficients. Spend saturation curve by channel shows where marginal returns start to fall, using an Adstock transformation to model lagged and diminishing effects. Long-run contribution analysis for channels with delayed effects -- SEO, TV, and out-of-home -- that last-click and multi-touch models consistently undervalue because their effects extend weeks beyond the attribution window. Scenario planning tool for budget reallocation based on modelled channel response curves, showing projected revenue impact of shifting spend between channels at different total budget levels.

Budget optimisation and reporting

Attribution output converted into recommended budget allocation by channel, using marginal ROAS curves from the MMM to show where each additional dollar produces the most return. The optimiser solves the constrained budget allocation problem: given a total spend budget and channel-level marginal response curves, find the allocation that maximises projected revenue -- a calculation that produces meaningfully different recommendations from naive "spend more on the channel with the best ROAS" logic when saturation effects are factored in.

Campaign performance dashboard with attribution-adjusted metrics -- not platform-reported conversions but modelled contribution from your own data, pulled from BigQuery or Snowflake via the Google Ads API, Meta Marketing API, and your CRM. Impression share data from Google Ads API and Meta Marketing API is included alongside conversion data so the team can see whether a channel's conversion decline reflects lost impression share or genuine performance deterioration. Weekly automated report for marketing leadership with top-line channel contribution, budget vs. actual, incrementality results, and any attribution anomalies detected since the last report. Integration with Google Looker Studio or Tableau for self-serve analysis by the media planning team. Cross-channel ROAS, incremental cost per acquisition, and LTV by acquisition channel are the three metrics the reporting layer is designed to keep front and centre.

Frequently asked questions

Last-click gives 100% of conversion credit to the final touchpoint before purchase. This means paid search captures credit for conversions where the customer first discovered the brand through a social ad, read three blog posts, and opened two emails -- because the last step was a branded search click. Budget follows the reported credit, so awareness and mid-funnel channels are systematically underfunded. Meta and Google each measure their own channel as last-click by default, which is why the sum of platform-reported conversions routinely exceeds actual total conversions by 30-60% -- every platform is claiming credit for the same purchase. The alternative is multi-touch attribution, which distributes credit across all touchpoints in the journey. Rules-based models like linear or time decay are a step up and are fast to implement -- time decay weights recent touchpoints more heavily, which makes sense for short consideration cycles. Data-driven models like Shapley value go further by calculating each channel's marginal contribution based on which journeys convert with and without that channel present. The data-driven approach requires a minimum conversion volume -- typically 1,000 to 3,000 conversions per month -- to produce stable estimates. Below that threshold, a well-configured rules-based model with incrementality testing is the more reliable path.

Cookieless attribution relies on three approaches used together. Server-side tracking collects event data at the server level rather than through a browser pixel, so it is not affected by cookie restrictions or ad blockers. The Meta Conversions API and Google Enhanced Conversions both accept server-side event payloads with hashed customer data -- SHA-256 hashed email, phone, first name, last name, and zip code -- to match conversions back to ad impressions without a third-party cookie. Match rates for well-implemented server-side integrations typically reach 80-95%, compared to 40-60% for browser pixel only in ITP-restricted environments. Hashed email matching uses a common identifier to link touchpoints across channels where the user has identified themselves, connecting a Meta ad click to an email open to a purchase without a third-party cookie. Modelled attribution -- including marketing mix modelling built on PyMC or Prophet -- works at an aggregate level using spend and outcome data rather than individual-level tracking, so it does not depend on any cookie at all. A custom attribution platform can combine all three: server-side for accuracy on known users, hashed matching for cross-channel identity, and MMM for the portion of the funnel that individual-level tracking cannot reach. The GDPR and CCPA consent framework is built around the same architecture, because server-side tracking with consent gating is more privacy-compliant than client-side pixels that fire before consent is confirmed.

On the ad platform side: Meta, Google Ads, LinkedIn, TikTok, Pinterest, and programmatic platforms via their APIs and conversion APIs. On the owned channel side: email platforms (Klaviyo, Mailchimp, Braze), CRM (Salesforce, HubSpot), and your own website and app via server-side event tracking. On the offline side: in-store POS systems, phone sales call records, and CRM closed-won events imported on a scheduled basis. On the data warehouse side: BigQuery, Snowflake, and Redshift for storing the full event history and running attribution model queries. The specific integrations depend on your channel mix and stack -- we scope the integration list before pricing the build.

Cost depends on the number of channels, the attribution models required, whether incrementality testing infrastructure is in scope, and whether MMM modelling is included. A core platform covering multi-touch attribution across your main paid and owned channels, cross-channel data collection, identity stitching, and a reporting dashboard typically delivers in 10 to 14 weeks at a fixed cost. Adding incrementality test tooling, MMM, or a budget recommendation engine extends the scope. We scope every build before pricing it so you get a fixed cost tied to an agreed feature set, not a time-and-materials estimate. Talk to us and we will scope your specific requirements.

What clients say

What our clients say

Three-year average engagement. Founders and operators describing the work in their own words. No marketing varnish.

Nuala C.
Nuala C.
Ireland
Director, BrandFire

RaftLabs was outstanding at addressing our complex platform needs, delivering a stable, high-performance loyalty application that has been genuinely loved by the customers.

01 / 02

Related services

  • Custom Software Development -- Custom martech platforms, loyalty systems, and campaign management tools built for your marketing stack
  • AI Agent Development -- AI-powered audience segmentation, campaign performance analysis, and personalisation engines
  • Business Process Automation -- Automate campaign triggering, audience sync, loyalty event capture, and attribution reporting

Talk to us about your attribution project.

Tell us your channel mix, your current attribution setup, and what budget decisions you can't make reliably today. We'll scope a platform and give you a fixed cost.