A comprehensive skill for designing, implementing, and interpreting behavioral analytics across four touchpoint layers: website, email, social, and mobile app.
ModuleReference FileUse WhenWebsite Behavioral Analyticsreferences/website-analytics.mdGTM, GA4, scroll/form/session trackingEmail Engagement Trackerreferences/email-analytics.mdKlaviyo, Mailchimp, open/click/attributionSocial Media Engagementreferences/social-analytics.mdOwned + competitor social trackingMobile App Analyticsreferences/mobile-analytics.mdFirebase, Amplitude, Mixpanel, AppsFlyer
Load strategy: Load only the relevant module(s) based on the user's question. For full analytics stack questions ("build me a complete analytics system"), load all four.
These apply across ALL four modules:
text
object_action
# Examples:
page_viewed button_clicked form_abandoned
video_played product_viewed email_opened
session_started feature_used purchase_completed
checkout_form_abandoned not form_eventjavascript
window.dataLayer = window.dataLayer || [];
dataLayer.push({
event: 'event_name', // string — always required
user_id: 'u_abc123', // hashed or anonymized
session_id: 'ses_xyz',
timestamp: new Date().toISOString(),
page_path: window.location.pathname,
// event-specific properties below:
element_id: 'hero_cta',
element_text: 'Start Free Trial',
});
A composite score usable across web, email, and app:
text
Engagement Score =
(Sessions × 1) +
(Pages per session × 2) +
(Scroll 75%+ events × 3) +
(CTA clicks × 5) +
(Email opens × 2) +
(Email clicks × 5) +
(App sessions × 3) +
(Feature completions × 8) +
(Conversions × 20)
Score tiers:
0–20: Cold (re-engagement candidate)
21–50: Warming (nurture sequence)
51–100: Engaged (sales-ready consideration)
100+: High Value (priority outreach)
Adjust weights based on business model. Recalculate weekly per user.
Do Not Track headers and browser privacy modesWhen a user touches multiple channels before converting:
text
Journey: Paid Ad → Email Click → Direct Visit → Converted
Attribution options:
Last-click: Direct gets 100% credit (most common, least accurate)
First-click: Paid Ad gets 100% credit
Linear: All 3 channels get 33% each
Time-decay: Direct > Email > Paid Ad (recency-weighted)
Data-driven: ML model (GA4 DDA) — most accurate, needs volume
Recommended: Use GA4 Data-Driven Attribution (DDA) when you have 500+ conversions/month. Below that volume, use Linear to avoid bias toward any single channel.
Track cross-channel with UTM parameters on all non-direct traffic:
text
?utm_source=klaviyo&utm_medium=email&utm_campaign=may_reengagement&utm_content=cta_button
text
Event Name: [object_action]
Trigger: [when exactly does this fire?]
Properties:
- property_name (type): description, example value
- property_name (type): ...
Platform: [GTM / Firebase / Klaviyo / etc.]
Destination: [GA4 / BigQuery / Amplitude / etc.]
Privacy: [PII risk? How handled?]
text
DATE: [date]
COVERAGE: [% of key user actions being tracked]
DATA QUALITY: [issues found — missing events, duplicates, naming inconsistencies]
TOP INSIGHTS THIS PERIOD: [what the data shows]
ACTION ITEMS: [what to fix or investigate]