Изначально мы написали пользовательскую переменную JavaScript в GTM для обнаружения браузера:
Код: Выделить всё
function() {
var ua = navigator.userAgent;
if (ua.indexOf("Chrome") > -1 && ua.indexOf("Edge") === -1 && ua.indexOf("OPR") === -1) {
return "Chrome";
} else if (ua.indexOf("Firefox") > -1) {
return "Firefox";
} else if (ua.indexOf("Safari") > -1 && ua.indexOf("Chrome") === -1) {
return "Safari";
} else if (ua.indexOf("MSIE") > -1 || ua.indexOf("Trident/") > -1) {
return "IE";
} else if (ua.indexOf("Edge") > -1) {
return "Edge";
} else if (ua.indexOf("OPR") > -1) {
return "Opera";
} else if (ua.indexOf("wv") > -1) {
return "Android Webview";
} else {
return "Other";
}
}
Код: Выделить всё
function() {
var ua = navigator.userAgent || "";
// Detect common in-app environments
if (/\bFBAN|FBAV|Instagram|Line|Twitter|LinkedInApp|TikTok/i.test(ua)) {
return "In-App Browser";
}
// Android WebView
if (ua.indexOf("wv") > -1 || (ua.indexOf("Android") > -1 && ua.indexOf("Version/") > -1 && ua.indexOf("Chrome") === -1)) {
return "Android WebView";
}
// iOS WebView
if (/iPhone|iPod|iPad/i.test(ua) && !/Safari/i.test(ua)) {
return "iOS WebView";
}
// Regular browsers
if (ua.indexOf("Chrome") > -1 && ua.indexOf("Edge") === -1 && ua.indexOf("OPR") === -1) {
return "Chrome";
} else if (ua.indexOf("Firefox") > -1) {
return "Firefox";
} else if (ua.indexOf("Safari") > -1 && ua.indexOf("Chrome") === -1) {
return "Safari";
} else if (ua.indexOf("MSIE") > -1 || ua.indexOf("Trident/") > -1) {
return "IE";
} else if (ua.indexOf("Edge") > -1) {
return "Edge";
} else if (ua.indexOf("OPR") > -1) {
return "Opera";
} else {
return "Other";
}
}
Пример предполагаемой конфигурации триггера GTM:
Пример текущего отчета браузера GA4, показывающий Веб-представления Android/iOS:
Мы планируем реализовать пользовательскую переменную JavaScript для обнаружения этих веб-представлений, а затем настроить такие триггеры, как:
Код: Выделить всё
{{JS - Browser Type}} does not match RegEx (ignore case) Android Webview.*Safari.*
Будет ли какой-либо из кодов работать должным образом?
Если нет, то есть ли лучший способ надежно обнаружить WebViews в приложении в GTM?
Подробнее здесь: https://stackoverflow.com/questions/797 ... browser-li