Post on 13-Feb-2017
transcript
1. Security 2. Deployment Costs 3. Marketing Agility 4. Customer understanding 5. Advertiser Spend
Agenda
Security – 5 levels of protection
2. CustomHTML can only be changed
by account with 2stage
authentication enabled
3. Can be set to disabled
CustomHTML, so that only deploy
GA universal, GA classic, Adwords,
ComScore (basic) & ClickTale.
4. Environments can be silo-ed for
DEV, STAGING and LIVE.
5. Write-access permissions can be
restricted on LIVE
1. Google auto scans all scripts added within customHTML and pauses scripts if they
match a known stopbadmalware domain, IP or URL.
Tag Management – Reliable & easy to maintain
1. Update old tags (GA classic)
2. Add new tags (e.g. Universal Analytics)
3. Or deploy template tags…
Custom Variables vs Page Type
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-17825253-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async
= true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') +
'.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
</html>
Find & Replace …In Global header
Old
<body>
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-
xxxx"
height="0" width="0"
style="display:none;visibility:hidden"></iframe></noscript>
<script>(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],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,
f);
})(window,document,'script','dataLayer','GTM-xxxx');</script>
<!-- End Google Tag Manager -->
New
Custom Variables vs Page Type On Drupal there you can use a plugin to Add GTM
Link to plugin here.
Future Proofing & W3C Standardisation
1. If Apples are called “Apples” on all
websites
2. Plugins output to dataLayer field
called “apples”
3. Standardised & faster deployment
and import default plugins
configurations
If every website is different and calls
Apples oranges, then standardisation is
harder!
Custom Variables vs Page Type
<!-- GA PAGEVIEW tracker WAS here moved into GoogleTagManager -->
<script> window.dataLayer = window.dataLayer || [];
dataLayer.push({
"Page_Type": "article", // cd1
"Section": "news", // cd2
"Subsection": "news_consumer", // cd3
"Topic", "news,consumer,gerry-gannon,national …", // cd5
"event": "onload_ga_pageview"
});
</script>
<!-- NED COUNTER was here - moved into GoogleTagManager Creation Date: 01/08/2014 -->
<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
"ns_pageCounter": "home",
"sitestat": "home.page",
"sitesection1": "none",
“sitesection2": "none",
"sitesection3": "none",
"tvchannel": "none",
"contentgenre": "other",
“pageversion": 1813585521,
"event": "onload_ned_counter_pageview"});
</script>
DataLayer
Better Non-Bounce tracking
1. Land on News story & read until the end
2. Land on News story & retweet
3. Land on News story interact with Flash Video
4. Land on Join audience page and download the PDF form
Better Non-Bounce tracking cont..
7. Land on News story & click on #top button
5. Land on News story & spend 29mins on the page
6. Land on News story & click on an external Advert or Banner Ad
8. Land on iPlayer episode & interact with Flash Video
Reminder a Bounce is…
Bounce = Only a single interaction in
the session (e.g land and immediately exit)
Bounce Rate
100%
Heartbeats and page scroll events will trigger a
second interaction.
Live example…
83.223.104.160/~searchph/_testing_script/____
bath/
Option 1) Quick Fix on existing Drupal website 1a) add “dataLayer.push”
window.dataLayer = window.dataLayer || [];
dataLayer.push({'eventCategory': 'Media Player', 'eventAction': 'Heartbeat', 'eventLabel': mins.toString(), 'eventValue': 0, 'eventNonInteractive': true, 'event.id': '', 'event': 'onload_mediaplayer_heartbeat'});
Piggyback existing variables
window.dataLayer = window.dataLayer || [];
dataLayer.push({'eventCategory': 'Media Player', 'eventAction': 'Heartbeat', 'eventLabel': mins.toString(), 'eventValue': 0, 'eventNonInteractive': true, 'event.id': '', 'event': 'onload_mediaplayer_heartbeat'});
Engagement Metrics
More accurate session engagement metrics for: ► Video Heartbeats
► Homepage banners
► Ads on news pages
► App download tracking
► Outclick tracking
► Social widget tracking
► Form completion tracking
► PDF form downloads
Cross-Device Reporting
soly
moly
&cid=
111
&cid=
222
&cid=3
33 &uid=456 &uid=456 &uid=456 =
Unique
Visitor 1
Cookie Popup Trigger Deployment
Example personalisation message…
Personalisation and Surveying individual audience members
Action completion rate monitoring and surveying…
Note: both these method require customHTML as there is not currently a template for Qualaroo or GoogleSurveys
Native Version Control and Change Log
Built in Change history and allows for rolling-back/forward to previous state