GTM Container Issues
Common problems with Google Tag Manager container configuration and deployment.
What This Means
GTM container issues occur when the Tag Manager container fails to load properly, loads incorrectly, or conflicts with other scripts on the page. These issues can cause tracking failures, performance problems, or unexpected behavior.
How to Diagnose
Check Container Loading
// Verify GTM is loaded
if (typeof google_tag_manager !== 'undefined') {
console.log('GTM loaded:', Object.keys(google_tag_manager));
} else {
console.error('GTM not loaded');
}
// Check container ID
console.log('Container ID:', google_tag_manager['GTM-XXXXXXX']);
Common Symptoms
| Symptom | Likely Cause |
|---|---|
| No tracking at all | Container not loading |
| Partial tracking | Wrong container or environment |
| Console errors | Script conflicts or CSP issues |
| Slow page load | Container too large |
Browser DevTools Check
- Open Network tab
- Filter by "googletagmanager"
- Check response status (should be 200)
- Review console for errors
General Fixes
1. Verify Container Installation
Ensure proper installation:
<!-- HEAD: Before other scripts -->
<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-XXXXXXX');
</script>
<!-- BODY: Immediately after opening tag -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
2. Check Container Version
Ensure correct environment is published:
- In GTM, go to Versions
- Check which version is published
- Verify environment settings
- Re-publish if needed
3. Reduce Container Size
Large containers slow page load:
- Remove unused tags
- Delete unused variables
- Clean up old triggers
- Use tag sequencing instead of duplicate tags
4. Fix Script Conflicts
Identify and resolve conflicts:
// Check for dataLayer conflicts
if (window.dataLayer && Array.isArray(window.dataLayer)) {
console.log('dataLayer is array');
} else {
console.error('dataLayer conflict detected');
}
// Initialize before GTM
window.dataLayer = window.dataLayer || [];
5. Update CSP Headers
Allow GTM domains:
Content-Security-Policy:
script-src 'self' 'unsafe-inline' https://www.googletagmanager.com https://tagmanager.google.com;
img-src 'self' https://www.googletagmanager.com;
connect-src 'self' https://www.google-analytics.com;
Platform-Specific Guides
| Platform | Guide |
|---|---|
| Shopify | GTM on Shopify |
| WordPress | GTM on WordPress |
| SFCC | GTM on SFCC |
Prevention
- Always use GTM Preview before publishing
- Implement container versioning strategy
- Monitor container size
- Test across browsers and devices
- Use environments for staging vs production