This guide helps you diagnose and fix tracking issues on Carrd sites when GA4, Meta Pixel, GTM, or custom events aren't working properly.
General Guide: See Global Events Not Firing Issues for universal troubleshooting strategies.
Common Symptoms
- GA4 page views not appearing in Realtime reports
- Meta Pixel Helper shows "No Pixel Found"
- GTM Preview mode won't connect
- Custom events not showing in analytics
- Form submissions not being tracked
- Only works in preview, not on published site (or vice versa)
Carrd-Specific Root Causes
1. Testing in Preview Mode (Most Common)
Problem: Tracking only works on published sites, not in Carrd's preview mode.
Symptoms:
- Analytics tags fire in preview, but data doesn't appear in reports
- Pixel Helper shows pixel in preview, but no data in Events Manager
- GTM debug connects in preview but tags don't fire
Why: Carrd's preview is a development environment. Tracking platforms filter out development traffic.
Solution:
- Publish your Carrd site
- Visit the published URL (not preview)
- Test tracking on published site
Published URLs:
- Carrd subdomain:
yoursite.carrd.co - Custom domain:
yourdomain.com
2. No Carrd Pro Account
Problem: Custom code embeds require Carrd Pro.
Symptoms:
- Can't add embed elements
- Embed option grayed out
- "Upgrade to Pro" message when trying to add tracking
Why: Free Carrd accounts don't support custom code.
Solution:
- Upgrade to Carrd Pro Lite ($9/year minimum)
- Go to carrd.co/pro
- Choose a plan (Lite, Standard, or Plus)
- After upgrading, embed elements will be available
3. Embed Element Not Published
Problem: Embed added but site not published with changes.
Symptoms:
- Embed visible in editor
- Published site doesn't have tracking code
- "Old version" of site still live
Why: Changes only take effect after publishing.
Solution:
- Click Publish button (top right in Carrd editor)
- Confirm publication
- Wait 1-2 minutes for CDN propagation
- Hard refresh published site (Ctrl+Shift+R)
- Test tracking again
4. JavaScript Errors in Embed
Problem: Syntax error in custom code breaks tracking.
Symptoms:
- Browser console shows red error messages
- Tracking scripts don't load
- Page functionality broken
Why: Copy/paste errors, missing characters, or invalid syntax.
Solution:
- Open published site
- Press F12 to open Developer Tools
- Go to Console tab
- Look for red error messages
- Fix syntax errors in embed code
- Republish
Common errors:
// Missing closing tag
<script>
gtag('event', 'test');
// Missing </script>
// Typo in function name
gtagg('event', 'test'); // Should be "gtag"
// Missing quote
gtag('event', test'); // Missing opening quote
5. Incorrect Tracking IDs
Problem: Wrong Measurement ID, Pixel ID, or Container ID.
Symptoms:
- Code loads but no data appears
- Wrong property receives data
- Pixel Helper shows different ID than expected
Why: Copy/paste error or using wrong ID.
Solution:
Verify your IDs:
- GA4:
G-XXXXXXXXXX(starts with G-) - GTM:
GTM-XXXXXXX(starts with GTM-) - Meta Pixel: 15-16 digit number
- UA (old):
UA-XXXXXXXX-X(deprecated, upgrade to GA4)
- GA4:
Check in tracking code:
- GA4:
gtag('config', 'G-XXXXXXXXXX') - GTM:
'GTM-XXXXXXX'in script - Meta Pixel:
fbq('init', 'YOUR_PIXEL_ID')
- GA4:
Get correct IDs:
- GA4: Admin > Data Streams > Measurement ID
- GTM: Container ID in top right of GTM dashboard
- Meta Pixel: Events Manager > Pixel ID
6. Ad Blockers and Privacy Extensions
Problem: Browser extensions block tracking scripts.
Symptoms:
- Tracking works in incognito mode
- Works on some devices but not others
- Network tab shows requests blocked
Why: Ad blockers, privacy extensions, or brave browser blocking.
Solution:
- Test in incognito/private mode (disables most extensions)
- Temporarily disable ad blockers:
- uBlock Origin
- AdBlock Plus
- Privacy Badger
- Ghostery
- If tracking works with extensions disabled, that's the cause
- For testing, use incognito or disable blockers temporarily
Note: Users with ad blockers won't be tracked. This is expected.
7. Embed Order Issues
Problem: Event tracking code loads before base tracking code.
Symptoms:
gtag is not definederrorfbq is not definederror- Base tracking works, but custom events don't
Why: Embeds load in page order (top to bottom).
Solution:
Correct order (top to bottom):
- GA4 base code embed
- GTM container embed (if using GTM)
- Meta Pixel base code embed
- Custom event tracking embeds
- Widget/third-party embeds
In Carrd editor: Drag embeds to reorder them.
Diagnostic Process
Step 1: Check the Basics
Run through this checklist:
- Carrd Pro active? Check subscription status
- Site published? Not just saved in editor
- Testing on published URL? Not preview mode
- Correct URL? yoursite.carrd.co or custom domain
- Hard refresh? Ctrl+Shift+R to clear cache
- Ad blockers off? Test in incognito mode
If all checked and still not working, proceed to Step 2.
Step 2: Check Browser Console
- Open published Carrd site
- Press F12 (Windows/Linux) or Cmd+Option+I (Mac)
- Go to Console tab
- Look for errors (red text)
Common errors and fixes:
"gtag is not defined"
Cause: GA4 base code not loaded
Fix:
- Verify GA4 embed exists and is published
- Check GA4 embed comes before event tracking embeds
- Verify no syntax errors in GA4 code
"fbq is not defined"
Cause: Meta Pixel base code not loaded
Fix:
- Verify Meta Pixel embed exists
- Check Pixel embed comes before event tracking
- Verify Pixel ID is correct
"Uncaught SyntaxError"
Cause: JavaScript syntax error in embed
Fix:
- Find the line number in error message
- Review embed code for typos
- Check for missing quotes, brackets, semicolons
"Failed to load resource"
Cause: External script blocked or unavailable
Fix:
- Check Network tab for failed requests
- Verify URLs are correct
- Check if ad blocker is blocking
Step 3: Check Network Tab
- F12 > Network tab
- Reload page
- Filter by tracking service:
- GA4: Filter by
collectorgoogle-analytics - Meta Pixel: Filter by
facebook - GTM: Filter by
googletagmanager
- GA4: Filter by
What to look for:
Good:
- Requests to tracking endpoints (status 200)
- Payload contains your IDs
- Multiple requests (base code + events)
Bad:
- No requests to tracking domains
- Requests blocked (red, status failed)
- 404 errors (script not found)
Step 4: Use Platform-Specific Tools
For GA4: Use DebugView
- Enable debug mode in GA4 config:
<script>
gtag('config', 'G-XXXXXXXXXX', {
'debug_mode': true
});
</script>
- Go to GA4 > Admin > DebugView
- Visit your published site
- See events fire in real-time with full details
For Meta Pixel: Use Pixel Helper
- Install Meta Pixel Helper
- Visit your published Carrd site
- Click Pixel Helper icon
- Check for:
- Pixel found
- PageView event
- Correct Pixel ID
- ✗ No errors
For GTM: Use Preview Mode
- In GTM, click Preview
- Enter your published Carrd URL
- Click Connect
- New window opens with debug panel
- Verify:
- Container loaded
- Tags firing
- Variables populated
- Triggers activating
Note: GTM Preview requires published site, won't work in Carrd preview.
Common Carrd Tracking Issues
Issue 1: Form Submissions Not Tracked
Problem: Form submit events don't fire or data doesn't reach analytics.
Cause: Carrd forms redirect quickly, tracking doesn't complete before redirect.
Solution: Use sendBeacon or event callback.
Option A: sendBeacon (Recommended)
<script>
document.addEventListener('DOMContentLoaded', function() {
var forms = document.querySelectorAll('form');
forms.forEach(function(form) {
form.addEventListener('submit', function() {
// Use beacon for guaranteed delivery
gtag('event', 'form_submit', {
'form_id': form.getAttribute('id') || 'contact'
}, {
'transport_type': 'beacon'
});
});
});
});
</script>
Option B: Event callback
<script>
form.addEventListener('submit', function(e) {
e.preventDefault(); // Prevent immediate redirect
gtag('event', 'form_submit', {
'event_callback': function() {
form.submit(); // Submit after tracking
},
'event_timeout': 2000
});
});
</script>
Issue 2: Events Fire in Realtime but Not in Reports
Problem: Events appear in GA4 Realtime but not in standard reports.
Cause: This is normal - standard reports have 24-48 hour delay.
Solution:
- Wait 24-48 hours for data to appear in standard reports
- Use Realtime and DebugView for immediate feedback
- Check Engagement reports after 24 hours
Issue 3: Duplicate Events
Problem: Same event fires multiple times per action.
Causes:
- Tracking code installed multiple times
- Both direct installation AND GTM
- Event listeners attached multiple times
Solutions:
Check for duplicates:
- Search all embeds for duplicate tracking codes
- If using GTM, remove direct GA4/Pixel installation
- Verify no duplicate embeds
Prevent duplicate listeners:
<script>
var formTracked = false;
form.addEventListener('submit', function() {
if (!formTracked) {
formTracked = true;
gtag('event', 'form_submit', {...});
}
});
</script>
Or use once option:
<script>
form.addEventListener('submit', function() {
gtag('event', 'form_submit', {...});
}, { once: true });
</script>
Issue 4: Tracking Works on Desktop but Not Mobile
Problem: Analytics track on desktop browsers but not mobile devices.
Causes:
- Mobile browser privacy settings
- Mobile ad blockers (built into Safari, Brave)
- iOS tracking prevention
Solutions:
- Test on actual device: Mobile simulators may not be accurate
- Disable mobile ad blockers: Check Safari settings
- Use standard events: Custom events may be blocked more
- Check Intelligent Tracking Prevention: iOS Safari limits tracking
Test on mobile:
- Visit published site on phone
- Check GA4 Realtime or Meta Events Manager
- Verify mobile traffic appears
Issue 5: GTM Container Won't Load
Problem: GTM container doesn't load on Carrd site.
Symptoms:
- Preview mode won't connect
- No GTM requests in Network tab
- Tags don't fire
Solutions:
- Verify container ID: Check
GTM-XXXXXXXis correct - Check both code snippets added:
- Head code (JavaScript)
- Body code (noscript fallback)
- Publish Carrd site: GTM requires published site
- Check embed placement: GTM embed should be at top of page
- Verify no JavaScript errors: Console should be clean
Issue 6: Events Fire in Preview but Not Published
Problem: Events work in Carrd preview but not on published site.
Unusual case (usually it's the opposite).
Causes:
Solutions:
- Hard refresh published site: Ctrl+Shift+R
- Clear browser cache completely
- Wait for CDN propagation: 5-10 minutes after publishing
- Test in incognito mode: Rule out cache issues
- Check custom domain DNS: If using custom domain
Platform-Specific Troubleshooting
Google Analytics 4
No data in Realtime:
- Verify Measurement ID format:
G-XXXXXXXXXX - Check site is published (not preview)
- Disable ad blockers
- Wait up to 30 seconds for data to appear
- Verify GA4 property is active (not deleted)
PageView fires but custom events don't:
- Check event syntax:
gtag('event', 'event_name', {...}) - Verify gtag is loaded (check console:
typeof gtag) - Ensure event tracking embed comes AFTER GA4 base code
- Check for JavaScript errors
- Enable debug mode and check DebugView
Events show in DebugView but not Realtime:
- Disable debug mode (debug events don't count)
- Republish site
- Test again in normal mode
Meta Pixel
Pixel Helper shows "No Pixel Found":
- Verify Pixel ID is correct (15-16 digits)
- Check embed is published
- Test on published site (not preview)
- Check browser console for errors
- Verify
fbqis defined (console:typeof fbq)
Pixel loads but events don't fire:
- Check event syntax:
fbq('track', 'EventName', {...}) - Verify Meta Pixel base code loads first
- Check Events Manager > Test Events
- Ensure event name is correct (case-sensitive)
- Check for ad blocker interference
Events appear multiple times:
- Check for duplicate Pixel installations
- Remove Pixel from GTM if also installed directly
- Search all embeds for duplicate
fbq('init')calls
Google Tag Manager
Preview mode won't connect:
- Ensure site is published (GTM Preview requires published site)
- Check container ID:
GTM-XXXXXXX - Verify both snippets added (head + body)
- Disable ad blockers
- Try different browser
Container loads but tags don't fire:
- Check tag configuration in GTM
- Verify triggers are set correctly
- Test trigger conditions (Preview mode > Variables)
- Ensure tag type is correct (GA4 Configuration vs. GA4 Event)
- Check firing order (some tags depend on others)
Tags fire in Preview but not normally:
- Publish GTM container (not just preview)
- Clear browser cache
- Hard refresh site
- Wait for GTM CDN propagation (2-5 minutes)
Testing Checklist
Before contacting support or giving up, verify:
- Carrd Pro subscription is active
- Site is published (not just saved)
- Testing on published URL (yoursite.carrd.co or custom domain)
- Hard refreshed browser (Ctrl+Shift+R)
- Tested in incognito mode (no extensions)
- Browser console is clear (no JavaScript errors)
- Tracking IDs are correct (G-, GTM-, or 15-digit number)
- Embed elements are in correct order (base code first)
- Network tab shows tracking requests (200 status)
- Platform-specific tools confirm tracking (Pixel Helper, DebugView, GTM Preview)
If all checked and still not working, proceed to advanced debugging.
Advanced Debugging
Manual Event Test
Test tracking manually in browser console:
GA4:
// Check if gtag exists
console.log(typeof gtag); // Should be "function"
// Fire test event
gtag('event', 'test_event', {
'test_param': 'test_value'
});
// Check dataLayer
console.log(window.dataLayer);
Meta Pixel:
// Check if fbq exists
console.log(typeof fbq); // Should be "function"
// Fire test event
fbq('track', 'Lead', {
'content_name': 'Test Lead'
});
// Check pixel queue
console.log(window._fbq);
GTM:
// Check if GTM loaded
console.log(window.google_tag_manager);
// Push test event to dataLayer
dataLayer.push({
'event': 'test_event',
'test_data': 'test_value'
});
console.log(dataLayer);
Compare Working vs. Broken
If you have another working Carrd site:
- Compare embed code side-by-side
- Check for differences in:
- Code formatting
- Tracking IDs
- Embed placement
- Embed order
- Copy working code to broken site
- Test if that fixes the issue
Create Minimal Test Case
Build the simplest possible test:
- Create new Carrd site (Pro required)
- Add single embed with only base tracking code:
<!-- Minimal GA4 test -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
</script>
- Publish
- Test
- If works: issue is with your main site's code
- If doesn't work: issue may be with account or IDs
When to Contact Support
Contact the appropriate support if:
Carrd Support (support@carrd.co):
- Embed elements not appearing (Pro account issue)
- Publishing failures
- Custom domain connection issues
- Account or billing questions
GA4/GTM Support (support.google.com/analytics):
- Property setup issues
- Data collection verification
- Reporting problems
- Advanced configuration
Meta Business Support (facebook.com/business/help):
- Pixel setup issues
- Events Manager problems
- Business Manager access
- Domain verification
Prevention
Prevent future tracking issues:
- Document your setup: Note which embeds contain which tracking codes
- Test before adding: Add one tracking code at a time, test, then add next
- Regular audits: Monthly check that all tracking still works
- Backup embeds: Save embed code in separate document
- Version control: Note when you make changes
- Monitor alerts: Set up GA4/Meta alerts for data collection drops
Next Steps
- Optimize Performance after fixing tracking
- GA4 Event Tracking for advanced implementation
- GTM Setup for better tag management
- Troubleshooting Overview for other issues