workarea-google_tag_manager 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rubocop.yml +37 -0
- data/CHANGELOG.md +100 -0
- data/Gemfile +14 -0
- data/README.md +339 -0
- data/Rakefile +65 -0
- data/app/assets/javascripts/workarea/storefront/google_tag_manager/modules/adapter.js +233 -0
- data/app/views/workarea/storefront/google_tag_manager/_no_script.html.haml +3 -0
- data/app/views/workarea/storefront/google_tag_manager/_script.html.haml +3 -0
- data/bin/rails +18 -0
- data/config/initializers/appends.rb +16 -0
- data/config/initializers/workarea.rb +3 -0
- data/lib/workarea/google_tag_manager.rb +60 -0
- data/lib/workarea/google_tag_manager/engine.rb +8 -0
- data/lib/workarea/google_tag_manager/version.rb +5 -0
- data/script/admin_ci +9 -0
- data/script/ci +11 -0
- data/script/core_ci +9 -0
- data/script/plugins_ci +9 -0
- data/script/storefront_ci +9 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +34 -0
- data/test/dummy/bin/update +29 -0
- data/test/dummy/config.ru +5 -0
- data/test/dummy/config/application.rb +28 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/cable.yml +9 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +54 -0
- data/test/dummy/config/environments/production.rb +86 -0
- data/test/dummy/config/environments/test.rb +43 -0
- data/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/new_framework_defaults.rb +21 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/workarea.rb +5 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/puma.rb +47 -0
- data/test/dummy/config/routes.rb +5 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/config/spring.rb +6 -0
- data/test/dummy/lib/assets/.keep +0 -0
- data/test/dummy/log/.keep +0 -0
- data/test/javascripts/fixtures/payloads.js +231 -0
- data/test/javascripts/google_tag_manager_spec.js +382 -0
- data/test/javascripts/spec_helper.js +5 -0
- data/test/teaspoon_env.rb +10 -0
- data/test/test_helper.rb +10 -0
- data/workarea-google_tag_manager.gemspec +18 -0
- metadata +151 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 3e62fb8271ea1777685547babd1b71cb82f66a5fc39a02e576602c2774a0c82a
|
4
|
+
data.tar.gz: 75c64904c8445a2700f744b4f20df741dd3f05dff0c56c778057d5f0e89778d9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8b57ca62a985a5d564eb0cc1a03258daa3294ba174e8a76adbd749beb6afe220238f6212bcbc6375d15f107041d3123a37a620efe4b5e2304c35388b369e23f8
|
7
|
+
data.tar.gz: 9c1499a0b53f85743e5c3c86a32046ac23621d0cade420b18b71c78f17a9101acce7ef9d6e392480144b618fa239fdc94632468c39d3b6a4157a394967d4f81c
|
data/.gitignore
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2017-05-02 15:21:42 -0400 using RuboCop version 0.46.0.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 24
|
10
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
11
|
+
# URISchemes: http, https
|
12
|
+
AllCops:
|
13
|
+
Exclude:
|
14
|
+
- 'Rakefile'
|
15
|
+
- 'test/dummy/**/*'
|
16
|
+
- 'lib/workarea/google_tag_manager.rb'
|
17
|
+
- 'lib/workarea/google_tag_manager/**/*'
|
18
|
+
|
19
|
+
Metrics/LineLength:
|
20
|
+
Exclude:
|
21
|
+
- 'workarea-google_tag_manager.gemspec'
|
22
|
+
|
23
|
+
Style/Documentation:
|
24
|
+
Enabled: false
|
25
|
+
|
26
|
+
# Offense count: 1
|
27
|
+
# Cop supports --auto-correct.
|
28
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
29
|
+
# SupportedStyles: use_perl_names, use_english_names
|
30
|
+
Style/SpecialGlobalVars:
|
31
|
+
Exclude:
|
32
|
+
- 'workarea-google_tag_manager.gemspec'
|
33
|
+
|
34
|
+
# Offense count: 1
|
35
|
+
Metrics/LineLength:
|
36
|
+
Exclude:
|
37
|
+
- 'workarea-google_tag_manager.gemspec'
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
Workarea Google Tag Manager 4.3.1 (2019-08-21)
|
2
|
+
--------------------------------------------------------------------------------
|
3
|
+
|
4
|
+
* Open Source!
|
5
|
+
|
6
|
+
|
7
|
+
|
8
|
+
Workarea Google Tag Manager 4.3.0 (2019-05-28)
|
9
|
+
--------------------------------------------------------------------------------
|
10
|
+
|
11
|
+
* Move GTM script to the site head
|
12
|
+
|
13
|
+
Move GTM script portion into its own partial.
|
14
|
+
Rename no script partial.
|
15
|
+
Update append points. Script will now be appended to the head.
|
16
|
+
|
17
|
+
WLGTM-13
|
18
|
+
James Dobson
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
Workarea Google Tag Manager 4.2.6 (2019-04-16)
|
23
|
+
--------------------------------------------------------------------------------
|
24
|
+
|
25
|
+
* Update for v3.4 compatibility
|
26
|
+
|
27
|
+
* Add CI scripts
|
28
|
+
* update gemfile for v3.4
|
29
|
+
* Fix ESlint errors
|
30
|
+
* Update rubocop configuration and get the cops passing
|
31
|
+
* Add keepfile for test/dummy/tmp/screenshots
|
32
|
+
|
33
|
+
WLGTM-12
|
34
|
+
Jake Beresford
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
Workarea Google Tag Manager 4.2.5 (2019-02-19)
|
39
|
+
--------------------------------------------------------------------------------
|
40
|
+
|
41
|
+
* Correct casing of productQuickview adapter callback function name
|
42
|
+
|
43
|
+
WLGTM-11
|
44
|
+
Jake Beresford
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
Workarea Google Tag Manager 4.2.4 (2018-12-11)
|
49
|
+
--------------------------------------------------------------------------------
|
50
|
+
|
51
|
+
* Remove unecessary tests causing issues in builds
|
52
|
+
|
53
|
+
WLGTM-10
|
54
|
+
Eric Pigeon
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
Workarea Google Tag Manager 4.2.3 (2018-10-30)
|
59
|
+
--------------------------------------------------------------------------------
|
60
|
+
|
61
|
+
* Update implementation of container ID to use configuration rather than secrets
|
62
|
+
|
63
|
+
This change allows much easier per-site configuration of GTM for multi-site applications.
|
64
|
+
|
65
|
+
* Includes a fallback to secrets for configuration but prefers apps to use configuration over secrets
|
66
|
+
|
67
|
+
WLGTM-9
|
68
|
+
Jake Beresford
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
Workarea Google Tag Manager 4.2.2 (2018-04-11)
|
73
|
+
--------------------------------------------------------------------------------
|
74
|
+
|
75
|
+
* Remove duplicate closing script tag
|
76
|
+
|
77
|
+
WLGTM-8
|
78
|
+
Kristin Henson
|
79
|
+
|
80
|
+
|
81
|
+
Workarea Google Tag Manager 4.2.1 (2018-01-11)
|
82
|
+
--------------------------------------------------------------------------------
|
83
|
+
|
84
|
+
* Prevent GTM making external requests in test
|
85
|
+
|
86
|
+
WLGTM-6
|
87
|
+
Jake Beresford
|
88
|
+
|
89
|
+
|
90
|
+
Workarea Google Tag Manager 4.2.0 (2017-10-13)
|
91
|
+
--------------------------------------------------------------------------------
|
92
|
+
|
93
|
+
Developers - note that this change moves configuration of GTM container ID from
|
94
|
+
Workarea.config in to application secrets, you will need to update your secrets
|
95
|
+
file when taking this change. See README for instructions.
|
96
|
+
|
97
|
+
* Use secrets to configure Google Tag Manager
|
98
|
+
|
99
|
+
WLGTM-3
|
100
|
+
Jake Beresford
|
data/Gemfile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
# Declare your gem's dependencies in tag_manager.gemspec.
|
4
|
+
# Bundler will treat runtime dependencies like base dependencies, and
|
5
|
+
# development dependencies will be added by default to the :development group.
|
6
|
+
gemspec
|
7
|
+
|
8
|
+
# Declare any dependencies that are still in development here instead of in
|
9
|
+
# your gemspec. These might include edge Rails or gems from your path or
|
10
|
+
# Git. Remember to move these dependencies to your gemspec before releasing
|
11
|
+
# your gem to rubygems.org.
|
12
|
+
|
13
|
+
# To use a debugger
|
14
|
+
gem 'workarea', source: 'https://gems.weblinc.com'
|
data/README.md
ADDED
@@ -0,0 +1,339 @@
|
|
1
|
+
# Workarea Tag Manager
|
2
|
+
|
3
|
+
Google Tag Manager plugin for the Workarea platform.
|
4
|
+
Including Enhanced ecommerce configuration.
|
5
|
+
|
6
|
+
Do not use this plugin for Google Analytics, workarea-google-analytics is well maintained and provides more functionality for GA specifically.
|
7
|
+
|
8
|
+
Tag manager Sets up a dataLayer on the window and pushes all data to the dataLayer. This is read by GTM and can be used in custom variables.
|
9
|
+
|
10
|
+
## Configuring Google Tag Manager
|
11
|
+
|
12
|
+
In your applications workarea.rb initializer add the following configuration
|
13
|
+
|
14
|
+
```ruby
|
15
|
+
Workarea.config.google_tag_manager.container_id = 'your-container-id'
|
16
|
+
```
|
17
|
+
|
18
|
+
## Shared Events
|
19
|
+
|
20
|
+
These Events are re-used by many of the events detailed in the Summary of events below
|
21
|
+
|
22
|
+
### Checkout Step
|
23
|
+
|
24
|
+
'step' is a number equal to the checkout step
|
25
|
+
|
26
|
+
1. Cart
|
27
|
+
2. Addresses
|
28
|
+
3. Shipping
|
29
|
+
4. Payment
|
30
|
+
|
31
|
+
dataLayer:
|
32
|
+
|
33
|
+
'event': 'checkout',
|
34
|
+
'ecommerce': {
|
35
|
+
'checkout': {
|
36
|
+
'actionField': { 'step': step },
|
37
|
+
'products': [
|
38
|
+
{
|
39
|
+
'id': "4559F84840",
|
40
|
+
'name': "Slim Ankle Pants",
|
41
|
+
'category': "Women's Pants",
|
42
|
+
'variant': "292205283-4",
|
43
|
+
'price': 31.56,
|
44
|
+
'quantity': 1
|
45
|
+
}
|
46
|
+
]
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
## Summary of Events
|
51
|
+
|
52
|
+
### Category View
|
53
|
+
|
54
|
+
Sent on category show pages (aka product browse)
|
55
|
+
|
56
|
+
dataLayer:
|
57
|
+
|
58
|
+
'event': 'categoryView',
|
59
|
+
'name': 'Category Name',
|
60
|
+
'sort': "top_sellers",
|
61
|
+
'page': 1
|
62
|
+
|
63
|
+
---
|
64
|
+
|
65
|
+
### searchResultsView
|
66
|
+
|
67
|
+
Sent on search results page
|
68
|
+
|
69
|
+
dataLayer:
|
70
|
+
|
71
|
+
'event': 'searchResultsView',
|
72
|
+
'terms': 'red shirt',
|
73
|
+
'sort': 'relevance',
|
74
|
+
'page': 1
|
75
|
+
|
76
|
+
---
|
77
|
+
|
78
|
+
### Product List
|
79
|
+
|
80
|
+
Sent anywhere there are lists of products, including: product browse, search results, cart page, product recommendations, category summary content block, product list content block.
|
81
|
+
|
82
|
+
dataLayer:
|
83
|
+
'ecommerce': {
|
84
|
+
'impressions': [
|
85
|
+
{
|
86
|
+
'id': "4559F84840",
|
87
|
+
'price': 31.56,
|
88
|
+
'name': "Slim Ankle Pants",
|
89
|
+
'category': "Women's Pants",
|
90
|
+
'variant': "292205283-4",
|
91
|
+
'list': "Slim Ankle Pants",
|
92
|
+
'position': 1
|
93
|
+
}
|
94
|
+
]
|
95
|
+
}
|
96
|
+
|
97
|
+
---
|
98
|
+
|
99
|
+
### Product Click
|
100
|
+
|
101
|
+
Triggered when a user clicks on any product summary in the storefront.
|
102
|
+
|
103
|
+
dataLayer:
|
104
|
+
|
105
|
+
'event': 'productClick',
|
106
|
+
'ecommerce': {
|
107
|
+
'click': {
|
108
|
+
'actionField': {'list': "Women's Pants"},
|
109
|
+
'products': [{
|
110
|
+
'name': "Slim Ankle Pants",
|
111
|
+
'id': "4559F84840",
|
112
|
+
'price': 31.56,
|
113
|
+
'category': "Women's Pants",
|
114
|
+
'variant': "292205283-4",
|
115
|
+
'position': 1
|
116
|
+
}]
|
117
|
+
}
|
118
|
+
}
|
119
|
+
|
120
|
+
---
|
121
|
+
|
122
|
+
### Product Quick View
|
123
|
+
|
124
|
+
Triggered when a user opens a product quickview
|
125
|
+
|
126
|
+
dataLayer:
|
127
|
+
|
128
|
+
'event': 'quickview',
|
129
|
+
'ecommerce': {
|
130
|
+
'detail': {
|
131
|
+
'actionField': '',
|
132
|
+
'products': [{
|
133
|
+
'name': "Slim Ankle Pants",
|
134
|
+
'id': "4559F84840",
|
135
|
+
'price': 31.56,
|
136
|
+
'category': "Women's Pants",
|
137
|
+
'variant': "292205283-4",
|
138
|
+
}]
|
139
|
+
}
|
140
|
+
}
|
141
|
+
|
142
|
+
---
|
143
|
+
|
144
|
+
### Product View
|
145
|
+
|
146
|
+
Triggered when a user visits the product detail page
|
147
|
+
|
148
|
+
dataLayer:
|
149
|
+
|
150
|
+
'ecommerce': {
|
151
|
+
'detail': {
|
152
|
+
'actionField': '',
|
153
|
+
'products': [{
|
154
|
+
'name': "Slim Ankle Pants",
|
155
|
+
'id': "4559F84840",
|
156
|
+
'price': 31.56,
|
157
|
+
'category': "Women's Pants",
|
158
|
+
'variant': "292205283-4",
|
159
|
+
}]
|
160
|
+
}
|
161
|
+
}
|
162
|
+
|
163
|
+
---
|
164
|
+
|
165
|
+
### Add To Cart
|
166
|
+
|
167
|
+
Triggered when add to cart button is clicked
|
168
|
+
|
169
|
+
dataLayer:
|
170
|
+
|
171
|
+
'event': 'addToCart',
|
172
|
+
'ecommerce': {
|
173
|
+
'add': {
|
174
|
+
'products': [{
|
175
|
+
'id': "4559F84840",
|
176
|
+
'name': "Slim Ankle Pants",
|
177
|
+
'category': "Women's Pants",
|
178
|
+
'variant': "292205283-4",
|
179
|
+
'price': 31.56,
|
180
|
+
'quantity': 1
|
181
|
+
}]
|
182
|
+
}
|
183
|
+
}
|
184
|
+
|
185
|
+
---
|
186
|
+
|
187
|
+
### Remove From Cart
|
188
|
+
|
189
|
+
Triggered when a product is removed from the cart
|
190
|
+
|
191
|
+
dataLayer:
|
192
|
+
|
193
|
+
'event': 'removeFromCart',
|
194
|
+
'ecommerce': {
|
195
|
+
'remove': {
|
196
|
+
'products': [{
|
197
|
+
'id': "4559F84840",
|
198
|
+
'name': "Slim Ankle Pants",
|
199
|
+
'category': "Women's Pants",
|
200
|
+
'variant': "292205283-4",
|
201
|
+
'price': 31.56,
|
202
|
+
'quantity': 1
|
203
|
+
}]
|
204
|
+
}
|
205
|
+
}
|
206
|
+
|
207
|
+
---
|
208
|
+
|
209
|
+
### Cart View
|
210
|
+
|
211
|
+
Triggered when the cart page is opened, including cart summaries (drawer or dropdown)
|
212
|
+
|
213
|
+
Uses Checkout Step shared function
|
214
|
+
|
215
|
+
---
|
216
|
+
|
217
|
+
### Checkout Addresses View
|
218
|
+
|
219
|
+
Triggered on the Addresses step of checkout
|
220
|
+
|
221
|
+
Uses Checkout Step shared function
|
222
|
+
|
223
|
+
---
|
224
|
+
|
225
|
+
### Checkout Shipping View
|
226
|
+
|
227
|
+
Triggered on the Shipping step of checkout
|
228
|
+
|
229
|
+
Uses Checkout Step shared function
|
230
|
+
|
231
|
+
---
|
232
|
+
|
233
|
+
### Checkout Shipping Service Selected
|
234
|
+
|
235
|
+
Triggered when the user changes the shipping option on the Shipping step of checkout
|
236
|
+
|
237
|
+
dataLayer:
|
238
|
+
|
239
|
+
'event': 'checkoutOption',
|
240
|
+
'ecommerce': {
|
241
|
+
'checkout_option': {
|
242
|
+
'actionField': {'step': 4, 'option': 'FEDEX Ground'}
|
243
|
+
}
|
244
|
+
}
|
245
|
+
|
246
|
+
---
|
247
|
+
|
248
|
+
### Checkout Payment View
|
249
|
+
|
250
|
+
Triggered on the Payment step of checkout
|
251
|
+
|
252
|
+
Uses Checkout Step shared function
|
253
|
+
|
254
|
+
---
|
255
|
+
|
256
|
+
### Checkout Payment Selected
|
257
|
+
|
258
|
+
Triggered when the user changes the payment method on the Payment step of checkout
|
259
|
+
|
260
|
+
dataLayer:
|
261
|
+
|
262
|
+
'event': 'checkoutOption',
|
263
|
+
'ecommerce': {
|
264
|
+
'checkout_option': {
|
265
|
+
'actionField': {'step': 5, 'option': 'new_card'}
|
266
|
+
}
|
267
|
+
}
|
268
|
+
|
269
|
+
---
|
270
|
+
|
271
|
+
### Checkout Order Placed
|
272
|
+
|
273
|
+
Triggered on the order confirmation page of checkout
|
274
|
+
|
275
|
+
dataLayer:
|
276
|
+
|
277
|
+
'ecommerce': {
|
278
|
+
'purchase': {
|
279
|
+
'actionField': {
|
280
|
+
'id': 'CF6D17E28B',
|
281
|
+
'affiliation': 'Site Name',
|
282
|
+
'revenue': 39.50,
|
283
|
+
'tax': 1.94,
|
284
|
+
'shipping': 7.00,
|
285
|
+
'coupon': 'promocode1, promocode2'
|
286
|
+
},
|
287
|
+
'products': [
|
288
|
+
{
|
289
|
+
'name': "Slim Ankle Pants",
|
290
|
+
'id': "4559F84840",
|
291
|
+
'price': 31.56,
|
292
|
+
'category': "Women's Pants",
|
293
|
+
'variant': "292205283-4",
|
294
|
+
'quantity': 1
|
295
|
+
}
|
296
|
+
]
|
297
|
+
}
|
298
|
+
}
|
299
|
+
|
300
|
+
## Getting Started
|
301
|
+
|
302
|
+
This gem contains a rails engine that must be mounted onto a host Rails application.
|
303
|
+
|
304
|
+
You must have access to a WebLinc gems server to use this gem. Add your gems server credentials to Bundler:
|
305
|
+
|
306
|
+
bundle config gems.weblinc.com my_username:my_password
|
307
|
+
|
308
|
+
Or set the appropriate environment variable in a shell startup file:
|
309
|
+
|
310
|
+
export BUNDLE_GEMS__WEBLINC__COM='my_username:my_password'
|
311
|
+
|
312
|
+
Then add the gem to your application's Gemfile specifying the source:
|
313
|
+
|
314
|
+
# ...
|
315
|
+
gem 'workarea-google_tag_manager', source: 'https://gems.weblinc.com'
|
316
|
+
# ...
|
317
|
+
|
318
|
+
Or use a source block:
|
319
|
+
|
320
|
+
# ...
|
321
|
+
source 'https://gems.weblinc.com' do
|
322
|
+
gem 'workarea-google_tag_manager'
|
323
|
+
end
|
324
|
+
# ...
|
325
|
+
|
326
|
+
Update your application's bundle.
|
327
|
+
|
328
|
+
cd path/to/application
|
329
|
+
bundle
|
330
|
+
|
331
|
+
## Workarea Platform Documentation
|
332
|
+
|
333
|
+
See [http://developer.weblinc.com](http://developer.weblinc.com) for Workarea platform documentation.
|
334
|
+
|
335
|
+
## Copyright & Licensing
|
336
|
+
|
337
|
+
Copyright Workarea 2015. All rights reserved.
|
338
|
+
|
339
|
+
For licensing, contact sales@workarea.com.
|