This article answers the most common questions about using Google Analytics and Google Tag Manager with your Pulse Commerce store. Find answers to setup, configuration, tracking, and troubleshooting questions organized by topic.
Universal Analytics to GA4 Migration
Yes, if you're still using Universal Analytics. Google sunset Universal Analytics on July 1, 2023. Universal Analytics properties stopped collecting data on that date, and historical data will be permanently deleted after July 1, 2024.
What you should do:
- Create a new Google Analytics 4 property (if you haven't already)
- Set up GA4 tracking using Google Tag Manager (recommended method)
- Export any historical Universal Analytics data you want to keep before it's deleted
See our GA4 Setup Guide for complete implementation instructions.
Technically yes, but it's no longer necessary. Since Universal Analytics stopped collecting data in July 2023, there's no benefit to running both systems simultaneously.
If you have old Universal Analytics tracking code still active in your Pulse Commerce store, you can safely remove it. Go to Marketing > Analytics & Media > Google Analytics and remove the UA tracking ID (format: UA-XXXXXXX-X).
GA4 is a complete redesign of Google Analytics with different data collection and reporting methods:
Key differences:
- Event-based tracking: GA4 uses events for everything, while Universal Analytics used pageviews and separate event tracking
- Cross-platform tracking: GA4 combines website and app data in one property
- Privacy-focused: GA4 was designed for a cookieless future with improved privacy controls
- Machine learning: GA4 includes predictive metrics and automated insights
- Different reports: The reporting interface and available reports are completely different
For Pulse Commerce users: The biggest change is that GA4 requires Google Tag Manager for proper e-commerce tracking, whereas Universal Analytics worked with direct tracking code integration.
Google Tag Manager Setup & Management
Google Tag Manager is configured in a dedicated section of your admin panel:
1Go to Marketing > Analytics & Media > Google Tag Manager
2Enter your GTM Container ID (format: GTM-XXXXXX) in the Container Id field
3Set Enable to Yes
4Click Update
Your GTM Container ID is available in your Google Tag Manager account:
1Sign in to Google Tag Manager
2Your Container ID appears at the top of the page next to your container name
3It's formatted as GTM-XXXXXX (where XXXXXX is a unique alphanumeric code)
If you don't have a GTM container yet, you'll need to create one first. See Google's container setup guide.
Yes, this is usually a problem. Having multiple GTM containers on the same site can cause:
- Duplicate data being sent to Google Analytics
- Conflicting tags firing at the same time
- Slower page load times
- Inaccurate tracking and reporting
How this happens: Merchants sometimes add GTM code manually to custom pages or templates while also having GTM configured in the Pulse Commerce admin panel, resulting in multiple containers.
What to do:
- Decide which GTM container you want to use (typically the one in your admin panel)
- Remove any manually added GTM code from custom pages
- Keep only the GTM container configured in Marketing > Analytics & Media > Google Tag Manager
- Consolidate all tags from multiple containers into your single active container
If you need help removing duplicate GTM containers, contact support with the container IDs you want removed.
Absolutely yes! Google Tag Manager is designed to manage all kinds of marketing and analytics tags in one place.
Common uses beyond GA4:
- Google Ads conversion tracking
- LinkedIn Insight Tag
- Twitter/X pixel
- TikTok pixel
- Microsoft Ads (Bing) tracking
- Custom HTML/JavaScript for third-party tools
- Heatmap and session recording tools (Hotjar, Crazy Egg, etc.)
- A/B testing platforms
Once GTM is installed on your Pulse Commerce store, you can add any compatible tag through your GTM workspace without needing to modify your store's code.
Tracking Code Installation & Management
For GA4 (recommended method): Use Google Tag Manager instead of adding tracking codes directly. Configure GTM at Marketing > Analytics & Media > Google Tag Manager, then manage all tracking through your GTM workspace.
For legacy Universal Analytics: The old UA tracking ID field is located at Marketing > Analytics & Media > Google Analytics, but this is no longer needed since Universal Analytics is deprecated.
For custom tracking code snippets: If you need to add custom JavaScript or HTML tracking code:
- Header code: Contact support, as header modifications require backend access
- Order confirmation page: Content Message Editor Custom Message on Order Confirmation Page
- Payment method specific: Settings Payments Edit Order Confirmation Message box
These are two different generations of Google's tracking code:
analytics.js (Old):
- Used by Universal Analytics
- Deprecated since Universal Analytics sunset in 2023
- If you still see this in your code, it's no longer collecting data
gtag.js (Current):
- Google's Global Site Tag for GA4, Google Ads, and other Google products
- Can be used directly for simple GA4 implementation
- More flexible than analytics.js
For Pulse Commerce users: Instead of using either analytics.js or gtag.js directly, we recommend using Google Tag Manager. GTM provides more control and flexibility without requiring code changes to your store.
For old Universal Analytics tracking ID:
- Go to Marketing > Google Analytics
- Click Edit
- Clear the UA tracking ID field (remove the UA-XXXXXXX-X code)
- Click Update
For manually added tracking codes:
Check these locations and remove any tracking code you find:
- Content > Message Editor > Custom Message on Order Confirmation Page
- Settings > Payments > Edit Order Confirmation Message box (check each payment method)
For codes in header/footer: These require backend access. Contact support and specify which tracking codes you want removed, including the tracking ID or GTM container ID.
Method 1: GA4 Realtime Report
- Open your GA4 property
- Go to Reports Realtime
- Browse your store in another tab/window
- You should see your activity appear within 30 seconds
Method 2: GTM Preview Mode
- In Google Tag Manager, click Preview
- Enter your store URL and click Connect
- Browse your store and watch the debug panel
- Verify your GA4 tags are firing on the correct pages
Method 3: GA4 DebugView
- In GA4, go to Configure DebugView
- While in GTM Preview mode, browse your store
- Events should appear in DebugView in real-time
Method 4: Browser Developer Tools
- Open your store in Chrome or Firefox
- Press F12 to open Developer Tools
- Go to the Network tab
- Filter by "google-analytics" or "gtag"
- Reload the page and verify tracking requests are being sent
Data Layer & Advanced Tracking
The data layer is a JavaScript object that Pulse Commerce automatically sends to Google Tag Manager containing information about the current page, products, orders, and customer status.
What Pulse Commerce automatically includes:
- Page type (Product, Category, Shopping Cart, Order Confirmation, etc.)
- Product information (name, SKU, price, category, brand) on product pages
- Order details (order ID, revenue, tax, shipping, items) on order confirmation
- Customer information (first name, last name when logged in)
- Category name on category pages
- Cart quantity on shopping cart page
You can use this data layer information to create triggers and variables in GTM for tracking specific events and passing data to GA4.
For a complete list of available data layer variables, see our Data Layer Variable Reference.
Yes, you have several options depending on what data you need and your technical comfort level:
Option 1: Custom Events with Data Layer Push (Recommended)
If you have access to add custom JavaScript to your store, you can push custom events with additional data to the data layer:
dataLayer.push({
'event': 'customEvent',
'customVariable': 'customValue',
'anotherVariable': 'anotherValue'
});
Where to add custom data layer code:
- Order confirmation page: Content Message Editor Custom Message on Order Confirmation Page
- Other pages: Contact support for assistance with header/footer code injection
How this works:
- You push custom data to the data layer with JavaScript
- Create a Custom Event trigger in GTM that fires when your event is pushed
- Create variables in GTM to capture your custom data
- Use those variables in your tags
Option 2: GTM Built-In Variables
For many use cases, you don't need custom data layer variables. GTM includes built-in variables for:
- Click information (element, text, URL, classes, ID)
- Form data (form classes, form ID, form target, form text)
- Scroll depth (scroll depth threshold, scroll depth units)
- Video interactions (video status, video percent, video URL)
- Page information (page URL, page hostname, page path, referrer)
Enable these in GTM by going to Variables Built-In Variables Configure.
Option 3: Custom JavaScript Variables in GTM
You can create variables in GTM that calculate or derive new values from existing data layer variables without modifying your store's code:
- Combine multiple data layer values
- Transform data formats (e.g., convert price strings to numbers)
- Create conditional logic based on existing variables
Option 4: Request Core Data Layer Enhancement
For system-level data that Pulse Commerce doesn't currently expose (like customer segments, product stock levels, loyalty points, etc.), contact support to discuss whether new variables can be added to the core data layer that all merchants would benefit from.
No, Pulse Commerce does not automatically send "add to cart" click events to the data layer.
Pulse Commerce sends page-level data (what page you're on, what products are being viewed), but not action-level events like button clicks.
What IS automatically tracked:
- Product page views (when pageType = "Product")
- Shopping cart views (when pageType = "Shopping Cart")
- Checkout initiation (when pageType = "Order Review")
- Purchases (when pageType = "Order Confirmation")
To track add-to-cart clicks, you would need to:
- Create click triggers in GTM that identify "Add to Cart" buttons
- Configure these triggers to work across different page types (homepage, category pages, product pages)
- This is technically complex because the button behavior varies by page type
This is covered in more detail in the "Advanced: Tracking Add to Cart Events" section of our GA4 Setup Guide.
Conversion & E-commerce Tracking
Common causes and solutions:
1. Purchase event not configured
- Verify you've created a GA4 Event tag for the "purchase" event in GTM
- Check that the tag fires on order confirmation pages (pageType = "Order Confirmation")
- Test using GTM Preview mode on a test order
2. Event not marked as conversion
- In GA4, go to Configure Conversions
- Check if "purchase" appears in the list
- If not, go to Configure Events, find "purchase", and toggle "Mark as conversion"
3. Timing issue
- Standard reports take 24-48 hours to populate
- Check Reports Realtime immediately after a test purchase
- Check Configure DebugView if using GTM Preview mode
4. GTM not published
- Make sure you clicked Submit and Publish in GTM
- Preview mode doesn't send live data
5. Multiple GTM containers causing conflicts
- Check if you have duplicate GTM containers on your site
- Remove any manually added GTM code
If some e-commerce events are tracking but others aren't, check these common issues:
1. Missing event parameters
- Verify your purchase event tag includes all required parameters: transaction_id, value, tax, shipping, items
- Check that you've created the necessary data layer variables in GTM
- Use DebugView to verify parameter values are being sent
2. Incorrect data layer variable names
- Variable names must exactly match what Pulse Commerce sends
- Example:
ecommerce.purchase.actionField.revenue(not "orderTotal" or "revenue") - See our Data Layer Variable Reference for exact names
3. Triggers firing on wrong pages
- Verify triggers are checking for the correct pageType values
- Use GTM Preview mode to confirm triggers activate on intended pages only
4. Product data not passing through
- For product views: Check
ecommerce.detail.productsis being used - For purchases: Check
ecommerce.purchase.productsis being used - These are different variables for different page types
Yes! GA4 automatically tracks revenue by traffic source when your purchase event is properly configured.
What you'll see in GA4:
- Revenue by source/medium (Google, Facebook, email, direct, etc.)
- Revenue by campaign (if using UTM parameters)
- Revenue by landing page
- Revenue by device type
To attribute revenue to specific campaigns:
- Use UTM parameters in your marketing URLs:
- utm_source (e.g., "facebook", "google", "newsletter")
- utm_medium (e.g., "cpc", "email", "social")
- utm_campaign (e.g., "spring_sale", "black_friday")
- GA4 will automatically associate purchases with the campaign that drove the visit
- View this data in Reports Acquisition Traffic Acquisition
For Google Ads specifically:
- Link your GA4 property to Google Ads
- Import GA4 conversions into Google Ads
- Revenue data will automatically sync between platforms
Technical Troubleshooting
Google Analytics and GTM can impact page load times, but it's usually not significant unless misconfigured.
Common causes of analytics-related slowness:
1. Multiple tracking codes
- Having multiple GTM containers or duplicate tracking codes
- Solution: Consolidate to a single GTM container
2. Too many tags in GTM
- Having dozens of tags all firing on every page
- Solution: Use specific triggers instead of "All Pages" where possible
3. Synchronous loading
- Old analytics.js code loaded synchronously in page head
- Solution: Use GTM, which loads asynchronously by default
4. Heavy custom JavaScript in GTM
- Complex custom HTML tags with heavy scripts
- Solution: Review and optimize custom tags
To diagnose:
- Use Chrome DevTools Network tab to see which scripts are slowest
- Use Google PageSpeed Insights to identify specific issues
- Temporarily disable GTM to see if load times improve
Tag Assistant errors indicate issues with your GTM implementation. Common errors and solutions:
"No HTTP response detected"
- Cause: Tag is trying to fire but getting blocked or timing out
- Solution: Check that the destination URL is correct and accessible
"Tag fired but request failed"
- Cause: Tag fired but couldn't complete the tracking request
- Solution: Verify configuration settings (Measurement ID for GA4, conversion ID for Google Ads, etc.)
"Variable not defined"
- Cause: Tag is referencing a variable that doesn't exist
- Solution: Create the missing variable or check for typos in variable names
"Multiple installations of Google Analytics"
- Cause: GA4 code is installed multiple times (multiple GTM containers or hard-coded GA4 + GTM)
- Solution: Remove duplicate tracking code
To investigate errors:
- Click the error in GTM Preview mode
- Review the detailed error message and stack trace
- Check the tag configuration for the specific issue mentioned
- Test again after making corrections
There are several ways to view what data is being sent to the data layer:
Method 1: GTM Preview Mode (Best)
- In GTM, click Preview
- Enter your store URL and click Connect
- Browse your store normally
- In the debug panel, click on any event
- Click the Data Layer tab
- You'll see all variables and their current values
Method 2: Browser Console
- Open your store in Chrome or Firefox
- Press F12 to open Developer Tools
- Go to the Console tab
- Type
dataLayerand press Enter - Click the arrow to expand and view all data layer pushes
Method 3: DataLayer Checker Chrome Extension
- Install the "dataLayer Checker" extension from Chrome Web Store
- Browse your store
- Click the extension icon to see formatted data layer contents
Access & Permissions
Best practice recommendations:
Google Analytics 4:
- Administrator: Business owner, IT director (full control)
- Editor: Marketing team members who need to configure reports and explorations
- Analyst: Team members who only need to view reports
- Viewer: Stakeholders who need read-only access
Google Tag Manager:
- Administrator: 1-2 key people (can manage users and publish changes)
- Approve: Marketing manager or technical lead (can create tags but not publish)
- Publish: Be very selective - publishing bad tags can break tracking
- Read: Team members who need to reference implementation
Security recommendations:
- Don't share login credentials - add users individually through Google's sharing features
- Use a company Google Account for the primary owner (not a personal email)
- Regularly review and remove access for former team members
- Use two-factor authentication on accounts with Admin or Publish rights
If you've lost access to your GA4 property:
1. Check if you're using the correct Google Account
- You might be signed in with a personal Gmail instead of your company account
- Sign out and sign back in with the correct account
2. Ask a current administrator to add you
- Another team member with Admin access can invite you
- They can do this in GA4 under Admin > Property > Access Management
3. If no one has access anymore
- Check if the property is in a Google Analytics 360 account (enterprise) - contact your Google account manager
- If it's a standard GA4 property and the original owner left the company, you may need to create a new property
- Historical data cannot be recovered if all admins have been removed
4. Prevent this in the future
- Always have at least 2-3 administrators
- Use a shared company Google Account as the primary owner
- Document who has access in a secure location
Related Articles
- Setting Up Google Analytics 4 with Google Tag Manager
- Pulse Commerce Data Layer Variable Reference
- Google Analytics 4 Help Center
- Google Tag Manager Help Center
Still Need Help?
If your question isn't answered here, contact Pulse Commerce support through Help Menu > Request Support in your admin panel. Include specific details about your issue, error messages, and steps you've already tried.