Мне нужна переменная javascript в моем контейнере GTM, чтобы она возвращала значение true, если пользователь разрешил совместное использование местоположения - PullRequest
1 голос
/ 12 апреля 2019

Мне нужно запустить тег, когда пользователь поделился местоположением с браузером. Я попробовал приведенный ниже код в качестве пользовательской переменной javascript в моем контейнере GTM, но это не сработало.

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

1 Ответ

1 голос
/ 25 апреля 2019

Одним из возможных решений было бы реализовать ваш код в виде пользовательского тега HTML и передать результат обещаний как событие в dataLayer - тогда вы можете запустить свой тег для этого нового события. Например:

<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>

Тогда вам нужно будет запустить ваш тег для этого пользовательского события "licenseGranted".

Подробнее о пользовательских событиях здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...