Top Banner
Rationalizing Tag Management by Simo Ahava (NetBooster) for MeasureCamp VI ”It’s just JavaScript” – William Henry Harrison
60

Rationalizing Tag Management

Jul 14, 2015

Download

Internet

Simo Ahava
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Rationalizing Tag Management

Rationalizing Tag Management

by Simo Ahava (NetBooster)

for MeasureCamp VI

”It’s just JavaScript” – William Henry Harrison

Page 2: Rationalizing Tag Management

The web is inherently stateless.

Tag Management Systems operate

in the web.

Tag Management Systems are

inherently stateless.

Page 3: Rationalizing Tag Management

it’s just JavaScript

Page 4: Rationalizing Tag Management
Page 5: Rationalizing Tag Management

Landing Page, Session, and previous touchpoints are

terminology of a stateful machine, not the web.

Page 6: Rationalizing Tag Management

Landing Page, Session, and previous touchpoints are

terminology of a stateful machine, not the web.

The web feeds messages to a backend process, which builds

the data pipeline. Not the other way around.

Page 7: Rationalizing Tag Management

Solutions

- Simple response mechanism for hits to Analytics

(GA requests are unilateral today)

{"newSession":"true", "sourceMedium":"google/cpc"}

Page 8: Rationalizing Tag Management

Solutions

- Authentication of TMS, and real-time data written

in dataLayer

Page 9: Rationalizing Tag Management

Solutions

- Forget it. Build a proper data pipeline server-

side and let the TMS do what it’s good for (sending

raw hit data to the backend).

^^^^^^^^^^^^^^^^^^^^^^^^follow @carmenmardiros

Page 10: Rationalizing Tag Management

dataLayer.

The confusing, intimidating,

developer-requiring, geek-nerdy,

ScravaJipty, structured-or-

arbitrary, perhaps-necessary,

damn-it-to-hell dataLayer.

Page 11: Rationalizing Tag Management

it’s just JavaScript

Page 12: Rationalizing Tag Management

It’s not generic

Native Array

GTM’s dataLayer

Page 13: Rationalizing Tag Management

dataLayer != data model

{{dataLayer test}}

> undefined

Page 14: Rationalizing Tag Management

dataLayer != data model

{{dataLayer test}}

> ”true”

Page 15: Rationalizing Tag Management

dataLayer != data model

{{dataLayer test}}

> ”false”

Page 16: Rationalizing Tag Management

dataLayer != data model

{{dataLayer test}}

> ???

Page 17: Rationalizing Tag Management

dataLayer != data model

{{dataLayer test}}

> ”false”

Page 18: Rationalizing Tag Management

dataLayer != data model

dataLayer is a message bus.

Page 19: Rationalizing Tag Management

dataLayer != data model

dataLayer is a message bus.

The push() method is appended with a listener that

updates values in the data model as they are pushed

into the Array.

Page 20: Rationalizing Tag Management

dataLayer != data model

dataLayer is a message bus.

The push() method is appended with a listener that

updates values in the data model as they are pushed

into the Array.

push() is the only method with significance. pop(),

split(), slice(), splice() etc. will not affect the

data in the data model.

Page 21: Rationalizing Tag Management

dataLayer and developers

I will not demean myself to comment on this.

Page 22: Rationalizing Tag Management

dataLayer and developers

I will not demean myself to comment on this.

OK, yes I will.

Page 23: Rationalizing Tag Management

dataLayer and developers

I will not demean myself to comment on this.

OK, yes I will.

If you are working in digital

and you are allergic to

developer/IT cooperation, you

are in the wrong line of

business.

Page 24: Rationalizing Tag Management

GTM and Google Analytics do not

have a special connection.

There is no special connection.

Page 25: Rationalizing Tag Management

GTM and Google Analytics do not

have a special connection.

There is no special connection.

At the moment.

Page 26: Rationalizing Tag Management

GTM and Google Analytics do not

have a special connection.

There is no special connection.

At the moment.

I’ve said too much.

Page 27: Rationalizing Tag Management

it’s just JavaScript

Page 28: Rationalizing Tag Management

What is Google Tag Manager

1. A JavaScript injector.

Page 29: Rationalizing Tag Management

What is Google Tag Manager

1. A JavaScript injector.

Yeah... that’s it.

Page 30: Rationalizing Tag Management

TMS is a marketer’s tool.

TMS is a developer’s tool.

TMS is a marketing-minded

developer’s tool.

TMS is a developer-minded

marketer’s tool.

Page 31: Rationalizing Tag Management

it’s just JavaScript

Page 32: Rationalizing Tag Management

Why it’s about marketing

Page 33: Rationalizing Tag Management

Why it’s about marketing

1. ”Tags” collect data for marketing

attribution

Page 34: Rationalizing Tag Management

Why it’s about marketing

1. ”Tags” collect data for marketing

