Продвижение сайтов & web-аналитика

Выберите язык

Задать вопрос +38 096 558 7514

Data Layer и переменные уровня данных

Если Вы работаете с Tag Manager, то Вы рано или поздно столкнетесь с термином “Data Layer”, который при правильном использовании может открыть массу возможностей для веб-аналитики.

Data Layer - это уникальная система передачи данных с сайта в Google Tag Manager, включающая в себя конкретный информационный массив.

Как это работает, или схема работы Data Layer:

  1. Скрипт Data Layer, как правило имплементирован в код с подгрузкой переменных с сайта;
  2. Google Tag Manager содержит специальные обработчики, которые сканируют данные блока Data Layer и отправляют в контейнер тегов;
  3. Затем, данные в контейнере тегов распределяются согласно его алгоритмам настройки.

Пример расположения кода Data Layer следующий:


<script>
dataLayer = [];
</script>

Код, как правило содержит переменные, которые сопряжены с Google Tag Manager и тянут информацию с сайта. На языке программистов это - добавить переменные уровня данных, переменные передающие информацию. Для примера рассмотрим простой код электронной торговли Universal Analytics:


<script>
dataLayer = [{
	'transactionId': '1234',
	'transactionAffiliation': 'holostenko.ua',
	'transactionTotal': 11.99,
	'transactionTax': '1.29',
	'transactionShipping': '5',
   'transactionProducts': [{
   	'sku': 'DD44',
    	'name': 'T-Shirt',
    	'category': 'Apparel',
    	'price': 11.99,
    	'quantity': 1
   }]
}];
</script>

Price, name, sku - эти переменные есть в Google Tag Manager, и их значения потом просто подгружаются в контейнер. Если случай индивидуальный, или же это новая функция, которая еще не прошита в TGM, то переменные необходимо изначально создать в менеджере тегов.

  • Код “dataLayer = []” обычно размещается выше кода контейнера. Если он будет ниже, то данные в контейнер просто не запишутся.
  • Объявленные переменные актуальны только на странице, на которой они объявлены. Разовое объявление для всего сайта не актуально.
  • Подгрузка Data Layer происходит асинхронно и не препятствует загрузке других элементов страницы.

Data Layer, event, push

Также, в работе с “Data Layer” весомую роль играет специальная переменная “event”, которая срабатывает как триггер при наступлении события, и отправляет соответствующие данные.

Триггер - заданное условие срабатывания события в Google Tag Manager.

Срабатывание события “event” осуществляется только с методом “push”, и имеет следующий вид:


dataLayer.push({'event': 'event_name'});

где “event_name” - название события.

Если Вы заметили, то квадратные скобки, поменялись на круглые. Это особенность метода “push”, который отправляет данные при определенном действии, независимо от места расположения кода. Яркий пример был нами описан в расположении кодов расширенной электронной торговли.


<script>
dataLayer.push({
  'ecommerce': {
    'detail': {
      'actionField': {'list': 'Apparel Gallery'}, 
      'products': [{
        'name': 'Triblend Android T-Shirt',
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray'
       }]
     }
   },
 'event': 'gtm-ee-event',
 'gtm-ee-event-category': 'Enhanced Ecommerce',
 'gtm-ee-event-action': 'detail',
 'gtm-ee-event-non-interaction': 'True',
});
</script>

Метод “Push” актуален, когда Вы не знаете, будет ли совершено событие или нет. И таким образом, данные отправляются только в том случае, когда будет осуществлено конкретное действие типа: click, addtocart, event, или любое другое, и по коду оно может располагаться где угодно.

В интернете можно встретить выражение “window.dataLayer.push”. Это универсальный способ, позволяющий прописывать переменные в любом месте. Но, мы его не используем, так как строго придерживаемся рекомендаций Google Developer.

Еще несколько важных моментов про Data Layer и переменные уровня данных:

  • названия переменных чувствительны к регистру;
  • единство способа подгрузки данных - не рекомендуется отправлять данные сразу из нескольких мест;
  • на каждый ресурс рекомендуется свой контейнер, кроме случая если это не иерархическая доменная структура;
  • одна страница - один контейнер, не рекомендуется размещать несколько контейнеров на одной странице.

Если нет программиста и нет возможности разместить код Data Layer. Как быть?

  • подгрузка через теги событий Google Tag Manager с публикацией переменных;
  • данные переменных подгружаются через селекторы.

Данный способ не совсем надежен, так как современные сайты имеют динамическую структуру, и данные из селектора в определенный момент могут перестать поступать.

Надеемся, что эта статья была для Вас полезной, и будем радовать интересными материалами на нашем блоге еще.

