Skip to main content
Attribution models determine which marketing touchpoints get credit for conversions. DATALYR uses session-based attribution with first-touch and last-touch tracking to give you complete visibility into customer journeys.

How Attribution Works

When a user converts (makes a purchase, signs up, etc.), DATALYR attributes the conversion to marketing sources based on their journey: Example Journey:
Day 1, 10:00 AM - User clicks Facebook ad (fbclid captured)
Day 1, 10:05 AM - Views product page (anonymous)
Day 1, 10:10 AM - Leaves site

Day 3, 2:00 PM - Googles brand name (organic search)
Day 3, 2:05 PM - Returns to site, creates account (identified)
Day 3, 2:10 PM - Browses catalog

Day 7, 8:00 AM - Types URL directly (direct traffic)
Day 7, 8:05 AM - Completes purchase
Attribution Question: Which marketing source should get credit for the $99 purchase?
  • Facebook ad (Day 1)?
  • Google organic search (Day 3)?
  • Direct traffic (Day 7)?
Different attribution models answer this differently.

Session-Based Attribution

DATALYR tracks attribution at the session level, not the page level.

What is a Session

A session is a continuous period of user activity:
  • Starts: First page view or after 30 minutes of inactivity
  • Duration: Continues while user is active (clicks, scrolls, navigates)
  • Ends: 30 minutes of inactivity or browser close
Session Attribution Capture: When a new session starts, DATALYR captures:
  • UTM parameters (utm_source, utm_medium, utm_campaign)
  • Click IDs (fbclid, gclid, ttclid)
  • Referrer (where user came from)
  • Landing page (first page of session)
  • Source and medium (computed from above)
Important: Attribution data persists for the entire session and is attached to all events in that session.

Session Example

Session 1 (Facebook Ad Click):
{
  "session_id": "sess_1727634645123_a1b2c3d4",
  "utm_source": "facebook",
  "utm_medium": "cpc",
  "utm_campaign": "summer_sale",
  "fbclid": "IwAR...",
  "source": "facebook",
  "medium": "cpc",
  "landing_page": "https://example.com/products?utm_source=facebook",
  "session_start": "2025-09-29T10:00:00Z"
}
All events in this session are attributed to Facebook. Session 2 (Google Search - 3 days later):
{
  "session_id": "sess_1727894845123_e5f6g7h8",
  "utm_source": null,
  "fbclid": null,
  "referrer": "https://google.com/search?q=example+store",
  "source": "google",
  "medium": "organic",
  "landing_page": "https://example.com/",
  "session_start": "2025-10-02T14:00:00Z"
}
All events in this session are attributed to Google Organic.

Attribution Models

DATALYR provides multiple attribution models:

First-Touch Attribution

Credits the first touchpoint in the customer journey. Journey:
Day 1: Facebook Ad (fbclid) → Product viewed
Day 3: Google Search → Returned to site
Day 7: Direct → Purchase ($99)
First-Touch Result:
  • Facebook Ad gets 100% credit
  • Purchase attributed to: source: facebook, medium: cpc
When to Use:
  • Measure top-of-funnel performance
  • Understand initial discovery channels
  • Optimize awareness campaigns
  • Evaluate new customer acquisition sources
In DATALYR:
{
  "first_touch_source": "facebook",
  "first_touch_medium": "cpc",
  "first_touch_campaign": "summer_sale",
  "first_touch_timestamp": 1727634645123,
  "days_since_first_touch": 7
}

Last-Touch Attribution

Credits the last touchpoint before conversion. Journey:
Day 1: Facebook Ad → Product viewed
Day 3: Google Search → Returned to site
Day 7: Direct → Purchase ($99)
Last-Touch Result:
  • Direct traffic gets 100% credit
  • Purchase attributed to: source: direct, medium: direct
When to Use:
  • Measure bottom-of-funnel performance
  • Understand closing channels
  • Optimize conversion campaigns
  • Evaluate retargeting effectiveness
In DATALYR:
{
  "last_touch_source": "direct",
  "last_touch_medium": "direct",
  "last_touch_timestamp": 1728239245123,
  "source": "direct",
  "medium": "direct"
}

Session-Based (Current Touch)

Credits the session where the conversion happened. Journey:
Session 1: Facebook Ad → Browsed products
Session 2: Google Search → Signed up
Session 3: Direct → Purchased ($99)
Session-Based Result:
  • Direct traffic (Session 3) gets credit
  • Same as last-touch in most cases
When to Use:
  • Accurate session tracking
  • Real-time conversion analysis
  • Understanding immediate conversion drivers
In DATALYR: Every event includes the session’s attribution data automatically.

Hybrid (DATALYR Default)

