| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- const AnalyticsManager = require('./AnalyticsManager')
- const RequestHelper = require('./RequestHelper')
- function clearSource(session) {
- if (session) {
- delete session.required_login_from_product_medium
- delete session.required_login_from_product_source
- }
- }
- function setInbound(session, url, query, referrer) {
- const inboundSession = {
- referrer: RequestHelper.parseReferrer(referrer, url),
- utm: RequestHelper.parseUtm(query),
- }
- if (inboundSession.referrer || inboundSession.utm) {
- session.inbound = inboundSession
- }
- }
- function clearInbound(session) {
- if (session) {
- delete session.inbound
- }
- }
- function addUserProperties(userId, session) {
- if (!session) {
- return
- }
- if (session.required_login_from_product_medium) {
- AnalyticsManager.setUserPropertyForUserInBackground(
- userId,
- `registered-from-product-medium`,
- session.required_login_from_product_medium
- )
- if (session.required_login_from_product_source) {
- AnalyticsManager.setUserPropertyForUserInBackground(
- userId,
- `registered-from-product-source`,
- session.required_login_from_product_source
- )
- }
- } else if (session.referal_id) {
- AnalyticsManager.setUserPropertyForUserInBackground(
- userId,
- `registered-from-bonus-scheme`,
- true
- )
- AnalyticsManager.setUserPropertyForUserInBackground(
- userId,
- `registered-from-product-medium`,
- 'bonus-scheme'
- )
- }
- if (session.inbound) {
- if (session.inbound.referrer && session.inbound.referrer.medium) {
- AnalyticsManager.setUserPropertyForUserInBackground(
- userId,
- `registered-from-referrer-medium`,
- `${session.inbound.referrer.medium
- .charAt(0)
- .toUpperCase()}${session.inbound.referrer.medium.slice(1)}`
- )
- if (session.inbound.referrer.source) {
- AnalyticsManager.setUserPropertyForUserInBackground(
- userId,
- `registered-from-referrer-source`,
- session.inbound.referrer.source
- )
- }
- }
- if (session.inbound.utm) {
- for (const utmKey of RequestHelper.UTM_KEYS) {
- if (session.inbound.utm[utmKey]) {
- AnalyticsManager.setUserPropertyForUserInBackground(
- userId,
- `registered-from-${utmKey.replace('_', '-')}`,
- session.inbound.utm[utmKey]
- )
- }
- }
- }
- }
- }
- module.exports = {
- clearSource,
- setInbound,
- clearInbound,
- addUserProperties,
- }
|