govuk_publishing_components 35.13.1 → 35.14.0
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 +4 -4
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-core.js +4 -3
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-form-tracker.js +2 -1
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +13 -1
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-schemas.js +4 -1
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-scroll-tracker.js +11 -0
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-video-tracker.js +88 -0
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4.js +1 -0
- data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +7 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_select.scss +2 -1
- data/app/views/govuk_publishing_components/components/_attachment.html.erb +5 -3
- data/app/views/govuk_publishing_components/components/_emergency_banner.html.erb +18 -1
- data/app/views/govuk_publishing_components/components/_phase_banner.html.erb +17 -1
- data/app/views/govuk_publishing_components/components/docs/emergency_banner.yml +10 -0
- data/app/views/govuk_publishing_components/components/docs/phase_banner.yml +8 -0
- data/app/views/layouts/govuk_publishing_components/application.html.erb +1 -1
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cbe4c3f60d3220a9d2b715392ba0bdd2f6bce4f92153fff876e8a0b608361161
|
|
4
|
+
data.tar.gz: 94bd59d7a23b8e3cec4882814d7fb0140f81f0bd53bc23f0e475700ba8c489f8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 47f46ab14ccabebf2a3a3c0da9bc03f9b8207d1e54b6a0c4eb8830eb87b5ce200dd606fd2de50c3804d61f222518c560b046ff77b0de87e635a84a653d77d758
|
|
7
|
+
data.tar.gz: c51c0a0407bfa84b24ba4d5dfb281f9c31657f1b18e5afe687198c401dbb0f05dc795d7c27ecdf9fbbfe8413cc82a18f28016d77f3d4248351780e0731a61e55
|
|
@@ -169,10 +169,10 @@ window.GOVUK.analyticsGa4 = window.GOVUK.analyticsGa4 || {};
|
|
|
169
169
|
removeCrossDomainParams: function (href) {
|
|
170
170
|
if (href.indexOf('_ga') !== -1 || href.indexOf('_gl') !== -1) {
|
|
171
171
|
// _ga & _gl are values needed for cross domain tracking, but we don't want them included in our click tracking.
|
|
172
|
-
href = href.
|
|
172
|
+
href = href.replace(/_g[al]=([^&]*)/g, '')
|
|
173
173
|
|
|
174
174
|
// The following code cleans up inconsistencies such as gov.uk/&&, gov.uk/?&hello=world, gov.uk/?, and gov.uk/&.
|
|
175
|
-
href = href.
|
|
175
|
+
href = href.replace(/(&&)+/g, '&')
|
|
176
176
|
href = href.replace('?&', '?')
|
|
177
177
|
if (this.stringEndsWith(href, '?') || this.stringEndsWith(href, '&')) {
|
|
178
178
|
href = href.substring(0, href.length - 1)
|
|
@@ -241,7 +241,8 @@ window.GOVUK.analyticsGa4 = window.GOVUK.analyticsGa4 || {};
|
|
|
241
241
|
|
|
242
242
|
try {
|
|
243
243
|
var ga4LinkData = JSON.parse(module.getAttribute('data-ga4-link'))
|
|
244
|
-
|
|
244
|
+
// use index_total if it already exists, otherwise calculate it and set it
|
|
245
|
+
ga4LinkData.index_total = ga4LinkData.index_total || totalLinks
|
|
245
246
|
module.setAttribute('data-ga4-link', JSON.stringify(ga4LinkData))
|
|
246
247
|
} catch (e) {
|
|
247
248
|
// if there's a problem with the config, don't start the tracker
|
|
@@ -84,12 +84,13 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
|
84
84
|
var labelText = input.label.innerText || input.label.textContent
|
|
85
85
|
var inputType = elem.getAttribute('type')
|
|
86
86
|
var inputNodename = elem.nodeName
|
|
87
|
+
var inputTypes = ['text', 'search', 'email', 'number']
|
|
87
88
|
|
|
88
89
|
if (inputType === 'checkbox' && elem.checked) {
|
|
89
90
|
input.answer = labelText
|
|
90
91
|
} else if (inputNodename === 'SELECT' && elem.options[elem.selectedIndex].value) {
|
|
91
92
|
input.answer = elem.options[elem.selectedIndex].text
|
|
92
|
-
} else if ((inputType
|
|
93
|
+
} else if (inputTypes.indexOf(inputType) !== -1 && elem.value) {
|
|
93
94
|
if (this.includeTextInputValues) {
|
|
94
95
|
var PIIRemover = new window.GOVUK.analyticsGa4.PIIRemover()
|
|
95
96
|
input.answer = PIIRemover.stripPIIWithOverride(elem.value, true, true)
|
|
@@ -29,6 +29,9 @@ window.GOVUK.analyticsGa4.analyticsModules = window.GOVUK.analyticsGa4.analytics
|
|
|
29
29
|
content_id: this.getMetaContent('content-id'),
|
|
30
30
|
|
|
31
31
|
browse_topic: this.getMetaContent('section'),
|
|
32
|
+
navigation_page_type: this.getMetaContent('navigation-page-type'),
|
|
33
|
+
navigation_list_type: this.getMetaContent('navigation-list-type'),
|
|
34
|
+
step_navs: this.getMetaContent('stepnavs'),
|
|
32
35
|
taxonomy_level1: this.getMetaContent('themes'),
|
|
33
36
|
taxonomy_main: this.getMetaContent('taxon-slug'),
|
|
34
37
|
taxonomy_main_id: this.getMetaContent('taxon-id'),
|
|
@@ -50,7 +53,9 @@ window.GOVUK.analyticsGa4.analyticsModules = window.GOVUK.analyticsGa4.analytics
|
|
|
50
53
|
/* The existence of a referrer parameter indicates that the page has been dynamically updated via an AJAX request
|
|
51
54
|
and therefore we can use it to set the dynamic property appropriately. This value is used by PA's to differentiate
|
|
52
55
|
between fresh page loads and dynamic page updates. */
|
|
53
|
-
dynamic: referrer ? 'true' : 'false'
|
|
56
|
+
dynamic: referrer ? 'true' : 'false',
|
|
57
|
+
emergency_banner: document.querySelector('[data-ga4-emergency-banner]') ? 'true' : undefined,
|
|
58
|
+
phase_banner: this.getElementAttribute('data-ga4-phase-banner') || undefined
|
|
54
59
|
}
|
|
55
60
|
}
|
|
56
61
|
window.GOVUK.analyticsGa4.core.sendData(data)
|
|
@@ -88,6 +93,13 @@ window.GOVUK.analyticsGa4.analyticsModules = window.GOVUK.analyticsGa4.analytics
|
|
|
88
93
|
}
|
|
89
94
|
},
|
|
90
95
|
|
|
96
|
+
getElementAttribute: function (attributeName) {
|
|
97
|
+
var el = document.querySelector('[' + attributeName + ']')
|
|
98
|
+
if (el) {
|
|
99
|
+
return el.getAttribute(attributeName)
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
|
|
91
103
|
getLanguage: function () {
|
|
92
104
|
var content = document.getElementById('content')
|
|
93
105
|
if (content) {
|
|
@@ -29,7 +29,10 @@
|
|
|
29
29
|
link_domain: this.undefined,
|
|
30
30
|
link_path_parts: this.undefined,
|
|
31
31
|
tool_name: this.undefined,
|
|
32
|
-
percent_scrolled: this.undefined
|
|
32
|
+
percent_scrolled: this.undefined,
|
|
33
|
+
video_current_time: this.undefined,
|
|
34
|
+
video_duration: this.undefined,
|
|
35
|
+
video_percent: this.undefined
|
|
33
36
|
}
|
|
34
37
|
}
|
|
35
38
|
}
|
|
@@ -60,6 +60,8 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
|
60
60
|
window.addEventListener('scroll', this.scrollEvent)
|
|
61
61
|
this.resizeEvent = this.onResize.bind(this)
|
|
62
62
|
window.addEventListener('resize', this.resizeEvent)
|
|
63
|
+
this.resetEvent = this.onReset.bind(this)
|
|
64
|
+
window.addEventListener('dynamic-page-update', this.resetEvent)
|
|
63
65
|
|
|
64
66
|
// check if the page height changes e.g. accordion opened
|
|
65
67
|
this.interval = window.setInterval(function () {
|
|
@@ -115,6 +117,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
|
115
117
|
data.type = node.eventData.type
|
|
116
118
|
// following will be undefined if tracking percentages
|
|
117
119
|
data.text = node.eventData.text
|
|
120
|
+
data.section = node.eventData.text
|
|
118
121
|
data.index = node.eventData.index
|
|
119
122
|
// following will be undefined if tracking headings
|
|
120
123
|
data.percent_scrolled = node.eventData.percent_scrolled
|
|
@@ -131,6 +134,14 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
|
131
134
|
return scroll <= top && (scroll + this.windowHeight) >= bottom
|
|
132
135
|
}
|
|
133
136
|
|
|
137
|
+
// if reset, we set all nodes 'alreadySeen' to false
|
|
138
|
+
// used when the page content is dynamically updated e.g. search
|
|
139
|
+
Ga4ScrollTracker.prototype.onReset = function () {
|
|
140
|
+
for (var i = 0; i < this.trackedNodes.length; i++) {
|
|
141
|
+
this.trackedNodes[i].alreadySeen = false
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
134
145
|
Ga4ScrollTracker.Heading = function (config) {
|
|
135
146
|
this.config = config
|
|
136
147
|
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
window.GOVUK = window.GOVUK || {}
|
|
2
|
+
window.GOVUK.analyticsGa4 = window.GOVUK.analyticsGa4 || {}
|
|
3
|
+
window.GOVUK.analyticsGa4.analyticsModules = window.GOVUK.analyticsGa4.analyticsModules || {};
|
|
4
|
+
|
|
5
|
+
(function (analyticsModules) {
|
|
6
|
+
'use strict'
|
|
7
|
+
|
|
8
|
+
var VideoTracker = {
|
|
9
|
+
init: function () {
|
|
10
|
+
this.handlers = {}
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
configureVideo: function (event) {
|
|
14
|
+
var player = event.target
|
|
15
|
+
var videoId = player.id
|
|
16
|
+
var duration = player.getDuration()
|
|
17
|
+
var percentages = [25, 50, 75]
|
|
18
|
+
|
|
19
|
+
for (var i = 0; i < percentages.length; i++) {
|
|
20
|
+
var percent = percentages[i]
|
|
21
|
+
var position = (duration / 100) * percent
|
|
22
|
+
this.handlers['video-' + videoId + '-' + percent + '-percent-begin'] = position
|
|
23
|
+
// interval is once a second, so end point must be at least one second beyond begin point
|
|
24
|
+
this.handlers['video-' + videoId + '-' + percent + '-percent-end'] = position + 2
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
trackVideo: function (event, state) {
|
|
29
|
+
var videoTracker = window.GOVUK.analyticsGa4.analyticsModules.VideoTracker
|
|
30
|
+
var player = event.target
|
|
31
|
+
var videoId = player.id
|
|
32
|
+
clearInterval(videoTracker.handlers['video-' + videoId])
|
|
33
|
+
|
|
34
|
+
if (state === 'VideoUnstarted') {
|
|
35
|
+
videoTracker.handlers['video-' + videoId] = setInterval(videoTracker.checkProgress, 1000, player)
|
|
36
|
+
videoTracker.sendData(player, 'start', 0) // VideoUnstarted seems to only happen the first time video is played
|
|
37
|
+
} else if (state === 'VideoPlaying') {
|
|
38
|
+
videoTracker.handlers['video-' + videoId] = setInterval(videoTracker.checkProgress, 1000, player)
|
|
39
|
+
} else if (state === 'VideoEnded') {
|
|
40
|
+
if (!videoTracker.handlers['video-' + videoId + '-100']) {
|
|
41
|
+
videoTracker.sendData(player, 'complete', 100)
|
|
42
|
+
videoTracker.handlers['video-' + videoId + '-100'] = true
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
checkProgress: function (player) {
|
|
48
|
+
var videoId = player.id
|
|
49
|
+
var videoTracker = window.GOVUK.analyticsGa4.analyticsModules.VideoTracker
|
|
50
|
+
var pos = player.getCurrentTime()
|
|
51
|
+
var percentages = [25, 50, 75]
|
|
52
|
+
|
|
53
|
+
// this looks really clunky and long hand
|
|
54
|
+
// but we have to do this once a second so doing the minimum before dropping out
|
|
55
|
+
// of an if statement is more efficient than combining all these statements into one
|
|
56
|
+
for (var i = 0; i < percentages.length; i++) {
|
|
57
|
+
if (pos >= videoTracker.handlers['video-' + videoId + '-' + percentages[i] + '-percent-begin']) {
|
|
58
|
+
if (pos < videoTracker.handlers['video-' + videoId + '-' + percentages[i] + '-percent-end']) {
|
|
59
|
+
if (!videoTracker.handlers['video-' + videoId + '-' + percentages[i]]) {
|
|
60
|
+
videoTracker.sendData(player, 'progress', percentages[i])
|
|
61
|
+
videoTracker.handlers['video-' + videoId + '-' + percentages[i]] = true
|
|
62
|
+
}
|
|
63
|
+
return
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
sendData: function (player, event, position) {
|
|
70
|
+
var data = {}
|
|
71
|
+
data.event_name = 'video_' + event
|
|
72
|
+
data.type = 'video'
|
|
73
|
+
data.url = player.getVideoUrl()
|
|
74
|
+
data.text = player.videoTitle
|
|
75
|
+
data.action = event
|
|
76
|
+
data.video_current_time = Math.round(player.getCurrentTime())
|
|
77
|
+
data.video_duration = Math.ceil(player.getDuration()) // number returned from the API varies, so round up
|
|
78
|
+
data.video_percent = position
|
|
79
|
+
|
|
80
|
+
var schemas = new window.GOVUK.analyticsGa4.Schemas()
|
|
81
|
+
var schema = schemas.mergeProperties(data, 'event_data')
|
|
82
|
+
|
|
83
|
+
window.GOVUK.analyticsGa4.core.sendData(schema)
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
analyticsModules.VideoTracker = VideoTracker
|
|
88
|
+
})(window.GOVUK.analyticsGa4.analyticsModules)
|
data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js
CHANGED
|
@@ -116,6 +116,9 @@
|
|
|
116
116
|
// https://github.com/alphagov/govuk_publishing_components/pull/908#discussion_r302913995
|
|
117
117
|
var videoTitle = options.title
|
|
118
118
|
event.target.getIframe().title = videoTitle + ' (video)'
|
|
119
|
+
if (window.GOVUK.analyticsGa4.analyticsModules.VideoTracker) {
|
|
120
|
+
window.GOVUK.analyticsGa4.analyticsModules.VideoTracker.configureVideo(event)
|
|
121
|
+
}
|
|
119
122
|
},
|
|
120
123
|
onStateChange: function (event) {
|
|
121
124
|
var eventData = event.data
|
|
@@ -140,6 +143,10 @@
|
|
|
140
143
|
|
|
141
144
|
window.GOVUK.analytics.trackEvent(tracking.category, tracking.action, tracking.label)
|
|
142
145
|
}
|
|
146
|
+
|
|
147
|
+
if (window.GOVUK.analyticsGa4.analyticsModules.VideoTracker) {
|
|
148
|
+
window.GOVUK.analyticsGa4.analyticsModules.VideoTracker.trackVideo(event, states[eventData])
|
|
149
|
+
}
|
|
143
150
|
}
|
|
144
151
|
}
|
|
145
152
|
})
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
container_class_names = %w[gem-c-attachment govuk-!-display-none-print]
|
|
13
13
|
container_class_names << shared_helper.get_margin_bottom if local_assigns.key?(:margin_bottom)
|
|
14
|
+
ga4_link = { 'event_name': 'navigation', 'type': 'attachment' }
|
|
14
15
|
|
|
15
16
|
case attachment.type
|
|
16
17
|
when "file"
|
|
@@ -38,13 +39,14 @@
|
|
|
38
39
|
class: "gem-c-attachment__attribute",
|
|
39
40
|
)
|
|
40
41
|
end
|
|
42
|
+
|
|
43
|
+
ga4_link[:event_name] = 'file_download'
|
|
44
|
+
|
|
41
45
|
when "html"
|
|
42
46
|
attributes << tag.span(
|
|
43
47
|
"HTML",
|
|
44
48
|
class: "gem-c-attachment__attribute",
|
|
45
49
|
)
|
|
46
|
-
data_attributes[:module] ? data_attributes[:module] << " ga4-link-tracker" : data_attributes[:module] = "ga4-link-tracker"
|
|
47
|
-
data_attributes[:ga4_link] = { "event_name": "navigation", "type": "attachment" }.to_json
|
|
48
50
|
when "external"
|
|
49
51
|
attributes << tag.span(
|
|
50
52
|
attachment.url,
|
|
@@ -53,7 +55,7 @@
|
|
|
53
55
|
end
|
|
54
56
|
|
|
55
57
|
%>
|
|
56
|
-
<%= tag.section class: class_names(container_class_names) do %>
|
|
58
|
+
<%= tag.section class: class_names(container_class_names), data: { module: "ga4-link-tracker", ga4_track_links_only: "", ga4_link: ga4_link } do %>
|
|
57
59
|
<%= tag.div class: "gem-c-attachment__thumbnail" do %>
|
|
58
60
|
<%= link_to attachment.url,
|
|
59
61
|
class: "govuk-link",
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
link_text ||= "More information"
|
|
8
8
|
campaign_class ||= nil
|
|
9
9
|
homepage ||= false
|
|
10
|
+
ga4_tracking ||= false
|
|
10
11
|
|
|
11
12
|
emergency_banner_helper = GovukPublishingComponents::Presenters::EmergencyBannerHelper.new()
|
|
12
13
|
|
|
@@ -28,9 +29,25 @@
|
|
|
28
29
|
description_classes = %w[gem-c-emergency-banner__description]
|
|
29
30
|
description_classes << "gem-c-emergency-banner__description--homepage" if homepage
|
|
30
31
|
|
|
32
|
+
|
|
33
|
+
data_attributes = {
|
|
34
|
+
"nosnippet": true,
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if ga4_tracking
|
|
38
|
+
data_attributes[:ga4_emergency_banner] = ""
|
|
39
|
+
data_attributes[:module] = "ga4-link-tracker"
|
|
40
|
+
data_attributes[:ga4_track_links_only] = ""
|
|
41
|
+
data_attributes[:ga4_set_indexes] = ""
|
|
42
|
+
data_attributes[:ga4_link] = {
|
|
43
|
+
event_name: "navigation",
|
|
44
|
+
type: "emergency banner",
|
|
45
|
+
section: heading,
|
|
46
|
+
}.to_json
|
|
47
|
+
end
|
|
31
48
|
%>
|
|
32
49
|
|
|
33
|
-
<%= content_tag('section', class: banner_classes, "aria-labelledby": "emergency-banner-heading",
|
|
50
|
+
<%= content_tag('section', class: banner_classes, "aria-labelledby": "emergency-banner-heading", data: data_attributes) do %>
|
|
34
51
|
<div class="govuk-width-container">
|
|
35
52
|
<div class="govuk-grid-row">
|
|
36
53
|
<div class="govuk-grid-column-two-thirds">
|
|
@@ -5,6 +5,7 @@ app_name ||= nil
|
|
|
5
5
|
phase ||= nil
|
|
6
6
|
message ||= nil
|
|
7
7
|
inverse ||= false
|
|
8
|
+
ga4_tracking ||= false
|
|
8
9
|
|
|
9
10
|
unless message.present?
|
|
10
11
|
if phase == "beta"
|
|
@@ -16,9 +17,24 @@ end
|
|
|
16
17
|
|
|
17
18
|
container_css_classes = %w(gem-c-phase-banner govuk-phase-banner)
|
|
18
19
|
container_css_classes << "gem-c-phase-banner--inverse" if inverse
|
|
20
|
+
|
|
21
|
+
data_attributes = {}
|
|
22
|
+
|
|
23
|
+
if ga4_tracking
|
|
24
|
+
data_attributes[:ga4_phase_banner] = phase
|
|
25
|
+
data_attributes[:module] = "ga4-link-tracker"
|
|
26
|
+
data_attributes[:ga4_track_links_only] = ""
|
|
27
|
+
data_attributes[:ga4_set_indexes] = ""
|
|
28
|
+
data_attributes[:ga4_link] = {
|
|
29
|
+
event_name: "navigation",
|
|
30
|
+
type: "phase banner",
|
|
31
|
+
section: Nokogiri::HTML(message).text,
|
|
32
|
+
}.to_json
|
|
33
|
+
end
|
|
34
|
+
|
|
19
35
|
%>
|
|
20
36
|
|
|
21
|
-
<%= tag.div class: container_css_classes do %>
|
|
37
|
+
<%= tag.div class: container_css_classes, data: data_attributes do %>
|
|
22
38
|
<%= tag.p class: "govuk-phase-banner__content" do %>
|
|
23
39
|
<%= tag.strong app_name, class: "govuk-phase-banner__content__app-name" if app_name %>
|
|
24
40
|
<%= tag.strong phase, class: "govuk-tag govuk-phase-banner__content__tag" if phase %>
|
|
@@ -45,3 +45,13 @@ examples:
|
|
|
45
45
|
short_description: "1491 to 1547"
|
|
46
46
|
link: "https://www.gov.uk/"
|
|
47
47
|
homepage: true
|
|
48
|
+
with_ga4_tracking:
|
|
49
|
+
description: |
|
|
50
|
+
Enables GA4 tracking on the banner. This includes link tracking on the component itself, and allows pageviews to record the presence of the banner on page load.
|
|
51
|
+
data:
|
|
52
|
+
campaign_class: "notable-death"
|
|
53
|
+
heading: "His Royal Highness Henry VIII"
|
|
54
|
+
short_description: "1491 to 1547"
|
|
55
|
+
link: "https://www.gov.uk/"
|
|
56
|
+
homepage: true
|
|
57
|
+
ga4_tracking: true
|
|
@@ -32,3 +32,11 @@ examples:
|
|
|
32
32
|
app_name: Skittles Maker
|
|
33
33
|
phase: beta
|
|
34
34
|
inverse: true
|
|
35
|
+
with_ga4_tracking:
|
|
36
|
+
description: |
|
|
37
|
+
Enables GA4 tracking on the banner. This includes link tracking on the component itself, and allows pageviews to record the presence of the banner on page load.
|
|
38
|
+
data:
|
|
39
|
+
app_name: Skittles Maker
|
|
40
|
+
phase: beta
|
|
41
|
+
inverse: true
|
|
42
|
+
ga4_tracking: true
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<% else %>
|
|
7
7
|
<%= render "govuk_publishing_components/components/layout_header", {
|
|
8
8
|
environment: GovukPublishingComponents::AppHelpers::Environment.current_acceptance_environment,
|
|
9
|
-
product_name: GovukPublishingComponents::Config.component_guide_title,
|
|
9
|
+
product_name: "#{GovukPublishingComponents::Config.component_guide_title} #{GovukPublishingComponents::VERSION}",
|
|
10
10
|
href: component_guide_path
|
|
11
11
|
} %>
|
|
12
12
|
<div class="govuk-width-container app-width-container--wide">
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: govuk_publishing_components
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 35.
|
|
4
|
+
version: 35.14.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GOV.UK Dev
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-08-
|
|
11
|
+
date: 2023-08-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: govuk_app_config
|
|
@@ -451,6 +451,7 @@ files:
|
|
|
451
451
|
- app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-scroll-tracker.js
|
|
452
452
|
- app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-smart-answer-results-tracker.js
|
|
453
453
|
- app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-specialist-link-tracker.js
|
|
454
|
+
- app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-video-tracker.js
|
|
454
455
|
- app/assets/javascripts/govuk_publishing_components/analytics-ga4/init-ga4.js
|
|
455
456
|
- app/assets/javascripts/govuk_publishing_components/analytics-ga4/pii-remover.js
|
|
456
457
|
- app/assets/javascripts/govuk_publishing_components/analytics.js
|
|
@@ -1467,7 +1468,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1467
1468
|
- !ruby/object:Gem::Version
|
|
1468
1469
|
version: '0'
|
|
1469
1470
|
requirements: []
|
|
1470
|
-
rubygems_version: 3.4.
|
|
1471
|
+
rubygems_version: 3.4.18
|
|
1471
1472
|
signing_key:
|
|
1472
1473
|
specification_version: 4
|
|
1473
1474
|
summary: A gem to document components in GOV.UK frontend applications
|