DATALYR tracks both first-touch and last-touch simultaneously, giving you flexibility in analysis. Every Conversion Event Includes:
{
  "event_name": "purchase",
  "revenue": 99.99,

  // First-touch attribution
  "first_touch_source": "facebook",
  "first_touch_medium": "cpc",
  "first_touch_campaign": "summer_sale",
  "first_touch_timestamp": 1727634645123,

  // Last-touch attribution (current session)
  "source": "direct",
  "medium": "direct",
  "utm_source": null,
  "utm_campaign": null,

  // Journey metrics
  "touchpoint_count": 3,
  "days_since_first_touch": 7,
  "session_duration": 180000
}
Benefits:
  • View conversions from multiple perspectives
  • Compare acquisition vs. closing channels
  • Build custom attribution models
  • Understand full customer journey

Click ID Attribution

DATALYR uses click IDs for accurate cross-device attribution.

What are Click IDs

Click IDs are unique identifiers appended to ad URLs by platforms:
  • fbclid (Facebook): ?fbclid=IwAR...
  • gclid (Google): ?gclid=Cj0KCQ...
  • ttclid (TikTok): ?ttclid=123...
  • li_fat_id (LinkedIn): ?li_fat_id=456...
  • epik (Pinterest): ?epik=789...

Click ID Tracking

When a user clicks an ad, DATALYR:
  1. Captures click ID from URL
  2. Stores in anonymous visitor profile
  3. Links to user ID when they identify (login/signup)
  4. Attributes conversion even on different device
Cross-Device Example: Mobile (Day 1):
User clicks Facebook ad on phone
URL: https://example.com/?fbclid=IwAR123
DATALYR captures: fbclid → anon_mobile_abc
Desktop (Day 7):
User purchases on desktop
User ID: user_456
DATALYR links: anon_mobile_abc → user_456
Finds: fbclid from Day 1
Attributes purchase to Facebook
Result: Purchase correctly attributed to Facebook ad from 7 days ago on different device.

Attribution Windows

Attribution windows determine how far back to look for attribution data.

Default Windows

DATALYR Default:
  • 30-day attribution window for all click IDs and UTM parameters
  • Configurable per workspace
Platform-Specific:
  • Meta Ads: 7-day click, 1-day view (platform default)
  • Google Ads: 30-day click, 1-day view (platform default)
  • TikTok Ads: 28-day click, 1-day view (platform default)

How Windows Work

Example: 30-Day Window
Day 1: User clicks Facebook ad (fbclid captured)
Day 10: User signs up (identified)
Day 20: User browses (engaged)
Day 35: User purchases

Result: NOT attributed to Facebook (outside 30-day window)
Example: Within Window
Day 1: User clicks Facebook ad (fbclid captured)
Day 10: User signs up (identified)
Day 20: User browses (engaged)
Day 25: User purchases

Result: Attributed to Facebook (within 30-day window)

Configuring Windows

Attribution windows can be customized in workspace settings:
// DATALYR automatically respects configured attribution window
{
  "attribution_window_days": 30, // Default
  "respect_platform_windows": true // Respect Meta/Google defaults
}

UTM Parameter Attribution

UTM parameters provide detailed campaign attribution.

Standard UTM Parameters

Format:
https://example.com/?utm_source=facebook&utm_medium=cpc&utm_campaign=summer_sale&utm_term=wireless+headphones&utm_content=carousel_ad
Parameters:
  • utm_source: Traffic source (facebook, google, newsletter)
  • utm_medium: Marketing medium (cpc, email, social)
  • utm_campaign: Campaign name (summer_sale, black_friday)
  • utm_term: Keyword (for paid search)
  • utm_content: Ad variation (carousel_ad, video_ad)

UTM Attribution Priority

DATALYR uses this priority for source/medium: Priority 1: UTM Parameters
?utm_source=facebook&utm_medium=cpc
→ source: facebook, medium: cpc
Priority 2: Click IDs
?fbclid=IwAR...
→ source: facebook, medium: cpc
Priority 3: Referrer
referrer: https://google.com/search
→ source: google, medium: organic
Priority 4: Direct
No UTM, click ID, or referrer
→ source: direct, medium: direct

Source and Medium Classification

DATALYR automatically computes source and medium from available data.

Computed Source

From Click IDs:
  • fbclidfacebook
  • gclidgoogle
  • ttclidtiktok
  • li_fat_idlinkedin
  • epikpinterest
From Referrer:
  • google.comgoogle
  • facebook.comfacebook
  • youtube.comyoutube
  • twitter.comtwitter
  • linkedin.comlinkedin
