How to Fix Strikingly Tracking Events Not Firing | OpsBlu Docs

How to Fix Strikingly Tracking Events Not Firing

Fix GA4, GTM, and pixel events not firing on Strikingly — custom code settings injection, single-page navigation events, and platform script limitations

When tracking events don't fire on your Strikingly site, it's usually due to installation issues, custom code errors, or platform limitations. This guide helps you diagnose and fix common tracking problems.

For general tracking troubleshooting, see the global tracking issues guide.

Quick Diagnostic Checklist

Before diving into specific platforms, check these common issues:

  • Custom code saved in Strikingly settings
  • Site published after adding code
  • No JavaScript errors in browser console
  • Tracking ID is correct (G-, GTM-, or Pixel ID)
  • Testing without ad blockers
  • Code is in Header Code (not Footer)
  • Page has fully loaded before testing

Google Analytics 4 (GA4) Events Not Firing

No Data in GA4 Realtime

Symptom: GA4 Realtime reports show zero active users.

Diagnosis

Step 1: Verify Installation

  1. Visit your Strikingly site
  2. Right-clickView Page Source
  3. Search (Ctrl+F) for your GA4 Measurement ID: G-XXXXXXXXXX

Expected: Should find your Measurement ID in the page source.

If not found:

  • Code not saved in Strikingly settings
  • Site not published after adding code
  • Wrong site being tested

Step 2: Check Browser Console

  1. Open site in Chrome
  2. Press F12 to open DevTools
  3. Go to Console tab
  4. Look for errors

Common errors:

Uncaught ReferenceError: gtag is not defined

Fix: GA4 code not loaded or syntax error in code.

Step 3: Check Network Requests

  1. In DevTools, go to Network tab
  2. Reload page
  3. Filter by "collect" or search for "google-analytics"

Expected: Should see requests to www.google-analytics.com/g/collect

If no requests:

  • GA4 code not executing
  • Ad blocker blocking requests
  • JavaScript error preventing execution

Common Fixes

Fix 1: Code Not Saved/Published

  1. Log into Strikingly dashboard
  2. Go to SettingsAdvancedCustom Code
  3. Verify GA4 code is in Header Code
  4. Click Save
  5. Return to editor and click Publish
  6. Wait 60 seconds, then test

Fix 2: Incorrect Measurement ID

Verify your Measurement ID:

  1. Go to Google Analytics
  2. AdminData Streams
  3. Copy Measurement ID (G-XXXXXXXXXX)
  4. Update in Strikingly Header Code
  5. Save and publish

Fix 3: JavaScript Syntax Error

Check your Header Code for errors:

Bad (Missing semicolon, wrong quotes):

gtag('config', G-XXXXXXXXXX)  // Missing quotes

Good:

gtag('config', 'G-XXXXXXXXXX');

Fix 4: Code in Wrong Location

Ensure code is in Header Code, not Footer:

  1. Strikingly Settings → Advanced → Custom Code
  2. Header Code field (not Footer Code)
  3. Save and publish

Custom Events Not Firing

Symptom: PageView works, but custom events (form_submit, button_click) don't appear.

Diagnosis

Test Event Directly:

Open browser console and run:

gtag('event', 'test_event', {
  'event_category': 'test',
  'event_label': 'manual_test'
});

Expected: Event appears in GA4 DebugView within 30 seconds.

If test event works: Issue is with event implementation, not GA4 setup.

If test event doesn't work: GA4 not properly initialized.

Common Fixes

Fix 1: Event Code Before GA4 Initialization

Bad (Event fires before gtag exists):

<script>
  // This runs immediately, before gtag is loaded
  gtag('event', 'page_load');
</script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXX"></script>

Good (Event fires after initialization):

<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXXXX');

  // Now safe to use gtag for events
  document.addEventListener('DOMContentLoaded', function() {
    gtag('event', 'page_load');
  });
</script>

Fix 2: CSS Selectors Don't Match

