From 8fc076577de7841aea6c65bd1c2432e976952ae6 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 3 Nov 2021 18:00:45 +0100 Subject: [PATCH 1/2] [ADD] website_sale_google_tag_manager: New module TT32803 --- .../addons/website_sale_google_tag_manager | 1 + .../website_sale_google_tag_manager/setup.py | 6 + website_sale_google_tag_manager/README.rst | 104 ++++ website_sale_google_tag_manager/__init__.py | 3 + .../__manifest__.py | 15 + .../i18n/website_sale_google_tag_manager.pot | 39 ++ .../models/__init__.py | 2 + .../models/res_config_settings.py | 11 + .../models/website.py | 14 + .../readme/CONFIGURE.rst | 24 + .../readme/CONTRIBUTORS.rst | 3 + .../readme/DESCRIPTION.rst | 2 + .../static/description/icon.png | Bin 0 -> 759 bytes .../static/description/index.html | 451 ++++++++++++++++++ .../website_google_tag_manager.jpg | Bin 0 -> 27372 bytes .../views/res_config_settings_view.xml | 28 ++ .../views/website_templates.xml | 66 +++ 17 files changed, 769 insertions(+) create mode 120000 setup/website_sale_google_tag_manager/odoo/addons/website_sale_google_tag_manager create mode 100644 setup/website_sale_google_tag_manager/setup.py create mode 100644 website_sale_google_tag_manager/README.rst create mode 100644 website_sale_google_tag_manager/__init__.py create mode 100644 website_sale_google_tag_manager/__manifest__.py create mode 100644 website_sale_google_tag_manager/i18n/website_sale_google_tag_manager.pot create mode 100644 website_sale_google_tag_manager/models/__init__.py create mode 100644 website_sale_google_tag_manager/models/res_config_settings.py create mode 100644 website_sale_google_tag_manager/models/website.py create mode 100644 website_sale_google_tag_manager/readme/CONFIGURE.rst create mode 100644 website_sale_google_tag_manager/readme/CONTRIBUTORS.rst create mode 100644 website_sale_google_tag_manager/readme/DESCRIPTION.rst create mode 100644 website_sale_google_tag_manager/static/description/icon.png create mode 100644 website_sale_google_tag_manager/static/description/index.html create mode 100644 website_sale_google_tag_manager/static/description/website_google_tag_manager.jpg create mode 100644 website_sale_google_tag_manager/views/res_config_settings_view.xml create mode 100644 website_sale_google_tag_manager/views/website_templates.xml diff --git a/setup/website_sale_google_tag_manager/odoo/addons/website_sale_google_tag_manager b/setup/website_sale_google_tag_manager/odoo/addons/website_sale_google_tag_manager new file mode 120000 index 0000000000..d8176e4e7f --- /dev/null +++ b/setup/website_sale_google_tag_manager/odoo/addons/website_sale_google_tag_manager @@ -0,0 +1 @@ +../../../../website_sale_google_tag_manager \ No newline at end of file diff --git a/setup/website_sale_google_tag_manager/setup.py b/setup/website_sale_google_tag_manager/setup.py new file mode 100644 index 0000000000..28c57bb640 --- /dev/null +++ b/setup/website_sale_google_tag_manager/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) diff --git a/website_sale_google_tag_manager/README.rst b/website_sale_google_tag_manager/README.rst new file mode 100644 index 0000000000..76e378c359 --- /dev/null +++ b/website_sale_google_tag_manager/README.rst @@ -0,0 +1,104 @@ +======================================= +Google Tag Manager Enhanced Conversions +======================================= + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fe--commerce-lightgray.png?logo=github + :target: https://github.com/OCA/e-commerce/tree/13.0/website_sale_google_tag_manager + :alt: OCA/e-commerce +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/e-commerce-13-0/e-commerce-13-0-website_sale_google_tag_manager + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/113/13.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to configure your Odoo eCommerce to support the Google Tag Manager +Enhanced Conversions. Read more about them in this link: https://support.google.com/google-ads/answer/9888145?hl=en&ref_topic=3165803 + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module, you need to: + +#. Go to **Website > Configuration > Settings** +#. Search 'Google Tag Manager' option. +#. Fill in your 'Google Tag Manager Key' (e.g. 'GTM-ABCDEF'). +#. Set 'Enhanced Conversions' on. + +With it you can configure your GTM conversion scripts for ``/shop/confirmation`` +with the following xpath options: + +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='customer_email']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='customer_name']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_street']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_city']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_zip']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_region']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_country']`` + +Only if you have ``partner_firstname`` installed, you can also use: + +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='customer_firstname']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='customer_lastname']`` + +Otherwise you should figure out how to split ``customer_name`` in you js tag scripts. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `__: + + * David Vidal + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/e-commerce `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/website_sale_google_tag_manager/__init__.py b/website_sale_google_tag_manager/__init__.py new file mode 100644 index 0000000000..69f7babdfb --- /dev/null +++ b/website_sale_google_tag_manager/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import models diff --git a/website_sale_google_tag_manager/__manifest__.py b/website_sale_google_tag_manager/__manifest__.py new file mode 100644 index 0000000000..0c747c223c --- /dev/null +++ b/website_sale_google_tag_manager/__manifest__.py @@ -0,0 +1,15 @@ +# Copyright 2021 Tecnativa - David Vidal +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Google Tag Manager Enhanced Conversions", + "summary": "Add support for Google Tag Manager Enhanced Conversions", + "version": "13.0.1.0.0", + "author": "Tecnativa, Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "category": "eCommerce", + "website": "https://github.com/OCA/e-commerce", + "depends": ["website_sale", "website_google_tag_manager"], + "data": ["views/res_config_settings_view.xml", "views/website_templates.xml"], + "images": ["static/description/website_google_tag_manager.png"], +} diff --git a/website_sale_google_tag_manager/i18n/website_sale_google_tag_manager.pot b/website_sale_google_tag_manager/i18n/website_sale_google_tag_manager.pot new file mode 100644 index 0000000000..fa87b17f99 --- /dev/null +++ b/website_sale_google_tag_manager/i18n/website_sale_google_tag_manager.pot @@ -0,0 +1,39 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * website_sale_google_tag_manager +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: website_sale_google_tag_manager +#: model:ir.model,name:website_sale_google_tag_manager.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: website_sale_google_tag_manager +#: model:ir.model.fields,field_description:website_sale_google_tag_manager.field_res_config_settings__google_tag_manager_enhanced_conversions +#: model:ir.model.fields,field_description:website_sale_google_tag_manager.field_website__google_tag_manager_enhanced_conversions +msgid "Enhanced Conversions" +msgstr "" + +#. module: website_sale_google_tag_manager +#: model:ir.model.fields,help:website_sale_google_tag_manager.field_res_config_settings__google_tag_manager_enhanced_conversions +#: model:ir.model.fields,help:website_sale_google_tag_manager.field_website__google_tag_manager_enhanced_conversions +msgid "" +"This will provide the necessary data in the confirmation page that GTM needs" +" to gather in order to be able to use Enhanced Conversions. The template can" +" be edited if more info is needed in the future." +msgstr "" + +#. module: website_sale_google_tag_manager +#: model:ir.model,name:website_sale_google_tag_manager.model_website +msgid "Website" +msgstr "" diff --git a/website_sale_google_tag_manager/models/__init__.py b/website_sale_google_tag_manager/models/__init__.py new file mode 100644 index 0000000000..74b81abfff --- /dev/null +++ b/website_sale_google_tag_manager/models/__init__.py @@ -0,0 +1,2 @@ +from . import website +from . import res_config_settings diff --git a/website_sale_google_tag_manager/models/res_config_settings.py b/website_sale_google_tag_manager/models/res_config_settings.py new file mode 100644 index 0000000000..1c2c148b93 --- /dev/null +++ b/website_sale_google_tag_manager/models/res_config_settings.py @@ -0,0 +1,11 @@ +# Copyright 2021 Tecnativa - David Vidal +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + google_tag_manager_enhanced_conversions = fields.Boolean( + related="website_id.google_tag_manager_enhanced_conversions", readonly=False + ) diff --git a/website_sale_google_tag_manager/models/website.py b/website_sale_google_tag_manager/models/website.py new file mode 100644 index 0000000000..a1cfe3b9f0 --- /dev/null +++ b/website_sale_google_tag_manager/models/website.py @@ -0,0 +1,14 @@ +# Copyright 2021 Tecnativa - David Vidal +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class Website(models.Model): + _inherit = "website" + + google_tag_manager_enhanced_conversions = fields.Boolean( + string="Enhanced Conversions", + help="This will provide the necessary data in the confirmation page that GTM " + "needs to gather in order to be able to use Enhanced Conversions. The " + "template can be edited if more info is needed in the future.", + ) diff --git a/website_sale_google_tag_manager/readme/CONFIGURE.rst b/website_sale_google_tag_manager/readme/CONFIGURE.rst new file mode 100644 index 0000000000..2653f841de --- /dev/null +++ b/website_sale_google_tag_manager/readme/CONFIGURE.rst @@ -0,0 +1,24 @@ +To configure this module, you need to: + +#. Go to **Website > Configuration > Settings** +#. Search 'Google Tag Manager' option. +#. Fill in your 'Google Tag Manager Key' (e.g. 'GTM-ABCDEF'). +#. Set 'Enhanced Conversions' on. + +With it you can configure your GTM conversion scripts for ``/shop/confirmation`` +with the following xpath options: + +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='customer_email']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='customer_name']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_street']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_city']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_zip']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_region']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_country']`` + +Only if you have ``partner_firstname`` installed, you can also use: + +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='customer_firstname']`` +- ``//div[@id="gtm_enhanced_conversion_data"]/span[@name='customer_lastname']`` + +Otherwise you should figure out how to split ``customer_name`` in you js tag scripts. diff --git a/website_sale_google_tag_manager/readme/CONTRIBUTORS.rst b/website_sale_google_tag_manager/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..e5276b375e --- /dev/null +++ b/website_sale_google_tag_manager/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Tecnativa `__: + + * David Vidal diff --git a/website_sale_google_tag_manager/readme/DESCRIPTION.rst b/website_sale_google_tag_manager/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..23fb42edd0 --- /dev/null +++ b/website_sale_google_tag_manager/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module allows to configure your Odoo eCommerce to support the Google Tag Manager +Enhanced Conversions. Read more about them in this link: https://support.google.com/google-ads/answer/9888145?hl=en&ref_topic=3165803 diff --git a/website_sale_google_tag_manager/static/description/icon.png b/website_sale_google_tag_manager/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2dffdc61f0faa7a5270ddf8bc9fed62a7eb34ccc GIT binary patch literal 759 zcmVd1eQq+r1_9lf?j1a(%i3vTvXNh1gcNncKPRQh2$ z&S*#}VHbQ#)s^z`&}gLPXb#tTp5VDQ!Q&+XFCuB>ynK-Y7o-eajINx_l!WYzB$r}j zf`?r~Jzy@$XmwBtVefZHF2zWT>9^(lX`Vyvv<^}9PlzWySb9DIbJL?_QjCh}MNYX^ zh5A|J*1AgzX~;gAB#~l#t#ntnI>uJgNs8jr*D92LHAtjbSwwb{b5uX+T6gFB5s4IQ ztLvL`&M%q}M%{yK`M60U#pCwUSZby_8g$J p02qd07=~dOhG7_nx#wI7FaR~qY)x96KIs4e002ovPDHLkV1lN!VVeK| literal 0 HcmV?d00001 diff --git a/website_sale_google_tag_manager/static/description/index.html b/website_sale_google_tag_manager/static/description/index.html new file mode 100644 index 0000000000..8b77587658 --- /dev/null +++ b/website_sale_google_tag_manager/static/description/index.html @@ -0,0 +1,451 @@ + + + + + + +Google Tag Manager Enhanced Conversions + + + +
+