AI Tools:
  • chat.openai.comchatgpt
  • claude.aiclaude
  • gemini.google.comgemini
  • grok.x.aigrok
  • perplexity.aiperplexity

Computed Medium

From Click IDs:
  • fbclid, gclid, ttclidcpc (cost per click)
From Referrer:
  • Search engines → organic
  • Social media → social
  • Same domain → internal
  • No referrer → direct

Journey Tracking

DATALYR tracks the complete customer journey across sessions.

Journey Data

Every event includes:
{
  "touchpoint_count": 5,           // Total sessions
  "days_since_first_touch": 14,    // Days since first visit
  "session_duration": 240000,      // Current session duration (ms)
  "session_page_views": 8,         // Pages viewed this session
  "session_events": 45             // Events fired this session
}

Journey Array

DATALYR stores a journey array in localStorage:
[
  {
    "source": "facebook",
    "medium": "cpc",
    "timestamp": 1727634645123,
    "landing_page": "/products"
  },
  {
    "source": "google",
    "medium": "organic",
    "timestamp": 1727808445123,
    "landing_page": "/signup"
  },
  {
    "source": "direct",
    "medium": "direct",
    "timestamp": 1728239245123,
    "landing_page": "/checkout"
  }
]
This enables multi-touch attribution analysis.

Platform-Specific Attribution

Meta Ads (Facebook/Instagram)

Data Captured:
  • fbclid: Facebook Click ID
  • _fbp: Facebook Browser Pixel (first-party cookie)
  • _fbc: Facebook Click cookie (contains fbclid)
Attribution:
  • DATALYR sends conversions back to Meta with fbclid
  • Meta attributes based on their 7-day click, 1-day view window
  • Cross-device attribution via Meta’s identity graph
Data Captured:
  • gclid: Google Click ID
  • _gcl_aw: Google Ads conversion cookie
  • _gac: Google Ads Click cookie
Attribution:
  • DATALYR sends conversions to Google Ads API with gclid
  • Google attributes based on their 30-day click, 1-day view window
  • Cross-device via Google signed-in users

TikTok Ads

Data Captured:
  • ttclid: TikTok Click ID
  • _ttp: TikTok Pixel cookie
Attribution:
  • DATALYR sends conversions to TikTok Events API with ttclid
  • TikTok attributes based on 28-day click, 1-day view window
  • Cross-device via TikTok’s identity resolution

Attribution Best Practices

Use UTM Parameters Consistently
// Good - Consistent naming
utm_source=facebook&utm_medium=cpc&utm_campaign=summer_sale
utm_source=google&utm_medium=cpc&utm_campaign=summer_sale

// Bad - Inconsistent
utm_source=fb&utm_medium=paid&utm_campaign=Summer Sale 2024
utm_source=Facebook&utm_medium=cpc&utm_campaign=summer-sale
Let Click IDs Flow Don’t strip click IDs from URLs. They’re essential for attribution:
// Good - Preserve click IDs
https://example.com/products?fbclid=IwAR...

// Bad - Stripped click ID
https://example.com/products
Call identify() Early Link anonymous visitors to users ASAP for cross-device attribution:
// After signup
datalyr.identify(user.id, {
  email: user.email
});

// After login
datalyr.identify(user.id);
Track Key Conversion Events Define clear conversion events for attribution:
datalyr.track('purchase', {
  order_id: 'ORDER_123',
  revenue: 99.99,
  currency: 'USD'
});

datalyr.track('signup', {
  user_id: 'user_456',
  plan: 'pro'
});

Attribution Reports

DATALYR provides multiple views of attribution data: Dashboard:
  • First-touch attribution (acquisition channels)
  • Last-touch attribution (conversion channels)
  • Journey length distribution
  • Source/medium breakdown
Customer Journeys:
  • Visual timeline of touchpoints
  • Source/medium for each session
  • Conversion path analysis
  • Time to convert
Conversion Rules:
  • Attribute conversions from Shopify, Stripe, webhooks
  • Link server-side conversions to marketing sources
  • Retroactive attribution via user/email matching

Troubleshooting Attribution

Conversions Not Attributed? Check:
  • Click IDs present in event data (fbclid, gclid, etc.)
  • Attribution window not exceeded (default 30 days)
  • User identified via identify() for cross-device
  • UTM parameters captured in session
Wrong Attribution Source? Verify:
  • UTM parameters spelled correctly
  • Click IDs not stripped from URL
  • Referrer data available
  • Session started correctly
Missing Cross-Device Attribution? Ensure:
  • identify() called on both devices with same user_id
  • User logged in after clicking ad
  • Attribution window hasn’t expired

Next Steps

Need Help?

Questions about attribution? Check our troubleshooting guide or contact support.