If tracking button clicks:

// Check if selector matches any elements
console.log(document.querySelectorAll('.s-cta-button').length);

Expected: Should return number of matching elements (not 0).

Fix: Update selectors to match actual Strikingly classes/IDs.

Fix 3: Events Firing Before Element Exists

Bad (Element doesn't exist yet):

document.querySelector('form').addEventListener('submit', function() {
  gtag('event', 'form_submit');
});

Good (Wait for DOM):

document.addEventListener('DOMContentLoaded', function() {
  var form = document.querySelector('form');
  if (form) {
    form.addEventListener('submit', function() {
      gtag('event', 'form_submit');
    });
  }
});

Enhanced Measurement Not Working

Symptom: Manual PageView works, but scroll/click events missing.

Check GA4 Settings

  1. Go to GA4 → AdminData Streams
  2. Click your web stream
  3. Check Enhanced measurement is enabled
  4. Verify which events are enabled:
    • Scrolls
    • Outbound clicks
    • Site search
    • Video engagement
    • File downloads

Fix: Enable Enhanced Measurement in GA4 settings (no code changes needed).

Meta Pixel Events Not Firing

Pixel Not Loading

Symptom: Meta Pixel Helper shows no pixel detected.

Diagnosis

Step 1: Verify Installation

  1. Install Meta Pixel Helper extension
  2. Visit your Strikingly site
  3. Click extension icon

Expected: Green checkmark with your Pixel ID.

If no pixel detected:

  • Code not installed
  • Code not saved/published
  • Syntax error in pixel code

Step 2: Check Console

// In browser console
typeof fbq

Expected: "function"

If: "undefined" → Pixel not loaded

Step 3: Check Network Requests

  1. DevTools → Network tab
  2. Filter by "facebook" or "fbevents"

Expected: Request to connect.facebook.net/en_US/fbevents.js

Common Fixes

Fix 1: Pixel Code Not in Header

Ensure Meta Pixel code is in Strikingly Header Code:

<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'YOUR_PIXEL_ID');
fbq('track', 'PageView');
</script>

Fix 2: Incorrect Pixel ID

  1. Go to Meta Events Manager
  2. Select your pixel → Settings
  3. Copy Pixel ID (15-16 digits)
  4. Replace in code: fbq('init', 'YOUR_PIXEL_ID');
  5. Save and publish

Fix 3: Ad Blocker

Ad blockers commonly block Meta Pixel:

Test without ad blocker:

  1. Disable browser extensions
  2. Test in incognito/private mode
  3. Whitelist your domain

Note: Real users may have ad blockers. Consider implementing Conversions API for server-side tracking.

Custom Events Not Firing

Symptom: PageView tracked, but Lead or Purchase events missing.

Diagnosis

Test Event Manually:

// In browser console
fbq('track', 'Lead', {
  content_name: 'Test Event'
});

Expected: Event appears in Meta Events Manager Test Events.

If test event works: Issue is with implementation, not pixel setup.

Common Fixes

Fix 1: Event Code Syntax Error

Bad:

fbq('track', Lead);  // Missing quotes

Good:

fbq('track', 'Lead');

Fix 2: Event Fires Before fbq Loaded

Bad:

// Fires immediately, fbq might not exist yet
document.querySelector('form').addEventListener('submit', function() {
  fbq('track', 'Lead');
});

Good:

document.addEventListener('DOMContentLoaded', function() {
  if (typeof fbq !== 'undefined') {
    document.querySelector('form').addEventListener('submit', function() {
      fbq('track', 'Lead');
    });
  }
});

Fix 3: Form Submits Before Event Tracked

For form submissions, prevent default temporarily:

document.querySelector('form').addEventListener('submit', function(e) {
  e.preventDefault();

  // Track event
  fbq('track', 'Lead');

  // Submit form after short delay
  setTimeout(function() {
    e.target.submit();
  }, 300);
});

Google Tag Manager (GTM) Issues

