• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Google Tag Manager (Manual in English)
 

Google Tag Manager (Manual in English)

on

  • 406 views

 

Statistics

Views

Total Views
406
Views on SlideShare
404
Embed Views
2

Actions

Likes
4
Downloads
31
Comments
0

1 Embed 2

http://192.168.6.56 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Google Tag Manager (Manual in English) Google Tag Manager (Manual in English) Document Transcript

    •   Google  Tag  Manager     Not for programmers           A  quick  guidebook  to  Google  Tag  Manager  for  marketers  and  other   professions  not  connected  with  programming.                   LCS  &  CSI  Poland   Warsaw,  2014    
    •       2   Introduction   Thank  you  for  your  interest  in  this  guidebook  to  Google  Tag  Manager,  which  is  more  and   more  often  implemented  on  websites,  across  all  over  the  world.  The  main  aim  of  its   installation  is  usually  for  a  marketing  department  to  become  independent  from  other   company’s  departments  (like  IT)  and  to  speed  up  changes  on  a  website  within  marketing   and  analytics  measurement  processes.       However,  to  be  able  to  become  really  independent,  one  should  know  how  to  use  this  tool.  It   is  often  connected  with  technical  issues,  which  may  not  be  very  well  known  to  everyone.  A   marketer  does  not  have  to  be  a  programmer  or  a  technical  person,  at  last.     An  idea  has  arisen  on  this  field  to  explain  the  technical  subject  to  non-­‐technical  people  in   the  least  technical  way  ;).       Please  notice,  this  guidebook  is  not  official  manual  approved  by  Google  and  does  not   include  all  options  and  does  not  describe  all  possibilities  of  GTM.  It  is  to  give  the  concept   what  you  can  do  with  it,  understand  its  working  and  make  use  of  it  in  the  most  popular   cases.  A  reader  can  learn  more  and  develop  himself  in  this  area,  if  she/he  wants.         All  information  about  mistakes  and  ideas  for  additional  chapters  are  welcome  J       Have  a  comprehensible  reading   Przemek  Modrzewski   Senior  Analytical  Lead  
    •       3   Contributors       The  e-­‐book  was  created  in  cooperation  of  couple  of  people  from  Poland.   Thanks  to  huge  contribution  of  team  members  it  was  possible  to  write  this  ebook.         Special  thanks  for  help  and  contribution  to:       • Mariusz  Gąsiewski   • Paweł  Matkowski   • Jacek    Ewiak   • Piotr  Rudnicki   • Maciej  Jerzak                 DISCLAIMER     This  quidebook  is  NOT  any  official  manual  approved  by  Google.  This  is  private  work  of   author  and  contributors.  Please  don’t  treat  any  statements  in  this  material  as  official   statement  of  Google.                          
    •       4   Table  of  Contents   Introduction  ...........................................................................................................................  2   Contributors  ...........................................................................................................................  3   Tag  manager  -­‐  introduction  ....................................................................................................  6   How  does  GTM  work  ?  .............................................................................................................................................................  7   Google  Tag  Manager  structure  .............................................................................................................................................  8   What  is  a  container?  ..................................................................................................................................................................  9   What  are  tags?  ..........................................................................................................................................................................  10   What  are  rules?  .........................................................................................................................................................................  10   What  are  macros?  ....................................................................................................................................................................  11   Google  Tag  Manager  on  the  website  ...............................................................................................................................  12   Google  Tag  Manager  installation  –  step  by  step  ........................................................................................................  12   Step  1  –  Create  a  GTM  account  ..........................................................................................................................................  12   Step  2  –  Create  the  first  tag  .................................................................................................................................................  16   Installation  of  basic  scripts  on  the  website  ...........................................................................  22   Installation  of  Google  Analytics  statistics  with  GTM  ...............................................................................................  22   The  first  rule  in  GTM  ...............................................................................................................................................................  28   Testing  a  newly  created  tag  ................................................................................................................................................  30   Installation  of  Google  AdWords  conversion  tracking  with  GTM  ........................................................................  33   The  first  contact  with  macros  in  Google  Tag  Manager  ...........................................................................................  38   What  does  the  macro  consist  of  and  how  is  it  created?  ..........................................................................................  39   Implementation  of  Google  AdWords  remarketing  with  GTM  ..............................................................................  40   Google  Tag  Manager  –  advanced  cases  of  use  .......................................................................  45   Data  Layer  –  what  is  it  and  what  is  it  used  for?  .........................................................................................................  45   What  is  Data  Layer?  ...............................................................................................................................................................  45   How  does  Data  Layer  look  like?  .........................................................................................................................................  48   Adding  variables  and  values  to  Data  Layer  .................................................................................................................  49   Event  tracking  in  Google  Analytics  with  GTM  ............................................................................................................  52   A  button  click  as  an  event  in  Google  Analytics  ............................................................................................................  52   More  buttons  (events)  to  measure  on  one  website  ...................................................................................................  63   Measuring  the  action  on  the  website  with  virtual  pageviews  ..............................................................................  65   Auto  event  in  GTM  (auto  event  tracking)  ..............................................................................  69   Auto-­‐tagging  in  practice  (introduction)  ........................................................................................................................  69   Auto  measuring  of  clicks  on  the  button  (link)  .............................................................................................................  70   A  little  more  about  macros  in  auto  events  ...................................................................................................................  78   Available  macros  and  their  possibilities  .......................................................................................................................  80   Auto-­‐Event  Variable  ...............................................................................................................................................................  81   Macro  Constant  String  ...........................................................................................................................................................  83   Macro  -­‐  Custom  Events  ..........................................................................................................................................................  83   DataLayer  Variable  .................................................................................................................................................................  84   DOM  elements  ............................................................................................................................................................................  84   HTTP  referrer  ............................................................................................................................................................................  87   Javascript  Variable  (Custom  Javascript  code)  .............................................................................................................  87   Random  Number  ......................................................................................................................................................................  88   URL  macro  ..................................................................................................................................................................................  89  
    •       5   Lookup  Table  .............................................................................................................................................................................  90   Measuring  outbound  links  as  auto  events  in  GA  .......................................................................................................  91   Measuring  document  downloads  (e.g.  PDF)  as  auto  events  in  GA  .....................................................................  94   Measuring  clicks  on  images  as  an  event  on  the  website  in  GA  ............................................................................  96   Cross-­‐domain  tracking  with  GTM  (UA)  ......................................................................................................................  100   Dynamic  remarketing  installation  with  GTM  ..........................................................................................................  103   First  method  -­‐  standard  .....................................................................................................................................................  104   The  second  method  –  without  sending  variables  programmistically  ............................................................  112   Ecommerce  tracking  in  GA  with  GTM  .........................................................................................................................  121   Dealing  with  the  bounce  rate  in  Google  Analytics  (real  bounce  rate)  ...........................................................  124   Tags  which  are  not  in  GTM  ..............................................................................................................................................  128   Using  GTM  in  mobile  applications  .......................................................................................  132   Administering  tags  in  application  –  a  few  words  ...................................................................................................  132   Introducing  changes  in  application  (revolution)  ...................................................................................................  133   A  problem  with  mobile  applications  .............................................................................................................................  133   How  does  GTM  work  for  application?  ..........................................................................................................................  134   What  can  be  changed  by  GTM  in  application?  .........................................................................................................  136   A  few  final  thoughts  ...........................................................................................................  141   Migration  plan  to  GTM  .......................................................................................................  142   Conclusion  ..........................................................................................................................  143                          
    •       6   Tag manager - introduction     Tag  manager  is  a  tool  which  makes  easier  to  work  with  numerous  marketing  codes  which   allow  tracking,  measuring  and  also  marketing  actions  for  users  of  our  website.       Thanks  to  GTM  we  do  not  have  to  edit  websites  to  make  any  changes  or  add  new  marketing   codes.  You  need  only  to  paste  the  GTM  code  once  on  our  website.  GTM  answers  the  need  of   control  of  implementation  of  different  codes  on  the  website  by  marketing  not  by  the  IT   department.  We  know  that  for  running  effective  marketing  in  the  Internet  more  and  more   tools  connected  to  our  website  are  necessary.       So  far,  to  introduce  anything,  change  the  website  in  terms  of  marketing  codes,  the   intervention  of  IT  department  or  a  webmaster  has  been  necessary.  Usually  the  process  was   quite  long  then.  Additionally,  lack  of  understanding  how  different  marketing  tools  work  by   the  IT  department  often  caused  wrong  installations.  Another  waste  of  time.       Thanks  to  GTM,  a  marketer  or  other  person  responsible  for  marketing  actions  in  the   Internet  can,  by  their  own,  in  a  few  minutes,  add  any  code  which  is  needed  for  different   tools  working  without  the  need  of  contact  with  the  IT  department.     GTM  has  also  many  other  possibilities,  which  I  will  tell  about  later  in  this  e-­‐book.    
    •       7   How does GTM work?   Simply  speaking,  installing  the  GTM  code  once  in  your  service  (a  code  fragment  on  each   subpage)  we  can  add,  edit,  delete  all  marketing  tags  (remarketing,  analytics,  conversion   tracking  and  many  others)  with  no  need  of  editing  the  website  code.  All  actions  take  place   with  GTM  interface  in  the  web  which  we  log  in  as  easy  as  in  mail  or  Google  Analytics.  It   gives  control  over  marketing  codes  for  people  who  are  not  related  to  the  IT  department   while  website  security  will  not  be  at  risk.  It  also  significantly  shortens  time  needed  for   changes  and  reaction  for  changes  which  are  need  while  running  the  campaign  in  the   Internet  and  reduces  a  resources  (i.e.  IT  department)  needed  every  day  in  marketing   actions  (website  edition,  code  changes,  tag  pasting,  etc.).       What  is  important  and  should  be  clear.  Switching  to  GTM  not  affect  any  reports  and  should   not  have  any  impact  on  data.  Of  course  when  implemented  correctly.         GTM  tool  consists  of  several  elements,  which  we  will  administer:   ● Containers  i.e.  codes  pasted  on  the  website  in  which  all  marketing  codes  (tags)  will   be  stored.     ● Tags  –  tracking  codes  which  we  want  to  place  on  the  website  e.g.  Google  Analytics,   AdWords  conversion  codes,  remarketing  and  any  other  tracking  codes,  not  only   these  ones  from  Google.     ● Rules  –  conditions  in  which  tags  are  to  be  fired.     ● Macros  –macros  are  used  for  making  the  work  with  tags  and  rules  easier,   automating  repetitive  actions.       All  these  elements  will  be  discussed  later  in  this  document.      
    •       8   Google Tag Manager structure     An  account  structure  of  GTM  tool  consists  of  above  mentioned  containers  and  tags  which   belong  to  them,  as  well  as  rules  and  macros.             When  creating  the  GTM  account  you  can  see  the  menu  on  the  left.  There  are  three  elements   in  it  –  tags,  rules  and  macros.  All  tags  (marketing  codes  added  to  the  website  by  GTM)  and   rules  and  macros  created  by  us  will  be  stored  here.  Creating  each  of  these  items  takes  place   with  the  help  of  menu  in  the  center  of  interface,  where  we  see  button  “new”.  We  have  said   in  short,  at  the  beginning,  what  elements  of  the  GTM  account  are  and  what  they  are  used   for,  now  let’s  explain  this  in  details.  So,  once  more,  what  actually  containers,  tags,  macros   and  rules  are.     GTM  account   Container   Tags   Rules   Macros  
    •       9       What is a container?     All  tags  are  stored  in  the  container.  The  container  is  a  set  of  all  tags  which  are  used  and   pasted  on  the  same  website  with  GTM.  The  container  should  be  pasted  on  every  webpage   of  our  website,  similar  to  normal  tracking  code  e.g.  Google  Analytics.  Only  then  we  can  add   tags  of  every  tracking  other  tools,  e.g.  Analytics  or  Adwords  from  the  level  of  GTM  interface.         In  this  way,  we  edit  our  website  only  once,  paste  a  container  in  the  right  place  (the  best  
    •       10   directly  under  the  tag  <body>,  which  opens  website  content)  and  then  all  other  codes  are   added  to  website  through  the  container  with  no  need  of  interference  in  a  website’s  source   code.         Remember!  The  container  should  be  installed  on  each  subpage  of  our  service.  As,  for   example,  Analytics  code.  It  is  so  important  that  in  the  case  of  omitting  any  subpage  there  is   no  possibility  to  add  tags  with  GTM  on  it.  That’s  why  we  will  not  be  able,  for  example,  to  use   Analytics  code  on  it,  if  we  want  to  install  a  tracking  code  with  GTM.     What  are  tags?       Tags  are  tracking  codes  which  we  want  to  paste  on  a  website  with  the  GTM  tool.  The  Tag  is   a  script,  e.g.  Google  Analytics  that  we  paste  usually  in  the  website’s  code.  It  can  be  also   AdWords  conversion  tag,  remarketing  tag  or  other  marketing  tool  tag  which  require  adding   some  fragment  of  the  code  on  our  website.     What are rules?     Rules  are  nothing  else  than  principles  when  a  given  tag  is  to  be  fired  in  the  container.  For   example,  if  we  added  a  tag  of  AdWords  conversion  tracking,  we  would  not  like  to  fire  this   code  on  each  subpage  of  the  service  but  only  on  the  website  which  confirms  doing  a   desired  action  by  visitor  –  purchase,  e-­‐book  download,  filling  in  a  form,  etc.     Such  a  website  can  be  determined  as  a  last  website  in  some  process  to  aim,  on  which  it  is   information  confirming  this  action,  for  example  “Thank  you  for  purchase”.  Its  URL  address   can  look  i.e.    www.my-­‐website.pl/thankyou.html     To  count  a  conversion  in  AdWords,  when  someone  achieves  the  end  of  conversion  path  and  
    •       11   sees  the  above  website,  we  must  create  a  rule  in  GTM  which  will  define  a  condition  of  firing   the  conversion  code.  The  condition  (rule)  could  say  as  follows:  Fire  the  Adwords   conversion  code  when  there  is  a  word  „thank  you”  in  URL  address.  In  other  case  the  code   will  not  be  fired  and  the  conversion  will  not  be  counted.       What are macros?     A  definition:  Macros  are  the  pairs  "name-­‐value"  whose  value  is  completed  in  the  course  of   action.  For  example,  an  initially  defined  macro  named  “URL”  is  defined  in  this  way  that  its   value  of  actual  URL  of  the  website.  This  is  a  definition.         Because  macros  are  a  bit  more  complicated  elements  we  will  deal  with  them  a  little  later  by   the  way  of  more  advanced  use  of  GTM.  They  are  not  required  for  simple  standard   installations  but  we  rather  cannot  ignore  its  importance.       Summary     So,  how  can  all  these  elements  be  easily  summarized  while  explaining  their  relationships   between  them?     Tags  are  codes  which  we  want  to  place  on  the  website  (e.g.  Google  Analytics  code),  rules   are  used  for  defining  when  a  given  tag  is  to  be  fired  (e.g.  GA  code  is  to  be  fired  on  all  pages),   while  macros  are  used  for  automating  and  simplifying  work  with  data  which  are  necessary   for  tag  and  rule  working  on  our  website.  
    •       12   Google Tag Manager on the website       Google  Tag  manager  can  be  used  in  the  case  of  most  codes  which  we  have  to  add  to  our   website  to  benefit  from  such  mechanisms  like  statistics  of  website  views,  conversion   tracking  or  other  data  needed  for  marketing  actions.       In  the  following  steps  we  will  move  to  the  process  of  correct  installation  of  GTM  on  the   website  by  implementing  the  most  popular  tags.  Meanwhile,  we  will  explain  all  functions   and  concepts,  which  may  not  be  clear  in  official  GTM  help.     Google  Tag  Manager  installation  –  step  by  step       Google  Tag  Manager  installation  is  very  simple  and  includes  few  steps.   They  are:  creating  an  account,  creating  a  container,  settings  configuration  and  installation   of  first  tags  i.e.  tracking  codes.  Although  the  first  actions  are  quite  simple,  the  questions  will   arise  just  surely  at  the  beginning  of  actions.  I  will  try  to  foresee  them  here  and  explain  ;).         Step 1 – Create a GTM account   This  action  is  very  simple.  You  need  only  to  enter  https://www.google.com/tagmanager/ and  create  an  account.     First  container   What  a  container  is  we  have  explained  at  the  beginning  of  this  e-­‐book.  Now  it  is  time  for  its   creation  and  installation.      
    •       13       A  good  practice  is  just  to  name  a  container  as  we  have  named  our  account  but  it  is  not   obligatory.  Perhaps  we  will  have  soon  several  containers,  so  it  is  important  to  create  the   terminology  system.  The  subject  of  terminology  is  essential  because  our  account  with  time   will  be  bigger  as  we  will  add  next  tags,  macros  and  rules.  We  will  have  to  know  what  they  are   used  for.  Then  we  have  to  choose  where  we  want  to  use  our  container,  on  a  website  or  in   the  mobile  application.  It  is  also  one  of  the  advantages  of  GTM  that  we  can  use  it  to   administer  tags,  and  even  administer  changes  in  mobile  applications.  We  will  write  more   about  it  later.       If  I  have  a  lot  of  domains,  subdomains,  so  how  many  containers  do  I  need?  How  many   containers  should  I  create?   It  was  my  first  question,  which  came  to  my  mind  while  creating  the  first  GTM  account.   Generally,  if  I  have  a  lot  of  domains  but  they  are  not  connected  with  one  another,  it  is  a   good  practice  to  keep  the  principle  one  domain  –  one  account  -­‐  one  container.  It  allows   keeping  an  order  while  it  does  not  disturb  to  administer  them  because  we  can  administer  a  
    •       14   lot  of  GTM  accounts  from  the  level  of  one  login  and  password.  It  is  seen  on  the  image  below   where  with  one  login  I  have  an  access  to  many  GTM  accounts.         Let’s  come  back  to  the  installation  of  the  first  container.  Because  actually  we  implement   GTM  on  the  website,  we  choose  an  option  of  a  container  just  for  the  website.  If  we   implement  tag  manager  in  application,  we  will  choose  a  suitable  version  of  “mobile   applications”.     When  choosing  a  version  for  a  website  an  available  container  will  occur  to  be  pasted  on  our   website.    
    •       15     We  copy  a  ready  code  of  the  first  container  as  a  whole  and  paste  it  on  our  website.     The  best  place  to  paste  a  container  code  is  a  place  directly  below  the  tag  which  opens  the   website  content  -­‐  <body>.  We  will  find  it  easily  in  the  website  code  by  the  option  “search  in   content”.  We  can  see  how  it  looks  like  for  a  sample  website  by  clicking  the  right  mouse   button  on  the  website  content  and  choosing  “Show  the  website  source”.          
    •       16   What  if  we  cannot  put  the  GTM  code  in  the  place  described  above?   Remember  that  the  best  place  for  a  container,  which  guarantees  the  best  data  collecting,  is   the  place  directly  below  the<body>  tag.     Unfortunately,  there  is  no  guarantee  that  our  codes  implemented  by  GTM  will  be  called   correctly  if  we  change  the  place  of  the  container.  Especially  I  do  not  recommend  pasting  the   container  code  in  the  <head></head>  section  because  the  script  includes  “iframe”  which   can  cause  an  unexpected  action  of  the  browser.     Step 2 – Create the first tag As  we  have  seen  in  the  image  from  p.  13,  after  creating  the  first  container  we  can  see,  at   once,  several  built-­‐in  tags  at  our  disposal  ready  to  be  installed  on  our  website.  As  you  can   see  the  most  popular  Google  tags  are  there,  we  have  also  available  Doubleclick  tags.  There   are  also  several  tags  of  other  companies  available  in  GTM.  In  addition,  there  are  custom   tags  (Custom  HTML)  thanks  to  which  we  can  actually  place  every  other  tag  on  our  website,   even  if  it  is  not  normally  on  the  standard  GTM’s  tag  list.  We  will  discuss  implementation  of   the  most  popular  tags  in  details  in  a  moment.  Now  we  will  stop  for  a  while  and  discuss   settings  and  functionality  of  the  account,  which  we  will  use  in  a  while.       Settings  and  functionality  of  the  GTM  account     While  creating  the  GTM  account  and  the  first  container  we  have  one  user  (i.e.  ourselves).  In   GTM  account  we  can  add  next  containers  and  users.  As  we  can  see  below  we  can  use  the   “New”  button  and  add  a  user  or  a  container.    
    •       17         According  to  what  I  have  written  before,  a  good  practice  is  to  keep  a  rule  –  one  account,  one   domain,  one  container.  However,  we  can  ignore  this  principle  in  different  cases.       Many  domains  we  treat  as  the  whole.   Then  we  can  use  one  container  for  many  domains  because  rules,  tags  and  macros  cannot  be   divided  between  containers.  If  all  domains  are  to  be  configured  in  a  similar  way,  the  use  of   one  container  is  applied.        Many  tags  on  one  domain.   If  we  have  plenty  of  tags  to  handle,  it  is  much  easier  to  administer  them  if  we  divide  them   into  two  containers  or  more.  It  gives  us  bigger  clarity  what  and  when  is  to  be  fired  and  it   makes  also  that  the  container  itself  is  less  loaded  (it  is  smaller).  It  is  possible  to  e.g.   segregate  tags  according  to  a  type  and  a  tool.  However  it  is  quite  rare.    
    •       18   Many  users  with  different  access  rights   Access  rights  for  users  can  be  granted  on  the  container  level.  Thus,  if  we  want  to  limit  the   access  to  other  domain  or  tag  configuration  we  have  to  use  more  containers  and  give  the   next  users  access  and  rights  on  their  level.  We  can  grant  accesses  of  different  rights:   browsing,  browsing  and  editing  or  browsing,  editing  and  publishing  (full  access)   Test  environment   A  good  idea  is  to  use  different  containers  while  testing  implementation  of  new  tags  or  rules.   Especially  for  big  services,  a  wrong  configuration  and  loss  of  data  for  some  period  can  be   painful.    Hence,  it  is  worth  paying  attention  to  it  during  implementation.  At  the  moment  of   implementation  it  is  a  good  idea  to  make  use,  especially  in  Google  Analytics  and  other   statistics  issues,  of  the  Lookup  Table  macro,  which  we  will  discuss  later  in  this  e-­‐book.  At   the  very  end  you  can  find  a  proposed  migration  plan  to  Google  Tag  Manager.     "Settings"  tab     In  the  "settings”  tab  there  is  an  identifier  of  a  container  and  a  container  name,  which  we   can  change  in  any  time.     "Containers"  tab     In  the  "Containers"  tab  we  can  see  currently  created  containers  on  the  account,  number  of   tags  created  for  a  given  container,  our  rights  to  edit  a  container  and  a  number  of  users   assigned  to  it.     Choosing  our  existing  container,  which  is  called  "my  test  container”  in  our  example,  we   proceed  to  the  heart  of  Tag  Manager  itself  i.e.  to  container  settings.    
    •       19       As  we  can  see  in  the  menu  on  the  left,  there  are  tabs  concerning  tags,  rules  and  macros.  We   have  said  about  these  elements  before  and  we  will  talk  about  them  many  times  further.  We   will  be  using  the  left  menu  very  often.  In  the  center,  we  have  a  view  of  tags,  rules  and   macros  created  by  us  under  grey  tabs.     Now  the  most  important  thing,  at  this  point,  is  to  understand  the  matter  of  a  version   and  a  container  type.  So,  what  is  all  about?     Adding  a  tag  or  a  rule  to  the  container  or  editing  anything  in  GTM  we  will  not  see  changes   on  our  website.  Nothing  will  be  changed.  To  do  this  we  have  to  publish  the  changes.  Thus,   in  item  3  in  the  image  above  we  can  see  a  container  as  unpublished.  To  publish  it  and   introduce  the  changes  which  will  have  reflection  on  our  website  first  we  have  to  create   another  version  of  a  container  (item  2).  Then  we  can  publish  the  current  version.  It  will   then  go  live.  Any  created  version  can  be  seen  below  the  menu  on  the  left.  You  can  come   back  to  the  version,  if  there  is  such  a  need.  Thanks  to  versions  we  do  not  override  changes   irretrievably.        
    •       20       In  the  image  from  website  17  you  can  see  the  item  1,  that  is  a  function  of  preview.  The   “Preview”  function  is  one  of  functionalities  used  very  frequently  while  adding  or  editing   tags  or  changing  other  settings.  Thanks  to  the  “Preview”  function  we  can  preview  if   changes  introduced  by  us  work  properly  on  the  website.  There  are  three  options  of   preview  of  changes  available.       ● Preview  –  It  allows  us  to  preview  the  website  with  changes  applied  by  us.  It  means   that  after  choosing  a  "Preview”  option  we  can  enter  our  website,  refresh  it  and  check  if   changes  introduced  by  us  work  e.g.  in  the  programmers'  console  in  Chrome  browser  or  in   Firebug  tool  in  Firefox.  Because  we  have  not  created  a  version  in  GTM  yet,  changes  on  the   website  are  seen  only  by  us.  After  switching  off  the  preview  option  (a  yellow  bar  at  top  of   the  screen),  changes  will  stop  working  on  the  website.    
    •       21         ● Debug  –  the  option  probably  the  most  frequently  used.  It  allows  to  add  to  “Preview”   option  an  auxiliary  console  which  will  show  us  if  and  what  tags  will  work  on  our  website   after  creating  a  new  version.          
    •       22     ● Share  –  A  "Share”  option  allows  us  to  create  a  unique  url  address,  which  we  can  send   to  a  person  who  is  not  related  to  our  GTM  account.  Thanks  to  this  address  the  person  who   will  use  a  link  given  by  us  will  be  able  to  see  also  working  changes,  which  are  not  published   yet  in  GTM.       Installation of basic scripts on the website   We  now  know  the  basic  settings  of  Google  Tag  Manager.  We  can  move  to  the  installation  of   tracking  scripts  on  our  website  with  GTM.  We  will  start  from  the  most  standard  tags   (scripts)  and  then  we  will  go  into  more  advanced  ways  of  using  this  tool.       Installation of Google Analytics statistics with GTM   Using  Tag  Manager  (GTM)  to  track  traffic  on  the  website  with  Google  Analytics  is  one  of   most  frequent  cases.  The  simplest  installation  is  not  complicated  but  more  advanced   aspects  of  tracking  like  e.g.  event  tracking  may  cause  some  problems.  Thus,  we  will  deal   also  with  these  more  advanced  aspects  in  further  steps.  Now  we  will  make  a  standard   installation.       In  the  previous  part  of  this  e-­‐book  we  have  created  the  GTM  account  and  the  first  container   as  well.  Just  after  creating  the  container  we  have  an  opportunity  to  move  at  once  to  create   the  first  of  the  most  popular  tags.    
    •       23         We  can  start  to  create  them  at  once  or  do  this  after  installing  the  container.     We  have  to  do  the  following:     1. Create  Google  Analytics  tag     2. Define  rules  for  tag  to  be  fired     3. Test  a  newly  created  tag     4. Create  a  version  of  the  container     5. Publish       Let’s  start  from  the  beginning.     Ad  1.  Create  Google  Analytics  tag     We  start  creating  a  tag  from  giving  the  name  to  it.  It  is  important  because  when  there  are   many  tags  it  will  be  easier  to  administer  them  if  tags  have  properly  matched  names.   A  good  practice  is  to  construct  names  based  on  a  type  of  a  tool  e.g.  Google  Analytics  and  a  
    •       24   function,  which  a  given  tag  is  to  fulfill.  The  first  tag  which  we  will  create  is  the  tag  named   GA  (Google  Analytics)  –  Pageviews,  because  this  tag  will  be  responsible  for  tracking   displays  of  our  website,  that  is  a  basic  function  of  Google  Analytics.  All  other  functions  of   GA  will  be  also  used  but  we  will  use  next  tags  to  it.  We  will  talk  about  it,  for  example,  by  the   way  of  event  tracking  on  the  website  with  GTM.           Another  step  is  to  choose  the  kind  of  a  tag  from  the  list  of  standard  tags  serviced  by  GTM.   We  choose  Google  Analytics  from  a  pull-­‐down  menu.  Now  we  can  choose  from  Classic  GA   and  a  new  version  that  is  Universal  Analytics.  For  the  need  of  this  example  we  will  use  a   classic  version.  The  choice  of  the  second  one  will  not  have  any  influence  on  the  way  of   creating  and  administering  the  GA  tag,  so  we  can  choose  the  version  at  will.    
    •       25       As  you  can  see  above  we  have  many  more  standard  tags  available,  which  we  can  use  with   GTM.  If  our  tag  is  not  on  the  list  we  can  implement  it  with  custom  tags.  We  will  talk  about  it   later.       In  the  next  step  we  have  to  give  an  ID  number  of  our  account  in  Google  Analytics,  which  we   are  going  to  install  with  GTM.  We  can  find  ID  in  our  Analytics  account.       ***OFF  TOPIC***     As  you  can  see  in  the  image  above,  on  the  right  next  to  the  ID  number  of  the  account   introduced  in  the  "Web  property  ID”  column  there  is  a  grey    "Lego  brick”.  This  “brick"   indicates  the  possibility  of  using  macros.  I  have  mentioned  before  that  macros  are  used  to   simplify  and  automate  the  work.  We  will  make  use  of  a  macro  for  the  first  time  to  simplify   using  the  ID  number  of  the  GA  account  in  next  cases  of  using  this  number  ID  on  our   account.        
    •       26   What  to  do  then?     1. Mark  the  ID  number  and  copy  it  to  the  storage  (ctrl  +  C)   2. Click  on  the  "brick”  and  choose  "New  macro”  at  the  bottom.   3. Add  the  macro  name  that  we  know  what  this  macro  is  used  for,  choose  the   type  as  "Constant  String”  and  a  value  as  an  ID  of  our  Google  Analytics  account.  There   are  many  macro  types  and  with  time  we  will  make  use  of  different  than  “Constant   String”.  Now  we  are  not  dealing  with  it.         After  that  we  can  use  a  given  macro  and  thanks  to  this  we  do  not  need  to  remember  the  ID   of  Google  Analytics  account  with  the  next  tags  which  are  to  be  installed.    
    •       27     It  is  one  of  the  simplest  methods  of  using  macros  but  thanks  to  this  we  will  not  make   mistake  while  pasting  codes  and  what  is  more,  we  do  not  waste  the  time  for  checking  a   given  ID  many  times.  I  will  emphasize  once  more  that  Analytics  tag  has  its  types,  which  are   responsible  for  different  types  of  tracked  data.  So,  if  we  want  to  track  events  and   ecommerce  transactions  by  GTM,  we  will  have  to  use  three  tags:  for  pageviews  (standard),   for  events  and  for  transactions.    We  need  to  give  the  ID  number  of  the  GA  account  each  time   we  create  a  tag  for  given  GA  account.  Thanks  to  the  created  macro  we  do  not  have  to   remember  ID  of  account.  So  we  used  macro  for  the  first  time.  It  is  simple  way  but  very   useful  and  we  will  use  it,  in  this  way,  quite  often.       ***OFF  TOPIC***     Let's  come  back  to  creating  our  Tag.    After  choosing  a  type  of  the  tag  as  Google  Analytics,   we  can  see  the  option  “Enable  Display  Advertising  Features”  below.  This  option  is  used  for   switching  on  possibilities  to  make  use  of  remarketing  in  Google  Analytics  and  demographic   reports.  In  practice  this  option  adds  to  the  code  a  Doubleclick  cookie,  which  is  just   responsible  for  these  additional  possibilities  of  Google  Analytics.              
    •       28   Track  type     I  have  mentioned  about  track  types  a  little  earlier  by  the  way  of  creating  the  first  macro.   There  can  be  many  track  types  depending  on  a  kind  of  a  tag.  Even  in  the  case  of  Google   Analytics  we  have  them  quite  a  lot.         Website  View  tracking  is  of  course  a  standard  type  but  in  the  further  part  we  will  use  next   types,  just  as  we  will  want  to  start  the  following  functionalities  of  Google  Analytics  with   GTM,  such  as,  for  example,  event  tracking  on  the  website  or  traffic  tracking  between   domains.  We  will  talk  about  it  further  on.       The first rule in GTM   At  this  moment  we  have  just  almost  configured  the  first  tag.  The  only  thing  which  is  left   before  testing  and  publishing  it  is  to  add  a  rule  which  will  allow  us  to  set  the  rules  when  
    •       29   GTM  has  to  fire  a  given  tag.     Rules  are  set  in  interface  in  the  right  upper  corner.  To  be  fired  each  newly  created  tag  will   need  a  rule.  It  will  not  work  without  the  rule.  What  we  have  to  do  is  to  wonder  now  when  a   given  tag  is  to  be  fired.  Our  first  Google  Analytics  tag  is  to  be  fired  on  each  subpage  of  our   service.  It  is  quite  obvious  because  we  want  to  collect  data  about  all  pageviews  on  our.   Then  we  have  to  set  the  rule  which  will  fire  a  tag  on  each  website  of  the  service.           When  we  want  to  add  a  new  rule  a  window  of  its  choice  will  occur.  We  can  choose  rules   that  already  exist  and  which  we  have  created  earlier  for  other  tags  from  the  list  or  create  a   new  one.  In  the  case  of  new  accounts  and  containers  we  have  to  create  rules  from  the   beginning.     As  you  can  see,  a  rule,  which  we  are  interested  in,  is  already  available  in  standard  –  fire  it   on  each  subpage.  You  have  to  only  mark  it,  and  it  is  ready.  In  the  case  of  creating  new  rules   we  have  to  create  a  rule  about  conditions,  which  have  to  be  satisfied  so  that  a  given  tag   could  be  fired.  We  will  deal  with  creating  more  advanced  rules  later  in  this  e-­‐book  by  the   way  of  creating  a  tag  for  tracking  AdWords  conversion  where  we  will  describe  creating  of   rules  more  extensively.    
    •       30     Testing  a  newly  created  tag     We  have  created  the  first  Tag.  Before  we  publish  it  on  the  website  it  is  worth  testing  and   seeing  if  it  works.  As  you  can  see  below,  our  version  of  the  tag  is  unpublished.  It  means  that   changes  introduced  by  us  did  not  come  into  effect.  It  is  always  worth  paying  attention  to  it   because  it  is  one  of  more  frequent  mistakes  which  are  made  by  not  only  beginners.  If  we  do   not  publish  changes  (a  new  container  version)  we  will  not  see  them  live.  They  could  be   seen  only  in  Preview  –  Debug.           However,  before  we  publish  anything  we  have  to  verify  it.  We  choose  the  “Preview”  option   and  then    “Debug”  option  (see  p.17).  Let’s  move  to  our  website  in  a  new  tab  of  a  browser   and  refresh  the  view.  Thanks  to  this  a  console  will  occur  at  the  bottom  of  the  screen  with   information  if  our  tag  is  fired  under  conditions  defined  by  rules.    
    •       31     You  can  see  in  the  console  that  our  tag  has  been  fired.  Everything  works.  Now  we  can  come   back  to  the  tab  with  opened  Tag  Manager  and  publish  the  version.  To  do  this  we  create  a   new  version  and  publish  it.  A  new  version  is  created  now  (in  our  case  version  no.  4).       Pay  attention  to  a  yellow  bar  at  the  top  with  a  message  about  the  preview  on  our  website.  If   we  now  go  to  the  website  we  will  see  all  the  time  the  console  at  the  bottom  of  our  website.   Thus,  if  we  finish  the  work  we  can  quit  this  mode  (For  clarity,  a  preview  mode  is  seen  only  by  
    •       32   us,  other  users  cannot  see  it.  They  could  see  it  if  we  would  sent  them  a  special  link  to  the   preview,  which  I  have  written  about  before).           Next  steps     Our  first  tag  has  been  published.  Now,  we  are  ready  to  install  next  tags  which  will  be   needed  to  track  our  advertising  actions  and  not  only.  However,  before  we  move  to  the  next   tags,  we  should  mention  about  a  very  useful  tool  which  will  allow  us  to  see  if  our  website,   or  any  other,  has  installed  and  working  tags.  This  tool  is  Tag  Assistant.  It  is  a  simple  and   friendly  plug-­‐in  to  Chrome  browser.           Thanks  to  Tag  Assistant  we  can  easily  verify  what  tags  are  working  on  the  website  being   viewed  by  us.  We  will  get  guidelines  and  suggestions  concerning  tag  implementation.  Tag   Assistant  is  a  tool,  which  is,  we  can  say,  obligatory.  Assistant  can  be  downloaded  free  from   Google  Chrome  shop.    
    •       33   Installation of Google AdWords conversion tracking with GTM   In  the  previous  chapter  we  managed  to  create  the  first  tag,  which  is  used  for  tracking   displays  with  Google  Analytics.  We  have  created  the  account,  the  container,  then  the  tag   where  we  have  chosen  its  type  (Google  Analytics)  and  defined  when  our  tag  has  to  be  fired   (rule).  In  this  step  we  will  create  a  tag,  which  will  service  AdWords  conversion  tracking.       AdWords  or  other  conversion  tracking       What  do  we  actually  need  for  conversion  tracking?  We  need  to  measure  traffic  on  the   website  or  a  number  of  actions  which  will  confirm  that  the  conversion  took  place.    For   example,  a  classical  example  of  a  conversion  are  displays  of  the  website  “Thank  you  for”  –   purchase,  contact,  etc.  That  is  the  website  which  is  displayed  only  when  a  user  did  some   action  desirable  by  us,  for  example,  filling  in  the  form.  A  classical  conversion  path  seems  to   look  more  or  less  like  this:         Main  website  -­‐>  category  website  -­‐>  product  website  -­‐>  form  -­‐>  payment  -­‐>thank  you.       To  track  the  conversion  we  need  to  track  the  last  website  -­‐  “Thank  you”  with  the  special   code  called  the  conversion  tracking  code.  During  visits  from  AdWords  ads,  the  code  is   compared  to  a  cookie,  which  was  granted  to  users  at  the  moment  of  clicking  on  the  advert.   If  data  from  the  cookie  matches  data  from  the  tracking  code,  a  conversion  is  counted.   It  is  a  description  of  working  in  short,  but  it  is  only  to  remind  it  and  to  eliminate  the  mental   shortcuts  of  the  author.       To  track  conversions  we  need  an  address  of  the  "Thank  you”  website  and  we  have  to  place   a  suitable  conversion  code  on  this  website.  So  far,  it  has  been  as  follows:  
    •       34     1.  We  have  generated  a  conversion  code  in  AdWords  account   2.  We  have  copied  the  code.   3.  We  have  edited  the  "Thank  you”  website     4.  We  have  pasted  the  conversion  code  in  the  code  somewhere  at  the  end  of  the  website   just  before  the  closing  </body>  tag.       Implementation  of  the  conversion  tracking  code  with  GTM     At  present,  thanks  to  GTM,  we  do  not  have  to  edit  the  website  to  implement  conversion   tracking  code.  You  only  have  to  create  a  suitable  tag  in  GTM  and  give  it  proper  rules.  As  it  is   assumed  the  code  is  to  be  fired  on  “Thank  you”  pages.  So  to  create  the  conversion  tag  we   have  go  through  a  few  steps:     1.  Create  a  conversion  in  AdWords  account   2.  Create  a  conversion  tag  in  GTM   3.  Give  a  rule  when  the  code  is  to  be  fired   4.  Test  and  publish  the  new  container  version.         Ad1.  Creating  a  conversion  in  AdWords  account     To  start  tracking  the  effectiveness  of  our  actions  thanks  to  conversions,  first  we  have  to   create  such  a  conversion  in  our  AdWords  account.  We  have  copied  the  whole  code  before   and  pasted  it  onto  the  website.  Now  we  need  only  two  things  –  the  conversion  ID  and  its   label.  To  do  this  we  need  to  preview  the  code  of  conversion  created  by  us  in  AdWords   interface  (Tools  tab  -­‐>  Conversions  -­‐>  code).    
    •       35       Ad  2.    Creating  a  conversion  tag  in  GTM     We  already  have  ID  and  the  label  of  the  conversion,  thus,  we  can  move  to  create  a   conversion  tag  and  start  to  track  a  conversion  with  GTM.    
    •       36       1.  Create  a  new  tag  in  our  container   2.  Give  it  a  proper  name   3.  As  a  type  choose  AdWords  Conversion  Tracking   4.  Add  copied  ID  and  label  from  the  conversion  code  generated  before  (a  conversion   value  is  non-­‐obligatory  and  we  do  not  have  to  give  it).   5.  Add  a  rule  when  the  code  is  to  be  fired.       Everything  is  clear  to  the  step  no.  4  but  in  the  step  no.  5  we  have  to  stop  for  a  while  to  say   something  more  about  rules.  Remember  that  we  have  to  track  the  conversion  on  the   website  of  “Thank  you”  type.  In  our  case  the  website  of  this  type  is  the  website  after  filling   in  the  form  whose  address  is  www.test_website.com/thankyou.html.   We  want  a  conversion  code  to  be  displayed  only  on  this  website.  We  do  not  want  this  code   to  be  active  on  any  other  website.  Therefore,  we  create  the  rule,  which  will  guarantee  this   to  us.     We  choose  "Add  the  rule”  and  then  "Create  a  new  rule”.  As  you  can  see  in  the  image  below,   rules  are  created  from  two  parts:  variable  (macros)  and  value.  In  this  case  we  choose   Conversion  value  (optional)  
    •       37   {{url}}  macro  which  is  responsible  for  considering  URL  addresses  and  values  of  this   variable  that  is  the  address  of  our  website  –  thankyou.html.  Between  these  parts  we  choose   a  logical  parameter,  which  will  be  a  principle  of  their  combination.   .       In  our  case  the  whole  condition  (rule)  says  as  follows:  If  the  URL  address  includes  the   "thankyou.html"  string  of  characters,  fire  the  conversion  tracking  tag.       Of  course  we  can  choose  other  logical  conditions  such  as  "equals”,  "does  not  equal”,  "ends”,   etc.    
    •       38   Actually  we  could  stop  here  because  we  have  done  everything  correctly.  Now  we  have  to   test  (Debug,  Preview)  possibly  if  everything  works  properly,  create  a  new  version  and   publish  it.  Voila,  another  tag  on  our  website  has  been  installed.     However,  there  is  one  detail  yet  which  was  not  explained  here  fully.  Macros.   Indeed,  we  have  used  {{url}}  macro.  The  question  is,  where  is  it  from  and  what  is  it  about?  I   will  try  to  explain  the  subject  of  macros  here  but  their  use  will  be  used  in  most  of  our   actions  in  GTM  so  the  subject  of  macros  will  be  present  almost  in  every  example.     The first contact with macros in Google Tag Manager   As  I  have  mentioned  at  a  very  beginning,  macros  are  used  for  automating  and  simplifying   work  with  data  in  GTM.  It  is  quite  a  general  description  but  it  is  enough  for  the  beginning.   Macros  are,  in  fact,  links  between  data  on  the  website  and  our  tags,  macros  may  convey   values  between  a  website  and  individual  tags,  macros  may  also  be  a  basis  for  building   conditions  of  firing  tags  (in  this  way  we  have  used  {{url}}  macro).  In  the  previous  chapter   we  have  created  also  the  first  macro  where  the  value  was  the  ID  number  of  our  Analytics   account.   If  we  want  to  create  the  rule  in  which  there  are  variable  values  depending  on  a  situation,   we  will  use  the  macro  then.    Like  URL  addresses  have  a  lot  of  variables  and  all  are  taken   into  consideration,  we,  in  our  example,  have  placed  the  value  “thankyou.html.”  for  our   {{url}}  macro.         This  all  constitutes  an  opinion  that  macros  are  one  of  the  most  essential  elements,  which   we  have  to  deal  with  in  GTM.  I  think  that  even  if  a  macro  is  something  abstract  at  this   moment,  it  will  not  be  when  we  will  consider  many  examples.      
    •       39   Below,  there  is  a  list  of  all  macros,  which  are  currently  on  my  account.  A  part  of  them  is   standard  and  present  from  the  beginning  on  the  account,  the  rest  need  to  be  created.  So  far   we  have  created  one  macro  concerning  ID  of  Analytics  account  to  make  the  work  easier,  we   have  used  one  ready  {{url}}  macro  to  define  the  rule.  Now  there  is  a  turn  to  explain  more   about  macros.         What does the macro consist of and how is it created?   As  you  can  see,  the  macro  always  consists  of  two  braces  and  a  name,  e.g.  {{url}}.   In  this  way  we  always  use  macros  within  GTM.     Each  macro  has  its  type.  It  can  be  a  macro,  which  will  be  used  for  defining  url  addresses,   but  there  are  several  types  of  macros.  For  example,  the  macro,  which  we  have  created  at   the  beginning  for  the  need  of  ID  account,  was  simply  a  string  of  characters  “Constant   string”.    
    •       40       As  you  can  see  in  the  image  above  there  are  quite  a  lot  of  macros.  So  far  we  have  used  two   macros  but  we  need  to  use  a  greater  number  of  them.     We  will  create  macros  up  to  date,  if  we  need  to  combine  data  from  the  website  with  our   tags.  Depending  on  what  a  given  macro  will  have  to  provide,  we  will  use  such  a  macro.     I  think  that  we  can  now  put  the  subject  of  macros  aside.  In  the  next  examples  we  will  come   back  to  it  many  times  yet  and  explain  their  work   Implementation of Google AdWords remarketing with GTM   So  far  we  have  placed  two  very  important  tags  on  our  website  –  Google  Analytics  and  the   tracking  code  of  AdWords  conversion.  Another  important  and  what  is  more,  basic  code,   which  is  commonly  displayed  on  pages,  is  a  remarketing  code.       In  this  e-­‐book  I  will  not  explain  what  remarketing  is  because  this  subject  is  not  the  subject   of  this  publication.  We  can  say  only  that  the  remarketing  code  is  a  code  which  is  used  for  
    •       41   bringing  back  users  on  the  website  with  the  help  of  adverts,  users  who  did  or  did  not  do   any  action  on  our  website  e.g.  did  not  buy  any  product  and  left  our  service.  It  is  a  classical   example  but  there  are  lots  of  applications  of  remarketing.  We  will  focus  here  on  a  technical   side  that  is  on  implementation  of  the  remarketing  code  on  particular  pages  of  our  service.       Creating  a  remarketing  tag   As  in  the  previous  chapters,  we  create  a  new  tag  in  GTM  and  choose  its  kind  as   remarketing.  We  also  have  to  obtain  ID  of  the  remarketing  code.   To  do  this  we  have  to  visit  our  AdWords  account  and  a  “Shared  library”  tab  then   “Audiences”.    There  are,  or  there  will  be,  our  remarketing  lists.     Let’s  move  to  an  option  of  displaying  the  details  of  the  remarketing  tag  and  from  there  we   have  to  obtain  the  ID  number  of  our  tag,  which  will  be  displayed  in  a  moment  in  GTM.              
    •       42   We  come  back  to  Tag  Manager  and  place  ID  in  a  suitable  place.  Only  ID  is  necessary,  we  do   not  have  to  give  labels,  which  were  deleted  in  common  remarketing  code.  Only  if  we  create   new  codes  in  one  account,  there  will  be  need  of  distinguish  them  with  labels.       Labels  are  used  for  a  unique  labeling  conversion  codes  on  the  account.  Now  we  can  use  one   code  and  we  create  remarketing  lists  on  the  basis  of  this  code  and  rules  defining  when  the   list  is  to  collect  cookies.  That  can  be  done  directly  from  AdWords  account.           Now  we  have  to  only  create  a  rule  when  a  given  remarketing  code  will  be  called  to  collect   cookies  (i.e.  website  visitors).  We  almost  always  start  adventure  with  remarketing  from   building  the  list  of  cookies  of  everyone  who  visited  our  website.  Hence,  in  this  example  we   will  use  the  same  rule  like  in  the  case  of  Google  Analytics  (all  pages).  A  code  is  to  be  called   on  every  website  of  our  service.  That  means  that  the  remarketing  cookie  will  be  given  to   each  browser1,  who  will  visit  our  service,  no  matter  what  subpage  of  the  service  it  meets.                                                                                                                         1 Writing about users or people we have to consider that it is a mental shortcut because we really think
    •       43       A  remarketing  code  can  be  fired  also  with  the  help  of  other  rules.  We  could,  for  example,   create  a  rule,  which  will  fire  the  remarketing  tag,  if  somebody  clicks  on  the  link  or  a  button.   We  can  create  rules,  which  will  fire  the  list  after  the  time  chosen  by  many  others  and  us.   While  reading  this  e-­‐book  we  will  get  to  know  how  to  create  such  rules.       While  we  now  fire  the  tag  on  every  website  of  our  website  we  can  then  create  remarketing   lists  directly  on  our  AdWords  account  based  on  fired  remarketing  tag  and  rules  set  on   AdWords  accounts  while  creating  new  remarketing  lists.       In  the  image  from  the  previous  website,  we  can  see  also  something  which  is  marked  as   "Customs  parameters”.  These  parameters  are  used  for  creating  more  advanced  conditions   of  firing  tags.  We  can,  for  example,  download  data  from  the  website  about  values  of  a   customer’s  basket  and  depending  on  its  value  fire  the  remarketing  tag  or  (add  to  the  list  or   not).  We  use  these  parameters  in  creating  a  campaign  of  dynamic  remarketing.  In  this  place   our  adventure  with  something,  which  is  called  Data  Layer,  starts.     Data  Layer  is  probably  the  most  important  functionality  of  Google  Tag  Manager  because  it   makes  data  on  the  website  dependent  on  the  website  code  itself  and  makes  that  data  from   the  website  become  available  for  many  our  tools  which  we  have  on  the  website.  We  can   compare  Data  Layer  to  a  universal  plug-­‐in,  which  we  can  buy  at  the  airport,  to  which  from   one  side  we  can  connect  a  laptop  and  from  the  other  we  can  plug  any  socket  all  over  the  
    •       44   world.     In  the  same  way  data  from  our  website,  thanks  to  such  a  universal  plugin,  can  be   comprehensible  for  many  tools  and  there  is  no  need  to  connect  them  separately  to  the   website.  We  will  talk  about  Data  Layer  in  details  later  in  this  e-­‐book,  so  do  not  worry  that   now  it  can  be  a  little  unclear.     Important!  At  this  moment  we  can  create  remarketing  lists  within  Google  Analytics,  which  I   encourage  to.  Thanks  to  GA  we  can  create  lists  based  on  many  actions  of  users  of  our   website.  We  do  not  have  to  use  an  AdWords  remarketing  code  then.  We  create  remarketing   lists  in  the  Analytics  interface  itself.  (Until  now  remarketing  is  not  serviced  by  Universal   Analytics).        
    •       45   Google Tag Manager – advanced cases of use   On  previous  pages  we  have  discussed  the  most  frequent  and  basic  methods  of  using  GTM  in   work  with  tags  on  our  website.  We  have  installed  a  basic  Google  Analytics  code,  AdWords   conversion  tracking  and  a  remarketing  code.  Most  installations  end  here.  However,  times   are  different  now,  so  we  need  more  and  more  data  to  collect  and  process  from  our  website,   we  need  to  understand  more  and  more  precisely  what  visitors  of  our  website  really  need,   we  need  to  better  aim  our  marketing  campaigns,  etc.  That  is  why,  surely,  there  is  a  need  of   additional  operations  on  data  which  are  on  our  website,  we  will  want  to  examine  every   area  of  the  website,  we  will  want  to  mark  every  visitor  in  a  better  way.         So,  there  will  be  some  play  at  more  advanced  implementation  and  use  of  GTM  possibilities.   In  this  part  there  are  the  most  useful  and  popular  advanced  configurations  of  tags  and   macros,  so  that  we  could  measure  everything  on  the  website  and  run  effective  marketing   campaigns.  The  examples  below  will  help  us  understand  better  the  work  of  Google  Tag   Manager  tool.      It  will  allow  us  to  move  easily  in  it  and  configure  any  tags.     Data Layer – what is it and what is it used for?   Before  we  move  to  advanced  implementations,  which  I  will  try  to  describe  step  by  step,  it  is   important  for  us  to  understand  one  of  the  most  important  functionality  of  GTM  that  is  Data   Layer.   What is Data Layer?   Data  Layer  is  a  combination  of  structured  API  Data  and  interfaces,  which  allow  making  use   of  a  universal  format  (JSON)  of  tagging  services  and  sending  data  to  the  management   system  (GTM).  In  this  way,  data  are  available  for  many  tools  with  no  need  to  tag  the   website  each  time  by  separate  formats  for  every  tool  which  we  want  to  connect.  Not  clear?  
    •       46   Neither  to  me;)  So  in  simpler  words.     Having  many  marketing  systems  to  connect  to  our  website  we  have  to  add  for  each  time  a   special  code  (plugin)  for  every  tool  separately.  Each  tool  usually  works  in  a  different  way.     If  we  have  many  things  to  measure  (buttons,  purchase  systems,  basket,  etc.)  and  a  lot  of   tools,  there  can  be  quite  a  big  mess  on  our  website.  An  employee,  who  dealt  with  it,    quits   his  job  and  we  want  to  change  something  and  we  have  a  big  problem.  A  remedy  for  such  a   situation  is  just  Data  Layer  which  has  been  compared  before  to  the  universal  plugin  which   we  can  apply  in  every  country.        
    •       47   Data  Layer  is  a  kind  of  "translator”  like  English  for  different  kind  of  tools,  as  far  as  data  on   our  website  are  concerned.  Everyone  loves  their  mother  tongue  but  not  everywhere  in  the   world  we  can  communicate  in  it  and  we  need  a  universal  language.  In  our  world,  if  we  want   or  not,  it  is  English.  In  the  world  of  data  it  is  Data  Layer.     Thanks  to  this  information  from  the  website  such  as  events  (e.g.  button  clicks)  or  values   can  be  sent  to  Google  Tag  Manager  just  by  Data  Layer.  After  that  in  the  GTM  tool  itself  we   create  rules  on  the  basis  of  these  values.  For  example  “Call  a  remarketing  code  (tag)  when   the  value  of  a  basket  is  higher  than  300  USD  (variable=basket,  value=300).  Rules  can  be  in   this  case  created  for  each  tool  which  is  connected  on  our  website.  That  is  the  secret  of  Data   Layer.     Data  Layer  fulfills  also  other  roles.  It  allows  to  separate  data  from  the  layer  of  the  website   code  (html,  css).  As  we  separated  the  style  layer  before  (how  the  website  looks  like)  thanks   to  CSS  language,  now  we  separate  data  from  the  layer  of  the  website  code  itself.  While   modifying  something  on  any  layer  we  do  not  violate  the  structure  of  the  rest.  It  gives   security  and  order  in  administering  of  our  services.      
    •       48   How  does  Data  Layer  look  like?     Data  Layer  is  built  into  the  container  code,  if  we  want  to  send  information  from  the  website   (e.g.  events  like  clicks)  you  have  to  only  send  them  to  Data  Layer  with  the  help  of  push   method.  For  example,  if  we  want  to  send  information  to  Data  Layer  that  somebody  has   clicked  the  button  we  place  the  following  code  fragment  in  the  website  code:     <a  href="#"  onclick="dataLayer.push({'event':  'sample-­‐link'});">Sample  link</a>     If  someone  has  something  in  common  with  Javascript  language  they  know  that  the  push   method  simply  adds  data  to  the  array.  And  this  just  happens.  For  those  who  are  not  familiar   with  issues  of  programming,  information  that  method  works  the  same  like  in  the  case  of   labeling  events  in  Google  Analytics  is  enough.     In  this  example,  at  the  onclick  moment  the  information  to  Data  Layer  that  the  event   happened  with  the  value  ‘sample-­‐link’  is  sent.         In  this  way  this  information  can  be  used  by  any  tag  which  is  installed  on  the  website  by   GTM.  For  example,  we  can  “order”  Google  Analytics  to  register  onclick  events,  we  can   “order”  remarketing  tag  to  mark  the  user  who  has  clicked  on  the  link  (to  add  them  to  the   list  of  users  who  have  clicked  on  the  link)  or  we  can  register  the  conversion  in  AdWords   with  the  help  of  tag  of  AdWords  conversion  tracking.     One  event  label  which  was  sent  to  Data  Layer  and  many  possibilities  of  being  used  by  many   tools.  This  is  the  power  of  Data  Layer.    
    •       49   Adding variables and values to Data Layer   In  the  previous  paragraph  we  have  added  one  variable  (event)  and  one  value  (sample-­‐link)   to  Data  Layer2  .  Such  adding  data  to  Data  Layer  will  take  place  only  just  when  the  website  is   loaded  and  the  user  clicks  on  the  marked  link.       However,  we  can  send  data  earlier  during  loading  the  website.  In  this  way  tags  which  will   be  loading,  while  loading  the  website,  will  be  able  to  use  data  sent  to  Data  Layer.  We  have   to  send  such  data  at  the  moment  of  downloading  the  website.  We  do  this  by  a  simple  array   (again  the  element  very  well-­‐known  to  people  who  know  Javascript).  The  empty  table  looks   like  this:           The  essential  fact  is  that  the  array  of  Data  Layer  is  above  the  container  script.  It  is  very   important.  Now  we  will  add  pairs  of  information  (variable  and  value)  inside  this  array.  We   will  explain  how  it  looks  like  in  a  moment.     A  good  example  is  information  if  the  user  who  has  entered  the  website  is  logged  in  or  not.   If,  for  example,  the  user  is  not  logged  in  we  add  him  to  the  remarketing  list  of  people  who                                                                                                                   2  Of  course  we  can  send  such  pairs  variable  :  value  as  many  as  we  want  for  one  event.  More  in  Google  Tag   Manager  help.    
    •       50   have  not  been  registered  yet.  If  we  have  such  a  case,  it  is  important  so  that  data  get  to  GTM   as  soon  as  possible.     In  this  situation  we  have  to  send  information  while  loading  an  individual  subpage.  That  is   why  we  send  information  about  the  kind  of  user  to  Data  Layer.         In  this  example  we  added  two  pieces  of  information.   variable:  “visitor-­‐type”  of  value  –  “unregistered”  and  variable:  “category”  of  value  –   “signup”.     Except  information  about  the  kind  of  a  user,  we  have  send  at  once  information  about  the   kind  of  the  subpage  (category)  which  the  user  is  on.  The  unregistered  user  found  himself   on  the  “signup”  subpage.  The  website  category  may  be  helpful  e.g.  in  a  dynamic   remarketing.     Thanks  to  the  fact  that  data  were  immediately  in  Data  Layer,  tags  which  are  loaded  on  the   website  can  make  use  of  these  data  at  once  with  no  need  of  any  visitor's  action  on  the   website.       We  can  send  any  amount  of  data  to  Data  Layer.  There  is  one  question  which  can  occur  -­‐  
    •       51   Where  are  these  data  to  get  from?  Unfortunately,  in  this  particular  situation,  our  website   will  often  require  interventions  of  somebody  who  will  be  able  to  send  data   programmatically  to  Data  Layer  e.g.  from  our  shop  or  registration  system  (data  from  a  data   base,  server).  If  somebody  has  used  the  ecommerce  Google  Analytics  module  on  their   website,  the  matter  of  sending  variable  values  to  Data  Layer  is  analogical.  Simply  speaking   (not  programmatically):  in  Data  Layer  there  must  be  values  from  our  shop,  from  a  sales   module,  etc,  which  will  be  recorded  clearly  for  GTM  (read:  variable  –  value).  It  can  be  e.g.  a   basket  value  which  will  be  sent  to  Data  Layer  from  our  shop,  thanks  to  which  GTM  (and   other  tags  installed  there)  will  be  able  to  use  this  value  e.g.  to  create  conditions  of  firing   tags.     NOTICE:  Data  Layer  is  not  required  in  any  way.  Without  Data  Layer,  GTM  will  also  fulfill  its   role  of  “tag  storage  and  management”.  However,  lack  of  Data  Layer  limits  a  lot  possibilities   which  GTM  gives  to  us.     After  this  short  comment  about  what  Data  Layer  consists  in  we  can  go  to  more  advanced   examples  of  using  GTM  in  work  with  measuring  our  activity  in  the  Internet.     If  we  want  to  see  what  was  loaded  to  Data  Layer  we  can  easily  check  it  with  the  help  of  the   console  for  programmers  for  example  in  Chrome  browser.  We  enter  the  menu  View  -­‐>   Developer  -­‐>  Javascript  console.      
    •       52     After  loading  the  website  with  our  Data  Layer  we  type  in  "dataLayer”  in  the  Console  tab.  In   objects  we  will  be  able  to  preview  what  was  really  loaded  to  Data  Layer  and  sent  to  Tag   Manager.  A  greater  part  in  this  case  are  automatic  objects  of  GTM  but  as  you  can  see  our   data  sets  which  were  loaded  during  loading  the  website  with  the  table  added  above  the   container  were  added  into  the  first  object.     Event tracking in Google Analytics with GTM   In  the  previous  steps  we  have  learned  what  Data  Layer  is  and  what  it  is  used  for.  So  that   GTM  understands  events  which  we  are  going  to  track,  for  example,  with  Google  Analytics,   we  have  to  send  them  to  Data  Layer  with  the  help  of  push  method3.  If  we  want  to  measure   an  event  on  our  website  which  will  be  the  button  click,  we  have  to  send  to  GTM,  through   Data  Layer,  that  the  event  of  a  given  value  happened.       A button click as an event in Google Analytics   In  the  situation  when  we  want  to  measure  the  button  click  as  an  event  in  Google  Analytics   with  GTM  we  have  to  do  the  following  actions:     1.  Modify  the  website  code  –  Mark  the  button  click  as  an  event  in  GTM   2.  Create  Google  Analytics  tag  in  GTM  –  create  a  tag  responsible  for  the  event  in  GA   3.  Create  suitable  rules  when  our  GA  tag  is  to  be  fired.     Ad  1.  Modification  of  the  website  code     What  we  have  to  do  now  is  to  send  to  Data  Layer  the  information  that  the  event  –  the   button  click  –  happened.  We  will  use  the  push  method  to  do  this.                                                                                                                     3 "The push method is very well-known for everyone who knows Javastript language at least at the basic level, where the push method allows to add values to the array created before. Data Layer is such a array in our case. More about the push method can be read on: http://www.w3schools.com/jsref/jsref_push.asp
    •       53   How  will  it  look  like  in  practice  step  by  step?     1.  Type  in  a  website  address  to  the  browser  and  press  enter.   2.  The  container  with  our  tags  and  the  rest  of  the  website  is  loaded.   3.  If  there  is  the  click  on  a  marked  button,  with  the  push  method,  information  about  an   event  is  sent  to  Data  Layer.   4.  If  the  event  satisfies  any  rule  within  GTM,  a  given  tag  is  fired.     A  DataLayer  array  works  and  sends  data  to  the  container,  if  any  variables  and  values  are   placed  in  it.  If  not,  it  is  not  obligatory  in  the  website  code.     Thus,  how  will  this  look  like  in  practice  for  the  event  measured  in  Google  Analytics?     1.  Choose  the  button  which  you  want  to  measure  as  an  event,   2.  Edit  the  website  where  the  button  (link)  is4,   3.  Mark  the  button  with  the  push  method  with  the  type  of  onclick  event.                                                                                                                   4 We have to have an access to source files of the website with the possibility of their editing. If we do not know how to do this the best solution is to go with this guidebook to somebody who has the rights to edit pages.
    •       54   The  type  of  the  onclick  event  is  again  the  element  of  Javascript  language.  “Onclick”  fires  the   event  after  pressing  the  button,  and,  for  example,  “onmouseover”  after  moving  onto  the   object.  There  are  many  other  types  of  events  in  Javascript  language.  However,  these  two   are  the  most  popular  ones,  as  far  as  measuring  interaction  with  the  website,  with  the   mouse  is  concerned.     The  sample  code  will  look  like  as  follows:   dataLayer.push({'variable_name':  'variable_value'});   Example  of  our  button  in  the  html  code  will  look  like  as  follows:     <a  href=http://www.any-­‐website.com"  onclick="dataLayer.push({'event':'sample-­‐ link'});">Sample  link</a>5     What  has  happened?  The  link  clicks  we  assigned  the  GTM  event  of  ‘event’  variable  and   ‘sample-­‐link’  value  to  the  “Sample  link”  button.  Then  we  send  these  data  with  the  push   method  to  Google  Tag  Manager  (to  Data  Layer).     In  the  same  way  we  can  send  the  event  like  „onmousover”  ,  i.e.  measure  moving  onto  the   button  or  any  other  marked  element.  You  need  only  to  replace  the  type  of  event  from   “onclick”  to  “onmousover”  6.         Creating  a  tag  for  event  tracking  in  Google  Analytics     Having  already  a  marked  button  (or  link  or  any  other  website  element)  with  the  help  of   push  method,  we  move  to  GTM  and  create  a  new  tag  responsible  for  receiving  "messages”   about  clicks  from  Data  Layer  and  sending  it  to  Google  Analytics.  This  tag  is  a  Google                                                                                                                   5 The example can be seen on www.rewolucja.com.pl/gtm.html 6 More types of events can be fund e.g. here: http://www.w3schools.com/js/js_htmldom_events.asp
    •       55   Analytics  tag  of  a  track  type  -­‐  Events     While  creating  Google  Analytics  tag  we  have  to  define  ID  of  Analytics  account  where  we   want  to  track  a  defined  event  and  we  have  to  define  event  parameters.  According  to  the   order  in  Google  Analytics7:   <a  href="#"  onClick="_gaq.push(['_trackEvent',  'Videos',  'Play',  'Baby's  First   Birthday']);">Play</a>   Above  we  can  see  a  sample  Play  link,  marked  as  an  event  in  GA.  In  the  example  from  Google   Analytics  we  have  defined:     1. Event  categories  (e.g.  videos)                                                                                                                     7 More  on  events  in  Google  Analytics  can  be  read  in  Analytics  help   https://developers.google.com/Analytics/devguides/collection/gajs/eventTrackerGuide#Anatomy  
    •       56   2. Actions  (e.g..  play  )   3. Label  (Baby's  First  Birthday  -­‐  optional)   4. Value  (optional)       We  did  this  in  the  case  of  the  GA  installation  on  the  website.  In  our  case  we  have  to  add   these  values  into  right  columns  while  creating  the  tag  which  is  to  read  out  this  event.  In  our   case  I  have  defined  three  variables:     1. Event  category  (button)     2. Event  action  (click)     3. Label  (sample-­‐link)       In  our  case  I  define  the  label,  although  it  is  a  non-­‐obligatory  variable,  like  the  value.  It  is   worth  remembering  that  what  is  a  value,  action  or  label  depends  only  on  us.  It  is  worth   considering  how  to  mark  our  events  reasonably,  to  be  clear  later  what  they  mean  in  Google   Analytics  reports.              
    •       57   Creating  rules  for  GA  event  tag  to  be  fired     We  have  already  created  the  tag  to  read  events.  Now  we  have  to  create  the  rule  which   allows  to  transfer  the  information  about  event  from  GTM  to  Google  Analytics.    So  let’s  move   to  create  the  rule  in  the  right  column  of  the  website  of  the  tag  creation.       What  we  have  just  done  on  image  above  requires  a  little  explanation  because  we  used  the   {{event}}  macro.  Our  rule  named  “GA  event  –  sample  link”  says:  Fire  the  “UA  event”    tag  just   only  when  the  {{event}}  macro  includes8  a  “sample-­‐link”  character  string.     Do  you  remember  how  was  our  link  in  the  code  marked?   <a  href=http://www.any-­‐website.com"  onclick="dataLayer.push({'event':'sample-­‐ link'});">Sample  link</a>9.   During  the  click,  the  event  variable  is  to  take  “sample-­‐link”  value.  So,  during  the  link  click   our  rule  will  be  satisfied  and  the  “UA  events”  (event  tracking)  tag  can  be  fired.  Thanks  to                                                                                                                   8 It is possible to use „equals” in the rule. 9 The example can be seen on www.rewolucja.com.pl/gtm.html
    •       58   this,  data  about  event  will  be  sent  to  Google  Analytics.   Check  the  implemented  changes  by  the  Preview  tool  (Preview  –  Debug),  and  then  publish   the  changes.  As  you  can  see,  everything  works.     After  publishing  changes  we  know  that  GTM  fires  the  Google  Analytics  tag.  Now  it  is  worth   checking  if  the  events  are  really  reported  in  GA.    To  do  this,  it  is  a  good  idea  to  use  reports   of  Real  Time  in  Analytics  interface.  At  the  moment  of  click  it  is  better  to  be  logged  in  our   Analytics  account.  In  reports  about  Real  Time.  
    •       59     Everything  works  properly.  The  event  on  our  website  registers  correctly  in  Google   Analytics.  However,  one  thing  may  still  not  be  completely  clear  –  macros.  In  our  example   we  have  used  a  built-­‐in  {{event}}  macro.  The  macro  named  {{event}}  is  ready  to  use  type  in   GTM.  It  is  a  special  type  of  the  macro  which  gains  value  at  the  moment  of  calling  it  by  the   code:   dataLayer.push({'event':  'value'});   We  are  sending  to  Data  Layer  information  that  "event”  variable  gains  the  value  of  "value”.   We  used  it  exactly  a  minute  earlier  calling  the  event  on  our  “sample  link”  website.  However,   macros  have  many  types  which  can  be  used.  Each  type  of  the  macro  will  be  responsible  for   gaining  different  types  of  values.    
    •       60     Macro  can  retrive  data  directly  from  Data  Layer,  from  the  source  code  of  website  (DOM   elements10),  Cookies,  Javascript  codes,  URL  addresses  and  other.     Thus,  we  can  choose  a  different  type  of  macro  and  create  another  condition  of  calling  our   tag.  Thai  is  why,  we  can  create  more  complicated  rule.     For  example  we  could  have  a  more  complicated  rule  conditions:     Register  an  event  in  Google  Analytics  when  the  "event”  variable  will  have  value  of  „sample-­‐ link”  and  the  website-­‐type  will  have  value  “test-­‐site”.  We  want  to  retrieve  data  about  the   website-­‐type  from  Data  Layer  to  which  it  was  added  while  loading  the  website.     We  have  mentioned  before  about  adding  data  to  Data  Layer  while  loading  the  website,  so   that  the  tags  could  at  once,  while  loading  webisite,  make  use  of  those  data.  Supposing  that   our  website  has  a  definited  type  of  each  subpage.  There  are  subpages  of  products,   categories,  registrations,  etc.     Such  information  is  sent  GTM  by  the  dataLayer  array,  from  above  from  container.  In  our   example,  the  website  category  will  be  named  “test-­‐site”,  and  the  table  may  look  like  this:                                                                                                                   10 DOM elements are the elements in the website code such as DIV, HTML, BODY, ID. Thanks to the hierarchy and such a labeling of website code elements we can refer to them e.g. in javascript language.
    •       61     We  added  a  "website-­‐type”  variable  of  a  value:  "test-­‐site”.  Data  will  be  available  in  GTM   while  the  website  code  is  being  loaded.  So  you  need  only  to  create  a  macro  which  will  make   use  of  those  data.     For  example,  we  can  choose  a  macro  type  as  "Data  Layer  Variable”  and  name  it  a  "website-­‐ type”.  A  “website  category”  macro  is  ready.   Now,  we  add  another  condition  concerning  the  website-­‐tape  to  our  previous  condition   about  firing  the  GA  tag  which  registers  the  event    in  Google  Analytics.  
    •       62     We  choose  the  macro  created  by  us,  that  is  the  "Website  category”  11.  That  macro  should   equals  “test-­‐site”value  to  fire  our  GA  tag.     After  saving  and  publishing  a  new  version  of  the  container,  the  event  in  Google  Analytics,   after  the  button  click  "sample-­‐link”  will  register  only  when  a  website-­‐type  will  be  defined   as  a  "test-­‐site”.  If  it  is  a  different  website-­‐type,  the  event  will  not  be  registered  because   Google  Analytics  tag,  responsible  for  the  event  registration,  will  not  be  called.   In  this  way  we  can  create  many  combinations  of  conditions  of  many  tags  actions  making     use  of  different  types  of  data  (Data  Layer,  DOM  elements,  URL  and  others).  It  gives  wide   possibilities  of  administering  many  tags  from  many  different  systems  and  applications.                                                                                                                   11 The name for macros can be any. It is important to which it refers. I used "website-type" variable in "Website category" macro. I could name it "Website-type but in this case I have chosen different name. Macros can have any names, e.g. they can be named like variables they refer to. We have to keep an order in terminology because later, when more and more rules and macros are created we can have problems with administering them.
    •       63   More buttons (events) to measure on one website If  we  had  more  buttons  (events)  to  measure  on  one  website,  we  would  have  to  create   separate  tags  for  measuring  each  event  in  Google  Analytics  with  a  method  described  above.   However,  we  can  use  macros  and  then  one  tag  will  be  enough.  How  will  it  look  like  in   practice?   Again,  we  create  Google  Analytics  tag  which  will  be  responsible  for  the  event  registration.  It   will  be  exactly  the  same  like  tag  as  we  have  created  in  the  example  above.  However,  while   completing  the  column  about  event  parameters,  we  will  use  created  macros  instead  of   specific  data  for  one  event  (as  we  had  done  before).  Google  Analytics  tag  configuration  will   look  more  or  less  like  the  following:       As  we  can  see,  we  have  introduced  macros  for  each  parameter  instead  of  values  for  one   event.  Now  we  create  macros  which  will  have  equal  settings.  They  are  different  only  with   the  names  of  the  macro  and  a  Data  Layer  variable.  
    •       64     Finally,  we  should  have  such  macros  like  these:   1. {{Event  Category}}  >>  variable  event-­‐category   2. {{Event  Action}}  >>  variable  event-­‐action   3. {{Event  Label}}  >>  variable  event-­‐label   4. {{Event  Value}}  >>  variable  event-­‐value   Now  for  each  button  which  we  want  to  measure  as  an  event  in  GA,  we  have  to  add  a   possibility  of  sending  values  by  Data  Layer.  I.  e.  our  button  in  the  website  code  should  look   like  the  following:   <a  href=”http://www.any-­‐website.com"  onclick="dataLayer.push({'event':'sample-­‐link',   ‘event-­‐category’:’my-­‐category,’event-­‐action’:’action  name’,’event-­‐label’:’label-­‐ name’,’event-­‐value’:’event  value’});">Sample  link</a>     What  have  we  done?     We  have  added  variables  (these  ones  which  are  in  created  macros)  and  values  for  a  given   button.  In  this  way  at  the  moment  of  the  click,  values  are  sent  to  event  parameters  in  GA  tag   responsible  for  the  event  registration.  We  have  to  do  such  a  code  modification  for  each   button.  
    •       65     Measuring the action on the website with virtual pageviews In  the  situation  when  we  analyze  usage  of  buttons,  links  or  other  functionalities  on  our   website,  the  use  of  events  in  GA  is  absolutely  justified.  Events  do  not  generate  artificial   pageviews  of  our  website  and  do  not  interfere  in  reports  on  website  traffic.   However,  it  happens  that  some  elements  are  such  an  integral  part  of  service  that  measuring   them  as  an  event  would  not  be  reliable  to  the  end.  Let’s  take,  for  example,  an  company’s   offer  in  PDF  which  is  downloaded  by  website  visitors  and  then  read.  Perhaps  it  is  such  a  big   and  important  part  of  the  website  that  most  visitors  visit  it  just  to  download  PDF.  In  such   case  analysis  of    pageviews  may  be  better  then  events.  In  this  case  we  can  use  so  called   virtual  pageviews.  How  to  do  this  with  Google  Tag  Manager?   1. Tag  the  link  to  download  PDF  in  the  code  of  our  website   2. Create  Google  Analytics  tag  responsible  for  pageviews   3. Name  the  virtual  pageview  which  is  to  reflect  PDF  downloading   4. Create  the  rule  which  is  to  fire  tag  during  the  click  on  PDF  link     Ad  1.  Tag  PDF  link     Our  link  to  download  PDF  may  look  like  the  following:   <a  href="http://any-­‐website.pl/ebook.pdf"   onclick="dataLayer.push({'event':'pdf'});">Download  PDF</a>   Ad  2.  and  Ad  3.  Create  Google  Analytics  tag   Our  new  tag  responsible  for  virtual  pageviews  will  look  like  in  the  image  below.  We  set  the   track  type  as  pageviews  and  in  basic  settings  we  type  the  name  of  the  element  which  is  to   be  registered  as  a  virtual  pageview  while  downloading  PDF.  In  this  moment  in  GA,  if  a  
    •       66   pageview  is  registered,  in  the  report  on  the  contents  (Behaviour  >Site  content)  we  register   a  pageview  of  the  subpage/  e-­‐book-­‐download.       Ad  4.  Create  a  rule   To  fire  the  tag  for  measuring  virtual  pageviews  we  need  also  to  define  a  condition  when  a   given  tag  is  to  be  fired.  Thus,  we  create  the  rule  assigned  to  the  tag.    
    •       67     The  rule  which  we  have  created  says:  If  the  "event”  variable  equals  pdf,  fire  the  tag  for   tracking  pageviews  “UA-­‐  virtual  preview  (PDF)”.  There  is  only  one  thing  left,  to  check  if   everything  works  correctly  (Preview  >  Debug)  and  after  that,  create  a  new  version  and   publish  it.   At  the  moment  of  Debug  type  we  can  log  in  our  Google  Analytics  account  and  see  in  live   reports  if  GA  really  gets  information  about  pageviews  from  GTM.     I  have  clicked  on  the  link  to  download  PDF  and  at  this  moment  a  registered  pageview  of   subpage  /e-­‐book-­‐download  occurred  on  my  account.  Everything  works.  
    •       68   There  are  more  ways  of  obtaining  information  about  clicks  on  a  specific  link  (e.g.  to   download  pdf)  and  sending  them  as  an  event  to  GA.  We  will  learn  about  them  soon.   Summary     In  this  chapter  we  have  used  macros  several  times  to  create  events  in  GA.  Everything  works   very  nice  but  there  is  a  quite  big  interference  in  the  website  source  code.  The  same  amount   as  in  the  case  of  normal  Google  Analytics.  It  was  promised  to  be  so  beautiful,  without   editing  the  website.  Right,  but  we  have  to  remember  that  we  edit  and  label  once  and  we  can   do  further  whatever  we  want  in  GTM.  Now  many  different  tools  can  make  use  of  these   labels  of  website  elements.  Not  only  Google  Analytics.  Labels  are  universal,  comprehensible   for  other  programs,  not  only  for  the  one  (e.g.  GA).  But  still,  the  fact  is  that  there  is  a  lot  to   edit.     Here,  there  is  a  nice  surprise  because  GTM  allows  for  fully  automatic  work  with  website   elements  with  no  need  of  their  labeling  and  code  editing.  Thanks  to  the  function  of  auto   events  we  can  create  rules  based  on  the  website  content  and  then,  on  the  basis  of  it,  fire   track  tags  in  GTM.   So,  is  manual  tagging  pointless?  No.  Sometimes  there  are  such  situations  when  we  are  not   able  to  use  auto  events,  for  example  when  the  website  code  and  element  labels  do  not  allow   to  do  this.  Thus,  we  have  to  know  this  way,  despite  the  fact  that  we  will  learn  in  a  moment   about  a  solution  which  eliminates  the  need  of  website  editing.     How  do  auto  events  work  exactly?  We  will  learn  about  it  in  the  following  chapter.      
    •       69   Auto event in GTM (auto event tracking)   In  the  previous  chapter  we  have  learned  the  rule  of  macro  working  and  basic  methods  of   event  tracking  with  GTM.  Our  solutions  discussed  so  far  require  quite  a  lot  of  interference   in  the  website  code.  In  many  organization  each,  even  the  smallest,  modification  is   connected  with  long  time,  obtaining  consents  and  acceptance,  etc.  Often  in  the  initial  phase   we  resign  from  measuring  some  smaller  things  on  the  website,  just  because  of   organizational  difficulties.       Fortunately,  there  is  GTM  with  its  function  of  auto-­‐tagging.     Auto-­‐tagging  is  nothing  more  than  defining  events  on  the  website  with  no  need  of   interference  in  the  website  code.  In  this  case  we  define  only  conditions  which  have  to  be   satisfied  so  that  GTM  accepted  the  action  on  the  website  (for  example  onclick)  as  an  event.   These  conditions  may  be  e.g.  a  type  of  action  (clicking  on  the  button,  link),  ID  of  html  code   section,  CSS,  (so  called  DOM  ID,  eg.  <a  href=”#"  id=”link-­‐to-­‐something”></a>)12,  URL   addresses  and  many  other.     So  that  everything  works  we  define  only  an  event  type  (any  onclick,  filling  in  the  form,  time,   link  clicks)  and  conditions  (rules)  when  such  an  event  is  to  be  counted.  We  do  not  have  to   ask  for  any  code  edition.  The  only  thing,  which  should  be  set  with  people  responsible  for   the  website  code,  are  issues  of  labeling  different  elements  so  that  we  could  easily  edit   conditions  for  event  defining  later  (about  it  in  a  minute).     Auto-tagging in practice (introduction)   What  does  this  interesting  function  consist  of,  where  we  do  not  have  to  interfere  in  the   website  code  to  register  events?  It  consists  of  using  so  called  listeners  which  are  able  to                                                                                                                   12 In this example ID is "link_to something”.
    •       70   receive  information  from  the  website  that  are  clicks,  filling  in  the  form  or  other  event  that   has  happened.  How  does  it  work?     GTM  tag  called  listeners  receives  signals  from  the  website  if  the  event  happens,  identifies  it   and  automatically  add  it  to  Data  Layer.  Such  an  event  is  then  ready  to  be  used  by  tags   installed  in  GTM  (e.g.  Google  Analytics  tag).     Receiving  signals  -­‐>  event  registration  -­‐>  using  in  tags  and  rules       To  understand  working  of  an  autotagging  function  in  the  easy  way  we  will  show  a  simple   example.     Auto measuring of clicks on the button (link)   Let's  take  a  sample  link  from  our  test  website.       We  want  to  measure  clicks  on  this  link  as  an  event  in  Google  Analytics.  So  we  have  to  do  the   following  actions:     1. Create  the  tag  responsible  for  receiving  signals  from  the  website  (listeners).  
    •       71   2. Define  the  rule  –  when  the  listener  is  to  be  fired  on  the  website.   3. Create  Google  Analytics  tag  responsible  for  the  event  registration.   4. Define  the  rule  when  the  event  is  to  be  registered  in  GA       Ad  1.  Create  the  tag  responsible  for  receiving  signals  from  the  website  (listener)     To  start  making  a  use  of  auto  event  tracking,  first  of  all,  we  have  to  create  the  tag   responsible  for  "listening"  to  what  is  happening  on  the  website.  That  is  the  Listener.  We   create  Listener  Tag  like  other  tags.  We  have  to  only  choose  such  a  type  of  it  which  will  be   the  most  suitable  to  our  task.         We  have  five  types  of  Listeners  in  GTM  at  our  disposal.  Each  of  them  is  responsible  for  a  bit   different  event  types.  Before  we  start  to  create  auto  events,  let's  take  a  look  at  their  types:          
    •       72   Click  Listener       This  Listener  is  responsible  for  registration  of  all  kinds  of  clicks  on  the  website  (on  buttons,   links  and  other  clicking  elements  of  the  website).  While  clicking  on  any  clicking  element,   the  event  gtm.click  is  auto  generated  inside  Google  Tag  Manager.     Form  Submit  Listener       This  Listener  is  responsible  for  registration  of  form  submission  on  the  website.  At  the   moment  of  the  form  submission  the  auto  event  is  generated  inside  GTM,  gtm.formSubmit  .     Link  Click  Listener       Click  Listener  is  responsible  for  link  click  registration.  It  can  be  mistaken  with  "Click   Listener"  because  they  work  quite  similar.  "Link  Click  Listener"  is  recommended  to  be  used   in  link  click  registration  which  links  lead  to  other  subpages  in  services  and  Click  Listener  to   the  rest.       Timer  Listener       This  Listener  is  responsible  for  measuring  and  countdown  time  on  the  website  in   milliseconds.  While  being  fired  it  starts  counting  down  the  time  defined  by  us.  The  listener   can  be  used  in  many  ways,  e.g.  calling  the  event  on  the  website  which  will  measure  a  real   bounce  rate  in  Google  Analytics.  We  will  talk  over  this  case  a  little  bit  later.     JavaScript    Error  Listener     A  very  useful  Listener  which  registers  mistakes  in  script  calling  on  our  website.  We  can,  for   example,  register  mistakes  as  events  in  GA.  Thanks  to  this  we  have  an  insight  and  control   over  quality  of  our  site  working.    
    •       73     Coming  back  to  our  easy  example…     For  our  example,  link  click  registration  (let's  take  :My  link  for  auto  event  tracking  ),  we  will   choose  a  type  of  Listener  as  simply  Click  Listener.     Ad  2.  Define  the  rule  –  when  the  listener  is  to  be  fired  on  the  website     If  we  have  already  chosen  Click  Listener  we  have  move  to  defining  rules  when  it  is  to  be   fired.  This  type  of  registering  tag  can  be  easily  switched  on  on  all  pages  of  our  website.   Thanks  to  this  we  can  easily  register  clicks  also  on  other  links  on  a  website  (we  can  use  that   information  later).  So  our  now  rule  should  be  as  follows:  fire  the  "Auto  click  listener"  tag  on   all  pages  of  the  website.         Let's  stop  here  for  a  moment.  We  can  check  now  how  GTM  registers  clicks  on  different  links   on  our  website.  Thanks  to  this  we  will  understand  how  GTM  sees  our  links,  it  will  be  easier   for  us  to  create  macros  and  rules  later.     If  we  already  save  the  tag  and  publish  its  version  (we  can  do  this  also  in  Preview  >  Debug),   we  move  to  our  website  tab  in  web  browser  and  click  on  any  link.  Then  we  run  Javascript  
    •       74   console  in  Chrome  browser13  (View  >    Developer  >  Javascript  Console)  and  we  type   "dataLayer"  in  Console  bookmark.     Thanks  to  this  we  could  see  objects  currently  loaded  to  our  Data  Layer.  In  the  first  object   there  are  always  data  loaded  from  a  dataLayer  array  above  the  container(If  there  is   something  there).  In  the  last  object  there  are  the  last  registered  events  on  the  website.    In   our  case,  it  is  the  link  click  which  called  gtm.click  auto  event.       In  this  view  we  can  see  what  elements  were  registered  by  Click  Listener  and  sent  to  Data   Layer.  For  example,  in  "ID  element"  value  "example-­‐link"  occurs  and  in  "URL  element"    an   address  to  which  the  clicked  link  refers.    Thanks  to  our  Click  Listener  we  will  be  able  to   make  use  of  these  data  while  defining  other  rules.     Let's  preview  now  the  source  of  the  test  website.  Link  ID  and  actual  URL  address  were                                                                                                                   13 You can make use of other consoles and other browsers. For example, we have a Firebug plug-in in Firefox available.
    •       75   registered  by  our  Listener.  In  our  example  it  is  "#".  Seeing  like  Listener  collects  information   and  what  is  really  viewable,  we  can  really  understand  how  to  create  rules  and  macros   which  will  allow  us  to  register  chosen  actions  on  the  website.  Thanks  to  this  we  know  what   Listener  has  registered,  we  can  create  conditions  of  event  registration  which  will  include   more  than  one  variable.   For  example  the  condition  of  this  type:   Register  e-­‐book  downloading  and  add  it  as  an  event  to  GA  only  then  when  element  ID  <a>   equals  "e-­‐book"  and  URL  address  ends  with  ".pdf".     In  this  way  we  can  differ  various  types  of  clicks  and  events  in  GA.  We  will  deal  with  it  later.             Ad  3.  Create  Google  Analytics  tag  responsible  for  event  registering     Since  we  have  Listener  which  "listens"  to  what  is  happening  on  our  website  in  matter  of   clicks  that  was  done,  we  can  start  register  of  our  chosen  click  as  an  event  in  Google  
    •       76   Analytics.  What  we  have  to  do  at  this  point  is:     1. Create  Google  Analytics  tag  responsible  for  sending  events  to  GA.   2. Define  when  a  given  tag  is  to  be  fired.         What  I  have  done  is  to  use  two  macros  {{element  text}}  and  known  to  us  {{event}}  while   completing  parameters  about  events  in  Google  Analytics.  We  will  come  back  to  this  issue  in   a  minute.     So  thatctag  could  work  we  create  the  rule  for  it,  that  is  the  condition  when  it  is  to  be  fired.   In  this  case  we  use  two  elements  of  our  condition  for  the  tag  created  above.   The  obligatory  condition  is  auto  event  which  registers  the  clicks:             {{event}}  equals  gtm.click     This  is  the  condition  which  has  to  be  satisfied  to  take  an  auto  event  into   consideration.       If  we  do  not  add  it  for  each  time  when  we  use  Click  Listener,  the  rule  simply  will  not  work.   We  will  use  the  event  which  was  automatically  added  to  Data  Layer  at  the  moment  of  click.  
    •       77   Thus,  we  refer  to  gtm.click  auto  object  which  registered  this  event.     The  second  condition  has  to  be  define  by  us:   {{url  element}}  includes  .html   This  element  of  the  rule  is  to  prevent  from  registering  the  link  clicks,  for  example,   concerning  pdf  documents.  In  this  element  a  condition  is  added  if  the  element  which  is  URL   address  includes  .html,  you  can  fire  a  tag.     Hence,  in  our  case  two  conditions  must  be  satisfied  so  that  the  tag  could  be  fired.  Click  must   be  registered  by  an  auto  event  and  link  must  include  a  ".html"  character  string.       You  need  only  to  test  and  publish  a  container  version.     Result?   Thanks  to  our  currently  created  rule,  all  links  on  the  website  will  be  registered  as  an  event   in  Google  Analytics.  We  settled  the  matter  thanks  to  two  tags.    
    •       78   A little more about macros in auto events Let's  come  back  for  a  while  to  the  moment  of  creating  Google  Analytics  tag  responsible  for   tag  registration.  While  creating  parameters  for  events  we  used  two  macros:  {{element   text}}  and  known  to  us  {{event}}.  As  I  have  mentioned,  many  times  ,  macros  are  variables   which  load  values  from  Data  Layer.  Thanks  to  this  they  make  our  work  easier  and  save  our   time.  Thanks  to  macros,  if  we  look  at  GA  account,  after  clicking    on  any  link  which  meets  the   rule,  we  will  see  labels  below.       These  labels  are  values  substituted  for  our  {{element  text}}  and  {{event}}  variables.       The  {{event}}  macro  assumed  gtm.click  variable  because  such  an  event  happened  while   clicking.  The  Click  listener  registered  automatically  a  click  event  which  is  marked  by  GTM   automatically  as  gtm.click.     The  second,  {{element  text}},  macro  i  a  very  interesting  and  useful  macro  which   automatically  reads  the  text  included  within  the  element.  De  facto  it  reads  simply  the   "anchor  text"  that  is  viewable  texts  on  the  website  after  which  the  reference  (link)  is.    
    •       79   Thanks  to  this  that  I  have  put  these  two  macros  in  the  event  model,  in  the  image  above  an   event  and  precise  link  contents  (anchor  texts)  occurred  as  a  label.  Nice,  isn't  it?     There  are  more  possibilities  of  content  readings  from  the  website  with  the  help  of  macros.   It  is  important  that  macros  can  be  used  almost  in  any  place  of  GTM.  It  is  worth  looking   earlier  at  the  console  for  programmers  how  clicking  is  registered  by  Listeners  in  GTM.   Then  we  will  know  what  values  we  can  easily  take  out  of  the  website  content  and  which   will  require  from  us,  for  example,  manual  tagging.       As  it  is  seen  below,  after  clicking  on  the  link,  Listener  read  out  only  URL  address  to  which   link  (gtm.element/url)  refers.  There  is  also  a  definite  "a"  element.  We  know,  thus,  that  it  is   a  link.       "A"  object  in  html  language  is  responsible  for  links  e.g.  <a  href=”www.link.html”>Link</a>.     Now  it  is  worth  mentioning  that  an  accurately  and  carefully  written  website  code  will  be  a   great  facilitation  for  us.  If  a  programmer  does  not  give  e.g.  ID  for  objects  on  the  website,   classes  are  written  in  a  disordered  way,  it  will  be  more  difficult  for  us  to  define  rules  for   events.         We  will  have  to  use  more  often  the  custom  javascript  scripts  which  will  help  us  to  "take   out"  data  from  the  website  code.  
    •       80       Available  macros  and  their  possibilities     What  are  macros  we  have  said  at  the  very  beginning  of  this  e-­‐book.,  macros  are  pairs   variable-­‐value.  Values,  for  variables,  are  downloaded  from  Data  Layer  when  the  rules  allow   for  this.   A  macro,  as  we  know,  look  always  like  this:       {{macro_name}}     We  have  used  macros  several  times.  At  the  very  beginning  we  have  created  the  macro   where  the  value  was  Id  number  of  our  Analytics  account.  Later  we  made  a  use  of  a  built-­‐in   {{event}}  macro  responsible  for  sending  events  to  Data  Layer.     Just  now  we  have  used  {{element  text}}  macro  which  registers  the  text  within  the  website   element  e.g.  link.  Now  it  is  time  to  introduce  other  macros  and  their  application.           While  creating  a  new  macro  a  list  of  available  macro  types  will  occur.  Some  of  them  we   have  already  used,  but  some  not  yet.  They  are  such  macros  which  will  be  useful  in  very  rare   cases  (Random  number)  and  such  which  will  almost  always  use  the  Auto-­‐event  variable.  As   you  can  see  below,  some  of  macros  is  "built-­‐in"  GTM,  we  have  them  ready  at  once  at  the   moment  of  creating  an  account.  Most  of  them  concern  event  listeners  i.e.  auto  events  which   we  have  discussed  initially  in  examples  before.  Here  I  will  mention  once  again  that  it  will  be   easier  for  us  to  work  with  GTM  if  the  code  of  our  website  will  be  written  precisely.  It  would  
    •       81   be  perfect  if  the  most  elements  had  their  ID.  Of  course,  it  is  not  an  obstacle  but  it  will  be   easier,  especially  for  people  who  do  not  work  with  javascript.           Let's  start  from  a  fast  discussion  of  individual  types  of  macros  which  we  can  create.     Auto-Event Variable   There  are  several  macro  types  of  this  kind.  Because  new  types  appear  quite  often  and  are   added  to  the  list,  I  will  introduce  only  the  most  popular  and  the  most  frequently  used  ones.      
    •       82     Element  classes:  Returns  the  class  of  the  element  attribute  which  was  clicked.   The  example:  We  have  a  <div  class="MainMenu">website  menu</div>element  in  the   website  code,  this  type  of  macro  will  return  the  value  of  "MainMenu"   Element  ID:  Returns  the  ID  of  the  element  attribute  which  was  clicked.   The  example:<a  href="#"  id="example-­‐link">My  link  for  auto  event  tracking</s>,  macro  of   this  type  will  return  to  us  the  value  of  "example-­‐link".   Element  target:  Returns  the  attribute  of  "target"  element  which  was  clicked.   The  example:    <a  href=”http://www.any-­‐website.pl”  home”  target=”blank”/>,  macro  will   return  to  us  the  "blank"  value   Element  text:  This  type  of  macro  we  used  before  in  the  example.  The  macro  returns  the   text  in  a  clicked  element.   The  example:  <a  href=”http://www.any-­‐website.pl”  home”  target=”blank”/>Link  to  any-­‐ website</a>.  The  macro  will  give  back  to  us  the  value  of  "Link  to  any-­‐website".   Element  URL:  This  type  of  macro  gives  back  the  value  of  a  clicked  attribute  element  <a  
    •       83   href>  (link  url  address)  or  the  value  of  "action"  attribute  in  forms.     The  example  of  the  link:  <a  href=”http://www.any-­‐website.pl”  home”  target=”blank”/>Link   to  any-­‐website</a>.  The  macro  will  give  back  to  us  the  “http://www.any-­‐website.pl”  value.     The  example  for  the  form:  <form  action=”/thankyou.html”  id=”form”>.  Macro  will  give  back   the  "/thankyou.html".  value     Macro Constant String The  macro  stores  the  constant  value  which  we  can  use  later  in  other  actions  in  GTM.  We   used  the  macro  before  to  store  Analytics  account  ID.  Thanks  to  this  identification  we  do  not   have  to  remember  numbers  of  Analytics  accounts  used  by  us  but  also  other  e.g.  Conversion   ID.   Macro  -­‐  Custom  Events     It  is  one  of  the  most  popular  macros  created  on  GTM  account  at  once.  The  macro  gives  back   its  value  while  being  loaded  to  Data  Layer.     dataLayer.push({“event”:”event_value”})     We  use  this  macro  the  most  frequently  in  specific  tag  settings.  If  we  want  to  fire  a  tag  at  the   moment  of  any  action  on  the  website  (e.g.  click),  and  a  given  click  was  tagged  by  us  with  a   push  method,  add  only  {{event}}  equals  "event_value"  as  a  rule  in  the  tag.  At  the  moment  of   the  click,  value  is  sent  to  Data  Layer  and  a  suitable  tag  fires.     We  have  already  used  this  tag  in  the  chapter  about  basic  event  tracking  in  Google  Analytics.     The  "Custom  Events"  macro  takes  also  value  of  "gtm.click",  "gtm.linkClick  or  other   connected  with  auto  events.  Hence,  as  we  remember  from  the  previous  chapter  about   creating  auto  events  to  call  auto  events  we  always  have  to  add  the  rule  of  firing  this  tag  
    •       84   condition  {{event}}  equals  "gtm.click"14     DataLayer Variable   Like  in  the  case  of  the  "Custom  Events"  macro,  a  variable  will  be  sent  while  calling  the  code.       dataLayer.push({'Data_layer_variable':  'value'})     The  same  we  can  use  the  variable  if  it  is  in  the  dataLayer  array  above  the  container.  A  good   example  of  using  this  macro  is  recognizing  clicks  on  images  on  our  website.  The  example,   step  by  step,  is  described  later  in  the  e-­‐book.     DOM elements   The  macro  is  responsible  for  loading  values  connected  with  an  ID  attribute  of  a  given   element  from  the  website.  We  can,  for  example,  decide  that  we  want  to  register  only  the   event  if  someone  clicks  on  a  specific  button  with  specific  ID.  We  can  also  do  this  with  the   help  of  DOM  element  macro,  giving  a  rule.  Fire  a  chosen  tag,  if  the  DOM  element  equals  i.e.   "sample-­‐link-­‐id".     <a  href="http://www.any-­‐website.pl"  id="sample-­‐link-­‐id">Sample  link</a>     We  can  use  also  macro  in  any  other  place  of  GTM.  For  example,  in  defining  events  in  Google   Analytics.   Let’s  see  example.  We  have  "Sample  link"  which  we  want  to  measure  in  GA  as  an  event   while  it  is  clicked.  The  link  in  the  code  looks  like  as  follows:                                                                                                                       14 Or other values for auto events e.g. gtm.formSubmit, gtm.linkClick.
    •       85       Now  we  have  element  ID  of  <a></a>  tag  as  "sample-­‐link-­‐id"  and  "alt"  attribute  which  has   "this  is  alt"  value.  What  can  we  do  with  this?     Let's  take  our  earlier  example  with  the  use  of  macros  in  defining  parameters  of    the   Analytics  event.         I  have  modified  the  Label  parameter  and  used  in  it  two  created  similar  macros.  One  macro   is  named  {{DOM  element}},  the  second  one  {{DOM  element  attribute}}.  The  whole   parameter  looks  like  as  follows:     {{DOM  element}}  -­‐  {{DOM  element  attribute}}     Macros  themselves  look  similar.  {{Dom  element}}  macro  looks  like  as  follows:  
    •       86       I  have  introduced  element  ID  <a>.  The  second  macro  looks  very  similar  but  it  has   additional  variables.  We  add  element  attribute  <a>  .         So,  we  have  two  macros  which  differ  only  on  adding  attribute.  I  assume  that  all  other  in  the   GA  tag  which  is  to  track  the  click  as  an  event  is  set  correctly.  After  publishing,  if  someone   clicks  on  the  link  in  Google  Analytics  we  should  register  the  following  data.  
    •       87       That  is  {{DOM  element}}  macro  registers  the  text  value  of  the  element  from  ID="sample-­‐ link-­‐id"  and  the  second  {{DOM  element  attribute}}  macro  which  has  additionally  defined  an   additional  variable  of  the  element  (alt  attribute)  takes  value  alt+  "this  is  alt"   HTTP referrer   This  macro  downloads  data  about  the  referrer  to  the  website  where  the  click  was.  If,  for   example,  our  website  is  www.any-­‐website.pl/gtm.html and  someone  has  entered  it  from   the  main  website  of  the  service  www.any-­‐website.pl/read-­‐this.pl  ,  the  loaded  referrer  will   equal  “www.any-­‐website.pl/read-­‐this.html”.  The  website  address  where  the  click  came   from.     This  macro  can  be  used,  for  example,  to  condition  firing  of  suitable  tags  depending  on  the   referrer.     Javascript Variable (Custom Javascript code) If  we  are  not  able  to  download  data  with  the  help  of  available  macros  and  click  Listeners,   we  can  support  ourselves  with  the  script  directly  written  by  us.    
    •       88           Our  script  will  download  the  value  of    "class"  attribute  for  the  element  of  ID="product".  Of   course  using  such  a  type  of  macro  we  have  to  leave  to  people  who  know  JavaScript   language  at  least  on  a  basic  level.  It  is  an  example  because  now  we  have  also  the  macro   available  which  is  able  to  identify  the  class  elements  of  source  code.     Random Number   The  "Random  Number"  macro  for  each  time  when  it  is  called  takes  the  random  number   from  0  to  2147483647.  How  can  we  use  this  macro?     An  interesting  example  is  to  call  the  tag  for  some  percent  of  visitors  of  our  site.  Such  a  tag   can  be  at  least  the  tag  which  fires  scripts  to  test  website  contents.  It  can  be  used  for  firing   scripts  with  surveys  to  some  percent  of  website  visitors.     You  need  only  to  mark  the  condition  in  the  rule  of  calling  the  tag:  if  {{Random  Number}}  
    •       89   macro  ends  with  9,  call  the  tag.  It  will  correspond  to  10%  of  website  visits  15.     URL macro   This  macro  allows  to  load  address  fragments  like:  host  name,  query  or  any  other  fragment.       Let's  explain  in  details  what  each  type  of  URL  macro  component  can  be  used  for.     ● URL:  Returns  the  whole  URL  address     ● Protocol:  Returns  the  protocol  of    URL  address  (http  or  https)   ● Host  Name:  Returns  the  host  name  (e.g.  marketinglab.pl,  google.com,  etc.)   ● Port:  Returns  the  port  number  of  the  host  name.  Ports  are  used  for  communication  with   the  Internet.  Different  ports  are  responsible  for  different  kinds  of  connections.  Connections   for  pages  will  also  use  ports:  80  or  443  depending  on  if  it  is  http  or  https.   ● Path:  Path  of  URL  address  without  the  host  name,  e.g.  if  we  have  the  following  address   www.any-­‐website.pl/example.html,  we  will  get:  example.html.   ● Query:  Returns  the  value  of  a  chosen  query  in  URL  address.     ● For  example  in  URL  address:  www.any-­‐website.pl/example.html?utm_source=mail,  we  can   download  "utm_source"  query  value  and  the  condition  to  fire  any  tag  or  we  can  use  by  the   way  of  creating  other  values  such  as  at  least  names  of  event  parameters  in  Google                                                                                                                   15 http://dan-russell.com/2013/03/sampling-a-percentage-of-your-users-with-google-tag-manager/
    •       90   Analytics.   ● Fragment:  Returns  the  character  string  from  URL  address  without  preceding  #.     Lookup Table   It  is  one  of  the  most  useful  macros  if  we  are  to  build  condition  of  a  variable  value  depended   on  the  value  of  other  variable.  The  lookup  table  allows  to  create  the  macro  in  which  the   value  will  depend  on  the  value  of  other  macro.       Probably  the  most  interesting  example  is  a  situation  when  we  test  changes  within  GTM.  We   test  events  if  they  work  in  Google  Analytics,  we  generate  a  lot  of  clicks,  visits,  etc.,  in  Debug   Mode.  Thanks  to  the  Lookup  table  we  can  create  the  condition  which  depending  on  in   which  mode  we  are  –  live  or  Debug  mode  will  be  replacing  ID  numbers  of  Analytics   accounts.  In  this  way  we  can,  in  Debug  mode,  test  events  in  GA  on  other  account  (to  tests),   not  spamming  our  real  account  with  artificial  events.         To  do  this  we  will  use  a  combination  of  Debug  macro  and  Lookup  Table.   We  create  the  macro  of  Debug  type  which  automatically  takes  value  True,  if  we  are  in   Debug  mode  or  False  if  we  are  not.  When  someone  clicks  in  a  website  in  "live"  mode.   Then  we  create  Lookup  Table  macro  (I  called  it  SafeMode)  and  give  the  condition:     If  you  are  in  Debug  mode  (true)  use  macro  value  {{UA  -­‐  Rewolucja  –  test  account}},  and  if  you  
    •       91   are  not  in  Debug  mode,  use  values  from  {{UA  -­‐  Rewolucja  -­‐  live}}  macro.     Of  course  I  have  created  {{UA  -­‐  Rewolucja  -­‐  live}}  and  {{UA  -­‐  Rewolucja  –  test  account}}   macros  before.  Both  are  of  a  Constant  String  type  and  have  values  of  two  IDs  of  accounts.   Test  and  true  accounts.       Now  we  should  only  use  {{SafeMode}}  macro  in  all  places  where  we  use  ID  of  our  Analytics   accounts.  It  is  about  tags  of  course.       Measuring outbound links as auto events in GA   In  the  case  of  generating  and  buying  traffic  on  a  website  a  very  important  aspect  of   measuring  its  effectiveness  is  also  knowledge  about  possible  "escapes"  of  visitors  from  a   given  site.  That  is  why  events  which  register  outbound  traffic  from  the  website  are  often   created  in  Google  Analytics.  So  that  it  was  necessary  to  tag  all  links  in  the  site  leading  to   "outside"  the  website".  Google  Tag  Manager  is  able  to  help  us  to  track  the  outbound  traffic   in  an  automatic  way.  To  do  this  we  have  to  do  the  following  steps:       1. Add  the  tag  which  will  automatically  register  clicks  on  links  on  a  website.   2. Add  Google  Analytics  tag  which  will    be  responsible  for  registration  and  sending   clicks  as  events  to  GA.   3. Create  the  rule  which  will  register  only  clicks  on  outbound  links.  
    •       92       Ad  1.  Add  the  tag  which  will  automatically  register  link  clicks  on  the  website     We  create  the  tag  of  Click  Listener  type.  With  the  rule  for  all  pages.           Ad  2.  Create  Google  Analytics  tag  responsible  for  event  registration.     At  the  moment  of  choosing  parameters  we  can  make  use  of  macros  which  will   automatically  send  to  GA  information  about  what  the  full  URL  address  of  the  exterior   website  is  and  we  can  download:  "anchor  text"16  of  the  link  to  PDF.                                                                                                                   16 Anchor text – a viewable clickable text of the link
    •       93       Ad  3.  Create  rule  for  macro           As  a  rule  we  give  two  conditions.  As  always  in  the  case  of  auto  Listeners,  the  condition   {{event}}  equals  gtm.click  and  condition  where  link  clicks  on  navigation  links  on  the   content  within  our  site  are  excluded.  In  this  case  it  will  be:  {{element  url}}  does  not  include   "name_of_our_domain".  {{element  url}}  macro  returns  the  value  which  is  a  full  address  of   url  link  which  was  clicke  
    •       94   Measuring  document  downloads  (e.g.  PDF)  as  auto  events  in  GA     In  this  case  we  want  to  register  PDF  file  downloads  as  events  in  Google  Analytics.  We  have   to  do  the  following:     1. Add  the  tag  (or  if  it  exists  we  make  use  of  existing  one)  which  will  automatically   register  link  clicks  on  the  website,  click  Listener.   2. Add  Google  Analytics  tag  which  will  be  responsible  for  registration  and  sending  PDF   file  downloads  as  events  to  GA.   3. Create  the  rule  which  will  register  only  clicks  (downloads)  of  PDF  files.       Ad  2.  Add  Google  Analytics  tag  responsible  for  registration  of  PDF  file  download  as   the  event.     We  have  omitted  the  item  1,  because  we  have  the  tag  of  a  click  Listener  type  already   created  on  the  account.  If  we  do  not  have  it  we  can  use  the  earlier  example  where  it  is   described  in  details.     So,  we  create  a  GA  tag  responsible  for  event  registration  (type:  event)  with  parameters   which  will  be  transferred  to  Google  Analytics  as  an  event.  One  of  these  parameters  is  the   "Action"  parameter.  In  this  parameter  we  use  the  {{element  text}}  macro  which  will   transfer  as  its  "anchor  text"  value  of  downloaded  PDF.    "Anchor  text"  in  this  example  is  an   underlined  name  of  a  PDF  file.  It  is  very  often  so,  hence,  my  idea  for  such  a  solution.  If  PDFs   on  the  website  are  not  labeled  as  links  to  download  with  anchor  texts  of  type  "Download   now"  I  advise  against  using  this  macro  because  we  will  not  learn  later  much  from  the   parameter  of  GA  –  Action  event.    
    •       95       Ad  3.  The  rule  for  the  tag  to  register  PDF  download     The  rule  which  is  to  fire  this  tag  is  important.  In  this  rule  we  have  included  two  conditions:   As  always  in  the  case  of  auto  registration  of  clicks  {{event}}  equals  gtm.click  and  the  second   condition  concerning  the  type  of  the  file  registered  as  an  event.  In  this  case  I  used  a  simple   {{element  url}}  rule  i.e.    url  address  includes  "pdf"  character  string.    Sometimes  the   conditions  of  this  type  will  be  more  complicated  if  files  have  different  extensions  or  they   are  differences  in  names,  e.g.  PDF  file  can  be  packed.    Then  surely  regular  expressions   (regex)  will  be  helpful.        
    •       96       While  using  click  listeners  we  must  always  remember  about  adding  in  the  rule  the   condition  {{event}}  equals  gtm.click  (or  other  if  we  use  actually  other  listener  e.g.   gtm.linkclick).     Remember  that  to  exclude  the  registration  of  PDF  from  other  rules  which  collect  clicks  on   all  other  links.  You  can  add  the  excluding  rule  {{element  url}}  includes  pdf.  The  excluding   function  is  below  the  option  for  defining  rules.     NOTICE!  If  you  did  not  read  the  whole  e-­‐book,  only  piecemeal,  you  should  know  that  using   GTM  to  event  registration(event  type)  we  must  always  remember  to  have  the  GA  tag  which   is  responsible  for  pageviews  registration.     Measuring  clicks  on  images  as  an  event  on  the  website  in  GA     Perhaps  you  are  curious  how  often  somebody  clicks  on  graphic  elements  (e.g.  images)   which  do  not  have  to  be  links.  Maybe  we  want  to  know  if  any  graphic  deserves  link  or  we  
    •       97   suspect  that  website  users  may  be  mistaken  and  think  that  some  images  is  clicked  and  that   is  why  they  are  distracted  from  purchase  path  or  causes  confusion.  Let's  take  a  simple   example:  We  have  a  image  on  the  webpage  which  source  code  looks  like  the  following:         We  want  to  register  an  event  in  Google  Analytics  as  clicks  on  this  image.  We    want  to   differentiate  clicks  on  graphic  forms  from  normal  text  links.  What  do  we  have  to  do?     1. Create  the  macro  which  will  allow  us  to  obtain  information  about  the  name  of  the   element  of  the  source  code,  in  this  case  we  want  to  get  labels  of  <img>  Image.   2. In  the  Google  Analytics  tag  responsible  for  event  registration  in  event  parameters   we  place  macro  combination  which  will  automatically  send  events  with  suitable   labels  to  GA         Ad  1.  Create  macro  which  will  allow  us  to  download  such  information  of  the  name  of   the  element  of  the  website  source  code  which  was  clicked.    
    •       98       To  do  this  we  made  use  of  the  "Variable  of  Data  Layer"  macro  type  and  the  name  of  variable     downloaded  from  Data  Layer  is  the  Listener  name  of  elements  on  the  website   (gtm.element).  Because  there  is  arborization  of  DOM  elements  in  GTM,  we  can  add  after  the   “dot”  what  element  is  in  our  interest  and  ask  about  its  name  (tagName).  That  is  within  the   website  code  element  recognized  by  GTM  (e.g.  <a>,  <div>,  itp.)  the  tool  looks  for  the  name   of  a  given  tag.  De  facto,  it  will  be  its  type.  If  we  ask  about  the  type  of  an  element  (tagName)   for  the  link:   <a  href=”any_website.pl”  id=”link1”>Link  to  any-­‐website</a>,      we  receive  "a"  value.  Hence,  we  can  make  use  of  tagName  command  to  obtain  different   elements  which  the  user  clicked17 .  If  someone  clicks  on  the  image  we  will  get    <img>  value   and  that  is  it.     NOTICE!  Remember  about  versions  of  Data  Layer.  Version  2  allows  to  recognize  that  a  dot   in  this  character  string  is  the  gate  to  nested  information  and  not  a  normal  character.                                                                                                                   17  tagName  is  nothing  else  than  Javascript  command.  You  can  read  more  on  tagName  here:   http://www.w3schools.com/jsref/prop_element_tagname.asp  
    •       99       Ad  2.  We  place  macro  combination  in  Google  Analytics  tag  responsible  for  event   registration,  in  event  parameters.     We  place  macro  combination  {{event}}  and  {{tagName}}  in  Google  Analytics  tag   responsible  for  event  registration,  in  event  parameters.     After  being  tested  in  Google  Analytics  the  following  events  should  be  registered:        
    •       100     gtm.click  as  {{event}}  and  IMG  as  {{tagName}}.  In  this  way  we  know  that  a  given  click  was   on  the  image.  It  is  important  in  order  not  to  add  any  additional  conditions  except  {{event}}   equals  gtm.click  in  the  rule  of  firing  a  tag  which  collects  events.  We  do  not  want  to  block   recognition  of  any  click.     Cross-domain tracking with GTM (UA)   It  happens  very  often  that  this  what  we  want  to  measure  with  Google  Analytics  is  not  only   one  domain  but  our  Internet  actions  take  place  within  a  few  domains  and  subdomains.  If   we  have,  for  example,  two  domains  (domain1.pl  and  domain2.pl),  in  standard  GA   configuration,  a  user  moving  from  domain  1  to  domain  2  is,  in  GA  for  domain  2,  treated  as  a   user  coming  from  the  source  of  domain1.pl/referral  (source/medium).  If  we  want  to  know   the  whole  path  of  such  user  for  both  domains  (e.g.  what,  in  fact,  source  he  comes  from)  and   we  treat  both  domains  as  one  business  property,  we  have  to  configure  cross-­‐domain   tracking  in  Google  Analytics.  There  is  a  similar  situation  but  a  little  bit  simpler  is  in  the  case   of  tracking  the  traffic  between  subdomains  and  domains  (e.g.  subdomain.domain1.pl).  How   can  we  configure  tracking  of  this  type  with  GTM?     When  we  use  Universal  Analytics  we  can  use  options  of  auto  cross-­‐domain  traffic  tracking.   It  is  very  easy.  If  we  use  one  container  for  both  domains:    
    •       101       1. Create  (edit)  the  UA  tag  responsible  for  pageview  tracking.   2. Choose  "true"  value  for  'Allow  Linker'  option  and  add  names  of  domains  which  we   want  to  track  together.  We  do  this  after  comma.   3. Set  the  rule  –  "Fire  on  all  pages".     That's  all  actually.  Now  GTM  will  share  cookie  settings  for  both  domains.  We  will  see  this  in   the  link  after  clicking  and  moving  on  the  second  domain.  It  is  important  to  look  at  the   second  element  of  a  character  string  after  the  dot  on  the  right.        
    •       102       This  number  is  a  unique  identifier  of  the  user  (actually  of  the  browser),  it  should  not   change  while  moving  between  domains.     If  we  use  different  containers  for  each  domain  we  must  remember  to  install  the  UA  tag  with   the  same  number  and  settings  in  each  container.     At  the  end  we  enter  our  Google  Analytics  and  we  add  ignored  addresses  of  referrals  in   profile  settings.  In  other  case  referrals  between  domains  of  traffic  source  will  be  overtyped   (as  referrals  from  combined  domains).       Unique  user  ID    
    •       103   Dynamic remarketing installation with GTM More  and  more  often  we  can  observe  using  tools  in  marketing  actions  such  as  dynamic   remarketing.  The  tool  works  very  effectively  and  is  actually  an  invaluable  element  of   marketing  actions  which  is  applied  by  shops  and  advertiser  with  a  very  wide  product   range.   We  will  not  explain  here  the  rules  of  dynamic  remarketing  itself.  To  have  it  explained  I   refer  you  to  AdWords  help.  Here,  instead  of  it,  I  will  tell  how  to  implement  dynamic   remarketing  with  GTM.     What  will  we  need?   As  we  know  so  that  dynamic  remarketing  could  work  we  need  additional  parameters   added  to  the  standard  remarketing  code.     <script  type="text/javascript">   var  google_tag_params  =  {   ecomm_prodid:  'REPLACE_WITH_VALUE',     ecomm_pagetype:  'REPLACE_WITH_VALUE',   ecomm_totalvalue:  'REPLACE_WITH_VALUE'};   </script>   <script  type="text/javascript">   /*  <![CDATA[  */   var  google_conversion_id  =  XXXXXXXXXX;   var  google_conversion_label  =  "YYYYYYYYYY";   var  google_custom_params  =  window.google_tag_params;   var  google_remarketing_only  =  true;   /*  ]]>  */   </script>   <script  type="text/javascript"  src="//www.googleadservices.com/pagead/conversion.js">   </script>   <noscript>     <div  style="display:inline;">   <img  height="1"  width="1"  style="border-­‐style:none;"  alt=""  
    •       104   src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/XXXXXXXXXX/?value=0&amp;label=YY YYYYYYYY&amp;guid=ON&amp;script=0"/>   </div>   </noscript>     What  you  can  see  above  is  the  standard  remarketing  code  with  additional  parameters  (in   red),  thanks  to  which  the  system  is  able  to  serve  suitable  products  to  suitable  people.   Thanks  to  parameters  we  can  create  conditions  and  rules  concerning  remarketing  lists  and   advert  serving.     In  a  traditional  way  we  have  to  add  the  code  with  additional  parameters  to  each  subpage   with  products.  Of  course  nobody  does  it  manually  but  they  employ  a  programmer  who   loads  the  content  from  a  website,  cms,  data  base  or  CRM  and  pastes  them  in  a  code  for   parameters.  We  do  this  in  a  similar  way  but  differently  ;)  It  will  be  the  first  solution.  In  a   second  way  we  will  try  to  do  without  the  programmatical  intervention.  We  will  try  to  use   suitable  variables  and  macros  and  search  values  in  the  content  of  our  website.  Let's  start   from  the  standard  way.     First method - standard   If  we  want  to  make  use  of  dynamic  remarketing  with  GTM  we  have  to:   1. Create  a  remarketing  tag.   2. Create  rules  which  will  define  on  which  pages  a  given  tag  is  to  be  fired.   3. Choose  variables  and  send  product  values  to  Data  Layer   4. Create  the  macro  which  will  be  a  "bridge"  between  data  from  Data  Layer  and  the   remarketing  tag.   5. Test  and  publish  a  container  version.          
    •       105   Ad  1.  Create  a  remarketing  tag.     We  create  tag  the  same  like  in  the  case  of  the  normal  remarketing  tag.  We  give  an  ID   number  of  the  remarketing  tag  which  we  download  from  the  AdWords  account  (we  did  it   while  creating  a  normal  remarketing  tag  at  the  beginning  of  this  e-­‐book)  and  go  to  the   moment  when  the  option  of  adding  custom  parameters  occurs.         Here  we  can  add  our  parameters  to  the  dynamic  remarketing.  We  can  do  this  in  two  ways:    making  use  of  Data  Layer  (and  now    we  will  do  so)  or  we  can  define  each  parameter  as  a   macro  and  this  is  the  second  way  which  we  will  discuss  in  a  moment.     Ad  2.  Create  a  rule  for  the  remarketing  tag     Remarketing  tag  should  be  called  on  pages  which  indicate  some  kind  of  intentions  of  a  user   who  visits  our  service.  So  a  good  idea  is  to  remind  the  user  the  product  which  he  or  she   viewed  at  but  did  not  buy.    Then  it  is  worth  adding  people  who  visited  our  service  subpages  
    •       106   with  specific  products  to  the  remarketing  list.  Dynamic  remarketing  does  the  rest  for  us   and  it  will  automatically  show  the  user  such  products  which  he/she  has  already  viewed.   Labeling  each  kind  of  website  is  recommended,  the  more  data  the  better  differentiation  of   the  user  and  constructing  a  suitable  remarketing  message  for  him.  We  have  such  categories   which  are  worth  labeling  at  disposal:           Now  we  will  deal  with  a  category  of  product  pages,  so  that  our  tag  is  fired  only  on  product   pages.  We  have  to  find  some  common  feature  of  such  pages.  It  can  be  a  fragment  of  the   code,  ID  of  DOM  element  or  the  part  of  URL  address.        
    •       107         Let's  take  an  example  of  the  shop  http://www.charlotteas.com/  with  amber  jewelery.  I   found  out  that,  a  common  feature  of  each  website  with  a  specific  product  is  a  fragment   "products"  in  URL  address.     Thereupon  we  create  the  rule:   Fire  a  remarketing  tag  when  {{url}}  includes  the  character  string  :  products        
    •       108   Of  course  if  parameter  values  will  be  added  dynamically  (e.g.  pagetype)  before  being  sent   to  Data  Layer(next  step)  we  can  actually  fire  a  remarketing  code  on  each  website.  In  other   case  we  have  to  create  as  many  remarketing  codes  with  separate  rules  for  each  pagetype,   as  many  pagetypes  we  want  to  label  with  the  remarketing  code.     Ad  3.  Choose  parameters  and  send  them  to  Data  Layer     We  can  give  more  parameters  than  only:  pagetype,  product  ID  and  product  value  (total   value).  It  is  important  in  order  not  change  variables  which  are  allocated  to  the  dynamic   remarketing18.  I  recommend  sticking  to  the  terminology  proposed  in  AdWords  help.       Three  variables  above  are  standard  variables  and  one  should  make  use  of  them.  Of  course   we  can  add  more  variables.  Their  description  is  available  in  AdWords  help  about  dynamic   remarketing.   Now  the  most  important  thing.  Let's  look  at  the  code  below.  We  can  see  a   "google_tag_params"  variable  there.  To  this  variable  we  have  to  sent  all  variables  and   values  concerning  the  product  to  a  dynamic  remarketing.  Unfortunately,  it  must  happen                                                                                                                   18 More about parameters of dynamic remarketing on - https://support.google.com/adwords/answer/3103357
    •       109   with  the  help  of  somebody  who  takes  care  of  our  website  and  can  load  these  data  from  our   server,  cms,  shop  engine.  In  any  way  it  is  not  too  difficult.  It  works  the  same  like  the   implementation  of  E-­‐commerce  module  of  Google  Analytics  in  the  online  shop.       We  locate  the  script  with  ecomm  variables  closed  in  google_tag_params  variable  above   DataLayer  array  –  “dataLayer=  [];”.    As  you  can  see  in  the  example  below.     <script  type="text/javascript">   var  google_tag_params  =  {   ecomm_prodid:  'Product_ID',   ecomm_pagetype:  'product',   ecomm_totalvalue:  'product_value'   };   </script>   <script>   dataLayer  =  [{      google_tag_params:  window.google_tag_params   }];   </script>     As  we  can  see,  we  place  a  variable,  which  sends  our  variables  of  dynamic  remarketing,  in   Data  Layer.   What  have  we  done?  We  have  created  google_tag_parms  variable  which  includes  pairs  of   data  "variable:  value"  needed  to  our  remarketing.  Then  we  refer  to  this  variable.  Now  our   data  are  already  available  for  GTM.  It  is  a  bit  complicated  but  if  we  do  not  want  to   understand  it  we  should  only  do  this  as  described  above.  Of  course  taking  our  products  into   consideration  ;)        
    •       110   Ad  4.  Create  a  macro    which  will  combine  data  from  Data  Layer  with  a  remarketing   tag.     The  macro  must  be  of  a  dataLayer  variables  type.     This  type  of  macro  makes  use  of  variables  and  values  from  Data  Layer.  As  a  variable  we  use   a  variable  which  we  have  already  sent  to  DataLayer,  i.e.  "google_tag_params".           I  have  called  my  macro  as  a  variable  to  know  what  a  given  macro  refers  to  but  everyone  can   use  the  name  of  their  choice.   Then  we  return  to  remarketing  tag  and  configure  custom  parameters.  It  comes  down  to   choosing  variables  of  Data  Layer  that  is  to  our  macro  which  we  have  jus  created.    
    •       111       Ready.  Now  we  have  a  fully  configured  dynamic  remarketing  for  product  pagetypes.  What   will  happen?  While  the  user  visits  the  website  with  the  word    "products"  in  URL  address  (a   rule  which  we  have  created)  the  remarketing  code  with  "google_tag_params"  variable  of   DataLayer  will  be  called.  In  turn,  "google_tag_params"  variable  makes  use  of  data  sent   before  from  the  variable  which  was  placed  above  our  dataLayer  table  =  [];.     The  whole  procedure  of  dynamic  creation  seems  a  bit  roundabout  way  for  the  first  time.  In   turn,  as  you  can  carefully  observe,  a  remarketing  code  once  configured  will  work  not   depending  on  what  additional  variables  we  will  want  to  add.  We  do  not  have  to  also  edit   anything  in  the  Data  Layer  array  (dataLayer  =  [];)It  is  enough  to  edit  (modify  or  add   variables  and  values)  in  our  variable  above  dataLayer  array  (google_tag_params).  Another   case  is  the  fact  that  if  we  want  to  use  Data  Layer  in  a  dynamic  remarketing  we  can  use  only   one  macro.  Hence,  we  "close"  a  lot  of  variables  and  values  instead  of  one  in  one  macro.     That's  all.  We  should  remember  about  other  pagetypes.  We  have  to  create  for  them  other  
    •       112   sets  of  rules  and  tags  or  dynamically  replace  pagetypes  in  google_tag_params  variable   which  is  above  array  dataLayer  =[].     The  rest  is  the  work  on  AdWords  account.     Creating  remarketing  lists  and  AdWords  campaigns  with  dynamic  creations.     It  is  also  worth  reading  about  other  available  variables  in  dynamic  remarketing  in   AdWords  help  on:    https://support.google.com/adwords/answer/3103357     The second method – without sending variables programmistically   The  first  method  –  recommended  one,  because  it  makes  use  of  DataLayer  may  not  be   always  suitable.  It  is,  at  least,  because  of  the  need  of  programmer's  help.  We  have  to   dynamically  send  somehow  values  of  our  variables  to  Data  Layer.  However,  we  cannot  do   without  little  programmatically  modifications.     The  second  method,  less  popular  one,  allows  us  to  do  without  a  programmer  and  use   possibilities  which  Google  Tag  Manager  gives  to  us.  So  what  can  we  do  then?  We  will  help   ourselves  with  GTM  and  we  will  order  it  to  recognize  the  pagetype,  product  and  price  from   the  content  of  the  website  code.  Sounds  interesting.  It  can  be  done  almost  always,  and  the   better  (more  precisely)  programmatically  the  website  is  written  the  easier  it  will  be.     What  will  we  do  then?     1.  Create  macros  which  recognize  variables  from  the  website  content   2.  Modify  a  remarketing  tag.   3.  Create  a  rule  to  fire  the  remarketing  tag.      
    •       113   Ad  1.  Creating  macros  which  will  identify  variables  from  the  website  content     We  have  taken  the  challenge  of  recognizing  variables  and  values  from  the  website  content   with  the  help  of  possibilities  of  GTM,  without  any  help  of  a  programmer  and  using  them  in   dynamic  remarketing  configurations.  Let's  move  further.     We  have  three  variables  to  be  recognized:     1. A  website  type  (ecomm_pagetype)  –  in  our  case  they  are  the  pages  with  products.   2. ID  product  (ecomm_prodid)  –  in  our  case  we  search  the  name  of  the  product  and  we   set  it  as  an  identifier.  We  can  also  do  this  because  each  name  is  unique  on  the  website.   3. Product  value  (ecomm_totalvalue)  –  we  would  try  to  obtain  this  too.     Let's  do  this.     We  search  a  pagetype       Our  example  is  based  on  the  website  charlotteas.com,  a  shop  with  amber  jewelery.        
    •       114   To  find  any  tag  or  label  typical  for  product  page  of  this  website  we  edit  the  first  available   product  page  of  Charlotteas.com.    We  enter  a  tab  with  products  and  choose  any  product.   The  product  page  address  which  I  will  preview  is:   http://www.charlotteas.com/collections/pendants/products/pendant12             Previewing  the  source  code,  I  search  a  place  which  will  help  me  find  the  element  in  the   code  which  is  responsible  for  identification  of  this  website  type  (product  website).     I  usually  start  from  searching  any  unique  element  ID.  In  the  source  website  preview  I   search  for  unique  identifiers.  They  are  mostly  ID  of  such  elements  like  body  and  Div  but   also  there  can  be  others.      
    •       115       I  have  found  a  unique  ID  for  <div>  element.  It  is  id=product.  I  checked  for  other  pages  too   e.g.  the  contact  or  main  website,  and  ID  in  this  place  has  different  values.    It  is  a  good   candidate.  Now  we  need  to  obtain  this  information  and  send  it  to  GTM.  We  will  do  this  with   the  macro  of  "DOM  element"  type.         What  does  this  macro  do?   Macro  finds  the  element  with  the  "product"  identifier.  In  this  case  it  is  DIV  element.  I  give   the  name  of  the  attribute  as  ID.  It  means  that  I  want  to  take  out  only  the  content  of  id  value   (i.e.  from  id="product"  takes  out  "product").  If  I  did  not  add  in  this  place  the  parameter   name,  the  macro  would  take  out  texts  from  the  whole  div  element  labeled  as  id=product,  
    •       116   but  it  is  not  about  it.     There  is  the  second  way  for  determining  value  of  a  variable  (ecomm_pagetype).  Even   simpler  one  but  it  has  some  limits.  If  we  cannot  find  suitable  relationships  in  the  website   code  which  will  allow  for  auto  recognition  of  the  website  type  we  can  use  the  macro   (Constant  String)  in  which  we  rigidly  set  the  name  of  pagetype.           If  we  rigidly  determine  the  value  of  ecomm_pagetype  variable,  we  have  to  compensate  this   fact  setting  the  rule  for  the  remarketing  tag  when  it  is  to  be  fired.  Here,  we  will,  for   example,  use  URL  address.     Thus,  we  have  the  configured  parameter  concerning  the  variable  of  pagetype  –   ecomm_pagetype.  Now,  the  next  parameter  that  is  identifier  of  the  product  itself.  As  we   have  determined  before,  the  identifier  can  be  the  product  name  because  it  is  unique  within   the  website.  We  must  remember  that  making  use  of  many  "feeds"  in  Google  Merchant  Center   account,  the  identifier  cannot  be  repeated.  We  have  to  take  it  into  consideration  using  the   name  as  identifiers19.  As  the  name  of  product  is  unique,  we  create  a  macro  which  will   identify  for  us  the  product  name.  Again  we  search  such  a  website  element  which  will  give                                                                                                                   19 More about feeds - https://support.google.com/merchants/answer/188494
    •       117   us  the  product  name  (or  another  unique  identifier).           Again  I  have  found  <div>  element  with  the  "product"  identifier.  I  can  see  that  the  product   name  is  the  class  of  this  element.  "Pendant12"  is  a  unique  product  name.  To  download  this   value  from  the  class  parameter,  we  will  use  "DOM  element"  macro  again.       What  does  this  macro  do?   The  macro  loads  the  value  from  "class"  attribute  for  <div>  element  from  "product"   identifier.    
    •       118   The  second  way  could  be  downloading  value  of  the  "class"  element  from  <div>  element  of   id="product”  with  the  help  of  "Custom  JavaScript"  macro.  Here  we  would  have  to  ask   somebody  for  help,  someone    who  knows  how  to  use  JS  language.  Such  a  macro,  for  our   example,  could  look  like  as  follows:             We  have  the  second  parameter  of  dynamic  remarketing  which  we  have  to  determine.  Now   it  is  time  for  the  third  parameter,  that  is  ecomm_totalvalue.     We  will  also  try  to  take  out  the  third  parameter  from  the  website  code.  What  I  have   determined,  the  product  price  is  stored  in  the  elements  of    the  "price-­‐preview"  identifier.        
    •       119       Hence,  we  create  a  macro  again.  It  will  be  the  macro  of  "DOM  element"  type.           What  does  this  macro  do?   The  macro  downloads  the  content  of  elements  of  the  "price-­‐preview"  identifier.       We  have  already  all  parameters  needed  for  dynamic  remarketing.  Now  we  return  to  our   remarketing  tag  to  finish  its  configuration.   Editing  th  remarketing  tag    which  we  have  created  at  the  beginning,  we  add  parameters   created  manually  (not  with  the  help  of  Data  Layer).  
    •       120         Actually,  it  is  the  end.  Now  we  can  check  our  work  in  the  Debug  mode.  After  going  to  the   website  we  will  use  Tag  Assistant  plug-­‐in  to  check  if  values  of  dynamic  remarketing  are   sent.      
    •       121     Now  we  need  only  to  configure  remarketing  lists  and  campaigns  on  Google  AdWords   account.   Ecommerce tracking in GA with GTM Adding  a  module  which  tracks  Ecommerce  transactions  in  Google  Analytics  is  one  of  the   most  important  configuration  actions  of  GA  for  shops,  and  not  only.  Thanks  to  the   Ecommerce  module  we  can  analyze  almost  all  reports  on  the  users'  activity  on  our  website   on  the  revenue  level  (show  me  the  money  level).  Actually,  I  cannot  imagine  a  shop  which   has  Google  Analytics  and  does  not  use  the  Ecommerce  module.     In  a  traditional  way  firing  consists  in  switching  the  module  on  in  settings  of  the  View   profile  in  GA.  Then  we  have  to  place  a  suitable  code  with  variables  on  the  website  which   confirms  our  purchases  (thankyou_for_purchase).  Variables  must  get  suitable  values  from   our  shop  system  sent  to  Google  Analytics  so  that  they  could  be  from  this  website  which   confirms  the  purchase.  Such  an  operation  requires  programmatical  help.  Unfortunately,  we   also  do  not  run  away  from  it    with  GTM  because  we  have  to  send  to  another  values  of   purchases  like  until  now.  But  this  time  we  will  send  them  to  Data  Layer.  At  least,  it  will  be   easier  to  administer  this  code.     So,  let's  start.     To  install  the  Ecommerce  module  on  the  website  with  the  use  of  GTM  we  have  to:     1.  Create  a  new  Google  Analytics  tag  responsible  for  registration  of  transaction.   2.  Send  values  for  variables  to  Data  Layer.   3.  Set  the  rules  of  firing  the  module  of  counting  transactions.     Ad  1.  Creating  GA  tag  for  measuring  transactions     Tag  for  measuring  transactions  we  create  in  the  same  way  like  any  other  Analytics  tag.  
    •       122   However,  in  this  case  we  choose  track  type  as  "Transaction".   Remember  that  for  each  time  we  create  a  new  GA  tag,  if  we  want  to  add  any  new  track  type.   I.e.  in  our  case  it  will  be  another  GA  tag  on  one  account.  We  have  already  the  tag   responsible  for  measuring  pageviews,  we  have  the  tag  responsible  for  event  tracking  and   now  we  will  have  a  tag  responsible  for  tracking  transaction.     Ad  2.  Sending  values  to  variables  in  Data  Layer     In  this  step  we  have  to  be  helped  by  a  person  who  deals  with  our  shop  programmatically.   Values  and  data  concerning  a  given  transaction  should  be  send  from  data  about   transactions  (obligatory  and  optional  variables)  .  Our  array  above  the  GTM  container  will   look  more  or  less  like  this,  for  ccommerce  transaction:       <script>   dataLayer  =  [{          'transactionId':  '1234',          'transactionAffiliation':  'Acme  Clothing',          'transactionTotal':  '11.99',          'transactionTax':  '1.29',          'transactionShipping':  '5',          'transactionProducts':  [{                  'sku':  'DD44',                  'name':  'T-­‐Shirt',                  'category':  'Apparel',                  'price':  '11.99',                  'quantity':  '1'          },{                  'sku':  'AA1243544',                  'name':  'Socks',                  'category':  'Apparel',                  'price':  '9.99',                    'quantity':  '2'          }]   }];   </script>   We  send  data  about  each  purchased  product  and  data  about  the  whole  transaction  to  Data  
    •       123   Layer.   There  is  a  set  of  obligatory  and  optional  variables    which  we  have  to  use  in  Data  Layer:     Variables  for  transaction         Data  of  purchased  products         Ad  3.  Creating  rules  for  the  GA  tag  responsible  for  transactions     Now  we  have  to  only  determine  the  rule  for  the  tag,  when  it  is  to  be  fired.   Because  the  tag  concerning  transaction  is  to  collect  information  about  transactions  it   should  be  fired  at  the  moment  when  transaction  will  happen.  So  that  the  only  right  place  to  
    •       124   fire  it  are  pages  with  confirmation  of  the  purchase.  These  are  pages  of  the  type:   Thankyou_for_transactions.html,  transaction_confirmation.html,  etc.     So,  we  create  the  rule.         The  first  part  of  the  condition  is  clear,  I  hope.  Let  the  tag  to  be  fired  when  URL  address  will   include  a  fragment  "transaction_completed".  This  is  can  whatever  string  of  the  URL  address   that  confirms  that  the  purchase  was  completed.   The  second  fragment  may  not  be  clear  to  the  end.  The  event  built  into  GTM,  i.e.  gtm.dom   does  not  allow  to  fire  the  tag  unless  the  whole  website  is  loaded.  Sometimes  it  simply   happens  that  our  container  may  not,  for  different  reasons,  be  at  the  very  top  of  the  website   content  and  so  that  the  transaction  is  registered  for  sure  we  have  to  allow  to  load  the  whole   website.  And  this  is  the  secret.  ;).     Dealing with the bounce rate in Google Analytics (real bounce rate)   The  bounce  rate  is  one  of  more  important  rates  which  are  taken  into  consideration  in  the   matter  of  optimizing  website  usability.  It  is  obvious  that  the  higher  bounce  rate  means  that  
    •       125   less  visitors  made  use  of  additional  contents  of  the  website.  It  means  that  the  website  does   not  meet  expectations  of  a  visitor.  Hence,  it  is  worth  counting  this  rate  carefully  because  on   its  basis,  between  others,  optimization  decisions  are  made.  The  problem  in  Google   Analytics  as  far  as  this  rate  is  concerned  is  that  it  is  not  precisely  counted  in  standard   configuration.  If  somebody  has  entered  our  website  and  stayed  on  it  10  seconds  and  then   left,  he/se  is  treated  the  same  like  in  the  case  of  the  user  who  visited  our  website  and  spent   one  hour  there  (because  he  read  an  article)  and  then  left.  For  GA  the  customer  "bounced"   from  the  website  and  the  time  of  his  staying  on  the  website  equals  0  seconds.  Why  is  it  so?   Because  GA  measures  the  time  of  staying  on  the  page  by  subtracking  time  of  enter  the  next   page  from  time  of  entering  the  first  page.  Without  moving  to  another  page  GA  cannot  count   time.  The  time  on  first  page  (landing  page)  without  any  further  movement  will  be  0,  no   matter  what  the  real  time  of  staying  was.       Example  1:   Entering  the  site  -­‐>  page  A  (landing  page)  time:  10:00  -­‐>  page  B  –  time  of  entering  10:01  –   time  of  leaving  the  website:  10:01  -­‐>  leaving  the  service.   Time  of  staying  on  the  page  A  =  1  minute.  Time  of  staying  on  the  page  B  unknown.  there  is   nothing  to  be  substracked  from  the  the  time  of  entering  the  page  B.     Example  2:   Entering  the  site  -­‐>  page  A  time:  10:00  -­‐>  leaving  the  service  10:29   Real  time  on  the  website  29  minutes.  Time  set  by  GA  –  0s.  Google  Analytics  does  not  know   how  long  the  user  is  on  the  website.  Because  we  have  no  time  of  entering  another  page  of   website  to  substracked  from  entering  time  on  page  A.  GA  classifies  the  time  as  0  s.  Of   course  the  visit  will  be  treated  as  visit  with  bounce.       If  we  want  to  make  any  decisions  based  on  the  bounce  rate  we  have  to  make  it  real.  The   best  example  is  to  define  time  after  which  Google  Analytics  is  to  stop  treating  entering  the   website  as  bounce.  That  is  for  example  after  10  seconds  from  entering  the  website  we  can   assume  a  user  engaged  in  the  page  content  and  it  is  a  valuable  visit  for  him.  Let's  make  the  
    •       126   bounce  rate  real  on  our  website.  To  do  this  we  need  an  event  in  Google  Analytics  which  will   register  the  time  of  staying  on  the  website  and  cause  that  the  bounce  rate  will  not  be   counted  even  after  leaving  a  given  website  without  going  deeper  in  the  service.  We  can  do   this  with  GTM.       What  we  have  to  do  is:     1. Carte  a  tag  with  auto  time  listener   2. Create  the  GA  tag  responsible  for  sending  information  about  time  event.   3. Create  rules  which  will  allow  to  fire  tags  in  a  suitable  moment.       Ad  1.  A  tag  registering  the  time  automatically     Create  the  tag  –  Time  listener.  We  define  the  event  name.  Generally,  there  is  no  need  to   change  it.  We  set  the  time  interval  in  every  what  time  a  given  event  is  to  be  fired.  At  the  end   we  set  a  number  of  firing  of  a  given  event.  We  set  one  (1)  because  we  do  not  need  more.  We   are  interested  into  the  fact  if  someone  was  less  or  more  than  10  seconds.        
    •       127     Do  not  forget  that  we  need  to  determine  a  rule  too  when  a  given  tag  is  to  be  fired.   In  our  case  we  want  to  know  a  real  bounce  rate  for  each  website  of  our  service.  So  that  we   set  "All  pages".     Ad  2.  Create  the  GA  tag  responsible  for  the  bounce  rate     Create  a  new  Google  Analytics  tag  responsible  for  event  registration.       We  add  event  labels,  how  we  want  the  category  and  event  action  to  be  named.  Of  course  we   can  also  add  other  values  but  in  this  case  it  does  not  matter.  Remember  not  to  change  the   settings  "Non-­‐interaction  Hit".  If  we  leave  it,  while  doing  event,  the  bounce  rate  will  be   eliminated.  The  event  will  affect  its  cancellation.  If  we  set  its  value  on  "true",  the  event  will   not  affect  the  bounce  rate  and  despite  execution  of  the  event  the  bounce  rate  will  be   counted  while  leaving  the  page.    
    •       128   Now  just  only  a  rule  for  our  Google  Analytics  tag.     Our  rule  says:  Fire  Google  Analytics  tag  which  will  register  events  when  {{event}}  equals   gtm.timer.  That  is  our  Time  Listener.  We  know  that  Time  Listener  will  be  called  after  10   seconds  since  entering  the  website.  Just  then  our  tag  will  fire  itself,  register  event  and   cancel  counting  the  bounce  rate.     Tags  which  are  not  in  GTM     Indeed.  What  to  do  when  there  is  no  tag  which  we  want  to  install  with  GTM  on  the  defined   list  in  Tag  Manager?  There  is  not  any  problem  because  there  are  custom  tags.  We  have  two   types  of  custom  tags  available:     1. Custom  HTML  tag   2. Custom  Image  tag     Ad  1.  Custom  HTML  tag     Thanks  to  such  a  type  of  tag  we  can  add  any  other  tag  which  is  not  in  standard  on  the  list  in   GTM.  Simply  we  paste  the  whole  fragment  of  the  tracking  code  which  we  want  to   implement  on  the  website  in  an  available  place.    
    •       129   With  the  help  of  the  custom  tag  we  can  occasionally  add  also  elements  on  the  website.  It  is   not  recommended  but  possible.  We  can  add,  for  example  the  javasript  or  simple  html  code.     As  an  example  I  have  added  tag  with  very  simple  fragments  of  the  javascript  code  which  is   to  call  the  window  with  a  notice  "it  is  a  custom  javascript"  on  the  website.       After  saving  and  publishing  (or  while  testing)  the  container  version,  a  given  script  will  be   called  on  our  website,  together  with  other  tags.              
    •       130   It  is  the  same  situation  if  we  add  a  simple  HTML  code:           The  result  will  be  as  follows:       Of  course  these  are  very  simple  examples  but  they  are  only  for  presenting  possibilities   which  a  custom  tag  gives.  What  is  interesting,  we  can  use  macros  created  by  us  in  a  tag   code.  One  should  only  always  remember  about  closing  macro  name  in  double  brackets   {{my_macro}}.  Worth  to  remember  that  if  we  start  the  adventure  with  GTM  this  Custom  tag  
    •       131   type  of  tag  will  not  be  rather  very  often  used  by  us.  Most  of  the  most  popular  tracking   scripts  are  already  built  in  
    •       132   Using GTM in mobile applications   Nowadays  Google  Tag  Manager,  except  its  very  important  function  of  tag  administering  on   websites,  allows  in  a  revolutionary  way  to  administer  also  our  mobile  applications.  Here,  I   am  writing  'administer'  because  it  is  not  only  about  tags  and  tracking  codes.  It  is  about   administering  the  application  itself  and  introducing  changes  in  it.  So  what  does  GTM  do  for   application?       GTM  for  application  allows  to:   1. Administer  tags  in  applications  (GA  codes,  conversion,  remarketing,  etc.)   2. Introduce  changes  in  application  (revolution)     Administering tags in application – a few words   Here,  there  is  not  probably  any  surprise.  GTM  allows  to  administer  tags  inside  the   application.  It  allows  us  to  track  actions  of  users  in  application,  it  allows  to  implement   conversion  and  remarketing  codes.  Thanks  to  this  we  can  run  effective  remarketing   campaigns  for  our  application.        
    •       133   As  you  can  see,  the  interface  does  not  differ  a  lot.  We  create  a  container  in  the  same  way   (we  can  choose  if  we  create  separate  containers  for  iOS  and  Android  or  one  common),  tags,   rules  and  macros.     Unfortunately,  the  truth  is  that  without  the  help  of  someone  who  is  engaged  in  creating   applications  it  will  be  difficult  for  us  to  understand  all  possibilities  of  GTM  for  applications.   The  most  important  is  to  understand  what  we  can  expect  from  GTM  for  application.   Introducing changes in application (revolution)   The  problem  with  applications  is  that  at  the  moment  of  downloading  them  on  the  device   we  loose  control  over  it  a  bit.  Application,  shortly  speaking,  has  gone  off  the  leash.  Like  a   car  leaves  the  factory  and  in  order  to  change,  modify  or  repair  something  in  it  the  owner   has  to  go  to  the  repair  shop.  The  same  is  with  the  application.  If  we  want  to  improve,   change,  modify  something  we  have  to  create  another  version  of  application  and  encourage   users  to  its  download.  Everything  depends  on  the  owner  of  the  device.  If  the  owner  does   not  want  to  download  a  newer  version,  we  lost  control  on  this  application  "forever".  Now   the  situation  has  changed  thanks  to  GTM  for  application.     Administering  tags  is  one  thing  but  GTM  can  do  much  more.  Namely,  it  lets  us  have  control   over  applications  already  downloaded  (already  on  the  devices).  We  can  introduce  changes   in  application  and  administer  it  even  if  it  was  downloaded.  In  this  way  we  do  not  have  to   ask  anybody  for  downloading  new  versions.  But  let's  start  from  the  beginning.   A problem with mobile applications   As  I  have  mentioned  after  the  application  is  installed  on  the  device.  It  is  a  bit  out  of  our   reach.  We  can  only  update  it  by  introducing  a  new  version  in  the  online  shop  and   encouraging  to  its  download.  This  creates  quite  a  lot  of  problems:    
    •       134       ● Application  requires  repeated  verification  in  the  shop  in  terms  of  security   ● Application  must  be  sent  again  and  installed  from  the  beginning.   ● On  the  market,  the  more  our  applications,  the  more  versions  which  function  because   not  everybody  updates  software  as  frequently  as  we  would  like  to.     Of  course  it  is  not  the  intention  of  GTM  creators  to  omit  the  shop  verification.  It  is   recommended  to  inform  about  changes  and  undergo  verification  but  on  different  basis.     How does GTM work for application?    
    •       135   Google  Tag  Manager  for  application  works  on  the  basis  of  constant  updating  data  included   in  the  container.  Changes  propagate  themselves  every  12  hours(changes  are  checked  twice   a  day).  It  does  not  mean  that  if  application  does  not  have  any  access  to  the  Internet  it  will   not  work.  While  installing,  a  container  with  default  values  of  variables  is  installed.   Additionally,  GTM  does  not  use  a  lot  of  data  transfer  to  update  the  container,  so  we  do  not   have  to  worry  about  the  fact  that  application  will  be  consuming  a  lot  of  internet  data   transfer.     Updating  the  container  and  creating  a  new  version,  simply  we  wait  for  the  application   being  updated.  We  can  of  course  test  changes  by  a  test  version  which  we  open  on  our   mobile  device.  We  can  also  send  a  special  link  to  people  who  will  be  also  able  to  see  a  test   version  thanks  to  the  link.        
    •       136   What can be changed by GTM in application?   Google  Tag  Manager  allows  to  change  a  lot  of  things  in  application,  from  Visual  changes  to   usefulness,  through  changes  in  the  place  of  advert  display,  to  changes  in  principles  of   working  application  (e.g.  changes  of  number  of  lives  in  the  game)         Let's  see  it  on  the  example  of  test  application  used  by  Google  team.   We  have  application  which  is  used  to  store  contacts.  In  a  given  application  we  have  a  place   for  an  advert.    
    •       137       After  some  time  we  claim  that  the  better  solution  would  be  to  move  the  advert  to  the   bottom  of  the  screen  and  use  a  bigger  format.  In  GTM  in  a  given  moment  we  have  such   values  as  far  as  our  advert  place  is  concerned.         We  need  only  change  values  for  the  macro  responsible  for  the  place  and  advert  type.      
    •       138       In  this  way  we  will  obtain  the  following  result.  The  advert  will  be  occurring  from  now  at  the   bottom  of  the  screen.  It  will  have  a  different  format.     Another  example  can  be,  for  instance,  the  change  of  view  of  application  in  terms  of  periodic   sales  campaigns.  We  have  decided  that  we  want  to  have  another  application  background     for  Christmas.  With  the  Christmas  tree;).  You  have  to  only  use  the  macro  which  will  fire  a   suitable  background.  Here  you  should  know  that  this  kind  of  things  like  background  must   be  already  present  in  the  application  itself.  We  can  have  an  influence  on  rules  or  principles   of  their  display  but  we  do  not  send  them  by  GTM  to  application.  
    •       139     In  this  way,  in  12  hours,  our  application  will  look  like  this  at  everybody.  Of  course,  if  they   are  connected  to  the  Internet  at  this  time,  so  that  the  container  had  a  chance  to  be   refreshed.  Of  course  this  will  change  at  the  moment  of  another  opening.  Application  needs   to  be  restarted  to  see  the  changes.   Another  examples  are,  for  instance,  adding  language  version  to  the  application,  change  of  
    •       140   lives  in  the  game,  etc.  All  of  these  can  be  easily  modified  because  this  does  not  require  to   implement  new  elements  to  the  application.  We  use  the  same  variables  and  change  only   their  values.    
    •       141   A few final thoughts   Using  Google  Tag  Manager  we  can't  remember  about  a  few  important  things  which  run   away  very  often  and  cause  frustration  and  waste  of  time.  Here  are  a  few  of  them:     1. Remember  to  publish  a  new  version  of  a  container  always  after  changes.   2. Create  a  reasonable  system  of  a  terminology  of  tags,  rules  and  macros.     3. Keep  domains  on  separate  accounts  so  that  it  would  be  easier  to  understand  everything.   Unless  a  few  domains  create  the  whole/integrity  in  the  Internet.   4. Always  test  tags  before  publishing  them.   5. Use  the  Lookup  table  macro  to  create  test  environment  in  GA  so  that  not  to  spam   statistics  with  tests.   6. Plan  tags  migration  before  you  will  start  to  do  this.   7. Be  careful  with  capital  letters.  They  may  cause  that  macros  and  rules  do  not  work.   8. Use  Tag  Assistant     There  are  surely  more  of  such  popular  issues  connected  with  using  GTM  but  these  ones  are   the  most  worth  mentioning  at  the  very  end.  
    •       142   Migration plan to GTM     At  the  very  end  of  the  part  about  using  GTM  on  websites  I  place  a  proposed  schedule  of   migration  of  the  tags  to  GTM  which  are  on  the  website.  It  is  worth  having  a  plan  of  this   work  so  that  any  data  were  not  lost  during  the  migration.  It  is  only  an  offer,  of  course   everyone  can  but  they  do  not  have  to  use  it.           Plan   • make  a  list  of  tags  to  migrate   •   Are  those  tags  standard  or  custom  ones?   • Do  we  have  event  tracking  codes  for  events  or  any  other  snippets  within  the   website  source  code?   • Do  we  tracking  one  or  more  domains  or  subdomains?   • Who  is  responsible  for  editing  the  website?   Implementation   • Implementing  empty  container  on  website   • Create  test  account  in  GA  for  tests   • Set  settings  in  GTM  (+macro  lookup  table  )   • Tag  implementation,  macros  and  rules   Testing   • Testing  each  tag  on  test  GA  account  +  (Debug  >  Preview)   Launching   • Deleting  tags  from  site  one  by  one  and  turning  them  on  in  GTM.  From  the  most   standard  to  most  custom.  We  don't  have  to  delete  all  tagd  at  once.  Tags   directly  on  the  site  (not  through  GTM)  can  work  alongside  tags  working  from   GTM.    
    •       143   Conclusion The  task  of  this  e-­‐book  is  to  explain  issues  connected  with  using  the  Google  Tool  Manager   to  all  who  are  not  skilled  at  technical  issues  concerning  creating  pages,  programming  and   everything  which  should  be  dealt  with  by  people  from  the  IT  department  or  webmasters.       However,  power  of  a  good  specialist  in  internet  marketing  is,  at  least,  understanding  the   rules  of  working  and  possibilities  which  are  given  by  new  tools  and  technologies.  So,   according  to  this  thought,  I  have  tried  to  describe  the  rule  of  working  and  possibilities  of   GTM  in  the  simplest  way,  omitting  purposefully  all  more  complicated  descriptions  and   simplifying  some  issues.     The  e-­‐book  does  not  include  everything  about  Google  Tag  Manager.  It  is  much  more   information  if  someone  wants  to  learn  this  subject  thoroughly.  I  have  purposefully  omitted   some  elements  of  configuration  in  the  e-­‐book.  I  meant  to  explain  possibilities  and  rule  of   working.  You  must  read  more  about  the  rest.       I  hope  the  material  will  help  someone  in  a  more  and  more  technical  world  of  marketing.       Regards,   Author  and  Contributors               Any  cases  considering  this  ebook,  please  contact  Modrzewski@google.com