为什么我的用户范围自定义维度会根据过去的点击发生变化?
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"
(值为 true
或 false
),那么如果对于一个会话,最后一个值为 false
,则这将是该 CD 在整个会话中的价值。在下一个会话中,该值再次为 false
,因为它适用于未来的点击。如果最终值随后更改为 true
,那么这就是在整个会话中应用于该 CD 的值。因此,您看到的是仅针对该特定会话更改的值。
[比照。 https://support.google.com/analytics/answer/2709828?hl=en&ref_topic=2709827#processing]
用户范围内的自定义维度是否应该针对过去的点击进行更改?例如,我有一个 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"
(值为 true
或 false
),那么如果对于一个会话,最后一个值为 false
,则这将是该 CD 在整个会话中的价值。在下一个会话中,该值再次为 false
,因为它适用于未来的点击。如果最终值随后更改为 true
,那么这就是在整个会话中应用于该 CD 的值。因此,您看到的是仅针对该特定会话更改的值。
[比照。 https://support.google.com/analytics/answer/2709828?hl=en&ref_topic=2709827#processing]