GTM Container Not Loading

Symptom: GTM Preview won't connect or tags don't fire.

Diagnosis

Step 1: Verify GTM Installation

// In browser console
typeof dataLayer

Expected: "object"

If: "undefined" → GTM not loaded

Step 2: Check dataLayer Contents

console.log(dataLayer);

Expected: Array with at least one object containing gtm.js event.

If empty: GTM code issue.

Step 3: View Page Source

Search for: GTM-XXXXXX (your container ID)

Expected: Find container ID in page source.

Common Fixes

Fix 1: Container ID Incorrect

Verify container ID:

  1. Go to Google Tag Manager
  2. Note container ID (GTM-XXXXXX)
  3. Search in Strikingly Header Code
  4. Ensure IDs match
  5. Save and publish

Fix 2: Only Body Code Added

GTM requires both head and noscript code. In Strikingly Header Code:

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->

<!-- Also add noscript in header (Strikingly limitation) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>

Fix 3: Container Not Published

  1. In GTM workspace, click Submit
  2. Add version name and description
  3. Click Publish
  4. Wait 30-60 seconds
  5. Test again

GTM Tags Not Firing

Symptom: Container loads, but specific tags don't fire.

Diagnosis with Preview Mode

  1. In GTM, click Preview
  2. Enter your Strikingly site URL
  3. Click Connect
  4. Trigger the event (click button, submit form, etc.)
  5. Check if tag appears in "Tags Fired" or "Tags Not Fired"

If "Tags Not Fired": Check trigger conditions.

If tag not listed at all: Tag not configured for this event.

Common Fixes

Fix 1: Trigger Conditions Not Met

In GTM Preview, check Variables tab:

  1. Verify variables have expected values
  2. Check trigger conditions match actual values

Example Issue:

  • Trigger: Fire when Click Text equals "Submit"
  • Actual button text: "SUBMIT" (uppercase)
  • Fix: Change trigger to case-insensitive or regex

Fix 2: Built-in Variables Not Enabled

  1. In GTM, go to Variables
  2. Built-In VariablesConfigure
  3. Enable needed variables:
    • Click Text
    • Click Element
    • Form ID
    • Page URL
    • etc.

Fix 3: Tag Sequencing Issues

If tags depend on each other:

  1. Select tag in GTM
  2. Advanced SettingsTag Sequencing
  3. Set appropriate firing order
  4. Save and publish

Strikingly-Specific Issues

Custom Code Not Executing

Problem: Code added to Strikingly but doesn't run.

Diagnosis

Check if code is present:

  1. View page source (Ctrl+U)
  2. Search for a unique string from your code
  3. If not found → not saved/published

Check browser console for errors:

  1. Press F12
  2. Console tab
  3. Look for red error messages

Common Causes

Cause 1: Code Not Saved

Fix:

  1. Go to Strikingly Settings → Advanced → Custom Code
  2. Click Save button
  3. Return to editor
  4. Click Publish

Cause 2: JavaScript Syntax Error

Common errors:

