From ac2ebf375c19afa32d2780ba0f68566e62526e84 Mon Sep 17 00:00:00 2001 From: Taha Rushain Date: Mon, 6 Jul 2020 01:38:40 +0500 Subject: [PATCH 1/5] Updated regex for gtag to accept measurement ID --- analytical/templatetags/google_analytics_gtag.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analytical/templatetags/google_analytics_gtag.py b/analytical/templatetags/google_analytics_gtag.py index ce9613a..38bfa49 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+$') +PROPERTY_ID_RE = re.compile(r'^UA-\d+-\d+$|^G-[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 From 1cdfb0ed0dcfcafefe4208283fad70058b3654ab Mon Sep 17 00:00:00 2001 From: Taha Rushain Date: Sun, 19 Jul 2020 01:49:38 +0500 Subject: [PATCH 3/5] Breaking long strings into multiple lines --- analytical/templatetags/google_analytics_gtag.py | 4 +++- analytical/tests/test_tag_google_analytics_gtag.py | 9 ++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/analytical/templatetags/google_analytics_gtag.py b/analytical/templatetags/google_analytics_gtag.py index 57eafe7..02ab34e 100644 --- a/analytical/templatetags/google_analytics_gtag.py +++ b/analytical/templatetags/google_analytics_gtag.py @@ -52,7 +52,9 @@ class GoogleAnalyticsGTagNode(Node): def __init__(self): self.property_id = get_required_setting( 'GOOGLE_ANALYTICS_GTAG_PROPERTY_ID', PROPERTY_ID_RE, - "must be a string looking like one of these patterns ('UA-XXXXXX-Y' , 'AW-XXXXXXXXXX', 'G-XXXXXXXX', 'DC-XXXXXXXX')") + '''must be a string looking like one of these patterns + ('UA-XXXXXX-Y' , 'AW-XXXXXXXXXX', + 'G-XXXXXXXX', 'DC-XXXXXXXX')''') def render(self, context): other_fields = {} diff --git a/analytical/tests/test_tag_google_analytics_gtag.py b/analytical/tests/test_tag_google_analytics_gtag.py index d95f8c0..97cf0ad 100644 --- a/analytical/tests/test_tag_google_analytics_gtag.py +++ b/analytical/tests/test_tag_google_analytics_gtag.py @@ -61,7 +61,8 @@ class GoogleAnalyticsTagTestCase(TagTestCase): def test_tag_with_measurement_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', 'G-12345678');" in r, r) @@ -70,7 +71,8 @@ class GoogleAnalyticsTagTestCase(TagTestCase): 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) @@ -79,7 +81,8 @@ class GoogleAnalyticsTagTestCase(TagTestCase): 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 From d98e815493545431b9f0d6afc1b970a2b84abc9d Mon Sep 17 00:00:00 2001 From: Taha Rushain Date: Sun, 19 Jul 2020 01:57:56 +0500 Subject: [PATCH 4/5] Breaking long strings into multiple lines --- analytical/templatetags/google_analytics_gtag.py | 4 ++-- .../tests/test_tag_google_analytics_gtag.py | 15 ++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/analytical/templatetags/google_analytics_gtag.py b/analytical/templatetags/google_analytics_gtag.py index 02ab34e..93154b9 100644 --- a/analytical/templatetags/google_analytics_gtag.py +++ b/analytical/templatetags/google_analytics_gtag.py @@ -52,8 +52,8 @@ class GoogleAnalyticsGTagNode(Node): def __init__(self): self.property_id = get_required_setting( 'GOOGLE_ANALYTICS_GTAG_PROPERTY_ID', PROPERTY_ID_RE, - '''must be a string looking like one of these patterns - ('UA-XXXXXX-Y' , 'AW-XXXXXXXXXX', + '''must be a string looking like one of these patterns + ('UA-XXXXXX-Y' , 'AW-XXXXXXXXXX', 'G-XXXXXXXX', 'DC-XXXXXXXX')''') def render(self, context): diff --git a/analytical/tests/test_tag_google_analytics_gtag.py b/analytical/tests/test_tag_google_analytics_gtag.py index 97cf0ad..514efca 100644 --- a/analytical/tests/test_tag_google_analytics_gtag.py +++ b/analytical/tests/test_tag_google_analytics_gtag.py @@ -61,8 +61,8 @@ class GoogleAnalyticsTagTestCase(TagTestCase): def test_tag_with_measurement_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', 'G-12345678');" in r, r) @@ -71,8 +71,8 @@ class GoogleAnalyticsTagTestCase(TagTestCase): 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) @@ -81,8 +81,9 @@ class GoogleAnalyticsTagTestCase(TagTestCase): 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 + self.assertTrue("gtag('config', 'DC-12345678');" in r, r) + From ee956230ead9595524d341430998534296e2a814 Mon Sep 17 00:00:00 2001 From: Taha Rushain Date: Sun, 19 Jul 2020 02:05:12 +0500 Subject: [PATCH 5/5] Breaking long strings into multiple lines --- analytical/tests/test_tag_google_analytics_gtag.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/analytical/tests/test_tag_google_analytics_gtag.py b/analytical/tests/test_tag_google_analytics_gtag.py index 514efca..1e5430c 100644 --- a/analytical/tests/test_tag_google_analytics_gtag.py +++ b/analytical/tests/test_tag_google_analytics_gtag.py @@ -62,7 +62,7 @@ class GoogleAnalyticsTagTestCase(TagTestCase): r = self.render_tag('google_analytics_gtag', 'google_analytics_gtag') self.assertTrue( ('') + 'js?id=G-12345678">') in r, r) self.assertTrue("gtag('js', new Date());" in r, r) self.assertTrue("gtag('config', 'G-12345678');" in r, r) @@ -72,7 +72,7 @@ class GoogleAnalyticsTagTestCase(TagTestCase): r = self.render_tag('google_analytics_gtag', 'google_analytics_gtag') self.assertTrue( ('') + 'js?id=AW-1234567890">') in r, r) self.assertTrue("gtag('js', new Date());" in r, r) self.assertTrue("gtag('config', 'AW-1234567890');" in r, r) @@ -82,8 +82,7 @@ class GoogleAnalyticsTagTestCase(TagTestCase): r = self.render_tag('google_analytics_gtag', 'google_analytics_gtag') self.assertTrue( ('') + 'js?id=DC-12345678">') in r, r) self.assertTrue("gtag('js', new Date());" in r, r) self.assertTrue("gtag('config', 'DC-12345678');" in r, r) -