Back to the webshop
Guides and articles / Diverse funktioner og muligheder / dataLayer i din hjemmeside/webshop

dataLayer i din hjemmeside/webshop



dataLayer er et javascript objekt som typisk indeholder informationer om den aktuelle side som en besøgende kigger på.

Ønsker du at bruge dataLayer i din hjemmeside/webshop hos ideal.shop skal du altså blot definere objektet.

<script>
window.dataLayer = window.dataLayer || [];
</script>
Ønsker du at indsætte relevante data i variablen kan det gøres via _saas_site_event. Her er et eksempel som du kan kopiere og indsætte i <head> og som vil gemme en lang række data og hændelser i dataLayer objektet:

<script>
window.dataLayer = window.dataLayer || [];

window.addEventListener('_saas_site_event', function(event){
	var detail = event.detail;
	if(detail.type === 'page_view')
	{
		dataLayer.push({
			'event': 'Pageview',
			'pagePath': window.location,
			'pageTitle': document.title,
			'visitorType': 'customer'
		});
	}
	else if(detail.type === 'view_content' && !detail.has_variants)
	{
		// Item page
		dataLayer.push({
			'event': 'ViewContent',
			'product_id': detail.id_for_stats,
			'value': detail.value,
			'content_name': detail.title_full,
			'currency': detail.currency,
			'language': (document.querySelector('meta[property="og:locale"]') ? document.querySelector('meta[property="og:locale"]').content : '')
		});
	}
	else if(detail.type === 'search')
	{
		// Search
		dataLayer.push({
			'event': 'Search',
			'query': detail.search_string,
			'language': (document.querySelector('meta[property="og:locale"]') ? document.querySelector('meta[property="og:locale"]').content : '')
		});
	}
	else if(detail.type === 'add_to_basket')
	{
		// Add to basket
		dataLayer.push({
			'event': 'AddToCart',
			'product_ids': [detail.id_for_stats],
			'content_name': detail.title_full,
			'value': detail.value,
			'quantity': detail.quantity,
			'currency': detail.currency,
			'language': (document.querySelector('meta[property="og:locale"]') ? document.querySelector('meta[property="og:locale"]').content : '')
		});
	}
	else if(detail.type === 'checkout-customer-info')
	{
		// First page of basket checkout
		var item_ids = [];
		for(let i=0; i<detail.basket_data.items.length;i++)
		{
			item_ids.push(detail.basket_data.items[i].id_for_stats);
		}
		dataLayer.push({
			'event': 'InitiateCheckout',
			'product_ids': item_ids,
			'price_items': detail.basket_data.sums.items_price_total_after_discount_with_vat,
			'price_order': detail.basket_data.sums.price_total_with_vat,
			'quantity': detail.basket_data.sums.items_total,
			'currency': detail.basket_data.currency,
			'language': (document.querySelector('meta[property="og:locale"]') ? document.querySelector('meta[property="og:locale"]').content : '')
		});
	}
	else if(detail.type === 'order_complete')
	{
		// Order complete/paid
		var item_ids = [];
		var items_quantity = 0;
		for(let i=0; i<detail.items.length;i++)
		{
			item_ids.push(detail.items[i].id_for_stats);
			items_quantity += detail.items[i].quantity;
		}
		dataLayer.push({
			'event': 'Purchase',
			'product_ids': item_ids,
			'price_items': detail.total_for_items_with_vat,
			'price_order': detail.total_with_vat,
			'quantity': items_quantity,
			'customer_email': detail.customer.email,
			'customer_email_sha256': detail.customer.email_sha256,
			'customer_phone': detail.customer.phone,
			'customer_data': detail.customer,
			'delivery_data': detail.receiver,
			'currency': detail.currency,
			'language': (document.querySelector('meta[property="og:locale"]') ? document.querySelector('meta[property="og:locale"]').content : '')
		});
	}
});
</script>
Det anbefales at indsætte ovenstående javascript koder i <head>. Det gøres ved at søge efter "javascript" og gå til "Indsæt egen HTML/CSS/JS kode".

Copyright © 2022 ideal.shop. All Rights Reserved.