Google Tag Manager (GTM) provides a centralized way to manage all tracking codes on your Strikingly site without repeatedly editing custom code.
Why Use GTM on Strikingly?
Benefits:
- Easier management: Update tracking without republishing your site
- Multiple tags: Manage GA4, Meta Pixel, ads pixels in one place
- Testing: Preview mode to verify tags before publishing
- Non-technical updates: Marketers can manage tags without code access
- Better performance: One container load instead of multiple scripts
- Version control: Roll back changes if needed
Without GTM: Each tracking change requires editing Strikingly custom code and republishing.
With GTM: Make changes in GTM interface and publish instantly.
Prerequisites
- Strikingly Plan: Limited, Pro, or VIP (custom code access required)
- GTM Account: Free account at tagmanager.google.com
- Site Access: Admin access to Strikingly site settings
Step 1: Create GTM Container
Create Account (if needed)
- Go to Google Tag Manager
- Click Create Account
- Enter account name (your company/personal name)
- Choose country
Create Container
- Enter container name (your site name)
- Select Web as target platform
- Click Create
Accept Terms
- Read and accept GTM Terms of Service
Get Container Code
After creating the container, GTM shows installation code in two parts:
Part 1: Head 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 -->Part 2: Body code
<!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) -->Copy Both Codes - Keep this window open or copy to a text file
Step 2: Install GTM on Strikingly
Access Custom Code Settings
- Log in to your Strikingly Dashboard
- Select your site
- Click Settings in left sidebar
- Scroll to Advanced section
- Find Custom Code settings
Add Header Code
In Header Code field, paste GTM Part 1 (the
<script>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 -->Replace
GTM-XXXXXXwith your actual container ID.
Add Body Code
Strikingly doesn't have a body code injection area, so add the noscript fallback to the header:
<!-- 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 -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
Note: Ideally, the noscript part goes in <body>, but Strikingly's header placement works fine.
Save and Publish
- Click Save in Custom Code section
- Return to your site editor
- Click Publish in top right corner
- Wait 30-60 seconds for changes to go live
Step 3: Verify GTM Installation
Method 1: GTM Preview Mode
Open GTM Workspace
- Go to Google Tag Manager
- Select your container
- Click Preview in top right
Connect to Your Site
- Enter your Strikingly site URL
- Click Connect
Verify Connection
- Your site opens in new window with GTM banner
- GTM Debugger panel shows "Connected"
- Should see "Container Loaded" event
Check Events
- Navigate through your site
- Watch events fire in debugger
- Verify GTM is tracking page interactions
Method 2: Browser Console
- Open Developer Tools (F12)
- Console Tab
- Type:
dataLayer - Press Enter
Expected Result: Should see array with GTM events:
[{
'gtm.start': 1234567890,
event: 'gtm.js'
}, ...]
If undefined: GTM not installed correctly.
Method 3: View Page Source
- Right-click on your Strikingly site
- View Page Source
- Search (Ctrl+F) for your GTM ID:
GTM-XXXXXX
Expected Result: Should find your container ID in the code.
Method 4: Tag Assistant Legacy
- Install Tag Assistant Legacy extension
- Visit your Strikingly site
- Click Tag Assistant icon
- Click Enable and reload page
Expected Result: Shows Google Tag Manager tag with your container ID.
Step 4: Configure GTM for Strikingly
Enable Built-in Variables
- In GTM, go to Variables
- Under Built-In Variables, click Configure
- Enable these variables:
- Page URL
- Page Hostname
- Page Path
- Referrer
- Click Element
- Click Classes
- Click ID
- Click Text
- Form Element
- Form Classes
- Form ID
Create Basic Triggers
1. All Pages Trigger
- Already exists by default
- Used for tags that fire on every page view
2. Form Submission Trigger
- Go to Triggers → New
- Click Trigger Configuration
- Choose Form Submission
- Select All Forms or specific forms
- Save as "Form Submission - All"
3. Button Click Trigger
- Triggers → New
- Choose All Elements
- Configure:
- Fire on: Some Clicks
- Condition: Click Classes contains
s-cta-buttonOR Click Element matchesbutton
- Save as "Button Clicks"
4. Outbound Link Trigger
- Triggers → New
- Choose Link Click
- Check Wait for Tags
- Configure:
- Fire on: Some Link Clicks
- Condition: Click URL does not contain
\{\{Page Hostname\}\}
- Save as "Outbound Links"
Create Strikingly-Specific Variables
1. Section Name Variable
For tracking which section user is in:
- Variables → New
- Choose Custom JavaScript
- Code:
function() { var sections = document.querySelectorAll('section'); var scrollPos = window.scrollY + window.innerHeight / 2; for (var i = 0; i < sections.length; i++) { var section = sections[i]; var sectionTop = section.offsetTop; var sectionBottom = sectionTop + section.offsetHeight; if (scrollPos >= sectionTop && scrollPos < sectionBottom) { return section.id || 'section-' + i; } } return 'unknown'; } - Save as "Section Name"
2. Site Type Variable
Track if it's a store, portfolio, etc:
- Variables → New
- Choose Constant
- Value:
portfolio(or your site type) - Save as "Site Type"
Step 5: Add Your First Tag (GA4 Example)
Now that GTM is installed, add Google Analytics 4:
Create GA4 Configuration Tag
- Tags → New
- Click Tag Configuration
- Choose Google Analytics: GA4 Configuration
- Enter Measurement ID:
G-XXXXXXXXXX - Triggering: Select All Pages
- Save as "GA4 - Configuration"
- Click Submit to publish
Test the Tag
- Click Preview
- Enter your Strikingly site URL
- Verify GA4 Configuration tag fires on page load
- Check GA4 Realtime reports for data
Common GTM Tags for Strikingly
Google Analytics 4
Configuration Tag:
- Tag Type: GA4 Configuration
- Measurement ID: G-XXXXXXXXXX
- Trigger: All Pages
Event Tags:
- Form Submission event
- Button Click event
- Scroll Depth event
See GA4 Event Tracking for implementation.
Meta Pixel
Base Code Tag:
- Tag Type: Custom HTML
- Add Meta Pixel base code
- Trigger: All Pages
See Meta Pixel Setup for details.
Google Ads Conversion Tracking
Conversion Tag:
- Tag Type: Google Ads Conversion Tracking
- Conversion ID and Label
- Trigger: Form Submission or Purchase
Advanced GTM Configuration
Data Layer Events for Strikingly
Push custom events to GTM from Strikingly:
Add to Header Code (after GTM installation):
<script>
// Wait for GTM to load
window.addEventListener('load', function() {
// Push section view events
var sections = document.querySelectorAll('section');
var observer = new IntersectionObserver(function(entries) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'sectionView',
'sectionId': entry.target.id || 'unknown',
'sectionName': entry.target.querySelector('h1, h2, h3')?.textContent || 'Unknown'
});
}
});
}, { threshold: 0.5 });
sections.forEach(function(section) {
observer.observe(section);
});
});
</script>
Create Data Layer Variable in GTM
- Variables → New
- Choose Data Layer Variable
- Variable Name:
sectionId - Save
Create Custom Event Trigger
- Triggers → New
- Choose Custom Event
- Event Name:
sectionView - Save as "Section View"
Use in Tags
Create tags that fire on your custom triggers:
- Tags → New
- Choose tag type (GA4 Event, etc.)
- Configure with Data Layer Variables
- Triggering: Select "Section View"
GTM Container Organization
Naming Conventions
Tags:
GA4 - ConfigurationGA4 - Event - Form SubmitMeta - Base PixelMeta - Event - Purchase
Triggers:
All PagesForm Submission - ContactClick - CTA ButtonsCustom Event - Section View
Variables:
Section NameForm IDClick Text
Folders
Organize with folders:
- Analytics (GA4 tags)
- Advertising (Meta, Google Ads)
- Custom (Strikingly-specific)
Version Control
Always:
- Name versions clearly
- Add description of changes
- Test in Preview before publishing
- Can rollback if issues occur
Performance Optimization
Minimize Tag Load Impact
Best Practices:
- Use async tags when possible
- Combine similar tags
- Remove unused tags
- Limit number of tags firing on page load
Tag Firing Priority
Set tag priority for load order:
- GTM Configuration tags (highest priority)
- Analytics base tags
- Marketing pixels
- Event tags (lowest priority)
Tag Sequencing
For dependent tags:
- Click tag name
- Advanced Settings → Tag Sequencing
- Set tags that must fire before/after
Troubleshooting GTM on Strikingly
GTM Container Not Loading
Check:
- Container ID is correct (GTM-XXXXXX)
- Code saved in Strikingly Settings → Advanced → Custom Code
- Site was republished after adding code
- Check browser console for errors
Fix:
- Verify code is in Header Code, not Footer
- Check for JavaScript errors blocking execution
- Clear browser cache and reload
- Test in incognito mode
Tags Not Firing
Diagnose in Preview Mode:
- Open GTM Preview
- Navigate to page where tag should fire
- Check if trigger conditions met
- Review Variables tab for expected values
Common Issues:
- Trigger conditions too specific
- Required variables undefined
- JavaScript errors preventing execution
- Ad blockers blocking requests
Data Layer Errors
Problem: dataLayer is undefined or events missing.
Check:
// In console
console.log(window.dataLayer);
Fix:
- Ensure GTM code loads before custom code
- Initialize dataLayer before GTM:
window.dataLayer = window.dataLayer || []; - Check for JavaScript errors
Preview Mode Won't Connect
Possible Causes:
- Site not published
- Ad blocker interfering
- Browser blocking third-party cookies
- Wrong URL entered
Solutions:
- Disable ad blockers
- Allow cookies for tagmanager.google.com
- Try different browser
- Use exact site URL (https://)
Testing Checklist
Before going live with GTM:
- Container loads without errors
- dataLayer populates correctly
- Preview mode connects successfully
- All necessary triggers created
- Variables return expected values
- Tags fire on correct triggers
- No JavaScript errors in console
- Tested on mobile device
- Analytics platforms receiving data
- Performance impact acceptable
- Version published with description
Security and Compliance
User Permissions
In GTM, manage who can edit:
- Admin → User Management
- Add users with appropriate permissions:
- View: Can only view
- Edit: Can edit but not publish
- Approve: Can approve versions
- Publish: Full access
Privacy Considerations
Consent Management:
- Implement consent banner on Strikingly
- Use GTM's Consent Mode
- Block tags until consent given
Example Consent Code:
<script>
// Set default consent state
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
'analytics_storage': 'denied',
'ad_storage': 'denied'
});
// Update when user consents
function grantConsent() {
gtag('consent', 'update', {
'analytics_storage': 'granted',
'ad_storage': 'granted'
});
}
</script>
Next Steps
Now that GTM is installed:
- Add GA4 Tag - Install Google Analytics 4
- Add Meta Pixel - Install Facebook Pixel
- Troubleshoot Issues - Debug tracking problems
For general GTM concepts, see Google Tag Manager Documentation.