For general GTM concepts, see the Google Tag Manager overview.
Prerequisites
- Google Tag Manager container created
- GTM Container ID (GTM-XXXXXXX)
- Weebly paid plan (Personal, Professional, or Performance)
Installation
Step 1: Get Your GTM Code
- Log in to Google Tag Manager
- Select your container
- Click on the container ID (top right, GTM-XXXXXXX)
- Copy both code snippets
Step 2: Install in Weebly
Header Code (first snippet):
- Go to Weebly Editor
- Navigate to Settings > SEO
- In Header Code, paste the first GTM snippet:
<!-- 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-XXXXXXX');</script>
<!-- End Google Tag Manager -->
Footer Code (second snippet):
- In Footer Code, paste the noscript fallback:
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
- Replace
GTM-XXXXXXXwith your actual container ID - Click Save
- Publish your site
Verification
Check Installation
- View Page Source: Confirm GTM code in head and body
- GTM Preview Mode: Click Preview in GTM, navigate to your site
- Tag Assistant: Use browser extension to verify
Preview Mode Steps
- In GTM, click Preview
- Enter your Weebly site URL
- Your site opens with GTM debugger
- Verify Container Found and tags firing
Data Layer Configuration
Weebly doesn't have a native data layer. Create a custom one:
<!-- Add to Header Code BEFORE GTM code -->
<script>
window.dataLayer = window.dataLayer || [];
// Basic page data
dataLayer.push({
'pageType': 'standard',
'pagePath': window.location.pathname
});
</script>
Ecommerce Data Layer (Performance Plan)
For Weebly stores:
<script>
// Product page data layer
document.addEventListener('DOMContentLoaded', function() {
var productTitle = document.querySelector('.wsite-com-product-title');
var productPrice = document.querySelector('.wsite-com-product-price');
if (productTitle && productPrice) {
window.dataLayer = window.dataLayer || [];
dataLayer.push({
'event': 'view_item',
'ecommerce': {
'items': [{
'item_name': productTitle.textContent.trim(),
'price': parseFloat(productPrice.textContent.replace(/[^0-9.]/g, ''))
}]
}
});
}
});
</script>
Common Tags to Add
Google Analytics 4
- Go to Tags > New
- Choose Google Analytics: GA4 Configuration
- Enter your Measurement ID (G-XXXXXXXXXX)
- Set trigger to All Pages
- Save and publish
Meta Pixel
- Go to Tags > New
- Choose Custom HTML
- Paste Meta Pixel base code
- Set trigger to All Pages
- Save and publish
Trigger Examples
Click Tracking
Create a trigger for button clicks:
- Triggers > New > Click - All Elements
- Fire on "Some Clicks"
- Click Element matches CSS selector
.wsite-button
Form Submissions
// Add to Header Code - track Weebly form submissions
document.addEventListener('DOMContentLoaded', function() {
document.querySelectorAll('.wsite-form').forEach(function(form) {
form.addEventListener('submit', function() {
window.dataLayer = window.dataLayer || [];
dataLayer.push({
'event': 'form_submission',
'form_name': form.id || 'weebly_form'
});
});
});
});
Consent Mode
For GDPR compliance, configure GTM consent mode:
<!-- Add BEFORE GTM code -->
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Default to denied
gtag('consent', 'default', {
'analytics_storage': 'denied',
'ad_storage': 'denied'
});
</script>
Update consent after user grants permission:
// Call when user accepts cookies
gtag('consent', 'update', {
'analytics_storage': 'granted',
'ad_storage': 'granted'
});
Troubleshooting
GTM Not Loading
- Check paid plan status
- Verify code syntax (no extra characters)
- Clear Weebly cache and republish
- Check browser console for errors
Tags Not Firing
- Use GTM Preview Mode
- Check trigger conditions
- Verify data layer values
- Test in incognito mode