如果用户允许位置共享,我的 GTM 容器中需要自定义 javascript 变量 return true

I need a custom javascript variable in my GTM container to return true if the user allows location sharing

我需要在用户将位置共享到浏览器时触发标签。我在我的 GTM 容器中尝试将以下代码作为自定义 javascript 变量,但没有用。

navigator.permissions && navigator.permissions.query({name:'geolocation'}).then(function(PermissionStatus) {
    if(PermissionStatus.state == 'granted'){
         return true;
    }else{
         return false;
    }
})

一种可能的解决方案是将您拥有的代码实现为自定义 HTML 标记,并将承诺的结果作为事件推送到数据层 - 然后您可以在这个新事件上触发您的标记。例如:

<script>
    navigator.permissions && navigator.permissions.query({name:'geolocation'}).then(function(PermissionStatus) {
        if(PermissionStatus.state == 'granted'){
             dataLayer.push({event: 'permissionGranted'})
        }else{
             dataLayer.push({event: 'permissionDenied'})
        }
    })
<script>

那么您将需要在此自定义事件中触发您的代码 "permissionGranted"。

关于自定义事件的更多信息here