Google Tag Manager Enhanced Conversions

+ + +

Beta License: AGPL-3 OCA/e-commerce Translate me on Weblate Try me on Runbot

+

This module allows to configure your Odoo eCommerce to support the Google Tag Manager +Enhanced Conversions. Read more about them in this link: https://support.google.com/google-ads/answer/9888145?hl=en&ref_topic=3165803

+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to:

+
    +
  1. Go to Website > Configuration > Settings
  2. +
  3. Search ‘Google Tag Manager’ option.
  4. +
  5. Fill in your ‘Google Tag Manager Key’ (e.g. ‘GTM-ABCDEF’).
  6. +
  7. Set ‘Enhanced Conversions’ on.
  8. +
+

With it you can configure your GTM conversion scripts for /shop/confirmation +with the following xpath options:

+
    +
  • //div[@id="gtm_enhanced_conversion_data"]/span[@name='customer_email']
  • +
  • //div[@id="gtm_enhanced_conversion_data"]/span[@name='customer_name']
  • +
  • //div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_street']
  • +
  • //div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_city']
  • +
  • //div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_zip']
  • +
  • //div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_region']
  • +
  • //div[@id="gtm_enhanced_conversion_data"]/span[@name='shipping_country']
  • +
+

Only if you have partner_firstname installed, you can also use:

