Goal: ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ postbacks для ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ² ΠΏΠΎ дСйствиям Π² Π²ΠΎΡ€ΠΎΠ½ΠΊΠ΅ мобильного прилоТСния.

Events:

  • download
  • install
  • authorization ВсСго Ρƒ нас Π΅ΡΡ‚ΡŒ 3 события для постбСков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ.

download

событиС ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠΈ "Track", Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π» Π½Π° apk ΠΈ Π½Π°Ρ‡Π°Π» скачиваниС. Нам Π²Π°ΠΆΠ½ΠΎ Π² postback ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ clickid ΠΈΠ· ссылки

Install

событиС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ запускС прилоТСния. Для нас это Ρ‚Π°Π±Π»ΠΈΡ†Π° "Open". Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ clickID ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… "Track". Вторая ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π°Ρ‚ΡŒ постбСк Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠŸΠ•Π Π’Π«Π™ open прилоТСния. ΠœΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ.

Authorization

событиС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π»ΠΎΠ³ΠΈΠ½Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния. Для нас это Ρ‚Π°Π±Π»ΠΈΡ†Π° "Push". Она заполняСтся Ссли Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° зарСгистрировался ΠΈΠ»ΠΈ залогинился Π²Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±Ρ‹Π» Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½). Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ Π² нСобходимости ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ событиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠžΠ”Π˜Π Ρ€Π°Π·.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ трСбования

Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ конфигурирования постбСк для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°

Нашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Ρ‹, это Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ Ρƒ Π½ΠΈΡ… Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚Ρ€Π΅ΠΊΠΊΠ΅Ρ€Ρ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ постбСков. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ. Π‘Π°ΠΌΡ‹ΠΉ простой способ - ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ части STAG.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ STAG stag=666321_693fe967c1859daf6c30bfa2, stag=partenerId_clickId

ΠœΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π° пСрвая Ρ‡Π°ΡΡ‚ΡŒ stag (partnerID) Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°. И Ссли ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠΌ - всС Π΅Π³ΠΎ ссылки Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ partnerID

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ ΠΌΠΎΠΆΠ΅ΠΌ завСсти ΠΊΠ°Ρ€Ρ‚Ρƒ соотвСтствий: stag = xxx, Ρ‚ΠΎΠ³Π΄Π° настройки = yyy

ΠžΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ ΠΌΠΎΠΆΠ΅ΠΌ Π² Π²ΠΈΠ΄Π΅ google sheet Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ постбСки

ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° - Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π° свой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ постбСков, поэтому Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ для подстановки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² постбСк ΡƒΡ€Π». К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ:

https://binom.com/postback/{stag_partnerId}/?clickID={stag_clickID}&externalClickID={params.clickID}&userID={userID}&ts={timestamp}

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅:

  • stag_partnerId: ΠΈΠ΄ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π° ΠΈΠ· stag
  • stag_clickID: ΠΈΠ΄ ΠΊΠ»ΠΈΠΊΠ° ΠΈΠ· stag
  • params.clickID: get ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠ· Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ track ΡƒΡ€Π» с ΠΈΠΌΠ΅Π½Π΅ΠΌ clickID
  • userID: ΠΈΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ· Π±Π°Π»ΠΈΡ†Ρ‹ push
  • timestamp: врСмя Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ linuxtimestapm Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ событиС

Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ

ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ события сразу ΠΏΠΎ ΠΈΡ… возникновСнию, Π½ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π±Π°Ρ‚Ρ‡ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ€Π°Π· Π² час Ρ‚ΠΎΠΆΠ΅.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ использованиСм CloudFlare workers + kv, НО Π²Π°ΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² KV Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ количСство запросов ΠΊ BQ

retry

ΠœΡ‹ Π·Π½Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ Ρƒ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€, поэтому ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ retry (идСально exponential backoff, Π½ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ - Ρ…ΠΎΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ) ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ всС ΠΎΡ‚Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ постбСки + http status ΠΊΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‚Π° (ΠΌΠΎΠΆΠ½ΠΎ ΠΈ body Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 100 Π±Π°ΠΉΡ‚ΠΎΠ²)