Click Stream from browser events Goal: ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ повСдСния Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… сСссии взаимодСйствия с сайтом.

Π‘Ρ…Π΅ΠΌΠ° взаимодСйствия

  1. ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сайта
  2. ЗагруТаСтся ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ JS скрипт (ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ сайта, Π²ΠΎΠ· ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ adblock).

    Π’Π°ΠΆΠ½ΠΎ: скрипт устанавливаСт Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠ»ΠΈΠΊΠΎΠ² Π² Π±Ρ€Π°Π·ΡƒΠ΅Ρ€Π΅

  3. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠ»ΠΈΠΊ, JS Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ элСмСнтС Π±Ρ‹Π» сдСлан ΠΊΠ»ΠΈΠΊ ΠΈ ΠΈΡ‰Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ data-attributes для формирования сообщСния ΠΎ Π»ΠΎΠ³Π΅
  4. Π‘ΠΎΠ±Ρ€Π°Π² ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΎΠ½ снабТаСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами Π²Ρ€ΠΎΠ΄Π΅ userid, url etc. ΠΈ отправляСтся Π½Π° сСрвСр (ΠΌΡ‹ использовали EMQX + u8-mqtt, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ просто http Π΅Π½Π΄ΠΏΠΎΠΈΠ½Ρ‚ Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ Π±Π°Ρ‚Ρ‡Π΅ΠΌ слались события)
  5. Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΎΠ±ΠΎΠ³Π°Ρ‰Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ ΠΏΠΎ userid Π±Π΅Ρ€Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ профиля Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ записи) ΠΈ складываСт Π² ΠΏΠ»ΠΎΡΠΊΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² DB (Ρƒ нас это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ BigQuery, Π½ΠΎ ClickHouse Ρ‚ΠΎΠΆΠ΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту Π·Π°Π΄Π°Ρ‡Ρƒ)

JS интСграция

Π’Π°ΠΆΠ½Ρ‹Π΅ для нас поля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅:

  • type: "click"|"load"|"scroll", etc.
  • domain: "https://catcasino.com"
  • path: "/en/deposit", тСкущая страница
  • urlParams: "?showModal", Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ query string
  • payload: {"constainer": "deposit-block", "selector": "button"}, это JSON со схСмой Π΄Π°Π½Π½Ρ‹Ρ… привязанной ΠΊ Ρ‚ΠΈΠΏΡƒ события. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ для ΠΊΠ»ΠΈΠΊΠ° это сСлСктор, для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ скорости Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Ρ‚.ΠΏ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ сСлСктора

Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ сохранСния сСлСкторов Π² Π»ΠΎΠ± являСтся отсутствиС ΠΏΠΎΠ·ΠΆΠ΅ возмоТности ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΎ, Ρ‚.ΠΊ. сайт рСгулярно обновляСтся. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ прСдлагаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Ρ‚Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹.

<div data-container="deposit-block">
  <button data-click="deposit-button-click" data-click-value={depositSumm}>
</div>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅ ΠΌΠ°Π»ΠΎΡΡ‚ΡŒ Π½Π°Π΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΉ, Π½ΠΎ сам ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ понятным. ΠœΡ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‡Π°Π΅ΠΌ сайт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚Π΅Π³Π°ΠΌΠΈ 'data-container' ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠΊΠ° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ складываСм блиТайший Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈ сСлСктор ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π³ΠΎ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ достаточно ΡƒΠ΄ΠΎΠ±Π΅Π½, Ρ‚.ΠΊ. ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ вСрстки сайта ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΡƒ Π»Π΅Π³ΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ Π»Π΅ΠΆΠΈΡ‚.

Однако часто Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ контСкст Π·Π½Π°Ρ‚ΡŒ. Π’ этом случаС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Ρ‚Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ "data-click", этот Π΄Π°Ρ‚Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ позволяСт ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° этот элСмСнт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² посылку Π² Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΡƒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° "data-click-value", ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ с суммой Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ с кастомными Π΄Π°Ρ‚Π° сСлСкторами Π±Ρ‹Π» ΡƒΠ΄ΠΎΠ±Π΅Π½ Π² angular ΠΈ svelte, Ρ‚.ΠΊ. Π² ΠΎΠ±ΠΎΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ… Π΅ΡΡ‚ΡŒ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ инструмСнты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ, Π½Π΅ Ρ„Π°ΠΊΡ‚ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π΅Π½ Π² Ρ€Π΅Π°ΠΊΡ‚Π΅.