+
    +
  • //div[@id="gtm_enhanced_conversion_data"]/span[@name='customer_firstname']
  • +
  • //div[@id="gtm_enhanced_conversion_data"]/span[@name='customer_lastname']
  • +
+

Otherwise you should figure out how to split customer_name in you js tag scripts.

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/e-commerce project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/website_sale_google_tag_manager/static/description/website_google_tag_manager.jpg b/website_sale_google_tag_manager/static/description/website_google_tag_manager.jpg new file mode 100644 index 0000000000000000000000000000000000000000..06fed75ff71806e03b2524e472214e2a9ea5fd6f GIT binary patch literal 27372 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 + + + + res.config.settings + + + +
+
+
+
+
+
+
+
diff --git a/website_sale_google_tag_manager/views/website_templates.xml b/website_sale_google_tag_manager/views/website_templates.xml new file mode 100644 index 0000000000..4669a5bd0c --- /dev/null +++ b/website_sale_google_tag_manager/views/website_templates.xml @@ -0,0 +1,66 @@ + + + + From 2115b81cceffdda6f83890eb476995970cfac9fb Mon Sep 17 00:00:00 2001 From: pilarvargas-tecnativa Date: Fri, 3 Mar 2023 12:41:51 +0100 Subject: [PATCH 2/2] [MIG] website_sale_google_tag_manager: Migration to version 15.0 TT41120 --- website_sale_google_tag_manager/README.rst | 15 ++++++++------- website_sale_google_tag_manager/__manifest__.py | 2 +- .../readme/CONTRIBUTORS.rst | 1 + .../static/description/index.html | 9 +++++---- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/website_sale_google_tag_manager/README.rst b/website_sale_google_tag_manager/README.rst index 76e378c359..90ed9675a9 100644 --- a/website_sale_google_tag_manager/README.rst +++ b/website_sale_google_tag_manager/README.rst @@ -14,14 +14,14 @@ Google Tag Manager Enhanced Conversions :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fe--commerce-lightgray.png?logo=github - :target: https://github.com/OCA/e-commerce/tree/13.0/website_sale_google_tag_manager + :target: https://github.com/OCA/e-commerce/tree/15.0/website_sale_google_tag_manager :alt: OCA/e-commerce .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/e-commerce-13-0/e-commerce-13-0-website_sale_google_tag_manager + :target: https://translation.odoo-community.org/projects/e-commerce-15-0/e-commerce-15-0-website_sale_google_tag_manager :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/113/13.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/webui/builds.html?repo=OCA/e-commerce&target_branch=15.0 + :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -67,7 +67,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -85,6 +85,7 @@ Contributors * `Tecnativa `__: * David Vidal + * Pilar Vargas Maintainers ~~~~~~~~~~~ @@ -99,6 +100,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/e-commerce `_ project on GitHub. +This module is part of the `OCA/e-commerce `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/website_sale_google_tag_manager/__manifest__.py b/website_sale_google_tag_manager/__manifest__.py index 0c747c223c..62d139c641 100644 --- a/website_sale_google_tag_manager/__manifest__.py +++ b/website_sale_google_tag_manager/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Google Tag Manager Enhanced Conversions", "summary": "Add support for Google Tag Manager Enhanced Conversions", - "version": "13.0.1.0.0", + "version": "15.0.1.0.0", "author": "Tecnativa, Odoo Community Association (OCA)", "license": "AGPL-3", "installable": True, diff --git a/website_sale_google_tag_manager/readme/CONTRIBUTORS.rst b/website_sale_google_tag_manager/readme/CONTRIBUTORS.rst index e5276b375e..c99262ebf9 100644 --- a/website_sale_google_tag_manager/readme/CONTRIBUTORS.rst +++ b/website_sale_google_tag_manager/readme/CONTRIBUTORS.rst @@ -1,3 +1,4 @@ * `Tecnativa `__: * David Vidal + * Pilar Vargas diff --git a/website_sale_google_tag_manager/static/description/index.html b/website_sale_google_tag_manager/static/description/index.html index 8b77587658..07270bf9cc 100644 --- a/website_sale_google_tag_manager/static/description/index.html +++ b/website_sale_google_tag_manager/static/description/index.html @@ -3,7 +3,7 @@ - + Google Tag Manager Enhanced Conversions