捕获传入的URL参数&传入div" data-url"属性

时间:2017-08-03 18:16:34

标签: javascript jquery google-analytics

我们目前正在使用嵌入在我们网站中的typeform。驱动到我们网站的所有流量来自cpc广告系列,因此必须在GA中进行准确的转化​​跟踪,以便我们准确跟踪投资回报率。

这就是问题所在。将cpc广告系列直接发送到字体网址时,GA跟踪是准确的。将字体嵌入我们的网站后,GA跟踪显示引荐来源是我们的网站,而不是Google或Bing cpc。

如果没有这么长的帖子,我需要能够在URL&中捕获广告系列参数(utm source,utm medium等)。将数据输入到" data-url"属性位于div。

现在这是我的代码:

function main () {
var loc = window.location.toString(),
params = loc.split('&')[1],
params2 = loc.split('&')[2],
params3 = loc.split('&')[3],
params4 = loc.split('&')[4],
params5 = loc.split('&')[5],
typeformWidget = jQuery("#typeformWidget");
typeformWidget.attr('data-url') == typeformWidget.attr('data-url') + '?' + 
params + '&' + params2 + '&' + params3 + '&' + params4+ '&' + params5;
console.log(params);
};
main();

当我在控制台中看到数据时,我看起来正在捕获正确的参数,但我不能在我的生活中弄清楚如何将数据传递给" data-url"属性。

2 个答案:

答案 0 :(得分:1)

typeformWidget.attr('data-url', typeformWidget.attr('data-url') + '?' + 
params + '&' + params2 + '&' + params3 + '&' + params4+ '&' + params5);

OR

typeformWidget.data('url', typeformWidget.data('url') + '?' + 
    params + '&' + params2 + '&' + params3 + '&' + params4+ '&' + params5);

您的代码不起作用的原因是==用于比较if语句中通常使用的相等性。要使用=分配值,但使用jQuery,您需要使用该方法分配此案例.attr('attribute name', value).data('name after the data-', value)

中的值

答案 1 :(得分:1)

在最新版本的Typeform中,类和名称已更改,这就是我如何使用它的方法。

您将需要加载此版本或最新版本的jQuery:

<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>

然后,您基本上只使用JavaScript中的URL并分割了所需的部分,然后替换了加载嵌入表单的URL以传递初始网站的UTM标签,然后在</body>之前添加此脚本:< / p>

<script>
    const queryString = window.location.search;
    const urlParams = new URLSearchParams(queryString);

    //this where your utm tags should be going given your URL looks like: https://www.whatever.com?utm_source=Facebook  you can 
    //build your URLs here: https://ga-dev-tools.appspot.com/campaign-url-builder/

    const utm_source = urlParams.get('utm_source')

    typeformWidget = $("[data-url]");

    //the hidden field's name you created at typeform must go here, for this example the field is named: 'source', 

    newurl=typeformWidget.attr('data-url')+'?source='+utm_source;

    //you need to load jquery for this
    $("[data-url]").attr("data-url", newurl);
</script>

您可以添加更多字段,但是您需要首先获取它们(检查上述内容),然后调整新的url行,它将是typeformWidget.attr('data-url')+'?source ='+ utm_source +'? medium ='+ utm_medium等,等等;

Github for the script