From e98b248b53c1e133c9232fdee9afe6b2a253679c Mon Sep 17 00:00:00 2001 From: yuhao900914 Date: Tue, 23 Aug 2022 12:14:13 -0700 Subject: [PATCH 1/2] feat: enable the ability to overwrite the refer origin --- src/amplitude-client.js | 13 ++++++++++++- src/constants.js | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/amplitude-client.js b/src/amplitude-client.js index 325dfe61..97dac613 100644 --- a/src/amplitude-client.js +++ b/src/amplitude-client.js @@ -789,7 +789,10 @@ var _sendParamsReferrerUserProperties = function _sendParamsReferrerUserProperti * @private */ AmplitudeClient.prototype._getReferrer = function _getReferrer() { - return typeof document !== 'undefined' ? document.referrer : ''; + const urlRefer = this._getReferrerFromUrlParam(this._getUrlParams()); + + if (urlRefer) return urlRefer; + else typeof document !== 'undefined' ? document.referrer : ''; }; /** @@ -835,6 +838,14 @@ AmplitudeClient.prototype._getDeviceIdFromUrlParam = function _getDeviceIdFromUr return utils.getQueryParam(Constants.AMP_DEVICE_ID_PARAM, urlParams); }; +/** + * Try to fetch referrer from url params. + * @private + */ +AmplitudeClient.prototype._getReferrerFromUrlParam = function _getReferrerFromUrlParam(urlParams) { + return utils.getQueryParam(Constants.AMP_REFERRER_PARAM, urlParams); +}; + /** * Parse the domain from referrer info * @private diff --git a/src/constants.js b/src/constants.js index 5ad6fd41..59267f29 100644 --- a/src/constants.js +++ b/src/constants.js @@ -50,6 +50,7 @@ export default { REVENUE_REVENUE_TYPE: '$revenueType', AMP_DEVICE_ID_PARAM: 'amp_device_id', // url param + AMP_REFERRER_PARAM: 'amp_referrer', // url param for overwriting the document.refer REFERRER: 'referrer', From edb672236c01458767e1c446ee9be03398691424 Mon Sep 17 00:00:00 2001 From: yuhao900914 Date: Tue, 23 Aug 2022 12:36:37 -0700 Subject: [PATCH 2/2] fix: nits --- src/amplitude-client.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amplitude-client.js b/src/amplitude-client.js index 97dac613..aa60874b 100644 --- a/src/amplitude-client.js +++ b/src/amplitude-client.js @@ -792,7 +792,7 @@ AmplitudeClient.prototype._getReferrer = function _getReferrer() { const urlRefer = this._getReferrerFromUrlParam(this._getUrlParams()); if (urlRefer) return urlRefer; - else typeof document !== 'undefined' ? document.referrer : ''; + else return typeof document !== 'undefined' ? document.referrer : ''; }; /**