Просування сайтів & 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
Дякуємо! Ваше повідомлення надіслано.
Відправлення не вдалося. Будь ласка, виправте помилки та спробуйте ще раз.