A model attributing conversions to channels
An attribution model is the rule that decides which marketing touchpointsTouchpointCustomer SuccessA customer interaction touchpointView reference → get credit when a customer converts. Pick last-touch and the final ad wins everything; pick first-touch and the first blog post does. The rule looks like measurement, and it is actually an assumptionAssumptionStrategyA belief taken as true that underpins a strategyView reference →, which is the source of nearly every argument a growth team will ever have about its budget.
For most of the web's history the question answered itself by default. Analytics tools recorded the last interaction before a conversion and gave it the credit, because that was the click the system could see at the moment of purchase. The model was rarely chosen; it was inherited from how the data happened to be collected.
The turn came when Google Analytics introduced Multi-Channel Funnels on 24 August 2011, exposing the full sequence of channels a customer touched before converting and offering a menu of models over that sequence: first-touch, last-touch, linear (split the credit evenly), time-decay (weight recent touches more), and position-based (load the first and last). Suddenly the assumption was visible and adjustable, and the industry discovered it had been crediting the wrong things for years. Data-driven attribution arrived next, using machine learningLearningValidationAn insight gained from an experimentView reference → over thousands of journeys to allocate credit by observed pattern instead of a fixed rule.
Then the discipline ran into a wall it has not climbed. Every multi-touch model, the algorithmic ones included, describes correlation. It watches the touchpoints a converting customer happened to pass through and assigns credit by some rule, but it never runs the counterfactual: would this customer have converted anyway, without that touch? Practitioners now state this plainly, and signal loss from privacy changes and cookie deprecation made cross-device journey stitching shakier still. The field's answer has been to move toward methods that test cause directly: incrementality experimentsExperimentValidationA test designed to validate a hypothesisView reference → that hold out a control group, and marketing mix modelling (MMM), the regression approach that estimates each channel's contribution to sales at the aggregate without needing to track individuals.
A subscriptionSubscriptionSales & RevenueA recurring subscriptionView reference → app spends 300,000 dollars a month across paid search, paid social, and a podcast sponsorship. Under last-touch, paid search takes 70 per cent of the credit, because people Google the brand name right before signing up. The growth lead nearly cuts the podcast, which last-touch shows driving almost nothing.
Before doing so the team runs a geo holdout: they pause the podcast in three matched regions for six weeks and watch signups against untouched control regions. Signups in the paused regions fall 12 per cent, far more than any attribution model credited the channel. Branded search was harvesting demand the podcast created; last-touch saw the harvest and missed the planting. The team keeps the podcast and reweights the attribution model to inform daily bidding while treating the holdout result, not the model, as the truth about incremental impact.
In the Unified Product Graph, an attribution model sits in the growth region, joined to a product by Productattributed viaAttribution Modelhierarchy. Recording the model as an explicit entity rather than an invisible default makes the assumption inspectable, which is the whole point. A product attributed solely via a single last-touch model, with no connected incrementality experiment or mix model anywhere in the graph, is a product whose growth decisionsDecisionStrategyA recorded decision with context, rationale, and consequencesView reference → rest on correlation it has never tested, and the structure makes that exposure visible instead of buried in a dashboardDashboardData & AnalyticsAn analytics dashboardView reference →'s default setting.product_attributed_via_attribution_model
Type-specific fields on BaseNode
model_typestringHow credit is distributed across touchpoints
lookback_windowstringTime window for attributing conversions
idstringrequiredUnique identifier (UUID)
typeNodeTyperequiredDiscriminator for the entity type
titlestringrequiredDisplay name
descriptionstringOptional detailed description
statusstringLifecycle status
tagsstring[]Freeform tags for filtering
2 edge types connected to this entity.
product_attributed_via_attribution_modelattribution_model_credits_acquisition_channel