Если у Вас есть вопросы по нашим услугам, пожалуйста напишите, как с Вами связаться и кратко опишите свой бизнес.

* Ваши личные данные полностью защищены и не будут переданы третьим лицам.

Выберите, каким способом С Вами лучше связаться.

  • United States+1
  • United Kingdom+44
  • Afghanistan (‫افغانستان‬‎)+93
  • Albania (Shqipëri)+355
  • Algeria (‫الجزائر‬‎)+213
  • American Samoa+1
  • Andorra+376
  • Angola+244
  • Anguilla+1
  • Antigua and Barbuda+1
  • Argentina+54
  • Armenia (Հայաստան)+374
  • Aruba+297
  • Ascension Island+247
  • Australia+61
  • Austria (Österreich)+43
  • Azerbaijan (Azərbaycan)+994
  • Bahamas+1
  • Bahrain (‫البحرين‬‎)+973
  • Bangladesh (বাংলাদেশ)+880
  • Barbados+1
  • Belarus (Беларусь)+375
  • Belgium (België)+32
  • Belize+501
  • Benin (Bénin)+229
  • Bermuda+1
  • Bhutan (འབྲུག)+975
  • Bolivia+591
  • Bosnia and Herzegovina (Босна и Херцеговина)+387
  • Botswana+267
  • Brazil (Brasil)+55
  • British Indian Ocean Territory+246
  • British Virgin Islands+1
  • Brunei+673
  • Bulgaria (България)+359
  • Burkina Faso+226
  • Burundi (Uburundi)+257
  • Cambodia (កម្ពុជា)+855
  • Cameroon (Cameroun)+237
  • Canada+1
  • Cape Verde (Kabu Verdi)+238
  • Caribbean Netherlands+599
  • Cayman Islands+1
  • Central African Republic (République centrafricaine)+236
  • Chad (Tchad)+235
  • Chile+56
  • China (中国)+86
  • Christmas Island+61
  • Cocos (Keeling) Islands+61
  • Colombia+57
  • Comoros (‫جزر القمر‬‎)+269
  • Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)+243
  • Congo (Republic) (Congo-Brazzaville)+242
  • Cook Islands+682
  • Costa Rica+506
  • Côte d’Ivoire+225
  • Croatia (Hrvatska)+385
  • Cuba+53
  • Curaçao+599
  • Cyprus (Κύπρος)+357
  • Czech Republic (Česká republika)+420
  • Denmark (Danmark)+45
  • Djibouti+253
  • Dominica+1
  • Dominican Republic (República Dominicana)+1
  • Ecuador+593
  • Egypt (‫مصر‬‎)+20
  • El Salvador+503
  • Equatorial Guinea (Guinea Ecuatorial)+240
  • Eritrea+291
  • Estonia (Eesti)+372
  • Eswatini+268
  • Ethiopia+251
  • Falkland Islands (Islas Malvinas)+500
  • Faroe Islands (Føroyar)+298
  • Fiji+679
  • Finland (Suomi)+358
  • France+33
  • French Guiana (Guyane française)+594
  • French Polynesia (Polynésie française)+689
  • Gabon+241
  • Gambia+220
  • Georgia (საქართველო)+995
  • Germany (Deutschland)+49
  • Ghana (Gaana)+233
  • Gibraltar+350
  • Greece (Ελλάδα)+30
  • Greenland (Kalaallit Nunaat)+299
  • Grenada+1
  • Guadeloupe+590
  • Guam+1
  • Guatemala+502
  • Guernsey+44
  • Guinea (Guinée)+224
  • Guinea-Bissau (Guiné Bissau)+245
  • Guyana+592
  • Haiti+509
  • Honduras+504
  • Hong Kong (香港)+852
  • Hungary (Magyarország)+36
  • Iceland (Ísland)+354
  • India (भारत)+91
  • Indonesia+62
  • Iran (‫ایران‬‎)+98
  • Iraq (‫العراق‬‎)+964
  • Ireland+353
  • Isle of Man+44
  • Israel (‫ישראל‬‎)+972
  • Italy (Italia)+39
  • Jamaica+1
  • Japan (日本)+81
  • Jersey+44
  • Jordan (‫الأردن‬‎)+962
  • Kazakhstan (Казахстан)+7
  • Kenya+254
  • Kiribati+686
  • Kosovo+383
  • Kuwait (‫الكويت‬‎)+965
  • Kyrgyzstan (Кыргызстан)+996
  • Laos (ລາວ)+856
  • Latvia (Latvija)+371
  • Lebanon (‫لبنان‬‎)+961
  • Lesotho+266
  • Liberia+231
  • Libya (‫ليبيا‬‎)+218
  • Liechtenstein+423
  • Lithuania (Lietuva)+370
  • Luxembourg+352
  • Macau (澳門)+853
  • North Macedonia (Македонија)+389
  • Madagascar (Madagasikara)+261
  • Malawi+265
  • Malaysia+60
  • Maldives+960
  • Mali+223
  • Malta+356
  • Marshall Islands+692
  • Martinique+596
  • Mauritania (‫موريتانيا‬‎)+222
  • Mauritius (Moris)+230
  • Mayotte+262
  • Mexico (México)+52
  • Micronesia+691
  • Moldova (Republica Moldova)+373
  • Monaco+377
  • Mongolia (Монгол)+976
  • Montenegro (Crna Gora)+382
  • Montserrat+1
  • Morocco (‫المغرب‬‎)+212
  • Mozambique (Moçambique)+258
  • Myanmar (Burma) (မြန်မာ)+95
  • Namibia (Namibië)+264
  • Nauru+674
  • Nepal (नेपाल)+977
  • Netherlands (Nederland)+31
  • New Caledonia (Nouvelle-Calédonie)+687
  • New Zealand+64
  • Nicaragua+505
  • Niger (Nijar)+227
  • Nigeria+234
  • Niue+683
  • Norfolk Island+672
  • North Korea (조선 민주주의 인민 공화국)+850
  • Northern Mariana Islands+1
  • Norway (Norge)+47
  • Oman (‫عُمان‬‎)+968
  • Pakistan (‫پاکستان‬‎)+92
  • Palau+680
  • Palestine (‫فلسطين‬‎)+970
  • Panama (Panamá)+507
  • Papua New Guinea+675
  • Paraguay+595
  • Peru (Perú)+51
  • Philippines+63
  • Poland (Polska)+48
  • Portugal+351
  • Puerto Rico+1
  • Qatar (‫قطر‬‎)+974
  • Réunion (La Réunion)+262
  • Romania (România)+40
  • Russia (Россия)+7
  • Rwanda+250
  • Saint Barthélemy+590
  • Saint Helena+290
  • Saint Kitts and Nevis+1
  • Saint Lucia+1
  • Saint Martin (Saint-Martin (partie française))+590
  • Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)+508
  • Saint Vincent and the Grenadines+1
  • Samoa+685
  • San Marino+378
  • São Tomé and Príncipe (São Tomé e Príncipe)+239
  • Saudi Arabia (‫المملكة العربية السعودية‬‎)+966
  • Senegal (Sénégal)+221
  • Serbia (Србија)+381
  • Seychelles+248
  • Sierra Leone+232
  • Singapore+65
  • Sint Maarten+1
  • Slovakia (Slovensko)+421
  • Slovenia (Slovenija)+386
  • Solomon Islands+677
  • Somalia (Soomaaliya)+252
  • South Africa+27
  • South Korea (대한민국)+82
  • South Sudan (‫جنوب السودان‬‎)+211
  • Spain (España)+34
  • Sri Lanka (ශ්‍රී ලංකාව)+94
  • Sudan (‫السودان‬‎)+249
  • Suriname+597
  • Svalbard and Jan Mayen+47
  • Sweden (Sverige)+46
  • Switzerland (Schweiz)+41
  • Syria (‫سوريا‬‎)+963
  • Taiwan (台灣)+886
  • Tajikistan+992
  • Tanzania+255
  • Thailand (ไทย)+66
  • Timor-Leste+670
  • Togo+228
  • Tokelau+690
  • Tonga+676
  • Trinidad and Tobago+1
  • Tunisia (‫تونس‬‎)+216
  • Turkey (Türkiye)+90
  • Turkmenistan+993
  • Turks and Caicos Islands+1
  • Tuvalu+688
  • U.S. Virgin Islands+1
  • Uganda+256
  • Ukraine (Україна)+380
  • United Arab Emirates (‫الإمارات العربية المتحدة‬‎)+971
  • United Kingdom+44
  • United States+1
  • Uruguay+598
  • Uzbekistan (Oʻzbekiston)+998
  • Vanuatu+678
  • Vatican City (Città del Vaticano)+39
  • Venezuela+58
  • Vietnam (Việt Nam)+84
  • Wallis and Futuna (Wallis-et-Futuna)+681
  • Western Sahara (‫الصحراء الغربية‬‎)+212
  • Yemen (‫اليمن‬‎)+967
  • Zambia+260
  • Zimbabwe+263
  • Åland Islands+358
Спасибо! Ваше сообщение отправлено.
Отправка не удалась. Пожалуйста, исправьте ошибки и попробуйте еще раз.