Google Tag Manager purchase Data Layer codes.
These codes is using for doing the purchase data layer.
We can put it at settings > Checkout > Additional scripts
<script>{% if first_time_accessed %} window.dataLayer.push({ 'page_type': 'purchase', 'event': 'purchase', /* create a custom event in GTM */ 'transaction_id': '{{ order.name || order.order_number }}', 'totalValue': {{ total_price | money_without_currency | remove:',' }}, // Includes tax & shipping 'subtotalValue': {{ subtotal_price | money_without_currency | remove:',' }}, 'tax': {{ tax_price | money_without_currency | remove:',' }}, 'shipping': {{ shipping_price | money_without_currency | remove:',' }}, 'currency': '{{ shop.currency }}', 'payment_type': '{{ order.transactions[0].gateway }}', //optional parameter 'ecommerce': { 'checkout_currency': '{{ checkout.currency }}', 'value': '{{ checkout.total_price | money_without_currency | remove:',' }}', // order total (price of all products + shipping) 'tax': '{{ checkout.tax_price | money_without_currency | remove:',' }}', // tax 'shipping':'{{ checkout.shipping_price | money_without_currency | remove:',' }}', // shipping costs 'transaction_id': '{{ transactions[0].id }}', // transaction id 'items': [ {% for line_item in line_items %} { 'item_name': '{{ line_item.product.title | replace: "'","##@@singleinvertedcomma@@##" }}'.replace("##@@singleinvertedcomma@@##", "'"), 'item_id': '{{ line_item.sku || line_item.product.id }}', 'price': {{ line_item.final_price | money_without_currency | remove:',' }}, 'item_brand': '{{ line_item.vendor }}', 'quantity': {{ line_item.quantity }}, 'item_variant': '{{ line_item.variant.title }}' }, {% endfor %} ] } }); {% endif %} </script>
The codes above are using with the Google Tag Manager codes below:
<!-- 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- ');</script>
<!-- End Google Tag Manager -->
Meaning that we can put it all together at settings > Checkout > Additional scripts as detailed below:
<script>{% if first_time_accessed %} window.dataLayer.push({ 'page_type': 'purchase', 'event': 'purchase', /* create a custom event in GTM */ 'transaction_id': '{{ order.name || order.order_number }}', 'totalValue': {{ total_price | money_without_currency | remove:',' }}, // Includes tax & shipping 'subtotalValue': {{ subtotal_price | money_without_currency | remove:',' }}, 'tax': {{ tax_price | money_without_currency | remove:',' }}, 'shipping': {{ shipping_price | money_without_currency | remove:',' }}, 'currency': '{{ shop.currency }}', 'payment_type': '{{ order.transactions[0].gateway }}', //optional parameter 'ecommerce': { 'checkout_currency': '{{ checkout.currency }}', 'value': '{{ checkout.total_price | money_without_currency | remove:',' }}', // order total (price of all products + shipping) 'tax': '{{ checkout.tax_price | money_without_currency | remove:',' }}', // tax 'shipping':'{{ checkout.shipping_price | money_without_currency | remove:',' }}', // shipping costs 'transaction_id': '{{ transactions[0].id }}', // transaction id 'items': [ {% for line_item in line_items %} { 'item_name': '{{ line_item.product.title | replace: "'","##@@singleinvertedcomma@@##" }}'.replace("##@@singleinvertedcomma@@##", "'"), 'item_id': '{{ line_item.sku || line_item.product.id }}', 'price': {{ line_item.final_price | money_without_currency | remove:',' }}, 'item_brand': '{{ line_item.vendor }}', 'quantity': {{ line_item.quantity }}, 'item_variant': '{{ line_item.variant.title }}' }, {% endfor %} ] } }); {% endif %} </script>
<!-- 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- ');</script><!-- End Google Tag Manager -->
Create a new variable.
![](https://cdn.shopify.com/s/files/1/0921/2460/files/Google_Analytic_4_GA4_Screenshot_2023-07-17_123540_480x480.png?v=1689572293)
Rename a new variable.
![](https://cdn.shopify.com/s/files/1/0921/2460/files/Google_Analytic_4_GA4_Screenshot_2023-07-17_123420_480x480.png?v=1689572347)
Create Data Layer variables
Datalayer Variable Name: | Rename the Variable |
---|---|
user_id | “dlv – customer – id – Variable” |
customer.lastOrder | “dlv – customer – lastOrder – Variable” |
customer.orderCount | “dlv – customer – orderCount – Variable” |
customer.tags | “dlv – customer – tags – Variable” |
customer.totalSpent | “dlv – customer – totalSpent – Variable” |
customer.userType | “dlv – customer – userType – Variable” |
event | “dlv – event – Variable” |
![](https://cdn.shopify.com/s/files/1/0921/2460/files/Google_Analytic_4_GA4_Screenshot_2023-07-17_124716_480x480.png?v=1689572922)
Create Tags:
Property Name | Value |
---|---|
customer_id | {{dlv – customer – id – Variable}} |
last_order | {{dlv – customer – last order – Variable}} |
order_count | {{dlv – customer – order count – Variable}} |
total_spent | {{dlv – customer – total spent – Variable}} |
user_type | {{dlv – customer – user type – Variable}} |
![Google Analytic 4 (GA4) Screenshot 2023-07-17 130229](https://cdn.shopify.com/s/files/1/0921/2460/files/Google_Analytic_4_GA4_Screenshot_2023-07-17_130229_480x480.png?v=1689573953)
Put the codes to product file:
<script> window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: 'view_item', ecommerce: { items: [{ item_name: '{{ product.title | replace: "'","##@@singleinvertedcomma@@##" }}'.replace("##@@singleinvertedcomma@@##", "'"), item_id: "{% if product.sku %}{{ product.sku }}{% else %}{{ product.id}}{% endif %}", price: "{{ product.price | money_without_currency | remove:',' }}", item_brand: "{{ product.vendor | remove: "'" | remove: '"' }}", {% for collection in product.collections %} item_category{% unless forloop.index == 1 %}{{ forloop.index }}{% endunless %}: "{{ collection.title }}", {% endfor %} item_variant: "{{ product.selected_or_first_available_variant.title | remove: "'" | remove: '"' }}", quantity: '1' }] } }); </script>
![Google Analytic 4 (GA4) Google Tag Manager Screenshot 2023-07-17 131252](https://cdn.shopify.com/s/files/1/0921/2460/files/Google_Analytic_4_GA4_Google_Tag_Manager_Screenshot_2023-07-17_131252_eb2eb212-4eee-433c-94cb-3a6f0cb23358_480x480.png?v=1689574695)
Create Trigger:
![Google Tag Manager](https://cdn.shopify.com/s/files/1/0921/2460/files/Google_Analytic_4_GA4_Google_Tag_Manager_Screenshot_2023-07-17_133028_480x480.png?v=1689575491)
Create Tag:
![](https://cdn.shopify.com/s/files/1/0921/2460/files/Google_Tag_Manager_Screenshot_2023-07-17_133844_480x480.png?v=1689575985)
JadeCommerce.center can set up Google Analytic 4 (GA4) and Google Tag Manager based on our knowledge and other documents from Google's manuals and other websites manuals as you want.
LINE ID: @jadecommerce (has @)
The Google Tag Manager purchase Data Layer codes above are from the manual at the website below:
https://www.e2msolutions.com/blog/set-up-ga4-ecommerce-tracking-shopify/