Обнаружение веб-представлений в приложении в GTM: фильтрация веб-представлений Android/iOS из списка браузераJavascript

Форум по Javascript
Ответить
Anonymous
 Обнаружение веб-представлений в приложении в GTM: фильтрация веб-представлений Android/iOS из списка браузера

Сообщение Anonymous »

Мы пытаемся точно определить, просматривает ли пользователь сайт нашего клиента через WebView в приложении (например, Android WebView или Safari) по сравнению с обычным браузером. Цель – отфильтровать веб-представления в приложении из отчетов браузера GA4 с помощью Диспетчера тегов Google.
Изначально мы написали пользовательскую переменную 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";
}
}
Предлагаемое улучшение добавило обнаружение iOS WebViews и некоторых распространенных браузеров внутри приложений:

Код: Выделить всё

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";
}
}

Мы хотим надежно обнаруживать веб-представления в приложениях (Android/iOS и распространенные социальные приложения) и использовать это обнаружение в триггерах GTM, чтобы отфильтровывать веб-представления в приложении из отчетов браузера GA4.
Пример предполагаемой конфигурации триггера 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»