TagifyPro Implementation Guide
Follow these steps to implement your tracking container properly
Setting Up Your Container
- Download your GTM container from the dashboard.
- Log in to Google Tag Manager at https://tagmanager.google.com.
- Navigate to Admin > Import Container in your Google Tag Manager account.
- Upload the JSON file that you downloaded from TagifyPro.
- Select "Merge" and "Overwrite conflicting tags" to ensure all your tracking is set up correctly.
- Preview and test your container to ensure all tags are firing correctly.
- Publish your container once you've confirmed everything is working.
Platform-Specific Setup
Implementing on Shopify
Need help with Shopify implementation?Login to chat with support →
- Add GTM to your Shopify theme:
Go to Online Store → Themes → Current theme → Actions → Edit code
Open
theme.liquid
and paste the GTM code just after the opening <body> tag<!-- 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-XXXX');</script> <!-- End Google Tag Manager -->
Replace GTM-XXXX with your container ID from your TagifyPro dashboard.
- Add the dataLayer events:
For product pages (in product-template.liquid)
<script> window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'view_item', 'ecommerce': { 'items': [{ 'item_id': '{{ product.id }}', 'item_name': '{{ product.title | replace: "'", "\'" }}', 'price': {{ product.price | divided_by: 100.0 }}, 'item_category': '{{ product.type | replace: "'", "\'" }}' }] } }); </script>
For add to cart (in cart.liquid)
<script> window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'add_to_cart', 'ecommerce': { 'items': [ {% for item in cart.items %} { 'item_id': '{{ item.product_id }}', 'item_name': '{{ item.product.title | replace: "'", "\'" }}', 'price': {{ item.price | divided_by: 100.0 }}, 'quantity': {{ item.quantity }} }{% unless forloop.last %},{% endunless %} {% endfor %} ] } }); </script>
For checkout (in checkout.liquid)
You'll need Shopify Plus for this, or you can use our checkout extension.
DataLayer Events Reference
For proper tracking, you need to implement the following dataLayer events:
view_item (Product View)
dataLayer.push({ event: 'view_item', ecommerce: { items: [{ item_id: 'PRODUCT_ID', item_name: 'PRODUCT_NAME', price: PRICE, item_category: 'CATEGORY' }] } });
add_to_cart
dataLayer.push({ event: 'add_to_cart', ecommerce: { items: [{ item_id: 'PRODUCT_ID', item_name: 'PRODUCT_NAME', price: PRICE, quantity: QUANTITY, item_category: 'CATEGORY' }] } });
begin_checkout
dataLayer.push({ event: 'begin_checkout', ecommerce: { items: [ // Array of all cart items { item_id: 'PRODUCT_ID', item_name: 'PRODUCT_NAME', price: PRICE, quantity: QUANTITY } ] } });
purchase
dataLayer.push({ event: 'purchase', ecommerce: { transaction_id: 'ORDER_ID', value: TOTAL_VALUE, tax: TAX_VALUE, shipping: SHIPPING_VALUE, currency: 'USD', items: [ // Array of all purchased items { item_id: 'PRODUCT_ID', item_name: 'PRODUCT_NAME', price: PRICE, quantity: QUANTITY } ] } });
Troubleshooting
Tags Not Firing
Common Issues
- Google Tag Manager code not implemented correctly
- Missing dataLayer events
- Triggers not matching event names
- Ad blockers or privacy tools blocking the tags
Solutions
- Check GTM Debug mode to see if tags are firing
- Verify dataLayer events in the browser console
- Check for JavaScript errors
- Verify your domain matches the license domain
License Validation Errors
Common Issues
- Using the container on a different domain than specified
- Expired subscription
- Modified container code
Solutions
- Verify your domain in the dashboard matches your website
- Renew your subscription if expired
- Re-download and import the original container
Conversion Tracking Not Working
Common Issues
- Missing purchase event in dataLayer
- Incorrect format of ecommerce data
- Ad blockers preventing tracking
Solutions
- Verify purchase event is firing in GTM Debug mode
- Check dataLayer format matches the examples above
- Ensure all required fields are present (transaction_id, value, items)
Need Additional Help?
Our support team is available to help you with any implementation issues. Get instant help through our chat system or contact us directly.
💡 Pro tip: Try our automated chat responses first - they can instantly help with common questions!