diff --git a/analytical/templatetags/google_analytics_gtag.py b/analytical/templatetags/google_analytics_gtag.py index 319010b..07c5a00 100644 --- a/analytical/templatetags/google_analytics_gtag.py +++ b/analytical/templatetags/google_analytics_gtag.py @@ -58,7 +58,7 @@ class GoogleAnalyticsGTagNode(Node): ) def render(self, context): - custom_dimensions = {} + custom_dimensions = context.get('google_analytics_custom_dimensions', {}) identity = get_identity(context, prefix='google_analytics_gtag') if identity is not None: diff --git a/tests/unit/test_tag_google_analytics_gtag.py b/tests/unit/test_tag_google_analytics_gtag.py index de66252..1d7eefb 100644 --- a/tests/unit/test_tag_google_analytics_gtag.py +++ b/tests/unit/test_tag_google_analytics_gtag.py @@ -119,3 +119,34 @@ class GoogleAnalyticsTagTestCase(TagTestCase): ) in r assert "gtag('js', new Date());" in r assert "gtag('config', 'DC-12345678', {});" in r + + def test_tag_with_custom_dimensions(self): + r = GoogleAnalyticsGTagNode().render(Context({ + 'google_analytics_custom_dimensions': { + "dimension_1": "foo", + "dimension_2": "bar", + "user_properties": { + "user_property_1": True, + "user_property_2": "xyz", + } + }, + })) + assert "gtag('config', 'UA-123456-7', {" \ + "\"dimension_1\": \"foo\", " \ + "\"dimension_2\": \"bar\", " \ + "\"user_properties\": {" \ + "\"user_property_1\": true, " \ + "\"user_property_2\": \"xyz\"}});" in r + + def test_tag_with_identity_and_custom_dimensions(self): + r = GoogleAnalyticsGTagNode().render(Context({ + 'google_analytics_gtag_identity': 'foo_gtag_identity', + 'google_analytics_custom_dimensions': { + "dimension_1": "foo", + "dimension_2": "bar", + }, + })) + assert "gtag('config', 'UA-123456-7', {" \ + "\"dimension_1\": \"foo\", " \ + "\"dimension_2\": \"bar\", " \ + "\"user_id\": \"foo_gtag_identity\"});" in r