为什么我的用户范围自定义维度会根据过去的点击发生变化?

Why is my user scoped custom dimension changing on past hits?

用户范围内的自定义维度是否应该针对过去的点击进行更改?例如,我有一个 PromoCode 的自定义维度,它跟踪用户访问网站时使用的促销代码(即:通过 ad/offer)。我在跟踪代码管理器中设置了维度,如下所示:

Google Analytics 网页浏览标签(自定义维度部分):

Index    Dimension Value
2        {{ValidPromoCode}}

变量:{{varPromoCode}}

Type: URL
Component Type: Query
Query Key: promocode

然后我在实际站点中有一些 javascript 来获取促销代码并将其设置为在 {{ValidPromoCode}} var 中检查的 cookie - 因此它会在 URL,如果存在,则将维度值更改为该值,否则使用 cookie 值:

function() {
    //parse promocode value from cookie string
    var promoCode = document.cookie.substring( document.cookie.indexOf("promocode=") + 10, document.cookie.indexOf( ";", document.cookie.indexOf("promocode=") + 10 ) );
    if( typeof {{varPromoCode}} == "undefined" ) {
        if ( document.cookie.indexOf("promocode") >= 0 ) {
            return promoCode;
        } else {
            return null;
        }
    } else {
        //docs say a query var will return the full querystring if the parameter
        //is not found, from my experience it returns undefined. 
        //simple check for querystring here anyway (if it has = its a querystring)
        if ( {{varPromoCode}}.indexOf("=") == -1 ) {
            return {{varPromoCode}};
        } else {
            return null;
        }
    }
}

这一切都按预期工作。使用标签管理器调试和 google 分析调试器,在发送命中时在所有场景中设置正确的值。 (即:更改促销代码、删除 cookie、无促销代码等)。

问题是(也许这不是问题,而是一个功能)...当我使用一个促销代码时,说 TEST16 然后我进行一些综合浏览,触发一些事件然后去检查分析几分钟后,我的 pageviews/events 附有 TEST16 促销代码...但是,如果我随后将促销代码更改为 T35T16 并执行一些不同的操作 pageviews/events。 .. 然后几分钟后检查分析,第一个代码 TEST16 无处可寻,我现在点击的 pages/events 显示 T35T16 促销代码...

这是用户范围的工作方式吗?我认为没有分析 data/changes 曾经及时向后传播过?

我希望促销代码无限期地跟随用户,但我也希望它在我更改值(即:他们点击新广告)时发生变化,而不影响他们过去的 hits/promo 值。

我应该使用会话范围吗?或者我应该以某种方式改变我的实现?

历史数据一旦被处理就不会改变。用户范围的值仅适用于当前和未来的命中。例如,如果您的用户范围维度为 "logged in or not"(值为 truefalse),那么如果对于一个会话,最后一个值为 false,则这将是该 CD 在整个会话中的价值。在下一个会话中,该值再次为 false,因为它适用于未来的点击。如果最终值随后更改为 true,那么这就是在整个会话中应用于该 CD 的值。因此,您看到的是仅针对该特定会话更改的值。

[比照。 https://support.google.com/analytics/answer/2709828?hl=en&ref_topic=2709827#processing]