// Missing closing brace
function() {
  console.log('test');

// Mismatched quotes
gtag('config', "G-XXXXXXXXXX');

// Forgot semicolon (usually okay but can cause issues)
gtag('event', 'click')
gtag('event', 'submit')

Fix: Validate JavaScript syntax with JSHint.

Cause 3: Code in Wrong Section

Header Code (loads first):

  • Tracking pixels
  • GTM container
  • Critical JavaScript

Footer Code (loads last):

  • Non-critical scripts
  • Heavy libraries
  • Analytics that can wait

Fix: Move tracking code to Header Code.

One-Page Site Event Tracking

Problem: Only homepage shows in analytics, no section events.

Expected Behavior: Strikingly one-page sites only have one URL.

Solution: Implement Virtual Page Views

// Track section views as page views
document.addEventListener('DOMContentLoaded', function() {
  var sections = document.querySelectorAll('section');
  var tracked = new Set();

  var observer = new IntersectionObserver(function(entries) {
    entries.forEach(function(entry) {
      if (entry.isIntersecting && !tracked.has(entry.target.id)) {
        tracked.add(entry.target.id);

        // GA4
        gtag('event', 'page_view', {
          page_title: entry.target.id || 'Section',
          page_location: window.location.href + '#' + entry.target.id
        });

        // Meta Pixel
        fbq('track', 'ViewContent', {
          content_name: entry.target.id || 'Section'
        });
      }
    });
  }, { threshold: 0.5 });

  sections.forEach(function(section) {
    observer.observe(section);
  });
});

Form Submissions Not Tracked

Problem: Contact form submits but no event tracked.

Strikingly Form Behavior

Strikingly forms may submit via AJAX without page reload, making tracking tricky.

Solution: Track Submit Event

document.addEventListener('DOMContentLoaded', function() {
  var forms = document.querySelectorAll('form, .s-contact-form');

  forms.forEach(function(form) {
    form.addEventListener('submit', function(e) {
      // Track with GA4
      if (typeof gtag !== 'undefined') {
        gtag('event', 'form_submit', {
          form_name: 'contact'
        });
      }

      // Track with Meta Pixel
      if (typeof fbq !== 'undefined') {
        fbq('track', 'Lead');
      }

      // Track with GTM
      if (typeof dataLayer !== 'undefined') {
        dataLayer.push({
          'event': 'formSubmit',
          'formName': 'contact'
        });
      }
    });
  });

  // Also watch for success message
  var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
      mutation.addedNodes.forEach(function(node) {
        if (node.classList && node.classList.contains('s-form-success')) {
          if (typeof gtag !== 'undefined') {
            gtag('event', 'form_success');
          }
          if (typeof fbq !== 'undefined') {
            fbq('track', 'CompleteRegistration');
          }
        }
      });
    });
  });

  observer.observe(document.body, {
    childList: true,
    subtree: true
  });
});

Debugging Tools

Browser Console Commands

Check if platforms loaded:

// GA4
typeof gtag !== 'undefined'

// Meta Pixel
typeof fbq !== 'undefined'

// GTM
typeof dataLayer !== 'undefined'

View dataLayer:

console.table(dataLayer)

Test event immediately:

// GA4
gtag('event', 'test', {test: true});

// Meta Pixel
fbq('track', 'Lead');

// GTM
dataLayer.push({'event': 'test'});

Browser Extensions

Install these extensions for debugging:

Platform Debug Tools

GA4 DebugView:

  1. Add to code: gtag('config', 'G-XXX', {'debug_mode': true});
  2. In GA4, go to AdminDebugView
  3. View real-time events with full details

Meta Test Events:

  1. In Meta Events Manager, go to Test Events tab
  2. Enter test browser code if needed
  3. Visit your site and trigger events
  4. See events appear in real-time

GTM Preview Mode:

  1. Click Preview in GTM
  2. Connect to your site
  3. See all tags, triggers, and variables
  4. Debug in real-time

Comprehensive Testing Checklist

Before considering tracking fixed:

  • Tracking code visible in page source
  • No JavaScript errors in console
  • Browser console confirms platform loaded (gtag/fbq/dataLayer)
  • Network tab shows tracking requests
  • Browser extension confirms pixel/tag active
  • Real-time data in platform (GA4/Meta/GTM)
  • Custom events fire correctly
  • Form submissions tracked
  • Button clicks tracked
  • Tested without ad blockers
  • Tested in incognito mode
  • Tested on mobile device
  • All tracking IDs correct
  • Container/workspace published (GTM)

When to Get Help

Consider professional help if:

  • Tracking works intermittently
  • Complex multi-platform setup
  • Server-side tracking needed
  • Custom e-commerce implementation
  • Multiple conflicting implementations

Resources:

Next Steps

For general tracking troubleshooting, see Global Tracking Issues Guide.