Google Tag Manager Advanced - SEO CAMPIXX 2016

2.913 Aufrufe

Veröffentlicht am

- Häufige Fehler mit dem Google Tag Manager
- Best Practice Setup Google Tag Manager
- Google Event Tracking Advanced
- GTM Hacks

Veröffentlicht in: Marketing

Google Tag Manager Advanced - SEO CAMPIXX 2016

  1. 1. Google Tag Manager Advanced Jan Berens / Thomas Czernik
  2. 2. Inhalt ➔ Häufige Fehler mit dem Google Tag Manager ➔ Best Practice Setup Google Tag Manager ➔ Google Event Tracking Advanced ➔ GTM Hacks
  3. 3. Jan Berens ➔  Administrator Tracking & Webanalyse ➔  bei der Parfümerie Douglas GmbH in Köln ➔  Freizeit - SEO, - Affiliate, - Techie ➔  bloggt ein bisschen auf www.janberens.de ➔  über Web Tech- , SEO- , Tracking- und Affiliate- Zeugs
  4. 4. Thomas Czernik ➔ pixelart GmbH ➔ Online Marketing Manager ➔ @mindbreak | wrel.de | tom@wrel.de
  5. 5. Inhalt Häufige Fehler mit dem Google Tag Manager Google Tag Manager: Best Practice
  6. 6. Häufige GTM Fehler •  Aktivieren bei… / Auslösen bei… •  Vorschau Reloading •  dataLayer Initialisierung
  7. 7. Aktivieren bei… / Auslösen bei…
  8. 8. Aktivieren bei… Auslösen bei… Wann soll der Trigger aktiviert werden bzw. wann soll der EventListener aktiviert werden. Bei welcher Aktion soll mein Trigger ausgelöst werden.
  9. 9. Aktivieren bei… / Auslösen bei… Hier soll mein Trigger aktiviert werden. Hier soll mein Trigger ausgelöst werden.
  10. 10. Vorschau Reloading ü  Vorschau Modus aktiviert ü  Änderungen durchgeführt ü  Änderungen werden nicht in der Debug Console angezeigt?
  11. 11. dataLayer Initialisierung <body> dataLayer GTM Code Quelle: https://developers.google.com/tag-manager/devguide </body>
  12. 12. dataLayer Initialisierung GTM Code Quelle: https://developers.google.com/tag-manager/devguide <body> <script> dataLayer = [{ 'loggedin': 'true' }]; </script> <!-- Google Tag Manager --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-577WGR" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-577WGR');</script> <!-- End Google Tag Manager --> </body> dataLayer
  13. 13. dataLayer GTM Code dataLayer Initialisierung <body> </body>
  14. 14. dataLayer Initialisierung GTM Code <body> <script> <!-- Google Tag Manager --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-577WGR" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-577WGR');</script> <!-- End Google Tag Manager --> dataLayer = [{ 'loggedin': 'true' }]; </script> </body> dataLayer ●  Tag Manager initialisiert dataLayer Variable ●  GTM initialisiert diverse EventListener für den dataLayer ●  dataLayer wird neu gesetzt
  15. 15. dataLayer Initialisierung GTM Code Google Tag Manager ist unbrauchbar
  16. 16. dataLayer.push GTM Code <body> <script> <!-- Google Tag Manager --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-577WGR" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-577WGR');</script> <!-- End Google Tag Manager --> dataLayer.push({ ‘event': 'emailClick' }); </script> </body> dataLayer
  17. 17. dataLayer.push <body> <script> <!-- Google Tag Manager --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-577WGR" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-577WGR');</script> <!-- End Google Tag Manager → window.dataLayer = window.dataLayer || []; dataLayer.push({ ‘event': 'emailClick' }); </script> </body> dataLayer Noch besser
  18. 18. Best Practice •  Naming Convention •  Ordner •  Cleanup •  Environments
  19. 19. Naming Convention
  20. 20. Naming Convention
  21. 21. Naming Convention •  Ab 20 Tags ist es schwer den Überblick zu bewahren •  Naming Conventions bei den Tags, Triggers und Variablen •  Englisch
  22. 22. Naming Convention - Tag Wer Was Wo Tool / Service PDF Download Verkauf Dankesseite
  23. 23. Naming Convention - Tag Wer Was Wo GA - Pageview - All Pages GA - PDF Download - on PDF click GA ET - ecommerce transaction - thank you page
  24. 24. Naming Convention - Variablen Selbsterklärende Variablenbezeichnung GA Tracking Code Login Status ...
  25. 25. Cleanup Gleiche Tags / Triggers Variablen in Ordner gruppieren Unbenutzte Trigger löschen
  26. 26. Cleanup Ungenutzte Variablen deaktiveren / löschen Wie kann ich das testen?
  27. 27. Versionen
  28. 28. Versionen •  Was wurde bei welcher Version geändert? •  Bei mehreren Bearbeitern kaum Überblick •  Wann wurde was online gestellt? Keine Veröffentlichung ohne Umbenennung und Notiz
  29. 29. Versionen
  30. 30. Environments •  Verschiedene Umgebungen: Development, Staging, Live •  Mehrere Änderungen können veröffentlicht werden •  Vorschaulink für QA oder PMs •  Zugriffskontrolle •  “Umgebungsspezifische” Einstellungen
  31. 31. Environments - Setup
  32. 32. Environments - Setup
  33. 33. Environments Version 1 Version 3 Version 2 LIVE Development
  34. 34. Environments Version 1 Version 3 Version 2 LIVE Development LIVE
  35. 35. Environment - Unterschiedliche GA Codes
  36. 36. Environment - Unterschiedliche GA Codes
  37. 37. Tracking Outbound Links als Google Analytics Event
  38. 38. Neue Variable „ElementDomain“ anlegen
  39. 39. Trigger einrichten
  40. 40. Trigger auf allen URLs aktivieren
  41. 41. Trigger fertig einrichten
  42. 42. Google Analytics Event Tag anlegen
  43. 43. Event Kategorie / Aktion / Label festlegen
  44. 44. Trigger und Tag zusammenführen
  45. 45. Tracking mailto Links als Google Analytics Event
  46. 46. Trigger anlegen
  47. 47. Google Analytics Event Tag anlegen
  48. 48. Event Kategorie / Aktion / Label festlegen
  49. 49. Trigger und Tag zusammenführen
  50. 50. Tracking File Downloads als Google Analytics Event
  51. 51. JavaScript Variable anlegen
  52. 52. JavaScript Code function() { return {{Click URL}}.split(".").pop(); }
  53. 53. Trigger anlegen
  54. 54. Google Analytics Event Tag anlegen
  55. 55. Event Kategorie / Aktion / Label festlegen
  56. 56. Trigger und Tag zusammenführen
  57. 57. GTM Hack: Facebook Targeting an Adwords
  58. 58. im Facebook Ad Manager / Powereditor ➔ FB Targeting erstellen ➔ z.B.: nur Männer, im Alter 18 – 35, Interesse Porsche 911 ➔ Parameter an Landingpage URL hängen ➔ z.B.: fbtarget=m1835porsche911
  59. 59. im Google Adwords Konto ➔ Adwords Remarketinglisten analog zu FB Audiences ➔ Parameter für GTM kopieren ➔ Conversion-ID ➔ Conversion-Label
  60. 60. Variable anlegen
  61. 61. Suchanfrageschlüssel = URL Parameter
  62. 62. Trigger erstellen
  63. 63. Tag anlegen
  64. 64. Trigger und Tag zusammenführen
  65. 65. GTM Hack: Tracking- / Cookie-Weiche
  66. 66. Trigger „Landingpage Tag“ anlegen
  67. 67. „Landingpage Tag“ anlegen
  68. 68. JavaScript Code – Teil 1 <script language="javascript" type="text/javascript"> var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if(pair[0] == "saleschannelid") { var d = new Date(); d.setTime(d.getTime() + (30*24*60*60*1000)); var expires = "expires="+d.toUTCString(); document.cookie = "saleschannel=" + pair[1] + "; path=/; " + expires; } }
  69. 69. JavaScript Code – Teil 2 if(typeof pair[1] == "undefined") { var ref = document.referrer.split('/')[2]; if (ref == "www.google.de" || ref == "www.bing.com" || ref == "r.search.yahoo.com") { var d = new Date(); d.setTime(d.getTime() + (30*24*60*60*1000)); var expires = "expires="+d.toUTCString(); document.cookie = "saleschannel=seo; path=/; " + expires; } } </script>
  70. 70. Trigger und Tag zusammenführen
  71. 71. First-Party-Cookie Variable erstellen
  72. 72. Trigger „Conversion Tag“ anlegen
  73. 73. „Conversion Tag“ erstellen
  74. 74. Trigger und Tag zusammenführen
  75. 75. Cookie löschen für eine One-Time Conversion <script language="javascript" type="text/javascript"> var d = new Date(); d.setTime(d.getTime() + (1000)); var expires = "expires="+d.toUTCString(); document.cookie = "saleschannel=delete; path=/; " + expires; </script>
  76. 76. Quellen ➔ http://www.simoahava.com/ ➔ http://stackoverflow.com/questions/tagged/google-tag-manager ➔ http://www.simoahava.com/analytics/awesome-google-tag-manager- resources/
  77. 77. Herzlichen Dank für Eure Aufmerksamkeit!

×