diff --git a/src/tracking.js b/src/tracking.js index 2d35fb85..b372a8c6 100644 --- a/src/tracking.js +++ b/src/tracking.js @@ -103,41 +103,46 @@ export function setupLogger() { const userAction = getCommit() ? FPTI_USER_ACTION.COMMIT : FPTI_USER_ACTION.CONTINUE; + const { lang, country } = getLocale(); + const mID = getMerchantID(); sdkInitTime = Date.now(); - logger.addPayloadBuilder(() => { - return { - referer: window.location.host, - uid: getSessionID(), - env: getEnv(), - }; - }); - - logger.addTrackingBuilder(() => { - const { lang, country } = getLocale(); - const mID = getMerchantID(); - - return { - [FPTI_KEY.CLIENT_ID]: getClientID(), - [FPTI_KEY.CONTEXT_CORRID]: getCorrelationID(), - [FPTI_KEY.DATA_SOURCE]: FPTI_DATA_SOURCE.PAYMENTS_SDK, - [FPTI_KEY.FEED]: FPTI_FEED.PAYMENTS_SDK, - [FPTI_KEY.INTEGRATION_IDENTIFIER]: getClientID(), - [FPTI_KEY.JS_SDK_LIBRARY]: jsSdkLibrary, - [FPTI_KEY.LOCALE]: `${lang}_${country}`, - [FPTI_KEY.PAGE_TYPE]: pageType, - [FPTI_KEY.PARTNER_ATTRIBUTION_ID]: getPartnerAttributionID(), - [FPTI_KEY.REFERER]: window.location.host, - [FPTI_KEY.SDK_INTEGRATION_SOURCE]: integrationSource, - [FPTI_KEY.SDK_NAME]: FPTI_SDK_NAME.PAYMENTS_SDK, - [FPTI_KEY.SDK_VERSION]: version, - [FPTI_KEY.SELLER_ID]: mID && mID.toString(), - [FPTI_KEY.SESSION_UID]: getSessionID(), - [FPTI_KEY.USER_ACTION]: userAction, - [FPTI_KEY.USER_AGENT]: window.navigator && window.navigator.userAgent, - }; - }); + logger.addPayloadBuilder(() => ({ + referer: window.location.host, + uid: getSessionID(), + env: getEnv(), + clientId: getClientID(), + csnwCorrelationId: getCorrelationID(), + jsSdkLibrary, + locale: `${lang}_${country}`, + referrer: window.location.host, + integrationSource, + version, + merchantId: mID, + sessionId: getSessionID(), + userAction, + })); + + logger.addTrackingBuilder(() => ({ + [FPTI_KEY.CLIENT_ID]: getClientID(), + [FPTI_KEY.CONTEXT_CORRID]: getCorrelationID(), + [FPTI_KEY.DATA_SOURCE]: FPTI_DATA_SOURCE.PAYMENTS_SDK, + [FPTI_KEY.FEED]: FPTI_FEED.PAYMENTS_SDK, + [FPTI_KEY.INTEGRATION_IDENTIFIER]: getClientID(), + [FPTI_KEY.JS_SDK_LIBRARY]: jsSdkLibrary, + [FPTI_KEY.LOCALE]: `${lang}_${country}`, + [FPTI_KEY.PAGE_TYPE]: pageType, + [FPTI_KEY.PARTNER_ATTRIBUTION_ID]: getPartnerAttributionID(), + [FPTI_KEY.REFERER]: window.location.host, + [FPTI_KEY.SDK_INTEGRATION_SOURCE]: integrationSource, + [FPTI_KEY.SDK_NAME]: FPTI_SDK_NAME.PAYMENTS_SDK, + [FPTI_KEY.SDK_VERSION]: version, + [FPTI_KEY.SELLER_ID]: mID && mID.toString(), + [FPTI_KEY.SESSION_UID]: getSessionID(), + [FPTI_KEY.USER_ACTION]: userAction, + [FPTI_KEY.USER_AGENT]: window.navigator && window.navigator.userAgent, + })); logger.addMetricDimensionBuilder(() => payPalWebV5Dimensions); @@ -147,7 +152,7 @@ export function setupLogger() { [FPTI_KEY.ERROR_DESC]: stringifyErrorMessage(err), }); - logger.error("unhandled_error", { + logger.error("paypal_js_sdk_v5_unhandled_exception", { err: stringifyError(err), }); @@ -160,6 +165,14 @@ export function setupLogger() { const loadTime = getResourceLoadTime(sdkScript.src); let cacheType; + logger.addPayloadBuilder(() => ({ + // Exclude apps that use the JS SDK and are hosted directly on www.paypal.com. Ex: + // https://www.paypal.com/buttons/smart + // https://www.paypal.com/us/gifts/ + loadedInFrame: + isPayPalDomain() && window.xprops ? "paypal" : "non_paypal", + })); + if (loadTime === 0) { cacheType = "sdk_client_cache_hit"; } else if (typeof loadTime === "number") { @@ -168,29 +181,22 @@ export function setupLogger() { cacheType = "sdk_client_cache_unknown"; } - // Exclude apps that use the JS SDK and are hosted directly on www.paypal.com. Ex: - // https://www.paypal.com/buttons/smart - // https://www.paypal.com/us/gifts/ - const isLoadedInFrame = isPayPalDomain() && window.xprops; const sdkLoadTime = typeof loadTime === "number" ? loadTime : undefined; - logger.info( - `sdk_${isLoadedInFrame ? "paypal" : "non_paypal"}_domain_script_uid_${ - sdkScript.hasAttribute(ATTRIBUTES.UID) ? "present" : "missing" - }` - ); - - if (loadTime) { - logger.track({ - [FPTI_KEY.TRANSITION]: "process_js_sdk_init_client", - [FPTI_KEY.SDK_LOAD_TIME]: sdkLoadTime, - [FPTI_KEY.SDK_CACHE]: cacheType, - }); - } + logger.info("paypal_js_sdk_v5_init", { + ...(isIEIntranet() ? { ie_intranet_mode: true } : {}), + uidAttribute: sdkScript.hasAttribute(ATTRIBUTES.UID) + ? "present" + : "missing", + loadTime: sdkLoadTime, + cacheType, + }); - if (isIEIntranet()) { - logger.warn("ie_intranet_mode"); - } + logger.track({ + [FPTI_KEY.TRANSITION]: "process_js_sdk_init_client", + [FPTI_KEY.SDK_LOAD_TIME]: sdkLoadTime, + [FPTI_KEY.SDK_CACHE]: cacheType, + }); logger.metricCounter({ namespace: "sdk_client.init.count",