This plugin now supports both UA (deprecated by Google) & GA4. Not all GA4 features are already implemented.
The following migration guide has been used to move to GA4: https://support.google.com/analytics/answer/10119380?hl=en
composer require stefandoorn/sylius-google-tag-manager-enhanced-ecommerce-plugin
https://github.com/stefandoorn/google-tag-manager-plugin
Add to bundles.php
:
StefanDoorn\SyliusGtmEnhancedEcommercePlugin\SyliusGtmEnhancedEcommercePlugin::class => ['all' => true],
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.
Features available:
For Universal Analytics (deprecated by Google):
- 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
For GA4:
References: https://support.google.com/analytics/answer/10119380?hl=en
add_to_cart
remove_from_cart
begin_checkout
purchase
Other features included in UA, but not in GA4, are Work In Progress.
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/UA/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.