attribution-modeling
Skill4 starsChanged 6 months agoMITView on GitHub
Multi-touch attribution modeling for advertising campaigns. Use when analyzing conversion paths, comparing attribution models, implementing data-driven attribution, or understanding assisted conversions.
In this repository59 other files it gives its agents.
- ad-copy-generationSkill
- ad-creative-fatigue-detectorSkill
- ad-policy-complianceSkill
- amazon-ads-optimizerSkill
- anomaly-detectorSkill
- audience-expansion-strategySkill
- bid-optimizationSkill
- budget-optimizerSkill
- campaign-ide-handoffSkill
- campaign-preflightSkill
- campaign-structure-auditorSkill
- chatgpt-ads-conversion-trackingSkill
- chatgpt-ads-launchSkill
- competitor-analysisSkill
- creative-testingSkill
- cross-platform-attributionSkill
- cross-platform-launcherSkill
- dayparting-schedulerSkill
- executive-reportingSkill
- first-party-data-strategySkill
- google-ads-operatorSkill
- google-ads-quality-scoreSkill
- google-shopping-optimizerSkill
- gtm-metricsSkill
- incrementality-testingSkill
- keyword-researchSkill
- kill-scale-rulesSkill
- klaviyo-campaignsSkill
- landing-page-optimizerSkill
- launch-gatesSkill
- linkedin-ads-operatorSkill
- linkedin-ads-targetingSkill
- media-plan-builderSkill
- meta-ads-diagnosticsSkill
- meta-ads-operatorSkill
- mmm-budget-plannerSkill
- multi-channel-reportingSkill
- multi-platform-ads-operatorSkill
- multi-platform-launchSkill
- negative-keyword-minerSkill
- openai-ads-operatorSkill
- performance-max-optimizerSkill
- pixel-capi-auditorSkill
- pixel-capi-setupSkill
- platform-cost-benchmarksSkill
- public-ad-library-intelligenceSkill
- retargeting-sequence-designerSkill
- roas-calculatorSkill
- seasonal-budget-plannerSkill
- spearSkill
- spec-driven-devSkill
- synter-mcp-setupSkill
- tiktok-ads-operatorSkill
- tracking-leak-detectorSkill
- ugc-creative-briefSkill
- ui-contrast-reviewSkill
- utm-builderSkill
- video-ad-scriptwriterSkill
- x-ads-operatorSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 10 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 40
Default model in most ad platforms
- Distinctive: line 76
When recency matters most
- Distinctive: line 96
When introduction and closing are most valuable
- Distinctive: line 108
No assumptions about touchpoint value
- Distinctive: line 176
Create comparison table showing credit shifts
- Distinctive: line 179
If Channel A gets 40% on last-touch but 15% on first-touch → it's a closer, not a discoverer
- Distinctive: line 180
If Channel B gets 5% on last-touch but 30% on first-touch → it's an awareness driver
- Distinctive: line 201
Look for channels where DDA credits significantly more than last-click
- Distinctive: line 277
Recommendation: Don't cut LinkedIn. It feeds the top of funnel.
- Distinctive: line 297
Fix: Use GA4 DDA as source of truth.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Attribution Modeling
Analyze and implement multi-touch attribution models to understand how each marketing touchpoint contributes to conversions. Covers first-touch, last-touch, linear, time-decay, position-based, data-driven, and Markov chain attribution across Google Ads, Meta, and analytics platforms.
Capabilities
- Model Selection - Recommend the best attribution model based on sales cycle length, channel mix, and business goals
- Conversion Path Analysis - Map customer journeys from first interaction to conversion
- Assisted Conversion Valuation - Quantify the contribution of upper-funnel channels
- Cross-Channel Comparison - Compare how different models redistribute credit across channels
- Data-Driven Attribution - Implement algorithmic attribution using Markov chains or Shapley values
- GA4 Attribution Configuration - Set up and interpret GA4's data-driven attribution
Attribution Models Reference
1. First-Touch Attribution
Formula: 100% credit → first interaction
When to use:
- Brand awareness campaigns
- Top-of-funnel budget justification
- Short sales cycles (< 7 days)
Strengths: Simple, highlights discovery channels Weaknesses: Ignores nurturing touchpoints, overvalues awareness
2. Last-Touch Attribution
Formula: 100% credit → last interaction before conversion
When to use:
- Direct response campaigns
- Short consideration windows
- Default model in most ad platforms
Strengths: Simple, clear ROI per channel Weaknesses: Ignores awareness and consideration touchpoints
3. Linear Attribution
Formula: Credit = 1 / N (where N = total touchpoints)
Example: 4 touchpoints → each gets 25%
When to use:
- Equal-value touchpoint assumption
- Long sales cycles with consistent engagement
- B2B with multiple decision influencers
Strengths: Fair distribution, simple math Weaknesses: Overvalues low-impact touches, no time weighting
4. Time-Decay Attribution
Formula: Credit_i = 2^((t_i - t_conversion) / half_life) / Σ 2^((t_j - t_conversion) / half_life)
Default half-life: 7 days (Google Ads default)
Example (14-day path, 7-day half-life):
| Touchpoint | Days Before Conversion | Raw Weight | Credit |
| Display Ad | -14 | 2^(-14/7) = 0.25 | 10.5% |
| -7 | 2^(-7/7) = 0.50 | 21.1% | |
| Search Ad | -3 | 2^(-3/7) = 0.74 | 31.2% |
| Brand Search | 0 | 2^(0/7) = 1.00 | 42.1% |
When to use:
- Promotions with deadlines
- Seasonal campaigns
- When recency matters most
5. Position-Based (U-Shaped) Attribution
Formula:
- First touch: 40%
- Last touch: 40%
- Middle touches: 20% / (N - 2)
Example (5 touchpoints):
| Position | Credit |
| First (Display) | 40% |
| Middle (Email) | 6.67% |
| Middle (Social) | 6.67% |
| Middle (Retarget) | 6.67% |
| Last (Brand Search) | 40% |
When to use:
- B2B lead generation
- When introduction and closing are most valuable
- Medium-length sales cycles (14-30 days)
6. Data-Driven Attribution (DDA)
How it works: Uses machine learning to analyze all conversion paths and assign credit based on statistical impact.
Requirements:
- Google Ads: 3,000 ad interactions + 300 conversions in 30 days
- GA4: Available for all properties (uses Shapley values)
Advantages:
- No assumptions about touchpoint value
- Adapts to actual customer behavior
- Accounts for path position, frequency, and sequence
Markov Chain Attribution
Concept
Models the customer journey as a state machine where each channel is a state with transition probabilities.
Step-by-Step Implementation
Step 1: Build the transition matrix
From conversion paths, calculate probability of moving from one state to another:
States: [Start, Paid Search, Display, Email, Social, Conversion, Null]
Transition Matrix P:
PS Display Email Social Conv Null
Start [0.35, 0.25, 0.20, 0.15, 0.00, 0.05]
PS [0.10, 0.05, 0.15, 0.05, 0.55, 0.10]
Display [0.30, 0.05, 0.20, 0.10, 0.15, 0.20]
Email [0.15, 0.10, 0.05, 0.05, 0.50, 0.15]
Social [0.20, 0.15, 0.15, 0.05, 0.25, 0.20]Step 2: Calculate total conversion probability
P(conversion) = probability of reaching "Conversion" state from "Start" using matrix absorption.
Step 3: Calculate removal effect
For each channel, remove it from the model and recalculate conversion probability:
Removal Effect(channel) = 1 - P(conversion without channel) / P(conversion with all channels)Step 4: Normalize to get attribution weights
Attribution(channel) = Removal Effect(channel) / Σ Removal Effect(all channels)Example Calculation
| Channel | P(conv) with all | P(conv) without | Removal Effect | Attribution |
| Paid Search | 0.42 | 0.18 | 57.1% | 38.2% |
| Display | 0.42 | 0.35 | 16.7% | 11.2% |
| 0.42 | 0.22 | 47.6% | 31.9% | |
| Social | 0.42 | 0.30 | 28.6% | 19.1% |
Workflows
Workflow 1: Model Comparison Analysis
- Pull conversion paths from GA4:
- Navigate to Advertising → Attribution → Conversion paths
- Set date range to 30+ days
- Filter by conversion event
- Export path data with touchpoint sequence, timestamps, and conversion values
- Apply each model to the same dataset:
- Calculate revenue attribution per channel per model
- Create comparison table showing credit shifts
- Identify discrepancies:
- If Channel A gets 40% on last-touch but 15% on first-touch → it's a closer, not a discoverer
- If Channel B gets 5% on last-touch but 30% on first-touch → it's an awareness driver
- Recommend model based on business stage:
- Growth stage → Position-based or DDA
- Efficiency stage → Time-decay or DDA
- Brand building → First-touch or DDA
Workflow 2: GA4 Attribution Setup
- Access attribution settings:
- Admin → Attribution Settings
- Select reporting attribution model (default: Data-driven)
- Set lookback window: 30 days for acquisition, 90 days for other conversions
- Configure conversion events:
- Admin → Events → Mark as conversion
- Set counting method: Once per session (leads) or Every event (purchases)
- Review attribution reports:
- Advertising → Attribution → Model comparison
- Compare DDA vs Last-click for each channel
- Look for channels where DDA credits significantly more than last-click
- Export and act:
- Increase budget on channels undervalued by last-click
- Decrease budget on channels overvalued by last-click
- Monitor for 2-4 weeks before further adjustments
Workflow 3: Assisted Conversions Analysis
- Pull assisted conversion data from GA4:
- Advertising → Attribution → Conversion paths
- Note "Assisted conversions" vs "Last-click conversions" per channel
- Calculate Assisted/Last ratio:
Assist Ratio = Assisted Conversions / Last-Click Conversions - Interpret ratios:
Ratio Interpretation < 0.5 Primarily a closer (last-touch channel) 0.5 - 1.0 Balanced role (both assists and closes) 1.0 - 3.0 Primarily an assister (mid-funnel) > 3.0 Almost exclusively awareness/discovery - Budget implications:
- High-assist channels deserve more budget than last-click ROAS suggests
- Cutting high-assist channels will reduce conversions on other channels
Reference Data
Typical Attribution Shifts by Channel
| Channel | Last-Touch Credit | DDA Credit | Typical Shift |
| Brand Search | 35-45% | 20-30% | ↓ Overvalued |
| Non-Brand Search | 20-30% | 20-25% | → Stable |
| Display | 3-8% | 8-15% | ↑ Undervalued |
| Social (Organic) | 5-10% | 8-12% | ↑ Slightly undervalued |
| Social (Paid) | 8-15% | 10-18% | ↑ Slightly undervalued |
| 10-20% | 8-15% | ↓ Slightly overvalued | |
| Direct | 15-25% | 10-15% | ↓ Overvalued |
Lookback Window Recommendations
| Business Type | Recommended Window | Rationale |
| E-commerce (low AOV) | 7-14 days | Impulse purchases |
| E-commerce (high AOV) | 30 days | Research phase |
| B2B SaaS | 60-90 days | Long sales cycle |
| B2B Enterprise | 90+ days | Multiple stakeholders |
| Local services | 7-14 days | Urgency-driven |
| Travel / Hospitality | 30-45 days | Planning phase |
Platform-Specific Attribution Defaults
| Platform | Default Model | Lookback (Click) | Lookback (View) |
| Google Ads | Data-driven | 30 days | 1 day |
| Meta Ads | 7-day click, 1-day view | 7 days | 1 day |
| LinkedIn Ads | Last-touch | 90 days | 7 days |
| TikTok Ads | Last-touch | 7 days | 1 day |
| Reddit Ads | Last-touch | 28 days | 1 day |
Examples
Example 1: B2B SaaS Attribution Analysis
Scenario: A SaaS company spends $50K/month across Google, LinkedIn, and content marketing. Last-click shows Google at 4x ROAS and LinkedIn at 0.8x ROAS.
Analysis with position-based model:
- LinkedIn drives 45% of first touches (awareness)
- Google captures 60% of last touches (closing)
- Content marketing handles 70% of middle touches (nurturing)
Recommendation: Don't cut LinkedIn. It feeds the top of funnel. Cutting it would reduce Google's closing conversions within 30-60 days.
Example 2: E-commerce Markov Chain Results
Scenario: Online retailer with 10K conversion paths analyzed.
Removal effects:
- Removing Paid Social → 34% fewer conversions
- Removing Paid Search → 28% fewer conversions
- Removing Email → 22% fewer conversions
- Removing Display → 16% fewer conversions
Budget reallocation: Shift 15% of display budget to paid social, which has higher marginal impact per dollar despite lower last-click ROAS.
Example 3: Cross-Platform Attribution Conflict
Scenario: Meta reports 500 conversions, Google reports 400 conversions, but GA4 only shows 350 total conversions.
Root cause: Platform self-attribution double counts conversions where users saw both a Meta ad and clicked a Google ad.
Fix: Use GA4 DDA as source of truth. Apply platform-specific credit:
- Meta DDA credit: 210 conversions (60%)
- Google DDA credit: 140 conversions (40%)
- Total matches GA4: 350
About this skill
Part of the Synter free skills collection — open-source agent skills for advertising, PPC, and marketing automation.
Want this skill (and 40+ more) running on autopilot against your live ad accounts? Try Synter — AI Agent Media Buyers that connect to Google, Meta, LinkedIn, TikTok, Reddit, Amazon, and 7+ more platforms.
- 🌐 syntermedia.ai
- 📚 All free skills
- 💬 Built by @syntermedia — questions? Open an issue.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

