@magicpixel/rn-mp-client-sdk 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -48,4 +48,6 @@ _defineProperty(Constants, "KEY_MP_IDL_VISITOR_ID_INFO", 'mp_idl_visitor_info');
48
48
  _defineProperty(Constants, "KEY_MP_IDL_VISIT_ID_INFO", 'mp_idl_visit_info');
49
49
 
50
50
  _defineProperty(Constants, "KEY_MP_DEBUG_ID", 'mp_debug_id');
51
+
52
+ _defineProperty(Constants, "KEY_FBP", 'KEY_FBP');
51
53
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Constants","RegExp","customAlphabet","a","b","o"],"sources":["constants.ts"],"sourcesContent":["import { customAlphabet } from 'nanoid/non-secure';\nimport type { BaseResourceParamType } from '../models/mp-client-sdk';\n\nexport class Constants {\n static PLACEHOLDER_REGEX = new RegExp(/({{)([A-Z_0-9 -]+)(}})/gi);\n\n static LARGE_RANDOM_POOL = customAlphabet(\n '1234567090abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',\n 21\n );\n\n static MP_DL_EVT = 'mp_dl_event';\n static CUST_EVT = 'custom_event';\n\n // Tag Report - Status Constants\n static ST_OK = 200; // tag fired successfully\n static ST_VAL_FAIL = 400; // tag validation failed - meaning one of the items marked as mandatory was found empty\n static ST_ERR = 500; // tag was ok, but provider side failure. may be url is constructed wrong, or provider is down\n static ST_DEP_FAIL = 1000; // processing tag dependencies failed - may be missing parameters or attributes\n static ST_PR_BL = 1002; // provider is black listed in the data governance screen\n static ST_PR_EXC = 1001; // tag was found, but no provider was bundled. SDK build issue. Report with high importance\n\n static PR_TYP_JS = 'js';\n static PR_TYP_IMG = 'img';\n static PR_TYP_APP = 'app';\n\n static PR_S_TYP_R = 'r';\n\n static sortAscending = (\n a: BaseResourceParamType,\n b: BaseResourceParamType\n ): number => (a.o > b.o ? 1 : -1);\n\n // this data structure is returned by the api and stored in this key\n // {\"dId\":\"VNiBG7JNfoGAyvqxhxMqd\",\"mId\":\"JW0FRrCtAj9K7uyNmL1ht\",\"st\":0}\n static KEY_MP_IDL_VISITOR_ID_INFO = 'mp_idl_visitor_info';\n\n // visitor info data structure\n // {\"visitId\": \"123123sdfsf\", \"visitCt\": 1, \"visitDepth\": 1, visitVer: 1}\n static KEY_MP_IDL_VISIT_ID_INFO = 'mp_idl_visit_info';\n\n static KEY_MP_DEBUG_ID = 'mp_debug_id';\n}\n"],"mappings":";;;;;;;AAAA;;;;AAGO,MAAMA,SAAN,CAAgB;;;;gBAAVA,S,uBACgB,IAAIC,MAAJ,CAAW,0BAAX,C;;gBADhBD,S,uBAGgB,IAAAE,yBAAA,EACzB,gEADyB,EAEzB,EAFyB,C;;gBAHhBF,S,eAQQ,a;;gBARRA,S,cASO,c;;gBATPA,S,WAYI,G;;gBAZJA,S,iBAaU,G;;gBAbVA,S,YAcK,G;;gBAdLA,S,iBAeU,I;;gBAfVA,S,cAgBO,I;;gBAhBPA,S,eAiBQ,I;;gBAjBRA,S,eAmBQ,I;;gBAnBRA,S,gBAoBS,K;;gBApBTA,S,gBAqBS,K;;gBArBTA,S,gBAuBS,G;;gBAvBTA,S,mBAyBY,CACrBG,CADqB,EAErBC,CAFqB,KAGTD,CAAC,CAACE,CAAF,GAAMD,CAAC,CAACC,CAAR,GAAY,CAAZ,GAAgB,CAAC,C;;gBA5BpBL,S,gCAgCyB,qB;;gBAhCzBA,S,8BAoCuB,mB;;gBApCvBA,S,qBAsCc,a"}
1
+ {"version":3,"names":["Constants","RegExp","customAlphabet","a","b","o"],"sources":["constants.ts"],"sourcesContent":["import { customAlphabet } from 'nanoid/non-secure';\nimport type { BaseResourceParamType } from '../models/mp-client-sdk';\n\nexport class Constants {\n static PLACEHOLDER_REGEX = new RegExp(/({{)([A-Z_0-9 -]+)(}})/gi);\n\n static LARGE_RANDOM_POOL = customAlphabet(\n '1234567090abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',\n 21\n );\n\n static MP_DL_EVT = 'mp_dl_event';\n static CUST_EVT = 'custom_event';\n\n // Tag Report - Status Constants\n static ST_OK = 200; // tag fired successfully\n static ST_VAL_FAIL = 400; // tag validation failed - meaning one of the items marked as mandatory was found empty\n static ST_ERR = 500; // tag was ok, but provider side failure. may be url is constructed wrong, or provider is down\n static ST_DEP_FAIL = 1000; // processing tag dependencies failed - may be missing parameters or attributes\n static ST_PR_BL = 1002; // provider is black listed in the data governance screen\n static ST_PR_EXC = 1001; // tag was found, but no provider was bundled. SDK build issue. Report with high importance\n\n static PR_TYP_JS = 'js';\n static PR_TYP_IMG = 'img';\n static PR_TYP_APP = 'app';\n\n static PR_S_TYP_R = 'r';\n\n static sortAscending = (\n a: BaseResourceParamType,\n b: BaseResourceParamType\n ): number => (a.o > b.o ? 1 : -1);\n\n // this data structure is returned by the api and stored in this key\n // {\"dId\":\"VNiBG7JNfoGAyvqxhxMqd\",\"mId\":\"JW0FRrCtAj9K7uyNmL1ht\",\"st\":0}\n static KEY_MP_IDL_VISITOR_ID_INFO = 'mp_idl_visitor_info';\n\n // visitor info data structure\n // {\"visitId\": \"123123sdfsf\", \"visitCt\": 1, \"visitDepth\": 1, visitVer: 1}\n static KEY_MP_IDL_VISIT_ID_INFO = 'mp_idl_visit_info';\n\n static KEY_MP_DEBUG_ID = 'mp_debug_id';\n static KEY_FBP = 'KEY_FBP';\n}\n"],"mappings":";;;;;;;AAAA;;;;AAGO,MAAMA,SAAN,CAAgB;;;;gBAAVA,S,uBACgB,IAAIC,MAAJ,CAAW,0BAAX,C;;gBADhBD,S,uBAGgB,IAAAE,yBAAA,EACzB,gEADyB,EAEzB,EAFyB,C;;gBAHhBF,S,eAQQ,a;;gBARRA,S,cASO,c;;gBATPA,S,WAYI,G;;gBAZJA,S,iBAaU,G;;gBAbVA,S,YAcK,G;;gBAdLA,S,iBAeU,I;;gBAfVA,S,cAgBO,I;;gBAhBPA,S,eAiBQ,I;;gBAjBRA,S,eAmBQ,I;;gBAnBRA,S,gBAoBS,K;;gBApBTA,S,gBAqBS,K;;gBArBTA,S,gBAuBS,G;;gBAvBTA,S,mBAyBY,CACrBG,CADqB,EAErBC,CAFqB,KAGTD,CAAC,CAACE,CAAF,GAAMD,CAAC,CAACC,CAAR,GAAY,CAAZ,GAAgB,CAAC,C;;gBA5BpBL,S,gCAgCyB,qB;;gBAhCzBA,S,8BAoCuB,mB;;gBApCvBA,S,qBAsCc,a;;gBAtCdA,S,aAuCM,S"}
@@ -11,8 +11,6 @@ var _dataStore = require("./data-store");
11
11
 
12
12
  var _reporter = require("./reporter");
13
13
 
14
- var _utils = require("./utils");
15
-
16
14
  class NetworkService {
17
15
  static async fetchIdlInfo(url) {
18
16
  const response = await NetworkService.sendNetworkRequest('get', url);
@@ -26,7 +24,7 @@ class NetworkService {
26
24
 
27
25
  static async refreshClientSdkJson(sdkInitOptions) {
28
26
  try {
29
- const response = await this.sendNetworkRequest('get', `${sdkInitOptions.baseUrl}/${sdkInitOptions.projectId}${sdkInitOptions.env === 'staging' ? '-staging' : ''}.json?cb=${_utils.Utils.getUniqueID()}`);
27
+ const response = await this.sendNetworkRequest('get', `${sdkInitOptions.baseUrl}/${sdkInitOptions.projectId}${sdkInitOptions.env === 'staging' ? '-staging' : ''}.json`);
30
28
 
31
29
  if (response) {
32
30
  const sdkJson = await response.json();
@@ -1 +1 @@
1
- {"version":3,"names":["NetworkService","fetchIdlInfo","url","response","sendNetworkRequest","json","refreshClientSdkJson","sdkInitOptions","baseUrl","projectId","env","Utils","getUniqueID","sdkJson","Logger","logDbg","DataStore","init","err","Reporter","reportError","Error","sendPostRequest","body","catch","logError","sendGetRequest","method","JSON","stringify","fetch","headers"],"sources":["network-service.ts"],"sourcesContent":["import { Logger } from './logger';\nimport type { MapLike, SdkInitOptions, VisitorInfo } from './app-types';\nimport { DataStore } from './data-store';\nimport { Reporter } from './reporter';\nimport { Utils } from './utils';\nimport type { MpClientSdk } from '../models/mp-client-sdk';\n\nexport class NetworkService {\n public static async fetchIdlInfo(url: string): Promise<VisitorInfo> {\n const response = await NetworkService.sendNetworkRequest('get', url);\n if (response) {\n return response.json();\n } else {\n return null;\n }\n }\n\n public static async refreshClientSdkJson(\n sdkInitOptions: SdkInitOptions\n ): Promise<void> {\n try {\n const response = await this.sendNetworkRequest(\n 'get',\n `${sdkInitOptions.baseUrl}/${sdkInitOptions.projectId}${\n sdkInitOptions.env === 'staging' ? '-staging' : ''\n }.json?cb=${Utils.getUniqueID()}`\n );\n\n if (response) {\n const sdkJson: MpClientSdk = await response.json();\n Logger.logDbg('Client Sdk:: ', sdkJson);\n // sdkJson.s.c_url = 'http://localhost:3001';\n await DataStore.init(sdkJson);\n }\n } catch (err) {\n Reporter.reportError('refreshClientSdk', err);\n throw new Error('Unable to fetch MagicPixel SDK at this time.');\n }\n }\n\n public static sendPostRequest(url: string, body: MapLike): void {\n this.sendNetworkRequest('post', url, body).catch((err) => {\n Logger.logError(err);\n });\n }\n\n public static sendGetRequest(url: string): void {\n this.sendNetworkRequest('get', url).catch((err) => {\n Logger.logError(err);\n });\n }\n\n private static async sendNetworkRequest(\n method: 'get' | 'post',\n url: string,\n body?: MapLike\n ): Promise<any> {\n try {\n Logger.logDbg(\n `Sending ${method} request to ${url} with body ${JSON.stringify(body)}`\n );\n if (method === 'get') {\n return await fetch(url, {\n headers: {\n 'cache-control': 'no-store',\n },\n });\n } else if (method === 'post') {\n return await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-store',\n },\n body: JSON.stringify(body ?? '{}'),\n });\n } else {\n throw new Error('Unsupported method: ' + method);\n }\n } catch (err) {\n Logger.logError(err);\n return null;\n }\n }\n}\n"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AAGO,MAAMA,cAAN,CAAqB;EACM,aAAZC,YAAY,CAACC,GAAD,EAAoC;IAClE,MAAMC,QAAQ,GAAG,MAAMH,cAAc,CAACI,kBAAf,CAAkC,KAAlC,EAAyCF,GAAzC,CAAvB;;IACA,IAAIC,QAAJ,EAAc;MACZ,OAAOA,QAAQ,CAACE,IAAT,EAAP;IACD,CAFD,MAEO;MACL,OAAO,IAAP;IACD;EACF;;EAEuC,aAApBC,oBAAoB,CACtCC,cADsC,EAEvB;IACf,IAAI;MACF,MAAMJ,QAAQ,GAAG,MAAM,KAAKC,kBAAL,CACrB,KADqB,EAEpB,GAAEG,cAAc,CAACC,OAAQ,IAAGD,cAAc,CAACE,SAAU,GACpDF,cAAc,CAACG,GAAf,KAAuB,SAAvB,GAAmC,UAAnC,GAAgD,EACjD,YAAWC,YAAA,CAAMC,WAAN,EAAoB,EAJX,CAAvB;;MAOA,IAAIT,QAAJ,EAAc;QACZ,MAAMU,OAAoB,GAAG,MAAMV,QAAQ,CAACE,IAAT,EAAnC;;QACAS,cAAA,CAAOC,MAAP,CAAc,eAAd,EAA+BF,OAA/B,EAFY,CAGZ;;;QACA,MAAMG,oBAAA,CAAUC,IAAV,CAAeJ,OAAf,CAAN;MACD;IACF,CAdD,CAcE,OAAOK,GAAP,EAAY;MACZC,kBAAA,CAASC,WAAT,CAAqB,kBAArB,EAAyCF,GAAzC;;MACA,MAAM,IAAIG,KAAJ,CAAU,8CAAV,CAAN;IACD;EACF;;EAE4B,OAAfC,eAAe,CAACpB,GAAD,EAAcqB,IAAd,EAAmC;IAC9D,KAAKnB,kBAAL,CAAwB,MAAxB,EAAgCF,GAAhC,EAAqCqB,IAArC,EAA2CC,KAA3C,CAAkDN,GAAD,IAAS;MACxDJ,cAAA,CAAOW,QAAP,CAAgBP,GAAhB;IACD,CAFD;EAGD;;EAE2B,OAAdQ,cAAc,CAACxB,GAAD,EAAoB;IAC9C,KAAKE,kBAAL,CAAwB,KAAxB,EAA+BF,GAA/B,EAAoCsB,KAApC,CAA2CN,GAAD,IAAS;MACjDJ,cAAA,CAAOW,QAAP,CAAgBP,GAAhB;IACD,CAFD;EAGD;;EAEsC,aAAlBd,kBAAkB,CACrCuB,MADqC,EAErCzB,GAFqC,EAGrCqB,IAHqC,EAIvB;IACd,IAAI;MACFT,cAAA,CAAOC,MAAP,CACG,WAAUY,MAAO,eAAczB,GAAI,cAAa0B,IAAI,CAACC,SAAL,CAAeN,IAAf,CAAqB,EADxE;;MAGA,IAAII,MAAM,KAAK,KAAf,EAAsB;QACpB,OAAO,MAAMG,KAAK,CAAC5B,GAAD,EAAM;UACtB6B,OAAO,EAAE;YACP,iBAAiB;UADV;QADa,CAAN,CAAlB;MAKD,CAND,MAMO,IAAIJ,MAAM,KAAK,MAAf,EAAuB;QAC5B,OAAO,MAAMG,KAAK,CAAC5B,GAAD,EAAM;UACtByB,MAAM,EAAE,MADc;UAEtBI,OAAO,EAAE;YACP,gBAAgB,YADT;YAEP,iBAAiB;UAFV,CAFa;UAMtBR,IAAI,EAAEK,IAAI,CAACC,SAAL,CAAeN,IAAI,IAAI,IAAvB;QANgB,CAAN,CAAlB;MAQD,CATM,MASA;QACL,MAAM,IAAIF,KAAJ,CAAU,yBAAyBM,MAAnC,CAAN;MACD;IACF,CAtBD,CAsBE,OAAOT,GAAP,EAAY;MACZJ,cAAA,CAAOW,QAAP,CAAgBP,GAAhB;;MACA,OAAO,IAAP;IACD;EACF;;AA5EyB"}
1
+ {"version":3,"names":["NetworkService","fetchIdlInfo","url","response","sendNetworkRequest","json","refreshClientSdkJson","sdkInitOptions","baseUrl","projectId","env","sdkJson","Logger","logDbg","DataStore","init","err","Reporter","reportError","Error","sendPostRequest","body","catch","logError","sendGetRequest","method","JSON","stringify","fetch","headers"],"sources":["network-service.ts"],"sourcesContent":["import { Logger } from './logger';\nimport type { MapLike, SdkInitOptions, VisitorInfo } from './app-types';\nimport { DataStore } from './data-store';\nimport { Reporter } from './reporter';\nimport type { MpClientSdk } from '../models/mp-client-sdk';\n\nexport class NetworkService {\n public static async fetchIdlInfo(url: string): Promise<VisitorInfo> {\n const response = await NetworkService.sendNetworkRequest('get', url);\n if (response) {\n return response.json();\n } else {\n return null;\n }\n }\n\n public static async refreshClientSdkJson(\n sdkInitOptions: SdkInitOptions\n ): Promise<void> {\n try {\n const response = await this.sendNetworkRequest(\n 'get',\n `${sdkInitOptions.baseUrl}/${sdkInitOptions.projectId}${\n sdkInitOptions.env === 'staging' ? '-staging' : ''\n }.json`\n );\n\n if (response) {\n const sdkJson: MpClientSdk = await response.json();\n Logger.logDbg('Client Sdk:: ', sdkJson);\n // sdkJson.s.c_url = 'http://localhost:3001';\n await DataStore.init(sdkJson);\n }\n } catch (err) {\n Reporter.reportError('refreshClientSdk', err);\n throw new Error('Unable to fetch MagicPixel SDK at this time.');\n }\n }\n\n public static sendPostRequest(url: string, body: MapLike): void {\n this.sendNetworkRequest('post', url, body).catch((err) => {\n Logger.logError(err);\n });\n }\n\n public static sendGetRequest(url: string): void {\n this.sendNetworkRequest('get', url).catch((err) => {\n Logger.logError(err);\n });\n }\n\n private static async sendNetworkRequest(\n method: 'get' | 'post',\n url: string,\n body?: MapLike\n ): Promise<any> {\n try {\n Logger.logDbg(\n `Sending ${method} request to ${url} with body ${JSON.stringify(body)}`\n );\n if (method === 'get') {\n return await fetch(url, {\n headers: {\n 'cache-control': 'no-store',\n },\n });\n } else if (method === 'post') {\n return await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-store',\n },\n body: JSON.stringify(body ?? '{}'),\n });\n } else {\n throw new Error('Unsupported method: ' + method);\n }\n } catch (err) {\n Logger.logError(err);\n return null;\n }\n }\n}\n"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AAGO,MAAMA,cAAN,CAAqB;EACM,aAAZC,YAAY,CAACC,GAAD,EAAoC;IAClE,MAAMC,QAAQ,GAAG,MAAMH,cAAc,CAACI,kBAAf,CAAkC,KAAlC,EAAyCF,GAAzC,CAAvB;;IACA,IAAIC,QAAJ,EAAc;MACZ,OAAOA,QAAQ,CAACE,IAAT,EAAP;IACD,CAFD,MAEO;MACL,OAAO,IAAP;IACD;EACF;;EAEuC,aAApBC,oBAAoB,CACtCC,cADsC,EAEvB;IACf,IAAI;MACF,MAAMJ,QAAQ,GAAG,MAAM,KAAKC,kBAAL,CACrB,KADqB,EAEpB,GAAEG,cAAc,CAACC,OAAQ,IAAGD,cAAc,CAACE,SAAU,GACpDF,cAAc,CAACG,GAAf,KAAuB,SAAvB,GAAmC,UAAnC,GAAgD,EACjD,OAJoB,CAAvB;;MAOA,IAAIP,QAAJ,EAAc;QACZ,MAAMQ,OAAoB,GAAG,MAAMR,QAAQ,CAACE,IAAT,EAAnC;;QACAO,cAAA,CAAOC,MAAP,CAAc,eAAd,EAA+BF,OAA/B,EAFY,CAGZ;;;QACA,MAAMG,oBAAA,CAAUC,IAAV,CAAeJ,OAAf,CAAN;MACD;IACF,CAdD,CAcE,OAAOK,GAAP,EAAY;MACZC,kBAAA,CAASC,WAAT,CAAqB,kBAArB,EAAyCF,GAAzC;;MACA,MAAM,IAAIG,KAAJ,CAAU,8CAAV,CAAN;IACD;EACF;;EAE4B,OAAfC,eAAe,CAAClB,GAAD,EAAcmB,IAAd,EAAmC;IAC9D,KAAKjB,kBAAL,CAAwB,MAAxB,EAAgCF,GAAhC,EAAqCmB,IAArC,EAA2CC,KAA3C,CAAkDN,GAAD,IAAS;MACxDJ,cAAA,CAAOW,QAAP,CAAgBP,GAAhB;IACD,CAFD;EAGD;;EAE2B,OAAdQ,cAAc,CAACtB,GAAD,EAAoB;IAC9C,KAAKE,kBAAL,CAAwB,KAAxB,EAA+BF,GAA/B,EAAoCoB,KAApC,CAA2CN,GAAD,IAAS;MACjDJ,cAAA,CAAOW,QAAP,CAAgBP,GAAhB;IACD,CAFD;EAGD;;EAEsC,aAAlBZ,kBAAkB,CACrCqB,MADqC,EAErCvB,GAFqC,EAGrCmB,IAHqC,EAIvB;IACd,IAAI;MACFT,cAAA,CAAOC,MAAP,CACG,WAAUY,MAAO,eAAcvB,GAAI,cAAawB,IAAI,CAACC,SAAL,CAAeN,IAAf,CAAqB,EADxE;;MAGA,IAAII,MAAM,KAAK,KAAf,EAAsB;QACpB,OAAO,MAAMG,KAAK,CAAC1B,GAAD,EAAM;UACtB2B,OAAO,EAAE;YACP,iBAAiB;UADV;QADa,CAAN,CAAlB;MAKD,CAND,MAMO,IAAIJ,MAAM,KAAK,MAAf,EAAuB;QAC5B,OAAO,MAAMG,KAAK,CAAC1B,GAAD,EAAM;UACtBuB,MAAM,EAAE,MADc;UAEtBI,OAAO,EAAE;YACP,gBAAgB,YADT;YAEP,iBAAiB;UAFV,CAFa;UAMtBR,IAAI,EAAEK,IAAI,CAACC,SAAL,CAAeN,IAAI,IAAI,IAAvB;QANgB,CAAN,CAAlB;MAQD,CATM,MASA;QACL,MAAM,IAAIF,KAAJ,CAAU,yBAAyBM,MAAnC,CAAN;MACD;IACF,CAtBD,CAsBE,OAAOT,GAAP,EAAY;MACZJ,cAAA,CAAOW,QAAP,CAAgBP,GAAhB;;MACA,OAAO,IAAP;IACD;EACF;;AA5EyB"}
@@ -41,6 +41,16 @@ class MagicPixelImpl {
41
41
  const sdk = _dataStore.DataStore.getClientSdk();
42
42
 
43
43
  await _visitId.VisitIdProcessor.init();
44
+ const fbp = await _visitId.VisitIdProcessor.getFacebookFBP();
45
+
46
+ if (fbp) {
47
+ _logger.Logger.logDbg('Setting facebook client id', fbp);
48
+
49
+ this.setFacebookClientId(fbp);
50
+ } else {
51
+ _logger.Logger.logDbg('No facebook client id found. not setting');
52
+ }
53
+
44
54
  MagicPixelEventBus.on('mpDlEvent', async (evtName, payload) => {
45
55
  var _sdk$mpDlE;
46
56
 
@@ -63,11 +73,15 @@ class MagicPixelImpl {
63
73
  static recordEvent(eventName, payload) {
64
74
  if (this.customerInfo) {
65
75
  const newPayload = { ...payload,
66
- ...this.customerInfo
76
+ ...this.customerInfo,
77
+ ...(this.customerIdentifiers ?? {})
67
78
  };
68
79
  this.dl.pushEvent(eventName, newPayload);
69
80
  } else {
70
- this.dl.pushEvent(eventName, payload);
81
+ const newPayload = { ...payload,
82
+ ...(this.customerIdentifiers ?? {})
83
+ };
84
+ this.dl.pushEvent(eventName, newPayload);
71
85
  }
72
86
  }
73
87
 
@@ -184,16 +198,28 @@ class MagicPixelImpl {
184
198
  this.customerInfo = customerInfo;
185
199
  }
186
200
 
201
+ static setFirebaseAppInstanceId(instanceId) {
202
+ this.customerIdentifiers.firebase_instance_id = instanceId;
203
+ }
204
+
205
+ static setFacebookClientId(fbp) {
206
+ this.customerIdentifiers.fbp = fbp;
207
+ }
208
+
187
209
  static recordPageLoad(pageLoadInfo) {
188
210
  pageLoadInfo.is_entry = this.firstAppLaunch ? 1 : 0;
189
211
 
190
212
  if (this.customerInfo) {
191
213
  const newPayload = { ...pageLoadInfo,
192
- ...this.customerInfo
214
+ ...this.customerInfo,
215
+ ...(this.customerIdentifiers ?? {})
193
216
  };
194
217
  this.dl.pushEvent('page_load', newPayload);
195
218
  } else {
196
- this.dl.pushEvent('page_load', pageLoadInfo);
219
+ const newPayload = { ...pageLoadInfo,
220
+ ...(this.customerIdentifiers ?? {})
221
+ };
222
+ this.dl.pushEvent('page_load', newPayload);
197
223
  }
198
224
 
199
225
  this.firstAppLaunch = false;
@@ -205,6 +231,8 @@ _defineProperty(MagicPixelImpl, "dl", void 0);
205
231
 
206
232
  _defineProperty(MagicPixelImpl, "customerInfo", void 0);
207
233
 
234
+ _defineProperty(MagicPixelImpl, "customerIdentifiers", {});
235
+
208
236
  _defineProperty(MagicPixelImpl, "firstAppLaunch", true);
209
237
 
210
238
  const MagicPixelEventBus = _eventBus.EventBus;
@@ -1 +1 @@
1
- {"version":3,"names":["MagicPixelImpl","init","options","dl","MpDataLayerHelper","NetworkService","refreshClientSdkJson","DataStore","isDataStoreReady","Error","sdk","getClientSdk","VisitIdProcessor","MagicPixelEventBus","on","evtName","payload","console","log","JSON","stringify","eventName","eventDataModel","model","eventId","Logger","logDbg","mpDlE","indexOf","enQueueTMFire","checkAndFireTM","recordEvent","customerInfo","newPayload","pushEvent","ready","isTagManagerProcessing","item","deQueueTMFire","name","dcrName","dcrPayload","runTM","sseOnly","err","logError","Reporter","reportError","triggerName","evtId","eventData","setTagManagerProcessing","DataElementProcessor","processDataElements","getSdkDataElements","pcKey","getSdkPcKey","pcVal","getDataElementValue","setPrivacyCompliance","getSdkPageLangKey","setDataElement","setPageLang","getOperatingSystem","toLowerCase","initReporter","s","ev","ev_id","getDeviceType","getPageLang","getDeviceOs","getPageName","getClientDownStream","getCoreVersion","validQCList","QcProcessor","processQc","getSdkQC","length","getValidQcInfo","TagProcessor","processTags","then","_fireTM","catch","runTMErr","envName","envId","hasOneSSTTag","shouldFireSstForEvent","postSST","getDataElements","getSSTDownStream","Utils","sleep","setCustomerInfo","recordPageLoad","pageLoadInfo","is_entry","firstAppLaunch","EventBus","MagicPixel"],"sources":["index.tsx"],"sourcesContent":["import { MpDataLayerHelper } from './eedl/eedl';\nimport type {\n AppCustomerInfo,\n AppPageLoad,\n MapLike,\n SdkInitOptions,\n} from './common/app-types';\nimport { DataStore } from './common/data-store';\nimport { Logger } from './common/logger';\nimport { Reporter } from './common/reporter';\nimport { DataElementProcessor } from './processors/data-element.processor';\nimport { TagProcessor } from './processors/tag.processor';\nimport { Utils } from './common/utils';\nimport { QcProcessor } from './processors/qc.processor';\nimport { NetworkService } from './common/network-service';\nimport { EventBus } from './common/event-bus';\nimport { VisitIdProcessor } from './processors/visit-id.processor';\n\nclass MagicPixelImpl {\n private static dl: MpDataLayerHelper;\n private static customerInfo: AppCustomerInfo;\n private static firstAppLaunch = true;\n\n static async init(options: SdkInitOptions): Promise<void> {\n this.dl = new MpDataLayerHelper('mpDlEvent', 'manual', 'page_load');\n\n await NetworkService.refreshClientSdkJson(options);\n\n if (!DataStore.isDataStoreReady()) {\n throw new Error('MagicPixel SDK is not ready. No tags will be processed');\n }\n\n const sdk = DataStore.getClientSdk();\n\n await VisitIdProcessor.init();\n\n MagicPixelEventBus.on('mpDlEvent', async (evtName, payload) => {\n console.log('mpDlEvent:: ', evtName, JSON.stringify(payload));\n const eventName: string = payload.eventName;\n const eventDataModel: MapLike = payload.model ?? {};\n const eventId = eventDataModel['ev._id'];\n\n Logger.logDbg('Tracking Event:: ', eventName, 'with id:: ', eventId);\n\n if (sdk.mpDlE?.indexOf(eventName) > -1) {\n // if this is something the tag manager is interested in - fire tag manager\n DataStore.enQueueTMFire(\n false,\n `custom_event_${eventName}`,\n eventName,\n eventId,\n eventDataModel\n );\n await this.checkAndFireTM();\n }\n });\n }\n\n static recordEvent(eventName: string, payload: MapLike): void {\n if (this.customerInfo) {\n const newPayload: MapLike = {\n ...payload,\n ...this.customerInfo,\n };\n this.dl.pushEvent(eventName, newPayload);\n } else {\n this.dl.pushEvent(eventName, payload);\n }\n }\n\n static ready(): void {\n this.dl.ready();\n }\n\n static async checkAndFireTM(): Promise<void> {\n try {\n if (!DataStore.isTagManagerProcessing()) {\n const item = DataStore.deQueueTMFire();\n if (item) {\n Logger.logDbg(\n 'Executing TM For: ',\n item.name,\n ', Event:: ',\n item.dcrName,\n ', Event id:: ',\n item.eventId,\n 'Payload:: ',\n item.dcrPayload\n );\n await this.runTM(\n item.sseOnly,\n item.name,\n item.dcrName,\n item.eventId,\n item.dcrPayload\n );\n }\n } else {\n Logger.logDbg(\n 'Tag Manager is processing or is not ready. This event will start after that'\n );\n }\n } catch (err) {\n Logger.logError('Error check and process tm', err);\n Reporter.reportError('m:checkAndFireTM', err);\n }\n }\n\n static async runTM(\n sseOnly: boolean,\n triggerName: string,\n evtName: string,\n evtId: string,\n eventData?: Record<string, any>\n ): Promise<void> {\n try {\n Logger.logDbg(\n 'Running:: ',\n sseOnly,\n triggerName,\n evtName,\n evtId,\n eventData\n );\n\n // set tag manager in process status\n DataStore.setTagManagerProcessing(true);\n\n // process all the data elements and cache them for this run\n await DataElementProcessor.processDataElements(\n DataStore.getSdkDataElements(),\n eventData\n );\n\n const sdk = DataStore.getClientSdk();\n\n const pcKey = DataStore.getSdkPcKey();\n if (pcKey) {\n const pcVal = DataStore.getDataElementValue(pcKey);\n if (typeof pcVal !== 'undefined' && pcVal === true) {\n Logger.logDbg('Set: PR Comp: ', true);\n DataStore.setPrivacyCompliance(true);\n } else {\n Logger.logDbg('Set: PR Comp: ', false);\n DataStore.setPrivacyCompliance(false);\n }\n } else {\n Logger.logDbg('Set: PR Comp: ', false);\n DataStore.setPrivacyCompliance(true);\n }\n\n if (DataStore.getSdkPageLangKey()) {\n DataStore.setDataElement(\n 'page_lang_key',\n DataStore.getSdkPageLangKey()\n );\n DataStore.setPageLang(\n DataStore.getDataElementValue('page_lang_key') as string\n );\n } else {\n DataStore.setDataElement('page_lang_key', null);\n }\n\n //set page_browser default data element with page_os because backend expects this\n DataStore.setDataElement(\n 'page_browser',\n DataStore.getOperatingSystem().toLowerCase()\n );\n\n Reporter.initReporter(\n sdk.s.ev,\n sdk.s.ev_id,\n DataStore.getDeviceType(),\n DataStore.getPageLang(),\n DataStore.getDeviceOs(),\n DataStore.getPageName(),\n evtName,\n evtId,\n DataStore.getClientDownStream(),\n DataStore.getCoreVersion(),\n []\n );\n\n const validQCList = QcProcessor.processQc(\n DataStore.getSdkQC(),\n evtName,\n evtId\n );\n\n if (validQCList?.length > 0) {\n Logger.logDbg('Found Valid QCs to process', DataStore.getValidQcInfo());\n\n TagProcessor.processTags(evtName, evtId)\n .then(() => {\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n })\n .catch((err) => {\n Logger.logError('Error processing tag lists.', err);\n Reporter.reportError('i::processTags', err);\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n });\n }\n } catch (runTMErr) {\n Logger.logError('Error in runTM', runTMErr);\n Reporter.reportError('m::runTM', runTMErr);\n }\n }\n\n static _fireTM(\n envName: string,\n envId: string,\n evtName: string,\n evtId: string\n ): void {\n if (DataStore.hasOneSSTTag() && DataStore.shouldFireSstForEvent(evtName)) {\n Reporter.postSST(\n DataStore.getDataElements(),\n envName,\n envId,\n DataStore.getSSTDownStream(),\n evtName,\n evtId\n ).catch((err: any) => {\n Reporter.reportError('l::postSST', err);\n });\n }\n\n DataStore.setTagManagerProcessing(false);\n Utils.sleep(250).then(async () => {\n try {\n await this.checkAndFireTM();\n } catch (err) {\n Reporter.reportError('i::runTM', err);\n }\n });\n }\n\n static setCustomerInfo(customerInfo: AppCustomerInfo): void {\n this.customerInfo = customerInfo;\n }\n\n static recordPageLoad(pageLoadInfo: AppPageLoad): void {\n pageLoadInfo.is_entry = this.firstAppLaunch ? 1 : 0;\n if (this.customerInfo) {\n const newPayload: MapLike = {\n ...pageLoadInfo,\n ...this.customerInfo,\n };\n this.dl.pushEvent('page_load', newPayload);\n } else {\n this.dl.pushEvent('page_load', pageLoadInfo);\n }\n this.firstAppLaunch = false;\n }\n}\n\nexport const MagicPixelEventBus = EventBus;\nexport const MagicPixel = MagicPixelImpl;\n"],"mappings":"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"}
1
+ {"version":3,"names":["MagicPixelImpl","init","options","dl","MpDataLayerHelper","NetworkService","refreshClientSdkJson","DataStore","isDataStoreReady","Error","sdk","getClientSdk","VisitIdProcessor","fbp","getFacebookFBP","Logger","logDbg","setFacebookClientId","MagicPixelEventBus","on","evtName","payload","console","log","JSON","stringify","eventName","eventDataModel","model","eventId","mpDlE","indexOf","enQueueTMFire","checkAndFireTM","recordEvent","customerInfo","newPayload","customerIdentifiers","pushEvent","ready","isTagManagerProcessing","item","deQueueTMFire","name","dcrName","dcrPayload","runTM","sseOnly","err","logError","Reporter","reportError","triggerName","evtId","eventData","setTagManagerProcessing","DataElementProcessor","processDataElements","getSdkDataElements","pcKey","getSdkPcKey","pcVal","getDataElementValue","setPrivacyCompliance","getSdkPageLangKey","setDataElement","setPageLang","getOperatingSystem","toLowerCase","initReporter","s","ev","ev_id","getDeviceType","getPageLang","getDeviceOs","getPageName","getClientDownStream","getCoreVersion","validQCList","QcProcessor","processQc","getSdkQC","length","getValidQcInfo","TagProcessor","processTags","then","_fireTM","catch","runTMErr","envName","envId","hasOneSSTTag","shouldFireSstForEvent","postSST","getDataElements","getSSTDownStream","Utils","sleep","setCustomerInfo","setFirebaseAppInstanceId","instanceId","firebase_instance_id","recordPageLoad","pageLoadInfo","is_entry","firstAppLaunch","EventBus","MagicPixel"],"sources":["index.tsx"],"sourcesContent":["import { MpDataLayerHelper } from './eedl/eedl';\nimport type {\n AppCustomerInfo,\n AppPageLoad,\n MapLike,\n SdkInitOptions,\n} from './common/app-types';\nimport { DataStore } from './common/data-store';\nimport { Logger } from './common/logger';\nimport { Reporter } from './common/reporter';\nimport { DataElementProcessor } from './processors/data-element.processor';\nimport { TagProcessor } from './processors/tag.processor';\nimport { Utils } from './common/utils';\nimport { QcProcessor } from './processors/qc.processor';\nimport { NetworkService } from './common/network-service';\nimport { EventBus } from './common/event-bus';\nimport { VisitIdProcessor } from './processors/visit-id.processor';\n\nclass MagicPixelImpl {\n private static dl: MpDataLayerHelper;\n private static customerInfo: AppCustomerInfo;\n private static customerIdentifiers: MapLike = {};\n private static firstAppLaunch = true;\n\n static async init(options: SdkInitOptions): Promise<void> {\n this.dl = new MpDataLayerHelper('mpDlEvent', 'manual', 'page_load');\n\n await NetworkService.refreshClientSdkJson(options);\n\n if (!DataStore.isDataStoreReady()) {\n throw new Error('MagicPixel SDK is not ready. No tags will be processed');\n }\n\n const sdk = DataStore.getClientSdk();\n\n await VisitIdProcessor.init();\n\n const fbp = await VisitIdProcessor.getFacebookFBP();\n if (fbp) {\n Logger.logDbg('Setting facebook client id', fbp);\n this.setFacebookClientId(fbp);\n } else {\n Logger.logDbg('No facebook client id found. not setting');\n }\n\n MagicPixelEventBus.on('mpDlEvent', async (evtName, payload) => {\n console.log('mpDlEvent:: ', evtName, JSON.stringify(payload));\n const eventName: string = payload.eventName;\n const eventDataModel: MapLike = payload.model ?? {};\n const eventId = eventDataModel['ev._id'];\n\n Logger.logDbg('Tracking Event:: ', eventName, 'with id:: ', eventId);\n\n if (sdk.mpDlE?.indexOf(eventName) > -1) {\n // if this is something the tag manager is interested in - fire tag manager\n DataStore.enQueueTMFire(\n false,\n `custom_event_${eventName}`,\n eventName,\n eventId,\n eventDataModel\n );\n await this.checkAndFireTM();\n }\n });\n }\n\n static recordEvent(eventName: string, payload: MapLike): void {\n if (this.customerInfo) {\n const newPayload: MapLike = {\n ...payload,\n ...this.customerInfo,\n ...(this.customerIdentifiers ?? {}),\n };\n this.dl.pushEvent(eventName, newPayload);\n } else {\n const newPayload: MapLike = {\n ...payload,\n ...(this.customerIdentifiers ?? {}),\n };\n this.dl.pushEvent(eventName, newPayload);\n }\n }\n\n static ready(): void {\n this.dl.ready();\n }\n\n static async checkAndFireTM(): Promise<void> {\n try {\n if (!DataStore.isTagManagerProcessing()) {\n const item = DataStore.deQueueTMFire();\n if (item) {\n Logger.logDbg(\n 'Executing TM For: ',\n item.name,\n ', Event:: ',\n item.dcrName,\n ', Event id:: ',\n item.eventId,\n 'Payload:: ',\n item.dcrPayload\n );\n await this.runTM(\n item.sseOnly,\n item.name,\n item.dcrName,\n item.eventId,\n item.dcrPayload\n );\n }\n } else {\n Logger.logDbg(\n 'Tag Manager is processing or is not ready. This event will start after that'\n );\n }\n } catch (err) {\n Logger.logError('Error check and process tm', err);\n Reporter.reportError('m:checkAndFireTM', err);\n }\n }\n\n static async runTM(\n sseOnly: boolean,\n triggerName: string,\n evtName: string,\n evtId: string,\n eventData?: Record<string, any>\n ): Promise<void> {\n try {\n Logger.logDbg(\n 'Running:: ',\n sseOnly,\n triggerName,\n evtName,\n evtId,\n eventData\n );\n\n // set tag manager in process status\n DataStore.setTagManagerProcessing(true);\n\n // process all the data elements and cache them for this run\n await DataElementProcessor.processDataElements(\n DataStore.getSdkDataElements(),\n eventData\n );\n\n const sdk = DataStore.getClientSdk();\n\n const pcKey = DataStore.getSdkPcKey();\n if (pcKey) {\n const pcVal = DataStore.getDataElementValue(pcKey);\n if (typeof pcVal !== 'undefined' && pcVal === true) {\n Logger.logDbg('Set: PR Comp: ', true);\n DataStore.setPrivacyCompliance(true);\n } else {\n Logger.logDbg('Set: PR Comp: ', false);\n DataStore.setPrivacyCompliance(false);\n }\n } else {\n Logger.logDbg('Set: PR Comp: ', false);\n DataStore.setPrivacyCompliance(true);\n }\n\n if (DataStore.getSdkPageLangKey()) {\n DataStore.setDataElement(\n 'page_lang_key',\n DataStore.getSdkPageLangKey()\n );\n DataStore.setPageLang(\n DataStore.getDataElementValue('page_lang_key') as string\n );\n } else {\n DataStore.setDataElement('page_lang_key', null);\n }\n\n //set page_browser default data element with page_os because backend expects this\n DataStore.setDataElement(\n 'page_browser',\n DataStore.getOperatingSystem().toLowerCase()\n );\n\n Reporter.initReporter(\n sdk.s.ev,\n sdk.s.ev_id,\n DataStore.getDeviceType(),\n DataStore.getPageLang(),\n DataStore.getDeviceOs(),\n DataStore.getPageName(),\n evtName,\n evtId,\n DataStore.getClientDownStream(),\n DataStore.getCoreVersion(),\n []\n );\n\n const validQCList = QcProcessor.processQc(\n DataStore.getSdkQC(),\n evtName,\n evtId\n );\n\n if (validQCList?.length > 0) {\n Logger.logDbg('Found Valid QCs to process', DataStore.getValidQcInfo());\n\n TagProcessor.processTags(evtName, evtId)\n .then(() => {\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n })\n .catch((err) => {\n Logger.logError('Error processing tag lists.', err);\n Reporter.reportError('i::processTags', err);\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n });\n }\n } catch (runTMErr) {\n Logger.logError('Error in runTM', runTMErr);\n Reporter.reportError('m::runTM', runTMErr);\n }\n }\n\n static _fireTM(\n envName: string,\n envId: string,\n evtName: string,\n evtId: string\n ): void {\n if (DataStore.hasOneSSTTag() && DataStore.shouldFireSstForEvent(evtName)) {\n Reporter.postSST(\n DataStore.getDataElements(),\n envName,\n envId,\n DataStore.getSSTDownStream(),\n evtName,\n evtId\n ).catch((err: any) => {\n Reporter.reportError('l::postSST', err);\n });\n }\n\n DataStore.setTagManagerProcessing(false);\n Utils.sleep(250).then(async () => {\n try {\n await this.checkAndFireTM();\n } catch (err) {\n Reporter.reportError('i::runTM', err);\n }\n });\n }\n\n static setCustomerInfo(customerInfo: AppCustomerInfo): void {\n this.customerInfo = customerInfo;\n }\n\n static setFirebaseAppInstanceId(instanceId: string): void {\n this.customerIdentifiers.firebase_instance_id = instanceId;\n }\n\n static setFacebookClientId(fbp: string): void {\n this.customerIdentifiers.fbp = fbp;\n }\n\n static recordPageLoad(pageLoadInfo: AppPageLoad): void {\n pageLoadInfo.is_entry = this.firstAppLaunch ? 1 : 0;\n if (this.customerInfo) {\n const newPayload: MapLike = {\n ...pageLoadInfo,\n ...this.customerInfo,\n ...(this.customerIdentifiers ?? {}),\n };\n this.dl.pushEvent('page_load', newPayload);\n } else {\n const newPayload: MapLike = {\n ...pageLoadInfo,\n ...(this.customerIdentifiers ?? {}),\n };\n this.dl.pushEvent('page_load', newPayload);\n }\n this.firstAppLaunch = false;\n }\n}\n\nexport const MagicPixelEventBus = EventBus;\nexport const MagicPixel = MagicPixelImpl;\n"],"mappings":"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"}
@@ -82,6 +82,23 @@ class VisitIdProcessor {
82
82
  });
83
83
  }
84
84
 
85
+ static async getFacebookFBP() {
86
+ try {
87
+ let fbp = await _dataStore.DataStore.getDataFromStorage(_constants.Constants.KEY_FBP);
88
+
89
+ if (!fbp) {
90
+ fbp = `fb.1.${Date.now()}.${Date.now()}`;
91
+ }
92
+
93
+ await _dataStore.DataStore.storeData(_constants.Constants.KEY_FBP, fbp);
94
+ return fbp;
95
+ } catch (err) {
96
+ _logger.Logger.logError('Error initializing debug id.', err);
97
+ }
98
+
99
+ return '';
100
+ }
101
+
85
102
  static async initDebugId() {
86
103
  try {
87
104
  let debugId = await _dataStore.DataStore.getDataFromStorage(_constants.Constants.KEY_MP_DEBUG_ID);
@@ -1 +1 @@
1
- {"version":3,"names":["VisitIdProcessor","init","initIdlEventListener","initDebugId","setOrResetVisitorId","setOrResetVisitInfo","EventBus","on","channelName","eventPayload","Logger","logError","eventName","client_ev_name","attrInfoPayload","client_ev_payload","deepPayload","payload","org_id","event_id","event_ts","e","attrPayload","pu","page_url","ru","campaign_ref","pt","page_title","en","event_name","cid","campaign_id","rs","report_suite","v","client_sdk_version","vidl","idl_version","ev","event_val","ep","at","app_type","evId","evTs","orgId","_mp_vid","DataStore","visitInfoToString","_lmid","getMpId","_ldid","getDeviceId","_mpidl","JSON","stringify","getVisitorInfoAsString","is_entry","pid","profile_id","Reporter","postAttrInfo","err","debugId","getDataFromStorage","Constants","KEY_MP_DEBUG_ID","Utils","getUniqueID","storeData","setDebugId","visitInfo","KEY_MP_IDL_VISIT_ID_INFO","newVisitInfo","visitId","visitCt","visitDepth","visitTs","Date","now","visitVer","setVisitInfo","reportError","visitorInfoData","KEY_MP_IDL_VISITOR_ID_INFO","logDbg","apiVisitInfo","NetworkService","fetchIdlInfo","getIdlUrl","setVisitorInfo"],"sources":["visit-id.processor.ts"],"sourcesContent":["import { Logger } from '../common/logger';\nimport { DataStore } from '../common/data-store';\nimport { Constants } from '../common/constants';\nimport { Reporter } from '../common/reporter';\nimport { NetworkService } from '../common/network-service';\nimport type { VisitInfo, VisitorInfo } from '../common/app-types';\nimport { Utils } from '../common/utils';\nimport { EventBus } from '../common/event-bus';\n\nexport class VisitIdProcessor {\n static async init(): Promise<void> {\n await this.initIdlEventListener();\n await this.initDebugId();\n await this.setOrResetVisitorId();\n await this.setOrResetVisitInfo();\n }\n\n static async initIdlEventListener(): Promise<void> {\n EventBus.on(\n 'mp_idl_app_event',\n (channelName: string, eventPayload: Record<string, string>) => {\n try {\n if (!channelName || !eventPayload) {\n Logger.logError(\n 'Both event name and event payload is mandatory for processing idl events'\n );\n return;\n }\n\n const eventName = eventPayload.client_ev_name;\n const attrInfoPayload: any = eventPayload.client_ev_payload ?? {};\n const deepPayload: any = attrInfoPayload?.payload ?? {};\n\n // is_entry, app_type,\n try {\n deepPayload['org_id'] = eventPayload?.org_id;\n deepPayload['event_id'] = eventPayload?.event_id;\n deepPayload['event_ts'] = eventPayload?.event_ts;\n } catch (e) {\n Logger.logError('Error enhancing internal attr payload');\n }\n\n const attrPayload: any = {\n pu: attrInfoPayload?.page_url,\n ru: attrInfoPayload?.campaign_ref,\n pt: attrInfoPayload?.page_title,\n en: attrInfoPayload.event_name,\n cid: attrInfoPayload?.campaign_id,\n rs: attrInfoPayload?.report_suite,\n v: attrInfoPayload?.client_sdk_version,\n vidl: attrInfoPayload?.idl_version,\n ev: attrInfoPayload?.event_val,\n ep: deepPayload,\n at: attrInfoPayload?.app_type,\n evId: attrInfoPayload?.event_id,\n evTs: attrInfoPayload?.event_ts,\n orgId: attrInfoPayload?.org_id,\n _mp_vid: DataStore.visitInfoToString(),\n _lmid: DataStore.getMpId(),\n _ldid: DataStore.getDeviceId(),\n _mpidl: JSON.stringify(DataStore.getVisitorInfoAsString()),\n is_entry: attrInfoPayload.is_entry ?? 0,\n app_type: attrInfoPayload.app_type,\n };\n\n if (eventName === 'al') {\n attrPayload.pid = eventPayload?.profile_id;\n }\n\n Reporter.postAttrInfo(attrPayload);\n } catch (err) {\n Logger.logError('Error processing idl event: ', err);\n }\n }\n );\n }\n\n static async initDebugId(): Promise<void> {\n try {\n let debugId = await DataStore.getDataFromStorage<string>(\n Constants.KEY_MP_DEBUG_ID\n );\n if (!debugId) {\n debugId = Utils.getUniqueID();\n }\n await DataStore.storeData(Constants.KEY_MP_DEBUG_ID, debugId);\n DataStore.setDebugId(debugId);\n } catch (err) {\n Logger.logError('Error initializing debug id.', err);\n }\n }\n\n static async setOrResetVisitInfo(): Promise<void> {\n try {\n const visitInfo: VisitInfo = await DataStore.getDataFromStorage(\n Constants.KEY_MP_IDL_VISIT_ID_INFO\n );\n\n if (!visitInfo) {\n // may be first time visit, setup a new visit info object and return\n const newVisitInfo: VisitInfo = {\n visitId: Utils.getUniqueID(),\n visitCt: 1,\n visitDepth: 1,\n visitTs: Date.now(),\n visitVer: 1,\n };\n DataStore.setVisitInfo(newVisitInfo);\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISIT_ID_INFO,\n newVisitInfo\n );\n } else {\n // reset visit id anyway, but retain the visitCt and depth setting\n visitInfo.visitId = Utils.getUniqueID();\n visitInfo.visitCt = visitInfo.visitCt + 1;\n visitInfo.visitDepth = 1;\n visitInfo.visitTs = Date.now();\n visitInfo.visitVer = 1;\n DataStore.setVisitInfo(visitInfo);\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISIT_ID_INFO,\n visitInfo\n );\n }\n } catch (err) {\n Logger.logError(err);\n DataStore.setVisitInfo(null);\n Reporter.reportError('setOrResetVisitInfo', err);\n }\n }\n\n static async setOrResetVisitorId(): Promise<void> {\n try {\n const visitorInfoData: VisitorInfo = await DataStore.getDataFromStorage(\n Constants.KEY_MP_IDL_VISITOR_ID_INFO\n );\n\n if (!visitorInfoData) {\n Logger.logDbg('VisitorInfo not found. Refreshing from server');\n // get a new visit id and device id from server and store it in storage\n const apiVisitInfo = await NetworkService.fetchIdlInfo(\n DataStore.getIdlUrl()\n );\n if (!apiVisitInfo) {\n return;\n } else {\n DataStore.setVisitorInfo(apiVisitInfo);\n // store to db as well\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISITOR_ID_INFO,\n apiVisitInfo\n );\n }\n } else {\n DataStore.setVisitorInfo(visitorInfoData);\n }\n } catch (err) {\n Logger.logError(err);\n DataStore.setVisitorInfo(null);\n Reporter.reportError('setOrResetVisitorId', err);\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["VisitIdProcessor","init","initIdlEventListener","initDebugId","setOrResetVisitorId","setOrResetVisitInfo","EventBus","on","channelName","eventPayload","Logger","logError","eventName","client_ev_name","attrInfoPayload","client_ev_payload","deepPayload","payload","org_id","event_id","event_ts","e","attrPayload","pu","page_url","ru","campaign_ref","pt","page_title","en","event_name","cid","campaign_id","rs","report_suite","v","client_sdk_version","vidl","idl_version","ev","event_val","ep","at","app_type","evId","evTs","orgId","_mp_vid","DataStore","visitInfoToString","_lmid","getMpId","_ldid","getDeviceId","_mpidl","JSON","stringify","getVisitorInfoAsString","is_entry","pid","profile_id","Reporter","postAttrInfo","err","getFacebookFBP","fbp","getDataFromStorage","Constants","KEY_FBP","Date","now","storeData","debugId","KEY_MP_DEBUG_ID","Utils","getUniqueID","setDebugId","visitInfo","KEY_MP_IDL_VISIT_ID_INFO","newVisitInfo","visitId","visitCt","visitDepth","visitTs","visitVer","setVisitInfo","reportError","visitorInfoData","KEY_MP_IDL_VISITOR_ID_INFO","logDbg","apiVisitInfo","NetworkService","fetchIdlInfo","getIdlUrl","setVisitorInfo"],"sources":["visit-id.processor.ts"],"sourcesContent":["import { Logger } from '../common/logger';\nimport { DataStore } from '../common/data-store';\nimport { Constants } from '../common/constants';\nimport { Reporter } from '../common/reporter';\nimport { NetworkService } from '../common/network-service';\nimport type { VisitInfo, VisitorInfo } from '../common/app-types';\nimport { Utils } from '../common/utils';\nimport { EventBus } from '../common/event-bus';\n\nexport class VisitIdProcessor {\n static async init(): Promise<void> {\n await this.initIdlEventListener();\n await this.initDebugId();\n await this.setOrResetVisitorId();\n await this.setOrResetVisitInfo();\n }\n\n static async initIdlEventListener(): Promise<void> {\n EventBus.on(\n 'mp_idl_app_event',\n (channelName: string, eventPayload: Record<string, string>) => {\n try {\n if (!channelName || !eventPayload) {\n Logger.logError(\n 'Both event name and event payload is mandatory for processing idl events'\n );\n return;\n }\n\n const eventName = eventPayload.client_ev_name;\n const attrInfoPayload: any = eventPayload.client_ev_payload ?? {};\n const deepPayload: any = attrInfoPayload?.payload ?? {};\n\n // is_entry, app_type,\n try {\n deepPayload['org_id'] = eventPayload?.org_id;\n deepPayload['event_id'] = eventPayload?.event_id;\n deepPayload['event_ts'] = eventPayload?.event_ts;\n } catch (e) {\n Logger.logError('Error enhancing internal attr payload');\n }\n\n const attrPayload: any = {\n pu: attrInfoPayload?.page_url,\n ru: attrInfoPayload?.campaign_ref,\n pt: attrInfoPayload?.page_title,\n en: attrInfoPayload.event_name,\n cid: attrInfoPayload?.campaign_id,\n rs: attrInfoPayload?.report_suite,\n v: attrInfoPayload?.client_sdk_version,\n vidl: attrInfoPayload?.idl_version,\n ev: attrInfoPayload?.event_val,\n ep: deepPayload,\n at: attrInfoPayload?.app_type,\n evId: attrInfoPayload?.event_id,\n evTs: attrInfoPayload?.event_ts,\n orgId: attrInfoPayload?.org_id,\n _mp_vid: DataStore.visitInfoToString(),\n _lmid: DataStore.getMpId(),\n _ldid: DataStore.getDeviceId(),\n _mpidl: JSON.stringify(DataStore.getVisitorInfoAsString()),\n is_entry: attrInfoPayload.is_entry ?? 0,\n app_type: attrInfoPayload.app_type,\n };\n\n if (eventName === 'al') {\n attrPayload.pid = eventPayload?.profile_id;\n }\n\n Reporter.postAttrInfo(attrPayload);\n } catch (err) {\n Logger.logError('Error processing idl event: ', err);\n }\n }\n );\n }\n\n static async getFacebookFBP(): Promise<string> {\n try {\n let fbp = await DataStore.getDataFromStorage<string>(Constants.KEY_FBP);\n\n if (!fbp) {\n fbp = `fb.1.${Date.now()}.${Date.now()}`;\n }\n\n await DataStore.storeData(Constants.KEY_FBP, fbp);\n return fbp;\n } catch (err) {\n Logger.logError('Error initializing debug id.', err);\n }\n return '';\n }\n\n static async initDebugId(): Promise<void> {\n try {\n let debugId = await DataStore.getDataFromStorage<string>(\n Constants.KEY_MP_DEBUG_ID\n );\n if (!debugId) {\n debugId = Utils.getUniqueID();\n }\n await DataStore.storeData(Constants.KEY_MP_DEBUG_ID, debugId);\n DataStore.setDebugId(debugId);\n } catch (err) {\n Logger.logError('Error initializing debug id.', err);\n }\n }\n\n static async setOrResetVisitInfo(): Promise<void> {\n try {\n const visitInfo: VisitInfo = await DataStore.getDataFromStorage(\n Constants.KEY_MP_IDL_VISIT_ID_INFO\n );\n\n if (!visitInfo) {\n // may be first time visit, setup a new visit info object and return\n const newVisitInfo: VisitInfo = {\n visitId: Utils.getUniqueID(),\n visitCt: 1,\n visitDepth: 1,\n visitTs: Date.now(),\n visitVer: 1,\n };\n DataStore.setVisitInfo(newVisitInfo);\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISIT_ID_INFO,\n newVisitInfo\n );\n } else {\n // reset visit id anyway, but retain the visitCt and depth setting\n visitInfo.visitId = Utils.getUniqueID();\n visitInfo.visitCt = visitInfo.visitCt + 1;\n visitInfo.visitDepth = 1;\n visitInfo.visitTs = Date.now();\n visitInfo.visitVer = 1;\n DataStore.setVisitInfo(visitInfo);\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISIT_ID_INFO,\n visitInfo\n );\n }\n } catch (err) {\n Logger.logError(err);\n DataStore.setVisitInfo(null);\n Reporter.reportError('setOrResetVisitInfo', err);\n }\n }\n\n static async setOrResetVisitorId(): Promise<void> {\n try {\n const visitorInfoData: VisitorInfo = await DataStore.getDataFromStorage(\n Constants.KEY_MP_IDL_VISITOR_ID_INFO\n );\n\n if (!visitorInfoData) {\n Logger.logDbg('VisitorInfo not found. Refreshing from server');\n // get a new visit id and device id from server and store it in storage\n const apiVisitInfo = await NetworkService.fetchIdlInfo(\n DataStore.getIdlUrl()\n );\n if (!apiVisitInfo) {\n return;\n } else {\n DataStore.setVisitorInfo(apiVisitInfo);\n // store to db as well\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISITOR_ID_INFO,\n apiVisitInfo\n );\n }\n } else {\n DataStore.setVisitorInfo(visitorInfoData);\n }\n } catch (err) {\n Logger.logError(err);\n DataStore.setVisitorInfo(null);\n Reporter.reportError('setOrResetVisitorId', err);\n }\n }\n}\n"],"mappings":"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"}
@@ -38,4 +38,6 @@ _defineProperty(Constants, "KEY_MP_IDL_VISITOR_ID_INFO", 'mp_idl_visitor_info');
38
38
  _defineProperty(Constants, "KEY_MP_IDL_VISIT_ID_INFO", 'mp_idl_visit_info');
39
39
 
40
40
  _defineProperty(Constants, "KEY_MP_DEBUG_ID", 'mp_debug_id');
41
+
42
+ _defineProperty(Constants, "KEY_FBP", 'KEY_FBP');
41
43
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["customAlphabet","Constants","RegExp","a","b","o"],"sources":["constants.ts"],"sourcesContent":["import { customAlphabet } from 'nanoid/non-secure';\nimport type { BaseResourceParamType } from '../models/mp-client-sdk';\n\nexport class Constants {\n static PLACEHOLDER_REGEX = new RegExp(/({{)([A-Z_0-9 -]+)(}})/gi);\n\n static LARGE_RANDOM_POOL = customAlphabet(\n '1234567090abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',\n 21\n );\n\n static MP_DL_EVT = 'mp_dl_event';\n static CUST_EVT = 'custom_event';\n\n // Tag Report - Status Constants\n static ST_OK = 200; // tag fired successfully\n static ST_VAL_FAIL = 400; // tag validation failed - meaning one of the items marked as mandatory was found empty\n static ST_ERR = 500; // tag was ok, but provider side failure. may be url is constructed wrong, or provider is down\n static ST_DEP_FAIL = 1000; // processing tag dependencies failed - may be missing parameters or attributes\n static ST_PR_BL = 1002; // provider is black listed in the data governance screen\n static ST_PR_EXC = 1001; // tag was found, but no provider was bundled. SDK build issue. Report with high importance\n\n static PR_TYP_JS = 'js';\n static PR_TYP_IMG = 'img';\n static PR_TYP_APP = 'app';\n\n static PR_S_TYP_R = 'r';\n\n static sortAscending = (\n a: BaseResourceParamType,\n b: BaseResourceParamType\n ): number => (a.o > b.o ? 1 : -1);\n\n // this data structure is returned by the api and stored in this key\n // {\"dId\":\"VNiBG7JNfoGAyvqxhxMqd\",\"mId\":\"JW0FRrCtAj9K7uyNmL1ht\",\"st\":0}\n static KEY_MP_IDL_VISITOR_ID_INFO = 'mp_idl_visitor_info';\n\n // visitor info data structure\n // {\"visitId\": \"123123sdfsf\", \"visitCt\": 1, \"visitDepth\": 1, visitVer: 1}\n static KEY_MP_IDL_VISIT_ID_INFO = 'mp_idl_visit_info';\n\n static KEY_MP_DEBUG_ID = 'mp_debug_id';\n}\n"],"mappings":";;AAAA,SAASA,cAAT,QAA+B,mBAA/B;AAGA,OAAO,MAAMC,SAAN,CAAgB;;gBAAVA,S,uBACgB,IAAIC,MAAJ,CAAW,0BAAX,C;;gBADhBD,S,uBAGgBD,cAAc,CACvC,gEADuC,EAEvC,EAFuC,C;;gBAH9BC,S,eAQQ,a;;gBARRA,S,cASO,c;;gBATPA,S,WAYI,G;;gBAZJA,S,iBAaU,G;;gBAbVA,S,YAcK,G;;gBAdLA,S,iBAeU,I;;gBAfVA,S,cAgBO,I;;gBAhBPA,S,eAiBQ,I;;gBAjBRA,S,eAmBQ,I;;gBAnBRA,S,gBAoBS,K;;gBApBTA,S,gBAqBS,K;;gBArBTA,S,gBAuBS,G;;gBAvBTA,S,mBAyBY,CACrBE,CADqB,EAErBC,CAFqB,KAGTD,CAAC,CAACE,CAAF,GAAMD,CAAC,CAACC,CAAR,GAAY,CAAZ,GAAgB,CAAC,C;;gBA5BpBJ,S,gCAgCyB,qB;;gBAhCzBA,S,8BAoCuB,mB;;gBApCvBA,S,qBAsCc,a"}
1
+ {"version":3,"names":["customAlphabet","Constants","RegExp","a","b","o"],"sources":["constants.ts"],"sourcesContent":["import { customAlphabet } from 'nanoid/non-secure';\nimport type { BaseResourceParamType } from '../models/mp-client-sdk';\n\nexport class Constants {\n static PLACEHOLDER_REGEX = new RegExp(/({{)([A-Z_0-9 -]+)(}})/gi);\n\n static LARGE_RANDOM_POOL = customAlphabet(\n '1234567090abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',\n 21\n );\n\n static MP_DL_EVT = 'mp_dl_event';\n static CUST_EVT = 'custom_event';\n\n // Tag Report - Status Constants\n static ST_OK = 200; // tag fired successfully\n static ST_VAL_FAIL = 400; // tag validation failed - meaning one of the items marked as mandatory was found empty\n static ST_ERR = 500; // tag was ok, but provider side failure. may be url is constructed wrong, or provider is down\n static ST_DEP_FAIL = 1000; // processing tag dependencies failed - may be missing parameters or attributes\n static ST_PR_BL = 1002; // provider is black listed in the data governance screen\n static ST_PR_EXC = 1001; // tag was found, but no provider was bundled. SDK build issue. Report with high importance\n\n static PR_TYP_JS = 'js';\n static PR_TYP_IMG = 'img';\n static PR_TYP_APP = 'app';\n\n static PR_S_TYP_R = 'r';\n\n static sortAscending = (\n a: BaseResourceParamType,\n b: BaseResourceParamType\n ): number => (a.o > b.o ? 1 : -1);\n\n // this data structure is returned by the api and stored in this key\n // {\"dId\":\"VNiBG7JNfoGAyvqxhxMqd\",\"mId\":\"JW0FRrCtAj9K7uyNmL1ht\",\"st\":0}\n static KEY_MP_IDL_VISITOR_ID_INFO = 'mp_idl_visitor_info';\n\n // visitor info data structure\n // {\"visitId\": \"123123sdfsf\", \"visitCt\": 1, \"visitDepth\": 1, visitVer: 1}\n static KEY_MP_IDL_VISIT_ID_INFO = 'mp_idl_visit_info';\n\n static KEY_MP_DEBUG_ID = 'mp_debug_id';\n static KEY_FBP = 'KEY_FBP';\n}\n"],"mappings":";;AAAA,SAASA,cAAT,QAA+B,mBAA/B;AAGA,OAAO,MAAMC,SAAN,CAAgB;;gBAAVA,S,uBACgB,IAAIC,MAAJ,CAAW,0BAAX,C;;gBADhBD,S,uBAGgBD,cAAc,CACvC,gEADuC,EAEvC,EAFuC,C;;gBAH9BC,S,eAQQ,a;;gBARRA,S,cASO,c;;gBATPA,S,WAYI,G;;gBAZJA,S,iBAaU,G;;gBAbVA,S,YAcK,G;;gBAdLA,S,iBAeU,I;;gBAfVA,S,cAgBO,I;;gBAhBPA,S,eAiBQ,I;;gBAjBRA,S,eAmBQ,I;;gBAnBRA,S,gBAoBS,K;;gBApBTA,S,gBAqBS,K;;gBArBTA,S,gBAuBS,G;;gBAvBTA,S,mBAyBY,CACrBE,CADqB,EAErBC,CAFqB,KAGTD,CAAC,CAACE,CAAF,GAAMD,CAAC,CAACC,CAAR,GAAY,CAAZ,GAAgB,CAAC,C;;gBA5BpBJ,S,gCAgCyB,qB;;gBAhCzBA,S,8BAoCuB,mB;;gBApCvBA,S,qBAsCc,a;;gBAtCdA,S,aAuCM,S"}
@@ -1,7 +1,6 @@
1
1
  import { Logger } from './logger';
2
2
  import { DataStore } from './data-store';
3
3
  import { Reporter } from './reporter';
4
- import { Utils } from './utils';
5
4
  export class NetworkService {
6
5
  static async fetchIdlInfo(url) {
7
6
  const response = await NetworkService.sendNetworkRequest('get', url);
@@ -15,7 +14,7 @@ export class NetworkService {
15
14
 
16
15
  static async refreshClientSdkJson(sdkInitOptions) {
17
16
  try {
18
- const response = await this.sendNetworkRequest('get', `${sdkInitOptions.baseUrl}/${sdkInitOptions.projectId}${sdkInitOptions.env === 'staging' ? '-staging' : ''}.json?cb=${Utils.getUniqueID()}`);
17
+ const response = await this.sendNetworkRequest('get', `${sdkInitOptions.baseUrl}/${sdkInitOptions.projectId}${sdkInitOptions.env === 'staging' ? '-staging' : ''}.json`);
19
18
 
20
19
  if (response) {
21
20
  const sdkJson = await response.json();
@@ -1 +1 @@
1
- {"version":3,"names":["Logger","DataStore","Reporter","Utils","NetworkService","fetchIdlInfo","url","response","sendNetworkRequest","json","refreshClientSdkJson","sdkInitOptions","baseUrl","projectId","env","getUniqueID","sdkJson","logDbg","init","err","reportError","Error","sendPostRequest","body","catch","logError","sendGetRequest","method","JSON","stringify","fetch","headers"],"sources":["network-service.ts"],"sourcesContent":["import { Logger } from './logger';\nimport type { MapLike, SdkInitOptions, VisitorInfo } from './app-types';\nimport { DataStore } from './data-store';\nimport { Reporter } from './reporter';\nimport { Utils } from './utils';\nimport type { MpClientSdk } from '../models/mp-client-sdk';\n\nexport class NetworkService {\n public static async fetchIdlInfo(url: string): Promise<VisitorInfo> {\n const response = await NetworkService.sendNetworkRequest('get', url);\n if (response) {\n return response.json();\n } else {\n return null;\n }\n }\n\n public static async refreshClientSdkJson(\n sdkInitOptions: SdkInitOptions\n ): Promise<void> {\n try {\n const response = await this.sendNetworkRequest(\n 'get',\n `${sdkInitOptions.baseUrl}/${sdkInitOptions.projectId}${\n sdkInitOptions.env === 'staging' ? '-staging' : ''\n }.json?cb=${Utils.getUniqueID()}`\n );\n\n if (response) {\n const sdkJson: MpClientSdk = await response.json();\n Logger.logDbg('Client Sdk:: ', sdkJson);\n // sdkJson.s.c_url = 'http://localhost:3001';\n await DataStore.init(sdkJson);\n }\n } catch (err) {\n Reporter.reportError('refreshClientSdk', err);\n throw new Error('Unable to fetch MagicPixel SDK at this time.');\n }\n }\n\n public static sendPostRequest(url: string, body: MapLike): void {\n this.sendNetworkRequest('post', url, body).catch((err) => {\n Logger.logError(err);\n });\n }\n\n public static sendGetRequest(url: string): void {\n this.sendNetworkRequest('get', url).catch((err) => {\n Logger.logError(err);\n });\n }\n\n private static async sendNetworkRequest(\n method: 'get' | 'post',\n url: string,\n body?: MapLike\n ): Promise<any> {\n try {\n Logger.logDbg(\n `Sending ${method} request to ${url} with body ${JSON.stringify(body)}`\n );\n if (method === 'get') {\n return await fetch(url, {\n headers: {\n 'cache-control': 'no-store',\n },\n });\n } else if (method === 'post') {\n return await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-store',\n },\n body: JSON.stringify(body ?? '{}'),\n });\n } else {\n throw new Error('Unsupported method: ' + method);\n }\n } catch (err) {\n Logger.logError(err);\n return null;\n }\n }\n}\n"],"mappings":"AAAA,SAASA,MAAT,QAAuB,UAAvB;AAEA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,QAAT,QAAyB,YAAzB;AACA,SAASC,KAAT,QAAsB,SAAtB;AAGA,OAAO,MAAMC,cAAN,CAAqB;EACM,aAAZC,YAAY,CAACC,GAAD,EAAoC;IAClE,MAAMC,QAAQ,GAAG,MAAMH,cAAc,CAACI,kBAAf,CAAkC,KAAlC,EAAyCF,GAAzC,CAAvB;;IACA,IAAIC,QAAJ,EAAc;MACZ,OAAOA,QAAQ,CAACE,IAAT,EAAP;IACD,CAFD,MAEO;MACL,OAAO,IAAP;IACD;EACF;;EAEuC,aAApBC,oBAAoB,CACtCC,cADsC,EAEvB;IACf,IAAI;MACF,MAAMJ,QAAQ,GAAG,MAAM,KAAKC,kBAAL,CACrB,KADqB,EAEpB,GAAEG,cAAc,CAACC,OAAQ,IAAGD,cAAc,CAACE,SAAU,GACpDF,cAAc,CAACG,GAAf,KAAuB,SAAvB,GAAmC,UAAnC,GAAgD,EACjD,YAAWX,KAAK,CAACY,WAAN,EAAoB,EAJX,CAAvB;;MAOA,IAAIR,QAAJ,EAAc;QACZ,MAAMS,OAAoB,GAAG,MAAMT,QAAQ,CAACE,IAAT,EAAnC;QACAT,MAAM,CAACiB,MAAP,CAAc,eAAd,EAA+BD,OAA/B,EAFY,CAGZ;;QACA,MAAMf,SAAS,CAACiB,IAAV,CAAeF,OAAf,CAAN;MACD;IACF,CAdD,CAcE,OAAOG,GAAP,EAAY;MACZjB,QAAQ,CAACkB,WAAT,CAAqB,kBAArB,EAAyCD,GAAzC;MACA,MAAM,IAAIE,KAAJ,CAAU,8CAAV,CAAN;IACD;EACF;;EAE4B,OAAfC,eAAe,CAAChB,GAAD,EAAciB,IAAd,EAAmC;IAC9D,KAAKf,kBAAL,CAAwB,MAAxB,EAAgCF,GAAhC,EAAqCiB,IAArC,EAA2CC,KAA3C,CAAkDL,GAAD,IAAS;MACxDnB,MAAM,CAACyB,QAAP,CAAgBN,GAAhB;IACD,CAFD;EAGD;;EAE2B,OAAdO,cAAc,CAACpB,GAAD,EAAoB;IAC9C,KAAKE,kBAAL,CAAwB,KAAxB,EAA+BF,GAA/B,EAAoCkB,KAApC,CAA2CL,GAAD,IAAS;MACjDnB,MAAM,CAACyB,QAAP,CAAgBN,GAAhB;IACD,CAFD;EAGD;;EAEsC,aAAlBX,kBAAkB,CACrCmB,MADqC,EAErCrB,GAFqC,EAGrCiB,IAHqC,EAIvB;IACd,IAAI;MACFvB,MAAM,CAACiB,MAAP,CACG,WAAUU,MAAO,eAAcrB,GAAI,cAAasB,IAAI,CAACC,SAAL,CAAeN,IAAf,CAAqB,EADxE;;MAGA,IAAII,MAAM,KAAK,KAAf,EAAsB;QACpB,OAAO,MAAMG,KAAK,CAACxB,GAAD,EAAM;UACtByB,OAAO,EAAE;YACP,iBAAiB;UADV;QADa,CAAN,CAAlB;MAKD,CAND,MAMO,IAAIJ,MAAM,KAAK,MAAf,EAAuB;QAC5B,OAAO,MAAMG,KAAK,CAACxB,GAAD,EAAM;UACtBqB,MAAM,EAAE,MADc;UAEtBI,OAAO,EAAE;YACP,gBAAgB,YADT;YAEP,iBAAiB;UAFV,CAFa;UAMtBR,IAAI,EAAEK,IAAI,CAACC,SAAL,CAAeN,IAAI,IAAI,IAAvB;QANgB,CAAN,CAAlB;MAQD,CATM,MASA;QACL,MAAM,IAAIF,KAAJ,CAAU,yBAAyBM,MAAnC,CAAN;MACD;IACF,CAtBD,CAsBE,OAAOR,GAAP,EAAY;MACZnB,MAAM,CAACyB,QAAP,CAAgBN,GAAhB;MACA,OAAO,IAAP;IACD;EACF;;AA5EyB"}
1
+ {"version":3,"names":["Logger","DataStore","Reporter","NetworkService","fetchIdlInfo","url","response","sendNetworkRequest","json","refreshClientSdkJson","sdkInitOptions","baseUrl","projectId","env","sdkJson","logDbg","init","err","reportError","Error","sendPostRequest","body","catch","logError","sendGetRequest","method","JSON","stringify","fetch","headers"],"sources":["network-service.ts"],"sourcesContent":["import { Logger } from './logger';\nimport type { MapLike, SdkInitOptions, VisitorInfo } from './app-types';\nimport { DataStore } from './data-store';\nimport { Reporter } from './reporter';\nimport type { MpClientSdk } from '../models/mp-client-sdk';\n\nexport class NetworkService {\n public static async fetchIdlInfo(url: string): Promise<VisitorInfo> {\n const response = await NetworkService.sendNetworkRequest('get', url);\n if (response) {\n return response.json();\n } else {\n return null;\n }\n }\n\n public static async refreshClientSdkJson(\n sdkInitOptions: SdkInitOptions\n ): Promise<void> {\n try {\n const response = await this.sendNetworkRequest(\n 'get',\n `${sdkInitOptions.baseUrl}/${sdkInitOptions.projectId}${\n sdkInitOptions.env === 'staging' ? '-staging' : ''\n }.json`\n );\n\n if (response) {\n const sdkJson: MpClientSdk = await response.json();\n Logger.logDbg('Client Sdk:: ', sdkJson);\n // sdkJson.s.c_url = 'http://localhost:3001';\n await DataStore.init(sdkJson);\n }\n } catch (err) {\n Reporter.reportError('refreshClientSdk', err);\n throw new Error('Unable to fetch MagicPixel SDK at this time.');\n }\n }\n\n public static sendPostRequest(url: string, body: MapLike): void {\n this.sendNetworkRequest('post', url, body).catch((err) => {\n Logger.logError(err);\n });\n }\n\n public static sendGetRequest(url: string): void {\n this.sendNetworkRequest('get', url).catch((err) => {\n Logger.logError(err);\n });\n }\n\n private static async sendNetworkRequest(\n method: 'get' | 'post',\n url: string,\n body?: MapLike\n ): Promise<any> {\n try {\n Logger.logDbg(\n `Sending ${method} request to ${url} with body ${JSON.stringify(body)}`\n );\n if (method === 'get') {\n return await fetch(url, {\n headers: {\n 'cache-control': 'no-store',\n },\n });\n } else if (method === 'post') {\n return await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'text/plain',\n 'cache-control': 'no-store',\n },\n body: JSON.stringify(body ?? '{}'),\n });\n } else {\n throw new Error('Unsupported method: ' + method);\n }\n } catch (err) {\n Logger.logError(err);\n return null;\n }\n }\n}\n"],"mappings":"AAAA,SAASA,MAAT,QAAuB,UAAvB;AAEA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,QAAT,QAAyB,YAAzB;AAGA,OAAO,MAAMC,cAAN,CAAqB;EACM,aAAZC,YAAY,CAACC,GAAD,EAAoC;IAClE,MAAMC,QAAQ,GAAG,MAAMH,cAAc,CAACI,kBAAf,CAAkC,KAAlC,EAAyCF,GAAzC,CAAvB;;IACA,IAAIC,QAAJ,EAAc;MACZ,OAAOA,QAAQ,CAACE,IAAT,EAAP;IACD,CAFD,MAEO;MACL,OAAO,IAAP;IACD;EACF;;EAEuC,aAApBC,oBAAoB,CACtCC,cADsC,EAEvB;IACf,IAAI;MACF,MAAMJ,QAAQ,GAAG,MAAM,KAAKC,kBAAL,CACrB,KADqB,EAEpB,GAAEG,cAAc,CAACC,OAAQ,IAAGD,cAAc,CAACE,SAAU,GACpDF,cAAc,CAACG,GAAf,KAAuB,SAAvB,GAAmC,UAAnC,GAAgD,EACjD,OAJoB,CAAvB;;MAOA,IAAIP,QAAJ,EAAc;QACZ,MAAMQ,OAAoB,GAAG,MAAMR,QAAQ,CAACE,IAAT,EAAnC;QACAR,MAAM,CAACe,MAAP,CAAc,eAAd,EAA+BD,OAA/B,EAFY,CAGZ;;QACA,MAAMb,SAAS,CAACe,IAAV,CAAeF,OAAf,CAAN;MACD;IACF,CAdD,CAcE,OAAOG,GAAP,EAAY;MACZf,QAAQ,CAACgB,WAAT,CAAqB,kBAArB,EAAyCD,GAAzC;MACA,MAAM,IAAIE,KAAJ,CAAU,8CAAV,CAAN;IACD;EACF;;EAE4B,OAAfC,eAAe,CAACf,GAAD,EAAcgB,IAAd,EAAmC;IAC9D,KAAKd,kBAAL,CAAwB,MAAxB,EAAgCF,GAAhC,EAAqCgB,IAArC,EAA2CC,KAA3C,CAAkDL,GAAD,IAAS;MACxDjB,MAAM,CAACuB,QAAP,CAAgBN,GAAhB;IACD,CAFD;EAGD;;EAE2B,OAAdO,cAAc,CAACnB,GAAD,EAAoB;IAC9C,KAAKE,kBAAL,CAAwB,KAAxB,EAA+BF,GAA/B,EAAoCiB,KAApC,CAA2CL,GAAD,IAAS;MACjDjB,MAAM,CAACuB,QAAP,CAAgBN,GAAhB;IACD,CAFD;EAGD;;EAEsC,aAAlBV,kBAAkB,CACrCkB,MADqC,EAErCpB,GAFqC,EAGrCgB,IAHqC,EAIvB;IACd,IAAI;MACFrB,MAAM,CAACe,MAAP,CACG,WAAUU,MAAO,eAAcpB,GAAI,cAAaqB,IAAI,CAACC,SAAL,CAAeN,IAAf,CAAqB,EADxE;;MAGA,IAAII,MAAM,KAAK,KAAf,EAAsB;QACpB,OAAO,MAAMG,KAAK,CAACvB,GAAD,EAAM;UACtBwB,OAAO,EAAE;YACP,iBAAiB;UADV;QADa,CAAN,CAAlB;MAKD,CAND,MAMO,IAAIJ,MAAM,KAAK,MAAf,EAAuB;QAC5B,OAAO,MAAMG,KAAK,CAACvB,GAAD,EAAM;UACtBoB,MAAM,EAAE,MADc;UAEtBI,OAAO,EAAE;YACP,gBAAgB,YADT;YAEP,iBAAiB;UAFV,CAFa;UAMtBR,IAAI,EAAEK,IAAI,CAACC,SAAL,CAAeN,IAAI,IAAI,IAAvB;QANgB,CAAN,CAAlB;MAQD,CATM,MASA;QACL,MAAM,IAAIF,KAAJ,CAAU,yBAAyBM,MAAnC,CAAN;MACD;IACF,CAtBD,CAsBE,OAAOR,GAAP,EAAY;MACZjB,MAAM,CAACuB,QAAP,CAAgBN,GAAhB;MACA,OAAO,IAAP;IACD;EACF;;AA5EyB"}
@@ -23,6 +23,15 @@ class MagicPixelImpl {
23
23
 
24
24
  const sdk = DataStore.getClientSdk();
25
25
  await VisitIdProcessor.init();
26
+ const fbp = await VisitIdProcessor.getFacebookFBP();
27
+
28
+ if (fbp) {
29
+ Logger.logDbg('Setting facebook client id', fbp);
30
+ this.setFacebookClientId(fbp);
31
+ } else {
32
+ Logger.logDbg('No facebook client id found. not setting');
33
+ }
34
+
26
35
  MagicPixelEventBus.on('mpDlEvent', async (evtName, payload) => {
27
36
  var _sdk$mpDlE;
28
37
 
@@ -43,11 +52,15 @@ class MagicPixelImpl {
43
52
  static recordEvent(eventName, payload) {
44
53
  if (this.customerInfo) {
45
54
  const newPayload = { ...payload,
46
- ...this.customerInfo
55
+ ...this.customerInfo,
56
+ ...(this.customerIdentifiers ?? {})
47
57
  };
48
58
  this.dl.pushEvent(eventName, newPayload);
49
59
  } else {
50
- this.dl.pushEvent(eventName, payload);
60
+ const newPayload = { ...payload,
61
+ ...(this.customerIdentifiers ?? {})
62
+ };
63
+ this.dl.pushEvent(eventName, newPayload);
51
64
  }
52
65
  }
53
66
 
@@ -148,16 +161,28 @@ class MagicPixelImpl {
148
161
  this.customerInfo = customerInfo;
149
162
  }
150
163
 
164
+ static setFirebaseAppInstanceId(instanceId) {
165
+ this.customerIdentifiers.firebase_instance_id = instanceId;
166
+ }
167
+
168
+ static setFacebookClientId(fbp) {
169
+ this.customerIdentifiers.fbp = fbp;
170
+ }
171
+
151
172
  static recordPageLoad(pageLoadInfo) {
152
173
  pageLoadInfo.is_entry = this.firstAppLaunch ? 1 : 0;
153
174
 
154
175
  if (this.customerInfo) {
155
176
  const newPayload = { ...pageLoadInfo,
156
- ...this.customerInfo
177
+ ...this.customerInfo,
178
+ ...(this.customerIdentifiers ?? {})
157
179
  };
158
180
  this.dl.pushEvent('page_load', newPayload);
159
181
  } else {
160
- this.dl.pushEvent('page_load', pageLoadInfo);
182
+ const newPayload = { ...pageLoadInfo,
183
+ ...(this.customerIdentifiers ?? {})
184
+ };
185
+ this.dl.pushEvent('page_load', newPayload);
161
186
  }
162
187
 
163
188
  this.firstAppLaunch = false;
@@ -169,6 +194,8 @@ _defineProperty(MagicPixelImpl, "dl", void 0);
169
194
 
170
195
  _defineProperty(MagicPixelImpl, "customerInfo", void 0);
171
196
 
197
+ _defineProperty(MagicPixelImpl, "customerIdentifiers", {});
198
+
172
199
  _defineProperty(MagicPixelImpl, "firstAppLaunch", true);
173
200
 
174
201
  export const MagicPixelEventBus = EventBus;
@@ -1 +1 @@
1
- {"version":3,"names":["MpDataLayerHelper","DataStore","Logger","Reporter","DataElementProcessor","TagProcessor","Utils","QcProcessor","NetworkService","EventBus","VisitIdProcessor","MagicPixelImpl","init","options","dl","refreshClientSdkJson","isDataStoreReady","Error","sdk","getClientSdk","MagicPixelEventBus","on","evtName","payload","console","log","JSON","stringify","eventName","eventDataModel","model","eventId","logDbg","mpDlE","indexOf","enQueueTMFire","checkAndFireTM","recordEvent","customerInfo","newPayload","pushEvent","ready","isTagManagerProcessing","item","deQueueTMFire","name","dcrName","dcrPayload","runTM","sseOnly","err","logError","reportError","triggerName","evtId","eventData","setTagManagerProcessing","processDataElements","getSdkDataElements","pcKey","getSdkPcKey","pcVal","getDataElementValue","setPrivacyCompliance","getSdkPageLangKey","setDataElement","setPageLang","getOperatingSystem","toLowerCase","initReporter","s","ev","ev_id","getDeviceType","getPageLang","getDeviceOs","getPageName","getClientDownStream","getCoreVersion","validQCList","processQc","getSdkQC","length","getValidQcInfo","processTags","then","_fireTM","catch","runTMErr","envName","envId","hasOneSSTTag","shouldFireSstForEvent","postSST","getDataElements","getSSTDownStream","sleep","setCustomerInfo","recordPageLoad","pageLoadInfo","is_entry","firstAppLaunch","MagicPixel"],"sources":["index.tsx"],"sourcesContent":["import { MpDataLayerHelper } from './eedl/eedl';\nimport type {\n AppCustomerInfo,\n AppPageLoad,\n MapLike,\n SdkInitOptions,\n} from './common/app-types';\nimport { DataStore } from './common/data-store';\nimport { Logger } from './common/logger';\nimport { Reporter } from './common/reporter';\nimport { DataElementProcessor } from './processors/data-element.processor';\nimport { TagProcessor } from './processors/tag.processor';\nimport { Utils } from './common/utils';\nimport { QcProcessor } from './processors/qc.processor';\nimport { NetworkService } from './common/network-service';\nimport { EventBus } from './common/event-bus';\nimport { VisitIdProcessor } from './processors/visit-id.processor';\n\nclass MagicPixelImpl {\n private static dl: MpDataLayerHelper;\n private static customerInfo: AppCustomerInfo;\n private static firstAppLaunch = true;\n\n static async init(options: SdkInitOptions): Promise<void> {\n this.dl = new MpDataLayerHelper('mpDlEvent', 'manual', 'page_load');\n\n await NetworkService.refreshClientSdkJson(options);\n\n if (!DataStore.isDataStoreReady()) {\n throw new Error('MagicPixel SDK is not ready. No tags will be processed');\n }\n\n const sdk = DataStore.getClientSdk();\n\n await VisitIdProcessor.init();\n\n MagicPixelEventBus.on('mpDlEvent', async (evtName, payload) => {\n console.log('mpDlEvent:: ', evtName, JSON.stringify(payload));\n const eventName: string = payload.eventName;\n const eventDataModel: MapLike = payload.model ?? {};\n const eventId = eventDataModel['ev._id'];\n\n Logger.logDbg('Tracking Event:: ', eventName, 'with id:: ', eventId);\n\n if (sdk.mpDlE?.indexOf(eventName) > -1) {\n // if this is something the tag manager is interested in - fire tag manager\n DataStore.enQueueTMFire(\n false,\n `custom_event_${eventName}`,\n eventName,\n eventId,\n eventDataModel\n );\n await this.checkAndFireTM();\n }\n });\n }\n\n static recordEvent(eventName: string, payload: MapLike): void {\n if (this.customerInfo) {\n const newPayload: MapLike = {\n ...payload,\n ...this.customerInfo,\n };\n this.dl.pushEvent(eventName, newPayload);\n } else {\n this.dl.pushEvent(eventName, payload);\n }\n }\n\n static ready(): void {\n this.dl.ready();\n }\n\n static async checkAndFireTM(): Promise<void> {\n try {\n if (!DataStore.isTagManagerProcessing()) {\n const item = DataStore.deQueueTMFire();\n if (item) {\n Logger.logDbg(\n 'Executing TM For: ',\n item.name,\n ', Event:: ',\n item.dcrName,\n ', Event id:: ',\n item.eventId,\n 'Payload:: ',\n item.dcrPayload\n );\n await this.runTM(\n item.sseOnly,\n item.name,\n item.dcrName,\n item.eventId,\n item.dcrPayload\n );\n }\n } else {\n Logger.logDbg(\n 'Tag Manager is processing or is not ready. This event will start after that'\n );\n }\n } catch (err) {\n Logger.logError('Error check and process tm', err);\n Reporter.reportError('m:checkAndFireTM', err);\n }\n }\n\n static async runTM(\n sseOnly: boolean,\n triggerName: string,\n evtName: string,\n evtId: string,\n eventData?: Record<string, any>\n ): Promise<void> {\n try {\n Logger.logDbg(\n 'Running:: ',\n sseOnly,\n triggerName,\n evtName,\n evtId,\n eventData\n );\n\n // set tag manager in process status\n DataStore.setTagManagerProcessing(true);\n\n // process all the data elements and cache them for this run\n await DataElementProcessor.processDataElements(\n DataStore.getSdkDataElements(),\n eventData\n );\n\n const sdk = DataStore.getClientSdk();\n\n const pcKey = DataStore.getSdkPcKey();\n if (pcKey) {\n const pcVal = DataStore.getDataElementValue(pcKey);\n if (typeof pcVal !== 'undefined' && pcVal === true) {\n Logger.logDbg('Set: PR Comp: ', true);\n DataStore.setPrivacyCompliance(true);\n } else {\n Logger.logDbg('Set: PR Comp: ', false);\n DataStore.setPrivacyCompliance(false);\n }\n } else {\n Logger.logDbg('Set: PR Comp: ', false);\n DataStore.setPrivacyCompliance(true);\n }\n\n if (DataStore.getSdkPageLangKey()) {\n DataStore.setDataElement(\n 'page_lang_key',\n DataStore.getSdkPageLangKey()\n );\n DataStore.setPageLang(\n DataStore.getDataElementValue('page_lang_key') as string\n );\n } else {\n DataStore.setDataElement('page_lang_key', null);\n }\n\n //set page_browser default data element with page_os because backend expects this\n DataStore.setDataElement(\n 'page_browser',\n DataStore.getOperatingSystem().toLowerCase()\n );\n\n Reporter.initReporter(\n sdk.s.ev,\n sdk.s.ev_id,\n DataStore.getDeviceType(),\n DataStore.getPageLang(),\n DataStore.getDeviceOs(),\n DataStore.getPageName(),\n evtName,\n evtId,\n DataStore.getClientDownStream(),\n DataStore.getCoreVersion(),\n []\n );\n\n const validQCList = QcProcessor.processQc(\n DataStore.getSdkQC(),\n evtName,\n evtId\n );\n\n if (validQCList?.length > 0) {\n Logger.logDbg('Found Valid QCs to process', DataStore.getValidQcInfo());\n\n TagProcessor.processTags(evtName, evtId)\n .then(() => {\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n })\n .catch((err) => {\n Logger.logError('Error processing tag lists.', err);\n Reporter.reportError('i::processTags', err);\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n });\n }\n } catch (runTMErr) {\n Logger.logError('Error in runTM', runTMErr);\n Reporter.reportError('m::runTM', runTMErr);\n }\n }\n\n static _fireTM(\n envName: string,\n envId: string,\n evtName: string,\n evtId: string\n ): void {\n if (DataStore.hasOneSSTTag() && DataStore.shouldFireSstForEvent(evtName)) {\n Reporter.postSST(\n DataStore.getDataElements(),\n envName,\n envId,\n DataStore.getSSTDownStream(),\n evtName,\n evtId\n ).catch((err: any) => {\n Reporter.reportError('l::postSST', err);\n });\n }\n\n DataStore.setTagManagerProcessing(false);\n Utils.sleep(250).then(async () => {\n try {\n await this.checkAndFireTM();\n } catch (err) {\n Reporter.reportError('i::runTM', err);\n }\n });\n }\n\n static setCustomerInfo(customerInfo: AppCustomerInfo): void {\n this.customerInfo = customerInfo;\n }\n\n static recordPageLoad(pageLoadInfo: AppPageLoad): void {\n pageLoadInfo.is_entry = this.firstAppLaunch ? 1 : 0;\n if (this.customerInfo) {\n const newPayload: MapLike = {\n ...pageLoadInfo,\n ...this.customerInfo,\n };\n this.dl.pushEvent('page_load', newPayload);\n } else {\n this.dl.pushEvent('page_load', pageLoadInfo);\n }\n this.firstAppLaunch = false;\n }\n}\n\nexport const MagicPixelEventBus = EventBus;\nexport const MagicPixel = MagicPixelImpl;\n"],"mappings":"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"}
1
+ {"version":3,"names":["MpDataLayerHelper","DataStore","Logger","Reporter","DataElementProcessor","TagProcessor","Utils","QcProcessor","NetworkService","EventBus","VisitIdProcessor","MagicPixelImpl","init","options","dl","refreshClientSdkJson","isDataStoreReady","Error","sdk","getClientSdk","fbp","getFacebookFBP","logDbg","setFacebookClientId","MagicPixelEventBus","on","evtName","payload","console","log","JSON","stringify","eventName","eventDataModel","model","eventId","mpDlE","indexOf","enQueueTMFire","checkAndFireTM","recordEvent","customerInfo","newPayload","customerIdentifiers","pushEvent","ready","isTagManagerProcessing","item","deQueueTMFire","name","dcrName","dcrPayload","runTM","sseOnly","err","logError","reportError","triggerName","evtId","eventData","setTagManagerProcessing","processDataElements","getSdkDataElements","pcKey","getSdkPcKey","pcVal","getDataElementValue","setPrivacyCompliance","getSdkPageLangKey","setDataElement","setPageLang","getOperatingSystem","toLowerCase","initReporter","s","ev","ev_id","getDeviceType","getPageLang","getDeviceOs","getPageName","getClientDownStream","getCoreVersion","validQCList","processQc","getSdkQC","length","getValidQcInfo","processTags","then","_fireTM","catch","runTMErr","envName","envId","hasOneSSTTag","shouldFireSstForEvent","postSST","getDataElements","getSSTDownStream","sleep","setCustomerInfo","setFirebaseAppInstanceId","instanceId","firebase_instance_id","recordPageLoad","pageLoadInfo","is_entry","firstAppLaunch","MagicPixel"],"sources":["index.tsx"],"sourcesContent":["import { MpDataLayerHelper } from './eedl/eedl';\nimport type {\n AppCustomerInfo,\n AppPageLoad,\n MapLike,\n SdkInitOptions,\n} from './common/app-types';\nimport { DataStore } from './common/data-store';\nimport { Logger } from './common/logger';\nimport { Reporter } from './common/reporter';\nimport { DataElementProcessor } from './processors/data-element.processor';\nimport { TagProcessor } from './processors/tag.processor';\nimport { Utils } from './common/utils';\nimport { QcProcessor } from './processors/qc.processor';\nimport { NetworkService } from './common/network-service';\nimport { EventBus } from './common/event-bus';\nimport { VisitIdProcessor } from './processors/visit-id.processor';\n\nclass MagicPixelImpl {\n private static dl: MpDataLayerHelper;\n private static customerInfo: AppCustomerInfo;\n private static customerIdentifiers: MapLike = {};\n private static firstAppLaunch = true;\n\n static async init(options: SdkInitOptions): Promise<void> {\n this.dl = new MpDataLayerHelper('mpDlEvent', 'manual', 'page_load');\n\n await NetworkService.refreshClientSdkJson(options);\n\n if (!DataStore.isDataStoreReady()) {\n throw new Error('MagicPixel SDK is not ready. No tags will be processed');\n }\n\n const sdk = DataStore.getClientSdk();\n\n await VisitIdProcessor.init();\n\n const fbp = await VisitIdProcessor.getFacebookFBP();\n if (fbp) {\n Logger.logDbg('Setting facebook client id', fbp);\n this.setFacebookClientId(fbp);\n } else {\n Logger.logDbg('No facebook client id found. not setting');\n }\n\n MagicPixelEventBus.on('mpDlEvent', async (evtName, payload) => {\n console.log('mpDlEvent:: ', evtName, JSON.stringify(payload));\n const eventName: string = payload.eventName;\n const eventDataModel: MapLike = payload.model ?? {};\n const eventId = eventDataModel['ev._id'];\n\n Logger.logDbg('Tracking Event:: ', eventName, 'with id:: ', eventId);\n\n if (sdk.mpDlE?.indexOf(eventName) > -1) {\n // if this is something the tag manager is interested in - fire tag manager\n DataStore.enQueueTMFire(\n false,\n `custom_event_${eventName}`,\n eventName,\n eventId,\n eventDataModel\n );\n await this.checkAndFireTM();\n }\n });\n }\n\n static recordEvent(eventName: string, payload: MapLike): void {\n if (this.customerInfo) {\n const newPayload: MapLike = {\n ...payload,\n ...this.customerInfo,\n ...(this.customerIdentifiers ?? {}),\n };\n this.dl.pushEvent(eventName, newPayload);\n } else {\n const newPayload: MapLike = {\n ...payload,\n ...(this.customerIdentifiers ?? {}),\n };\n this.dl.pushEvent(eventName, newPayload);\n }\n }\n\n static ready(): void {\n this.dl.ready();\n }\n\n static async checkAndFireTM(): Promise<void> {\n try {\n if (!DataStore.isTagManagerProcessing()) {\n const item = DataStore.deQueueTMFire();\n if (item) {\n Logger.logDbg(\n 'Executing TM For: ',\n item.name,\n ', Event:: ',\n item.dcrName,\n ', Event id:: ',\n item.eventId,\n 'Payload:: ',\n item.dcrPayload\n );\n await this.runTM(\n item.sseOnly,\n item.name,\n item.dcrName,\n item.eventId,\n item.dcrPayload\n );\n }\n } else {\n Logger.logDbg(\n 'Tag Manager is processing or is not ready. This event will start after that'\n );\n }\n } catch (err) {\n Logger.logError('Error check and process tm', err);\n Reporter.reportError('m:checkAndFireTM', err);\n }\n }\n\n static async runTM(\n sseOnly: boolean,\n triggerName: string,\n evtName: string,\n evtId: string,\n eventData?: Record<string, any>\n ): Promise<void> {\n try {\n Logger.logDbg(\n 'Running:: ',\n sseOnly,\n triggerName,\n evtName,\n evtId,\n eventData\n );\n\n // set tag manager in process status\n DataStore.setTagManagerProcessing(true);\n\n // process all the data elements and cache them for this run\n await DataElementProcessor.processDataElements(\n DataStore.getSdkDataElements(),\n eventData\n );\n\n const sdk = DataStore.getClientSdk();\n\n const pcKey = DataStore.getSdkPcKey();\n if (pcKey) {\n const pcVal = DataStore.getDataElementValue(pcKey);\n if (typeof pcVal !== 'undefined' && pcVal === true) {\n Logger.logDbg('Set: PR Comp: ', true);\n DataStore.setPrivacyCompliance(true);\n } else {\n Logger.logDbg('Set: PR Comp: ', false);\n DataStore.setPrivacyCompliance(false);\n }\n } else {\n Logger.logDbg('Set: PR Comp: ', false);\n DataStore.setPrivacyCompliance(true);\n }\n\n if (DataStore.getSdkPageLangKey()) {\n DataStore.setDataElement(\n 'page_lang_key',\n DataStore.getSdkPageLangKey()\n );\n DataStore.setPageLang(\n DataStore.getDataElementValue('page_lang_key') as string\n );\n } else {\n DataStore.setDataElement('page_lang_key', null);\n }\n\n //set page_browser default data element with page_os because backend expects this\n DataStore.setDataElement(\n 'page_browser',\n DataStore.getOperatingSystem().toLowerCase()\n );\n\n Reporter.initReporter(\n sdk.s.ev,\n sdk.s.ev_id,\n DataStore.getDeviceType(),\n DataStore.getPageLang(),\n DataStore.getDeviceOs(),\n DataStore.getPageName(),\n evtName,\n evtId,\n DataStore.getClientDownStream(),\n DataStore.getCoreVersion(),\n []\n );\n\n const validQCList = QcProcessor.processQc(\n DataStore.getSdkQC(),\n evtName,\n evtId\n );\n\n if (validQCList?.length > 0) {\n Logger.logDbg('Found Valid QCs to process', DataStore.getValidQcInfo());\n\n TagProcessor.processTags(evtName, evtId)\n .then(() => {\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n })\n .catch((err) => {\n Logger.logError('Error processing tag lists.', err);\n Reporter.reportError('i::processTags', err);\n this._fireTM(sdk.s.ev, sdk.s.ev_id, evtName, evtId);\n });\n }\n } catch (runTMErr) {\n Logger.logError('Error in runTM', runTMErr);\n Reporter.reportError('m::runTM', runTMErr);\n }\n }\n\n static _fireTM(\n envName: string,\n envId: string,\n evtName: string,\n evtId: string\n ): void {\n if (DataStore.hasOneSSTTag() && DataStore.shouldFireSstForEvent(evtName)) {\n Reporter.postSST(\n DataStore.getDataElements(),\n envName,\n envId,\n DataStore.getSSTDownStream(),\n evtName,\n evtId\n ).catch((err: any) => {\n Reporter.reportError('l::postSST', err);\n });\n }\n\n DataStore.setTagManagerProcessing(false);\n Utils.sleep(250).then(async () => {\n try {\n await this.checkAndFireTM();\n } catch (err) {\n Reporter.reportError('i::runTM', err);\n }\n });\n }\n\n static setCustomerInfo(customerInfo: AppCustomerInfo): void {\n this.customerInfo = customerInfo;\n }\n\n static setFirebaseAppInstanceId(instanceId: string): void {\n this.customerIdentifiers.firebase_instance_id = instanceId;\n }\n\n static setFacebookClientId(fbp: string): void {\n this.customerIdentifiers.fbp = fbp;\n }\n\n static recordPageLoad(pageLoadInfo: AppPageLoad): void {\n pageLoadInfo.is_entry = this.firstAppLaunch ? 1 : 0;\n if (this.customerInfo) {\n const newPayload: MapLike = {\n ...pageLoadInfo,\n ...this.customerInfo,\n ...(this.customerIdentifiers ?? {}),\n };\n this.dl.pushEvent('page_load', newPayload);\n } else {\n const newPayload: MapLike = {\n ...pageLoadInfo,\n ...(this.customerIdentifiers ?? {}),\n };\n this.dl.pushEvent('page_load', newPayload);\n }\n this.firstAppLaunch = false;\n }\n}\n\nexport const MagicPixelEventBus = EventBus;\nexport const MagicPixel = MagicPixelImpl;\n"],"mappings":"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"}
@@ -67,6 +67,23 @@ export class VisitIdProcessor {
67
67
  });
68
68
  }
69
69
 
70
+ static async getFacebookFBP() {
71
+ try {
72
+ let fbp = await DataStore.getDataFromStorage(Constants.KEY_FBP);
73
+
74
+ if (!fbp) {
75
+ fbp = `fb.1.${Date.now()}.${Date.now()}`;
76
+ }
77
+
78
+ await DataStore.storeData(Constants.KEY_FBP, fbp);
79
+ return fbp;
80
+ } catch (err) {
81
+ Logger.logError('Error initializing debug id.', err);
82
+ }
83
+
84
+ return '';
85
+ }
86
+
70
87
  static async initDebugId() {
71
88
  try {
72
89
  let debugId = await DataStore.getDataFromStorage(Constants.KEY_MP_DEBUG_ID);
@@ -1 +1 @@
1
- {"version":3,"names":["Logger","DataStore","Constants","Reporter","NetworkService","Utils","EventBus","VisitIdProcessor","init","initIdlEventListener","initDebugId","setOrResetVisitorId","setOrResetVisitInfo","on","channelName","eventPayload","logError","eventName","client_ev_name","attrInfoPayload","client_ev_payload","deepPayload","payload","org_id","event_id","event_ts","e","attrPayload","pu","page_url","ru","campaign_ref","pt","page_title","en","event_name","cid","campaign_id","rs","report_suite","v","client_sdk_version","vidl","idl_version","ev","event_val","ep","at","app_type","evId","evTs","orgId","_mp_vid","visitInfoToString","_lmid","getMpId","_ldid","getDeviceId","_mpidl","JSON","stringify","getVisitorInfoAsString","is_entry","pid","profile_id","postAttrInfo","err","debugId","getDataFromStorage","KEY_MP_DEBUG_ID","getUniqueID","storeData","setDebugId","visitInfo","KEY_MP_IDL_VISIT_ID_INFO","newVisitInfo","visitId","visitCt","visitDepth","visitTs","Date","now","visitVer","setVisitInfo","reportError","visitorInfoData","KEY_MP_IDL_VISITOR_ID_INFO","logDbg","apiVisitInfo","fetchIdlInfo","getIdlUrl","setVisitorInfo"],"sources":["visit-id.processor.ts"],"sourcesContent":["import { Logger } from '../common/logger';\nimport { DataStore } from '../common/data-store';\nimport { Constants } from '../common/constants';\nimport { Reporter } from '../common/reporter';\nimport { NetworkService } from '../common/network-service';\nimport type { VisitInfo, VisitorInfo } from '../common/app-types';\nimport { Utils } from '../common/utils';\nimport { EventBus } from '../common/event-bus';\n\nexport class VisitIdProcessor {\n static async init(): Promise<void> {\n await this.initIdlEventListener();\n await this.initDebugId();\n await this.setOrResetVisitorId();\n await this.setOrResetVisitInfo();\n }\n\n static async initIdlEventListener(): Promise<void> {\n EventBus.on(\n 'mp_idl_app_event',\n (channelName: string, eventPayload: Record<string, string>) => {\n try {\n if (!channelName || !eventPayload) {\n Logger.logError(\n 'Both event name and event payload is mandatory for processing idl events'\n );\n return;\n }\n\n const eventName = eventPayload.client_ev_name;\n const attrInfoPayload: any = eventPayload.client_ev_payload ?? {};\n const deepPayload: any = attrInfoPayload?.payload ?? {};\n\n // is_entry, app_type,\n try {\n deepPayload['org_id'] = eventPayload?.org_id;\n deepPayload['event_id'] = eventPayload?.event_id;\n deepPayload['event_ts'] = eventPayload?.event_ts;\n } catch (e) {\n Logger.logError('Error enhancing internal attr payload');\n }\n\n const attrPayload: any = {\n pu: attrInfoPayload?.page_url,\n ru: attrInfoPayload?.campaign_ref,\n pt: attrInfoPayload?.page_title,\n en: attrInfoPayload.event_name,\n cid: attrInfoPayload?.campaign_id,\n rs: attrInfoPayload?.report_suite,\n v: attrInfoPayload?.client_sdk_version,\n vidl: attrInfoPayload?.idl_version,\n ev: attrInfoPayload?.event_val,\n ep: deepPayload,\n at: attrInfoPayload?.app_type,\n evId: attrInfoPayload?.event_id,\n evTs: attrInfoPayload?.event_ts,\n orgId: attrInfoPayload?.org_id,\n _mp_vid: DataStore.visitInfoToString(),\n _lmid: DataStore.getMpId(),\n _ldid: DataStore.getDeviceId(),\n _mpidl: JSON.stringify(DataStore.getVisitorInfoAsString()),\n is_entry: attrInfoPayload.is_entry ?? 0,\n app_type: attrInfoPayload.app_type,\n };\n\n if (eventName === 'al') {\n attrPayload.pid = eventPayload?.profile_id;\n }\n\n Reporter.postAttrInfo(attrPayload);\n } catch (err) {\n Logger.logError('Error processing idl event: ', err);\n }\n }\n );\n }\n\n static async initDebugId(): Promise<void> {\n try {\n let debugId = await DataStore.getDataFromStorage<string>(\n Constants.KEY_MP_DEBUG_ID\n );\n if (!debugId) {\n debugId = Utils.getUniqueID();\n }\n await DataStore.storeData(Constants.KEY_MP_DEBUG_ID, debugId);\n DataStore.setDebugId(debugId);\n } catch (err) {\n Logger.logError('Error initializing debug id.', err);\n }\n }\n\n static async setOrResetVisitInfo(): Promise<void> {\n try {\n const visitInfo: VisitInfo = await DataStore.getDataFromStorage(\n Constants.KEY_MP_IDL_VISIT_ID_INFO\n );\n\n if (!visitInfo) {\n // may be first time visit, setup a new visit info object and return\n const newVisitInfo: VisitInfo = {\n visitId: Utils.getUniqueID(),\n visitCt: 1,\n visitDepth: 1,\n visitTs: Date.now(),\n visitVer: 1,\n };\n DataStore.setVisitInfo(newVisitInfo);\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISIT_ID_INFO,\n newVisitInfo\n );\n } else {\n // reset visit id anyway, but retain the visitCt and depth setting\n visitInfo.visitId = Utils.getUniqueID();\n visitInfo.visitCt = visitInfo.visitCt + 1;\n visitInfo.visitDepth = 1;\n visitInfo.visitTs = Date.now();\n visitInfo.visitVer = 1;\n DataStore.setVisitInfo(visitInfo);\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISIT_ID_INFO,\n visitInfo\n );\n }\n } catch (err) {\n Logger.logError(err);\n DataStore.setVisitInfo(null);\n Reporter.reportError('setOrResetVisitInfo', err);\n }\n }\n\n static async setOrResetVisitorId(): Promise<void> {\n try {\n const visitorInfoData: VisitorInfo = await DataStore.getDataFromStorage(\n Constants.KEY_MP_IDL_VISITOR_ID_INFO\n );\n\n if (!visitorInfoData) {\n Logger.logDbg('VisitorInfo not found. Refreshing from server');\n // get a new visit id and device id from server and store it in storage\n const apiVisitInfo = await NetworkService.fetchIdlInfo(\n DataStore.getIdlUrl()\n );\n if (!apiVisitInfo) {\n return;\n } else {\n DataStore.setVisitorInfo(apiVisitInfo);\n // store to db as well\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISITOR_ID_INFO,\n apiVisitInfo\n );\n }\n } else {\n DataStore.setVisitorInfo(visitorInfoData);\n }\n } catch (err) {\n Logger.logError(err);\n DataStore.setVisitorInfo(null);\n Reporter.reportError('setOrResetVisitorId', err);\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Logger","DataStore","Constants","Reporter","NetworkService","Utils","EventBus","VisitIdProcessor","init","initIdlEventListener","initDebugId","setOrResetVisitorId","setOrResetVisitInfo","on","channelName","eventPayload","logError","eventName","client_ev_name","attrInfoPayload","client_ev_payload","deepPayload","payload","org_id","event_id","event_ts","e","attrPayload","pu","page_url","ru","campaign_ref","pt","page_title","en","event_name","cid","campaign_id","rs","report_suite","v","client_sdk_version","vidl","idl_version","ev","event_val","ep","at","app_type","evId","evTs","orgId","_mp_vid","visitInfoToString","_lmid","getMpId","_ldid","getDeviceId","_mpidl","JSON","stringify","getVisitorInfoAsString","is_entry","pid","profile_id","postAttrInfo","err","getFacebookFBP","fbp","getDataFromStorage","KEY_FBP","Date","now","storeData","debugId","KEY_MP_DEBUG_ID","getUniqueID","setDebugId","visitInfo","KEY_MP_IDL_VISIT_ID_INFO","newVisitInfo","visitId","visitCt","visitDepth","visitTs","visitVer","setVisitInfo","reportError","visitorInfoData","KEY_MP_IDL_VISITOR_ID_INFO","logDbg","apiVisitInfo","fetchIdlInfo","getIdlUrl","setVisitorInfo"],"sources":["visit-id.processor.ts"],"sourcesContent":["import { Logger } from '../common/logger';\nimport { DataStore } from '../common/data-store';\nimport { Constants } from '../common/constants';\nimport { Reporter } from '../common/reporter';\nimport { NetworkService } from '../common/network-service';\nimport type { VisitInfo, VisitorInfo } from '../common/app-types';\nimport { Utils } from '../common/utils';\nimport { EventBus } from '../common/event-bus';\n\nexport class VisitIdProcessor {\n static async init(): Promise<void> {\n await this.initIdlEventListener();\n await this.initDebugId();\n await this.setOrResetVisitorId();\n await this.setOrResetVisitInfo();\n }\n\n static async initIdlEventListener(): Promise<void> {\n EventBus.on(\n 'mp_idl_app_event',\n (channelName: string, eventPayload: Record<string, string>) => {\n try {\n if (!channelName || !eventPayload) {\n Logger.logError(\n 'Both event name and event payload is mandatory for processing idl events'\n );\n return;\n }\n\n const eventName = eventPayload.client_ev_name;\n const attrInfoPayload: any = eventPayload.client_ev_payload ?? {};\n const deepPayload: any = attrInfoPayload?.payload ?? {};\n\n // is_entry, app_type,\n try {\n deepPayload['org_id'] = eventPayload?.org_id;\n deepPayload['event_id'] = eventPayload?.event_id;\n deepPayload['event_ts'] = eventPayload?.event_ts;\n } catch (e) {\n Logger.logError('Error enhancing internal attr payload');\n }\n\n const attrPayload: any = {\n pu: attrInfoPayload?.page_url,\n ru: attrInfoPayload?.campaign_ref,\n pt: attrInfoPayload?.page_title,\n en: attrInfoPayload.event_name,\n cid: attrInfoPayload?.campaign_id,\n rs: attrInfoPayload?.report_suite,\n v: attrInfoPayload?.client_sdk_version,\n vidl: attrInfoPayload?.idl_version,\n ev: attrInfoPayload?.event_val,\n ep: deepPayload,\n at: attrInfoPayload?.app_type,\n evId: attrInfoPayload?.event_id,\n evTs: attrInfoPayload?.event_ts,\n orgId: attrInfoPayload?.org_id,\n _mp_vid: DataStore.visitInfoToString(),\n _lmid: DataStore.getMpId(),\n _ldid: DataStore.getDeviceId(),\n _mpidl: JSON.stringify(DataStore.getVisitorInfoAsString()),\n is_entry: attrInfoPayload.is_entry ?? 0,\n app_type: attrInfoPayload.app_type,\n };\n\n if (eventName === 'al') {\n attrPayload.pid = eventPayload?.profile_id;\n }\n\n Reporter.postAttrInfo(attrPayload);\n } catch (err) {\n Logger.logError('Error processing idl event: ', err);\n }\n }\n );\n }\n\n static async getFacebookFBP(): Promise<string> {\n try {\n let fbp = await DataStore.getDataFromStorage<string>(Constants.KEY_FBP);\n\n if (!fbp) {\n fbp = `fb.1.${Date.now()}.${Date.now()}`;\n }\n\n await DataStore.storeData(Constants.KEY_FBP, fbp);\n return fbp;\n } catch (err) {\n Logger.logError('Error initializing debug id.', err);\n }\n return '';\n }\n\n static async initDebugId(): Promise<void> {\n try {\n let debugId = await DataStore.getDataFromStorage<string>(\n Constants.KEY_MP_DEBUG_ID\n );\n if (!debugId) {\n debugId = Utils.getUniqueID();\n }\n await DataStore.storeData(Constants.KEY_MP_DEBUG_ID, debugId);\n DataStore.setDebugId(debugId);\n } catch (err) {\n Logger.logError('Error initializing debug id.', err);\n }\n }\n\n static async setOrResetVisitInfo(): Promise<void> {\n try {\n const visitInfo: VisitInfo = await DataStore.getDataFromStorage(\n Constants.KEY_MP_IDL_VISIT_ID_INFO\n );\n\n if (!visitInfo) {\n // may be first time visit, setup a new visit info object and return\n const newVisitInfo: VisitInfo = {\n visitId: Utils.getUniqueID(),\n visitCt: 1,\n visitDepth: 1,\n visitTs: Date.now(),\n visitVer: 1,\n };\n DataStore.setVisitInfo(newVisitInfo);\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISIT_ID_INFO,\n newVisitInfo\n );\n } else {\n // reset visit id anyway, but retain the visitCt and depth setting\n visitInfo.visitId = Utils.getUniqueID();\n visitInfo.visitCt = visitInfo.visitCt + 1;\n visitInfo.visitDepth = 1;\n visitInfo.visitTs = Date.now();\n visitInfo.visitVer = 1;\n DataStore.setVisitInfo(visitInfo);\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISIT_ID_INFO,\n visitInfo\n );\n }\n } catch (err) {\n Logger.logError(err);\n DataStore.setVisitInfo(null);\n Reporter.reportError('setOrResetVisitInfo', err);\n }\n }\n\n static async setOrResetVisitorId(): Promise<void> {\n try {\n const visitorInfoData: VisitorInfo = await DataStore.getDataFromStorage(\n Constants.KEY_MP_IDL_VISITOR_ID_INFO\n );\n\n if (!visitorInfoData) {\n Logger.logDbg('VisitorInfo not found. Refreshing from server');\n // get a new visit id and device id from server and store it in storage\n const apiVisitInfo = await NetworkService.fetchIdlInfo(\n DataStore.getIdlUrl()\n );\n if (!apiVisitInfo) {\n return;\n } else {\n DataStore.setVisitorInfo(apiVisitInfo);\n // store to db as well\n await DataStore.storeData(\n Constants.KEY_MP_IDL_VISITOR_ID_INFO,\n apiVisitInfo\n );\n }\n } else {\n DataStore.setVisitorInfo(visitorInfoData);\n }\n } catch (err) {\n Logger.logError(err);\n DataStore.setVisitorInfo(null);\n Reporter.reportError('setOrResetVisitorId', err);\n }\n }\n}\n"],"mappings":"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"}
@@ -18,4 +18,5 @@ export declare class Constants {
18
18
  static KEY_MP_IDL_VISITOR_ID_INFO: string;
19
19
  static KEY_MP_IDL_VISIT_ID_INFO: string;
20
20
  static KEY_MP_DEBUG_ID: string;
21
+ static KEY_FBP: string;
21
22
  }
@@ -3,6 +3,7 @@ import { EventBus } from './common/event-bus';
3
3
  declare class MagicPixelImpl {
4
4
  private static dl;
5
5
  private static customerInfo;
6
+ private static customerIdentifiers;
6
7
  private static firstAppLaunch;
7
8
  static init(options: SdkInitOptions): Promise<void>;
8
9
  static recordEvent(eventName: string, payload: MapLike): void;
@@ -11,6 +12,8 @@ declare class MagicPixelImpl {
11
12
  static runTM(sseOnly: boolean, triggerName: string, evtName: string, evtId: string, eventData?: Record<string, any>): Promise<void>;
12
13
  static _fireTM(envName: string, envId: string, evtName: string, evtId: string): void;
13
14
  static setCustomerInfo(customerInfo: AppCustomerInfo): void;
15
+ static setFirebaseAppInstanceId(instanceId: string): void;
16
+ static setFacebookClientId(fbp: string): void;
14
17
  static recordPageLoad(pageLoadInfo: AppPageLoad): void;
15
18
  }
16
19
  export declare const MagicPixelEventBus: typeof EventBus;
@@ -1,6 +1,7 @@
1
1
  export declare class VisitIdProcessor {
2
2
  static init(): Promise<void>;
3
3
  static initIdlEventListener(): Promise<void>;
4
+ static getFacebookFBP(): Promise<string>;
4
5
  static initDebugId(): Promise<void>;
5
6
  static setOrResetVisitInfo(): Promise<void>;
6
7
  static setOrResetVisitorId(): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicpixel/rn-mp-client-sdk",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "test",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -40,4 +40,5 @@ export class Constants {
40
40
  static KEY_MP_IDL_VISIT_ID_INFO = 'mp_idl_visit_info';
41
41
 
42
42
  static KEY_MP_DEBUG_ID = 'mp_debug_id';
43
+ static KEY_FBP = 'KEY_FBP';
43
44
  }
@@ -2,7 +2,6 @@ import { Logger } from './logger';
2
2
  import type { MapLike, SdkInitOptions, VisitorInfo } from './app-types';
3
3
  import { DataStore } from './data-store';
4
4
  import { Reporter } from './reporter';
5
- import { Utils } from './utils';
6
5
  import type { MpClientSdk } from '../models/mp-client-sdk';
7
6
 
8
7
  export class NetworkService {
@@ -23,7 +22,7 @@ export class NetworkService {
23
22
  'get',
24
23
  `${sdkInitOptions.baseUrl}/${sdkInitOptions.projectId}${
25
24
  sdkInitOptions.env === 'staging' ? '-staging' : ''
26
- }.json?cb=${Utils.getUniqueID()}`
25
+ }.json`
27
26
  );
28
27
 
29
28
  if (response) {
package/src/index.tsx CHANGED
@@ -19,6 +19,7 @@ import { VisitIdProcessor } from './processors/visit-id.processor';
19
19
  class MagicPixelImpl {
20
20
  private static dl: MpDataLayerHelper;
21
21
  private static customerInfo: AppCustomerInfo;
22
+ private static customerIdentifiers: MapLike = {};
22
23
  private static firstAppLaunch = true;
23
24
 
24
25
  static async init(options: SdkInitOptions): Promise<void> {
@@ -34,6 +35,14 @@ class MagicPixelImpl {
34
35
 
35
36
  await VisitIdProcessor.init();
36
37
 
38
+ const fbp = await VisitIdProcessor.getFacebookFBP();
39
+ if (fbp) {
40
+ Logger.logDbg('Setting facebook client id', fbp);
41
+ this.setFacebookClientId(fbp);
42
+ } else {
43
+ Logger.logDbg('No facebook client id found. not setting');
44
+ }
45
+
37
46
  MagicPixelEventBus.on('mpDlEvent', async (evtName, payload) => {
38
47
  console.log('mpDlEvent:: ', evtName, JSON.stringify(payload));
39
48
  const eventName: string = payload.eventName;
@@ -61,10 +70,15 @@ class MagicPixelImpl {
61
70
  const newPayload: MapLike = {
62
71
  ...payload,
63
72
  ...this.customerInfo,
73
+ ...(this.customerIdentifiers ?? {}),
64
74
  };
65
75
  this.dl.pushEvent(eventName, newPayload);
66
76
  } else {
67
- this.dl.pushEvent(eventName, payload);
77
+ const newPayload: MapLike = {
78
+ ...payload,
79
+ ...(this.customerIdentifiers ?? {}),
80
+ };
81
+ this.dl.pushEvent(eventName, newPayload);
68
82
  }
69
83
  }
70
84
 
@@ -239,16 +253,29 @@ class MagicPixelImpl {
239
253
  this.customerInfo = customerInfo;
240
254
  }
241
255
 
256
+ static setFirebaseAppInstanceId(instanceId: string): void {
257
+ this.customerIdentifiers.firebase_instance_id = instanceId;
258
+ }
259
+
260
+ static setFacebookClientId(fbp: string): void {
261
+ this.customerIdentifiers.fbp = fbp;
262
+ }
263
+
242
264
  static recordPageLoad(pageLoadInfo: AppPageLoad): void {
243
265
  pageLoadInfo.is_entry = this.firstAppLaunch ? 1 : 0;
244
266
  if (this.customerInfo) {
245
267
  const newPayload: MapLike = {
246
268
  ...pageLoadInfo,
247
269
  ...this.customerInfo,
270
+ ...(this.customerIdentifiers ?? {}),
248
271
  };
249
272
  this.dl.pushEvent('page_load', newPayload);
250
273
  } else {
251
- this.dl.pushEvent('page_load', pageLoadInfo);
274
+ const newPayload: MapLike = {
275
+ ...pageLoadInfo,
276
+ ...(this.customerIdentifiers ?? {}),
277
+ };
278
+ this.dl.pushEvent('page_load', newPayload);
252
279
  }
253
280
  this.firstAppLaunch = false;
254
281
  }
@@ -75,6 +75,22 @@ export class VisitIdProcessor {
75
75
  );
76
76
  }
77
77
 
78
+ static async getFacebookFBP(): Promise<string> {
79
+ try {
80
+ let fbp = await DataStore.getDataFromStorage<string>(Constants.KEY_FBP);
81
+
82
+ if (!fbp) {
83
+ fbp = `fb.1.${Date.now()}.${Date.now()}`;
84
+ }
85
+
86
+ await DataStore.storeData(Constants.KEY_FBP, fbp);
87
+ return fbp;
88
+ } catch (err) {
89
+ Logger.logError('Error initializing debug id.', err);
90
+ }
91
+ return '';
92
+ }
93
+
78
94
  static async initDebugId(): Promise<void> {
79
95
  try {
80
96
  let debugId = await DataStore.getDataFromStorage<string>(