AnalyticsRegistrationSourceHelper.mjs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import AnalyticsManager from './AnalyticsManager.mjs'
  2. import RequestHelper from './RequestHelper.mjs'
  3. function clearSource(session) {
  4. if (session) {
  5. delete session.required_login_from_product_medium
  6. delete session.required_login_from_product_source
  7. }
  8. }
  9. function setInbound(session, url, query, referrer) {
  10. const inboundSession = {
  11. referrer: RequestHelper.parseReferrer(referrer, url),
  12. utm: RequestHelper.parseUtm(query),
  13. }
  14. if (inboundSession.referrer || inboundSession.utm) {
  15. session.inbound = inboundSession
  16. }
  17. }
  18. function clearInbound(session) {
  19. if (session) {
  20. delete session.inbound
  21. }
  22. }
  23. function addUserProperties(userId, session) {
  24. if (!session) {
  25. return
  26. }
  27. if (session.required_login_from_product_medium) {
  28. AnalyticsManager.setUserPropertyForUserInBackground(
  29. userId,
  30. `registered-from-product-medium`,
  31. session.required_login_from_product_medium
  32. )
  33. if (session.required_login_from_product_source) {
  34. AnalyticsManager.setUserPropertyForUserInBackground(
  35. userId,
  36. `registered-from-product-source`,
  37. session.required_login_from_product_source
  38. )
  39. }
  40. } else if (session.referal_id) {
  41. AnalyticsManager.setUserPropertyForUserInBackground(
  42. userId,
  43. `registered-from-bonus-scheme`,
  44. true
  45. )
  46. AnalyticsManager.setUserPropertyForUserInBackground(
  47. userId,
  48. `registered-from-product-medium`,
  49. 'bonus-scheme'
  50. )
  51. }
  52. if (session.inbound) {
  53. if (session.inbound.referrer && session.inbound.referrer.medium) {
  54. AnalyticsManager.setUserPropertyForUserInBackground(
  55. userId,
  56. `registered-from-referrer-medium`,
  57. `${session.inbound.referrer.medium
  58. .charAt(0)
  59. .toUpperCase()}${session.inbound.referrer.medium.slice(1)}`
  60. )
  61. if (session.inbound.referrer.source) {
  62. AnalyticsManager.setUserPropertyForUserInBackground(
  63. userId,
  64. `registered-from-referrer-source`,
  65. session.inbound.referrer.source
  66. )
  67. }
  68. }
  69. if (session.inbound.utm) {
  70. for (const utmKey of RequestHelper.UTM_KEYS) {
  71. if (session.inbound.utm[utmKey]) {
  72. AnalyticsManager.setUserPropertyForUserInBackground(
  73. userId,
  74. `registered-from-${utmKey.replace('_', '-')}`,
  75. session.inbound.utm[utmKey]
  76. )
  77. }
  78. }
  79. }
  80. }
  81. }
  82. export default {
  83. clearSource,
  84. setInbound,
  85. clearInbound,
  86. addUserProperties,
  87. }