attribution

2. Non-developers often got the code wrong

or didn’t understand variables -> TMS

was born to template the tagging process

Page 35: Rationalizing Tag Management

Why it’s about marketing

1. ”Tags” collect data for marketing

attribution

2. Non-developers often got the code wrong

or didn’t understand variables -> TMS

was born to template the tagging process

3. Semantic information has been a mystery

to webmasters / developers strongly

immersed in presentational and

experiential layers (HTML+CSS+JS)

Page 36: Rationalizing Tag Management

Why it’s about IT

Page 37: Rationalizing Tag Management

Why it’s about IT

1. It’s a freaking JavaScript injector!

Page 38: Rationalizing Tag Management

Why it’s about IT

1. It’s a freaking JavaScript injector!

2. You can add all sorts of malicious /

website-breaking / malware-infested code

with the click of a button

Page 39: Rationalizing Tag Management

Why it’s about IT

1. It’s a freaking JavaScript injector!

2. You can add all sorts of malicious /

website-breaking / malware-infested code

with the click of a button

3. If When you need dataLayer, it needs to

be integrated to the systems which

expose the semantic information

Page 40: Rationalizing Tag Management

Why it’s about IT

1. It’s a freaking JavaScript injector!

2. You can add all sorts of malicious /

website-breaking / malware-infested code

with the click of a button

3. If When you need dataLayer, it needs to

be integrated to the systems which

expose the semantic information

4. If something goes awry, IT will be held

responsible (as they own the processes)

Page 41: Rationalizing Tag Management

Should a TMS be used to hack

around a poorly coded website?

<insert witty golf analogy that

explains why it’s not a good

idea to overcorrect faults or to

fix errors with errors>

Page 42: Rationalizing Tag Management

Things you can do with a TMS

Page 43: Rationalizing Tag Management

Things you can do with a TMS

pop-up dialogs

Page 44: Rationalizing Tag Management

Things you can do with a TMS

pop-up dialogs

quick fixes to markup

Page 45: Rationalizing Tag Management

Things you can do with a TMS

pop-up dialogs

quick fixes to markup

event.target.parentElement.parentElement.children[0].cousin[1].neighbor.dog

complex DOM traversal

Page 46: Rationalizing Tag Management

Things you can do with a TMSwith a JavaScript-disabled browser

Page 47: Rationalizing Tag Management

Things you can do with a TMSwith a JavaScript-disabled browser

Page 48: Rationalizing Tag Management

Things you can do with a TMS

1.Proof-of-concept experiential & presentationalchanges to get buy-in from IT / HiPPO

Page 49: Rationalizing Tag Management

Things you can do with a TMS

1.Proof-of-concept experiential & presentationalchanges to get buy-in from IT / HiPPO

2.Inject semantic information (JSON-LD, META tags)

Page 50: Rationalizing Tag Management

Things you can do with a TMS

1.Proof-of-concept experiential & presentationalchanges to get buy-in from IT / HiPPO

2.Inject semantic information (JSON-LD, META tags)

3.Fix glaring errors in conflicting JavaScript

Page 51: Rationalizing Tag Management

Things you can do with a TMS

1.Proof-of-concept experiential & presentationalchanges to get buy-in from IT / HiPPO

2.Inject semantic information (JSON-LD, META tags)

3.Fix glaring errors in conflicting JavaScript4.Load 3rd party libraries (e.g. jQuery)

asynchronously

Page 52: Rationalizing Tag Management

Things you can do with a TMS

1.Proof-of-concept experiential & presentationalchanges to get buy-in from IT / HiPPO

2.Inject semantic information (JSON-LD, META tags)

3.Fix glaring errors in conflicting JavaScript4.Load 3rd party libraries (e.g. jQuery)

asynchronously5.Plus all the usual benefits (tagging,

consolidating code, arbitrary JavaScript / HTML injection, etc.)

Page 53: Rationalizing Tag Management

it’s just JavaScript

Page 54: Rationalizing Tag Management

Favorite JS resources

http://www.codecademy.com/en/tracks/javascript

Page 55: Rationalizing Tag Management

Favorite JS resources

Nicholas Zakas – Professional JavaScript for Web Developers

Page 56: Rationalizing Tag Management

Favorite JS resources

Douglas Crockford – JavaScript: The Good Parts

Page 57: Rationalizing Tag Management

Favorite JS resources

Cody Lindley – DOM Enlightenment

Page 58: Rationalizing Tag Management

Favorite JS resources

http://eloquentjavascript.net

Page 59: Rationalizing Tag Management

Favorite JS resources

Chrome (OS X) : ⌘ + ALT + JChrome (Win) : CTRL + SHIFT + J

Page 60: Rationalizing Tag Management

THANK YOU

@SimoAhava

”The awesome splendor of the universe is much easier to dealwith if you think of it as a series of small chunks.”