这个问题很模糊,因为我发帖的时候不明白我在问什么。这里有两个场景可以帮助您入门。如果您有具体问题,请跟进 - 我会尽力提供帮助。
场景 1(很可能不起作用,但为了完整起见):您正在从与您完全不相关的网站获得推荐。例如,您运行mycoolsite.com 和someforum.com 与您关联的某人。如果someforum.com 发送了一个名为Referer Request Header 的东西,那么您将能够在没有任何额外内容的情况下知道这一点的唯一方法。许多受欢迎的网站都没有。
场景 2:您的营销团队花钱请人链接到您以进行特定促销。例如,您的营销团队告诉someforum.com 链接mycoolsite.com 以获得金钱或帮助。在这种情况下,他们可以要求遵循场景 1,或者,更有可能的是,他们可以包含称为 utm 参数的内容,例如当他们发送链接时,它不是mycoolsite.com?utm_campaign=monster&utm_source=monsterjobs
当请求进入您的网站时,您可以提取这些 utm 参数,以确定哪个广告系列有效。
代码如下所示:
function buildUtmInfoString(currentUrlString) {
const url = new URL(currentUrlString);
let referrerString = '';
utmParamNames.forEach(paramName => {
const paramValue = url.searchParams.get(paramName.standard);
if(!paramValue) {
return;
}
const paramString = `${paramName.colloquial}: ${paramValue}, `;
referrerString += paramString;
});
referrerString = referrerString.substring(0, referrerString.length-2);
return referrerString;
}
请注意,您可能需要查找 utm param 标准名称,如果您的公司使用它们,Google Analytics 开箱即用地支持它们,但您可以在没有 GA 的情况下使用它们。
const standardUtmParamNames = {
SOURCE: 'utm_source',
MEDIUM: 'utm_medium',
CAMPAIGN: 'utm_campaign',
TERM: 'utm_term',
CONTENT: 'utm_content'
};
const utmParamNames = [
{
standard: standardUtmParamNames.SOURCE,
colloquial: 'Source'
},
{
standard: standardUtmParamNames.MEDIUM,
colloquial: 'Medium'
},
{
standard: standardUtmParamNames.CAMPAIGN,
colloquial: 'Campaign'
},
{
standard: standardUtmParamNames.TERM,
colloquial: 'Term'
},
{
standard: standardUtmParamNames.CONTENT,
colloquial: 'Content'
}
];
export default utmParamNames;
请注意,也有一些黑客可以做到这一点,但它们并不可靠,并且会被视为滥用用户隐私,因此它们不是可行的商业解决方案,我不建议在它们上浪费时间。