我可以在Google跟踪代码管理器中读取已设置好名称的第一方Cookie。但是我遇到了一些实例,其中cookie名称是基于会话的,并且没有设置一致的名称供我检查。我想知道是否设置了cookie并理想地读取了数据。
例如 cookie_name_123456 cookie_name_234567 cookie_name_345678
名称字段看起来不像正则表达式。有谁知道设置GTM来读取类似Cookie的方法?
答案 0 :(得分:1)
您可以使用读取了document.cookie属性的Javascript创建自定义HTML标记,然后使用分隔符对其进行拆分,以获取包含单个cookie(<?php
for ($count = 0; $count < count($_POST['invoiceno']); $count++) {
$data = array(
$invoiceno = $_POST['invoiceno'][$count],
$amount = $_POST['finalamount'][$count],
);
echo "Invoice NO " . $invoiceno . " Amount " . $amount . '<br>';
}
?>
)的数组。
这将为您提供一个数组,其中包含所有未标记为“仅HTTP”的第一方Cookie(JS无法访问这些cookie)。每个数组条目的格式均为“ cookiename equals value”(例如,“ document.cookie.split(";")
”将是具有客户ID作为值的Universal Analytics cookie“ _ga=GA1.2.1545993750.1587886865
”)。然后,您可以遍历数组。
在循环内部,您可以使用“ =”符号分隔每个数组条目,以获取包含两个元素的数组,其中[0]代表名称,1代表价值。然后,将正则表达式应用于名称。如果rexeg与您要查找的内容匹配,则可以将值推送到dataLayer。
要确保此代码已在使用cookie值的标记之前运行,可以使用tag sequencing。如果您按照e.g. here in Simo's blog所述通过onHtmlSuccess()和onHtmlFailure()函数管理序列,则可以设置序列,以便仅在cookie值实际存在时才触发代码。
A,不可能在custom template中做到这一点,这会更加优雅,但是自定义模板中的沙盒JS无法访问全局文档属性。