From 3292b664ecac5135acf3e734b209eba89ac4117b Mon Sep 17 00:00:00 2001 From: Taha Rushain Date: Fri, 17 Jul 2020 19:24:51 +0500 Subject: [PATCH] Updated Gtag implementation for mutiple id patterns --- .../templatetags/google_analytics_gtag.py | 4 +-- .../tests/test_tag_google_analytics_gtag.py | 27 +++++++++++++++++++ docs/services/google_analytics_gtag.rst | 6 +++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/analytical/templatetags/google_analytics_gtag.py b/analytical/templatetags/google_analytics_gtag.py index 38bfa49..57eafe7 100644 --- a/analytical/templatetags/google_analytics_gtag.py +++ b/analytical/templatetags/google_analytics_gtag.py @@ -15,7 +15,7 @@ from analytical.utils import ( is_internal_ip, ) -PROPERTY_ID_RE = re.compile(r'^UA-\d+-\d+$|^G-[a-zA-Z0-9]+$') +PROPERTY_ID_RE = re.compile(r'^UA-\d+-\d+$|^G-[a-zA-Z0-9]+$|^AW-[a-zA-Z0-9]+$|^DC-[a-zA-Z0-9]+$') SETUP_CODE = """ ' + in r, r) + self.assertTrue("gtag('js', new Date());" in r, r) + self.assertTrue("gtag('config', 'G-12345678');" in r, r) + + @override_settings(GOOGLE_ANALYTICS_GTAG_PROPERTY_ID='AW-1234567890') + def test_tag_with_conversion_id(self): + r = self.render_tag('google_analytics_gtag', 'google_analytics_gtag') + self.assertTrue( + '' + in r, r) + self.assertTrue("gtag('js', new Date());" in r, r) + self.assertTrue("gtag('config', 'AW-1234567890');" in r, r) + + @override_settings(GOOGLE_ANALYTICS_GTAG_PROPERTY_ID='DC-12345678') + def test_tag_with_advertiser_id(self): + r = self.render_tag('google_analytics_gtag', 'google_analytics_gtag') + self.assertTrue( + '' + in r, r) + self.assertTrue("gtag('js', new Date());" in r, r) + self.assertTrue("gtag('config', 'DC-12345678');" in r, r) \ No newline at end of file diff --git a/docs/services/google_analytics_gtag.rst b/docs/services/google_analytics_gtag.rst index 5a96a8b..29b4941 100644 --- a/docs/services/google_analytics_gtag.rst +++ b/docs/services/google_analytics_gtag.rst @@ -69,6 +69,12 @@ project :file:`settings.py` file:: If you do not set a property ID, the tracking code will not be rendered. +Please node that the accepted Property IDs should be one of the following formats: + +- 'UA-XXXXXX-Y' +- 'AW-XXXXXXXXXX' +- 'G-XXXXXXXX' +- 'DC-XXXXXXXX' Internal IP addresses