Attribution Not Working
Symptoms
- Low join coverage in Data Quality Console
- Form submissions missing
attribution_id - CTA clicks not linking to form submissions
Solutions
-
Verify Attribution Script is Loaded
- Open browser console
- Check for
window.getAttributionIdfunction - Verify no JavaScript errors
-
Check Cookie/Storage
- Open browser DevTools → Application → Cookies
- Verify
cr_attribcookie exists - Check localStorage for
cr_attribkey
-
Verify CTA Link Rewriting
- Inspect CTA links on page
- Verify
cr_attribparameter is in URL - Check that links are being rewritten (idempotent)
-
Check HighLevel Custom Field
- Verify
cr_attribcustom field exists - Verify form hidden field reads from URL parameter
- Test form submission and check webhook payload
- Verify
Low Join Coverage
Symptoms
- Data Quality Console shows < 50% join coverage
- Many form submissions without
attribution_id
Solutions
-
Check Coverage By Source Tile
- Identify which source is leaking (CTA clicks, form submits, asset resolution)
- Focus on the lowest percentage
-
Verify GTM Instrumentation
- Check GTM container is deployed
- Verify events include
attribution_id - Check Data Quality Console → Freshness for GTM events
-
Check Form Sources
- Some forms may arrive from other sources (not CTAs)
- This is expected - check “Form Submits (No Prior CTA Click)” tile
- If high, verify CTA rewrite + GTM is working
Missing Events
Symptoms
- No events in Data Quality Console
- Freshness shows “No events”
Solutions
-
Check GTM Events
- Verify GTM container is deployed
- Check browser console for
dataLayerevents - Verify server-side endpoint is receiving events
-
Check HighLevel Webhook
- Verify webhook is enabled in HighLevel
- Check webhook URL is correct
- Verify webhook secret matches
- Test form submission and check webhook logs
-
Check API Endpoints
- Verify
/api/integrations/gtm/eventsis accessible - Verify
/api/integrations/highlevel/webhookis accessible - Check server logs for errors
- Verify
Performance Data Not Updating
Symptoms
- Asset performance shows zero or stale data
- Rollup job not running
Solutions
-
Check Rollup Job
- Verify cron job is configured
- Check job endpoint is accessible
- Review job logs for errors
-
Verify Snapshots
- Check GA4/GSC snapshots are being created
- Verify snapshot dates match expected dates
- Check timezone configuration
-
Check Asset Resolution
- Verify
canonical_pathis set on assets - Check Data Quality Console → Coverage → “Form Submits Tied to Asset”
- If low, verify asset paths match page paths
- Verify
Scoring Issues
Symptoms
- Optimization scores not calculating
- Confidence badges not showing
Solutions
-
Check Scoring Rules
- Verify scoring rules exist for your objective
- Check weights sum to 1.0
- Verify metric keys match metric registry
-
Check Confidence Calculation
- Review join coverage (should be > 50% for medium confidence)
- Check freshness (should be < 48 hours for medium confidence)
- Verify sample size (should be >= 50 for medium confidence)
-
Verify Performance Data
- Check asset_performance_daily has data
- Verify metrics are being aggregated correctly
- Check for null/zero values