From 20009badc7d2bcd35d15adfad159602af372527c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Pierzcha=C5=82a?= Date: Wed, 10 Mar 2021 18:27:13 +0100 Subject: [PATCH 1/4] hotwired/turbo support in GTM --- .../template/google_tag_manager_head.erb | 7 +++++++ spec/integration/google_tag_manager_integration_spec.rb | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/rack/tracker/google_tag_manager/template/google_tag_manager_head.erb b/lib/rack/tracker/google_tag_manager/template/google_tag_manager_head.erb index 3b059c0..cd930d0 100644 --- a/lib/rack/tracker/google_tag_manager/template/google_tag_manager_head.erb +++ b/lib/rack/tracker/google_tag_manager/template/google_tag_manager_head.erb @@ -17,6 +17,13 @@ <% end %> dataLayer.push({'event':'pageView','virtualUrl': url}); }); + document.addEventListener('turbo:load', function(event) { + var url = event.detail.url; + <% if events.any? %> + dataLayer.push(<%= events.map(&:write).join(', ') %>); + <% end %> + dataLayer.push({'event':'pageView','virtualUrl': url}); + }); <% end %> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], diff --git a/spec/integration/google_tag_manager_integration_spec.rb b/spec/integration/google_tag_manager_integration_spec.rb index f8fe375..9d2b5aa 100644 --- a/spec/integration/google_tag_manager_integration_spec.rb +++ b/spec/integration/google_tag_manager_integration_spec.rb @@ -23,7 +23,7 @@ expect(page.find("body")).to have_xpath '//body/noscript/iframe[@src="https://www.googletagmanager.com/ns.html?id=GTM-ABCDEF"]' end - it "embeds the turbolinks observer if requested" do + it "embeds turbolinks and turbo observers if requested" do visit '/' expect(page.find("head")).to_not have_content "turbolinks:load" setup_app(action: :google_tag_manager) do |tracker| @@ -31,5 +31,6 @@ end visit '/' expect(page.find("head")).to have_content "turbolinks:load" + expect(page.find("head")).to have_content "turbo:load" end -end \ No newline at end of file +end From 7e1592a030f486cc17cb2bb1f7ef6967fb94415d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Pierzcha=C5=82a?= Date: Thu, 11 Mar 2021 15:09:41 +0100 Subject: [PATCH 2/4] Prevent duplicate events --- .../template/google_tag_manager_head.erb | 27 ++++++++----------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/lib/rack/tracker/google_tag_manager/template/google_tag_manager_head.erb b/lib/rack/tracker/google_tag_manager/template/google_tag_manager_head.erb index cd930d0..5032e60 100644 --- a/lib/rack/tracker/google_tag_manager/template/google_tag_manager_head.erb +++ b/lib/rack/tracker/google_tag_manager/template/google_tag_manager_head.erb @@ -1,30 +1,25 @@ <% if container %> - <% unless options[:turbolinks] %> - <% if events.any? %> - - <% end %> - <% end %> - + + <% if events.any? %> + + <% end %> + + <% end %> From de0da83dd0316ac6dc7f24faaab9b428751bdfa0 Mon Sep 17 00:00:00 2001 From: Marco Schaden Date: Mon, 12 Jul 2021 07:55:53 +0200 Subject: [PATCH 4/4] turbo release --- CHANGELOG.md | 5 +++++ lib/rack/tracker/version.rb | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e06e08..4398e32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 1.13.0 + +* [ENHANCEMENT] hotwired/turbo support #160 (thx @wrozka) +* [BUGFIX] Use leftmost match for gtm tag injection #156 (thx @yutoji) + # 1.12.1 * [ENHANCEMENT] Use local variables to prevent instance state #151 (thx @bumi) diff --git a/lib/rack/tracker/version.rb b/lib/rack/tracker/version.rb index 7d12101..3cf2d99 100644 --- a/lib/rack/tracker/version.rb +++ b/lib/rack/tracker/version.rb @@ -1,5 +1,5 @@ module Rack class Tracker - VERSION = '1.12.1' + VERSION = '1.13.0' end end