Search Documentation

Search for a documentation page...

Dashboard

Attribution Gaps

Understand and resolve gaps in your attribution data.

What Are Attribution Gaps?

An attribution gap occurs when Adsu has a contact and their revenue data but cannot trace them back to a specific ad or campaign. The contact appears in your dashboard, their transactions are recorded, but the "source" column shows as unattributed. This means Adsu could not find a touchpoint (an ad click, form fill, or page view) that connects the contact to a paid campaign.

Some level of unattributed revenue is normal and expected. Not every customer comes from a paid ad -- some find your gym through word of mouth, organic search, walk-ins, or social media posts. The goal is to minimize the gap so you have the most accurate picture of your paid ad performance.

Unattributed is not lost

Unattributed revenue is still tracked in your dashboard. It appears in your total revenue figures and in contact records. It is simply not assigned to any campaign. This is actually useful data -- it tells you how much of your revenue comes from sources other than paid ads.

Common Causes of Attribution Gaps

1. Contact Did Not Click an Ad

The most common reason for unattributed contacts is that they genuinely did not come from a paid ad. They may have found your gym through:

  • A friend's recommendation (word of mouth)
  • Organic Google search
  • Walking past your gym
  • An organic social media post (not a paid ad)
  • A referral from another business

This is expected behavior. Adsu correctly marks these contacts as unattributed because there is no paid ad to attribute them to.

2. Tracking Script Missing from Landing Pages

If the Adsu tracking script is not installed on all of your landing pages, visitors who arrive via an ad click will not be tracked. The script captures the Facebook click ID (fbclid), UTM parameters, and browsing data that the matching engine uses to connect ad clicks to contacts.

Fix: ensure the tracking script is installed on every page you use in your ad campaigns, including:

  • Landing pages linked from your ads
  • Thank-you or confirmation pages after form submissions
  • Any intermediate pages in your conversion funnel
  • Your gym's main website if you link to it from ads

See the tracking script installation guide for setup instructions and the tracking script troubleshooting guide if you are having issues.

3. Different Contact Info Across Platforms

Adsu's matching engine links contacts across platforms using email, phone number, and visitor fingerprints. If a person uses a different email when filling out your lead form than the one they use with their Stripe payment, the engine may not be able to connect them.

For example:

  • Lead form filled out with personal email (jane@gmail.com)
  • Stripe payment made with work email (jane@company.com)

Fix: encourage consistent contact information across your systems. When onboarding new members, verify that the email and phone in your CRM match the ones in your payment system. The matching engine also uses phone numbers as a secondary match, so having a phone number in both systems significantly improves match rates.

4. Ad Blocker Prevented Tracking

If a visitor has an ad blocker or privacy extension installed, the tracking script may be blocked entirely. In this case, Adsu never receives the page view or form submission event, so there is no touchpoint to match against even though the person clicked an ad.

This typically affects 10-15% of web visitors. There is no direct fix for this on the visitor side, but you can minimize the impact by also using Meta lead forms (which are tracked via webhook, not the tracking script) alongside website forms.

5. Long Gap Between Ad Click and Conversion

If someone clicks your ad but does not sign up until weeks or months later, the connection between the click and the conversion becomes harder to establish. Cookie expiry, device switching, and cleared browser data can all break the chain.

Fix: Adsu's matching engine uses multiple signals beyond just cookies. Email matches and phone matches work regardless of how much time has passed. Ensuring your CRM captures the same email used during the initial form fill gives the engine the best chance of making the connection.

6. Cross-Device Journey

A person sees your ad on their phone, but signs up later on their laptop. Since these are different browser sessions, the tracking script generates different visitor fingerprints. Adsu can still connect these through email or phone matching, but only if the person submits a form on both devices (which is uncommon).

This is a fundamental limitation of web-based attribution. Meta lead forms partially solve this because the lead data comes directly from Meta's servers and does not depend on browser tracking.

How to Reduce Attribution Gaps

While some gaps are unavoidable, these practices will maximize your attribution coverage:

  1. Install tracking on all ad-linked pages -- every page referenced in any ad campaign should have the Adsu script
  2. Use consistent contact info -- make sure the email and phone number in your CRM match what is in your payment system
  3. Use Meta lead forms -- these are tracked via webhooks and are immune to ad blockers and cross-device issues
  4. Review flagged matches -- visit Attribution Review regularly to approve or reject matches the engine flagged for manual review (IP-based and fuzzy name matches)
  5. Map funnel stages correctly -- ensure your GHL pipeline stages are properly mapped in funnel configuration so contact progression is tracked accurately
  6. Keep integrations connected -- an expired Meta token or disconnected Stripe means missing data that creates gaps

Check your attribution rate

The dashboard overview shows your overall attribution rate -- the percentage of revenue that Adsu can trace back to a specific ad. A healthy attribution rate for gym businesses is typically 40-70%, depending on how much of your marketing is paid vs. organic. If your rate drops below 30%, review the causes above to identify what might be missing.

Using Attribution Review

Adsu's matching engine uses a priority system for identity resolution. High-confidence matches (exact email, exact phone) are applied automatically. Lower-confidence matches (IP + time window, fuzzy name) are flagged for manual review in the Attribution Review page.

Reviewing flagged matches regularly can recover attributions that the engine was not confident enough to apply automatically. Each flagged match shows you the contact, the potential ad touchpoint, and the confidence score so you can make an informed decision.

See the Attribution Review guide for details on how to work through the review queue.