composer require stefandoorn/sylius-google-tag-manager-enhanced-ecommerce-plugin
https://github.com/stefandoorn/google-tag-manager-plugin
Add to the bundle list:
new StefanDoorn\SyliusGtmEnhancedEcommercePlugin\SyliusGtmEnhancedEcommercePlugin(),
Configure the features you would like to use/not. Find a base configuration reference by running:
bin/console config:dump-reference SyliusGtmEnhancedEcommercePlugin
bin/console assets:install
bin/console sylius:install:assets
bin/console sylius:theme:assets:install
By default all features are enabled.
Each feature has it's own specific documentation.
- purchases: Send purchases to GTM.
- product_impressions: Send impressions on product listings to GTM
- product_detail_impressions: Send impression on product detail pages to GTM
- product_clicks: Send click events on product links to GTM
- cart: Send add to cart / remove from cart events to GTM
- checkout: Send checkout steps & selected options to GTM
Make sure to check that the required 'sonata_block_render_events' template events are available. Check the
src/Resources/config/features/*.yml
& src/Resources/config/services.yml
for the definitions.
This is only to be checked if you've been overriding templates yourselves.
You can find a GTM container fully configured that work with the test application in docs/GTM-EXAMPLE.json
.
This file can be imported to easily configure your container
It will add thoses tags and triggers
You will have to replace the UA-111111111-1 by your own Universal Analytics ID
promotion_impressions
: https://developers.google.com/tag-manager/enhanced-ecommerce#promo-impressionspromotion_clicks
: https://developers.google.com/tag-manager/enhanced-ecommerce#promo-clicksrefunds
: https://developers.google.com/tag-manager/enhanced-ecommerce#refunds
It might be that your data resolvers give a performance hit, e.g. on the product show page.
There are decorators available that allow you to cache the results for a set time in order. Take a look
at the service definitions in cache_services.yml
& the default configuration on how to enable this setting.