Рубрики
Без рубрики

Как предотвратить заблокированные данные вашей аналитики по блокаторам AD

TL; DR (Обновлено 2021) Теперь вы можете использовать сервис DataunLocker.com, который является полностью управляемым решением для устранения удара блокаторов AD на инструменты аналитики клиента, например, Google Analytics. Войдите в Admin в Admin DataunLocker, чтобы завершить краткую 3-ступенчатую настройку вашего веб-приложения или веб-сайта. Статья

Автор оригинала: Nikita Savchenko.

Когда ваш продукт просто начинается, каждый пользователь имеет значение. Так что данные о том, как они взаимодействуют с вашим продуктом.

Если вы пытались использовать решения Analytics, такие как Google Analytics , вы, возможно, столкнулись с проблемой, когда ваша коллекция аналитики была заблокирована блокаторами AD.

По словам PageFair , до 30% Интернет-пользователей используют блокировщики AD в 2017 году, и этот номер постоянно растет.

Эта статья объяснит некоторые технические подходы, которые вы можете предпринять, чтобы предотвратить также блокировать рекламные блокировки. Мы будем использовать Google Analytics В этой статье, хотя большая часть этого может быть применена к другим инструментам аналитики.

Некоторые способы вы можете обойти блокаторы AD

Почти все блокировщики рекламы работают через одни и те же методы: они запрещают некоторые запросы браузера HTTP (S) для содержимого на URL-адресах, которые соответствуют определенной маске из их фильтрации.

Большинство рекламных блокаторов черный список www.google-analytics.com По умолчанию и заблокируйте любые попытки Google Analytics JavaScript Библиотека отправить или получить данные с ее аналитических серверов.

К счастью для разработчиков, блокировщики рекламы не блокируют запросы на Наши собственные доменные имена По умолчанию, потому что это может повредить функциональность веб-приложения. Этот разрыв показывает способ избежать блокировки аналитики, пока ваш веб-сервис не станет известным достаточно для некоторых его URL-адресов, появляются в блокаторах AD-блокатора.

Фактически, даже после того, как некоторые URL-адреса появляются в базе фильтрации контента, вы можете начать играть с блокаторами AD, изобретение ужасных вещей, таких как почасовая смена URL Analytics (хотя это за пределами объема этой статьи). Некоторые из этих подходов применяются услугами, такими как Dataunlocker.com. и Adtoniq С которые предлагают пользователю бесплатным опытом, даже когда блокировщики рекламы включены.

Объяснение высокого уровня того, что мы собираемся сделать

В этой статье мы предположим, что у нас нет ограничений разрешений на стороне сервера. Мы напишем демо-решение (несколько строк кода) для платформы Node.js. Как только вы понимаете, как это работает, вы сможете портировать это решение для любого языка или платформы программирования.

Решение, которое я буду описать, довольно минимально, и если вы опытный веб-разработчик, он может занять вас всего несколько минут, чтобы поставить его на место.

Мы собираемся использовать простой прокси-подход без необходимости погружения в Протокол измерения аналитики Google . Короче говоря, решение выглядит следующим образом:

  1. Первый , Скачать Сама библиотека JavaScript Google Analytics и проводит его на вашем сервере.
  2. Затем измените код в загруженной библиотеке, чтобы изменить целевой хост из www.google-analytics.com к вашему собственному доменному имени, используя находку-заменить.
  3. Замените ссылку из сценария аналитики Google по умолчанию в вашу кодовую базу, чтобы изменить один.
  4. Создать прокси Конечная точка для серверов Google Analytics на вашем спине. Один важный шаг здесь – дополнительно обнаружить IP-адрес клиента и явно написать его в запросах на серверы Google Analytics, чтобы сохранить правильное обнаружение местоположения.
  5. Проверьте результаты. Вы закончили!

Полная техническая реализация прохождения

Весь код и описанные шаги ниже доступны на Github Отказ Приведенное ниже описание объясняет основы метода, и, конечно, предлагаемый подход может быть улучшен, чтобы быть еще более «антиблокировкой».

В Google Analytics вы начинаете с Приобретение уникальной отслеживания ID Для вашей собственности (веб-сервис). Мы будем использовать UA-98253329-1 ID отслеживания В этой статье для демонстрации. Не забудьте заменить код отслеживания на свой.

Google предлагает добавить этот минимутированный код в ваши веб-сервисы, чтобы включить аналитику:

Через несколько слов этот код загружает библиотеку JavaScript Google Analytics, если она не была загружена перед вводом тега скрипта в документ. Эта библиотека включает в себя всю логику коллекции аналитики, и это единственное, что нам нужно продолжить.

Шаг 1: Загрузить и исправлять Библиотека Google аналитики

Загрузите скрипт напрямую из https://www.google-analytics.com/analytics.js Откройте его с любым текстовым редактором и замените все вхождения:

www.google-analytics.com

С этой точной строкой:

"+location.host+"/analytics

Таким образом, исправляя библиотеку аналитики, она начнет создавать запросы на локальный хост ( my.domain.com/analytics) конечные точки вместо www.google-analytics.com Отказ Место Это исправлено Analytics.js Файл на вашем сервере после замены.

Шаг 2: Замените скрипт аналитика с помощью исправленного

Давайте модифицируем код вложения Google Analytics таким образом, чтобы он использовал нашу исправленную библиотеку вместо по умолчанию:


Обратите внимание, что здесь браузер ищет поиск скрипта исправленного аналитика в корневом документе вашего сервера, в этом случае my.domain.com/analytics.js. Проверьте, включите ли вы скрипт в документе Root или изменили путь в теге скрипта выше. Вы также можете проверить результаты, запустив тест на локальный сервер (см. README Для того, как запустить пример GitHub).

Вы должны увидеть что-то вроде этого в инструментах разработчика браузера :

В конечном итоге мы хотим акт загрузки вашего исправления Analytics.js Чтобы вернуть успешный ответ – A 200 (OK) или 304 (не измененный) статус. Но на данный момент запрос на my.domain.com/analytics/COLLECT Следует ответить на 404 статуса, так как мы еще не реализовали прокси-сервер.

Шаг 3: Реализация простейшего прокси-сервера

Теперь мы собираемся немного кодировать. Наша цель – реализовать Прокси-сервер , который будет транспортировать нашу аналитические запросы с нашего сервера на реальный сервер Google Analytics. Мы можем сделать это во многом, но, в качестве примера, давайте использовать Node.js и Express.js с Express-http-прокси упаковка.

Собрав все файлы в примере вместе ( Смотрите GitHub ), мы должны в конечном итоге следующий код сервера JavaScript:

var express = require("express"), 
    proxy = require("express-http-proxy"), app = express();

app.use(express.static(__dirname)); // serve static files from cwd

function getIpFromReq (req) { // get the client's IP address
    var bareIP = ":" + ((req.connection.socket && req.connection.socket.remoteAddress)
        || req.headers["x-forwarded-for"] || req.connection.remoteAddress || "");
    return (bareIP.match(/:([^:]+)$/) || [])[1] || "127.0.0.1";
}

// proxying requests from /analytics to www.google-analytics.com.
app.use("/analytics", proxy("www.google-analytics.com", {
    proxyReqPathResolver: function (req) {
        return req.url + (req.url.indexOf("?") === -1 ? "?" : "&")
            + "uip=" + encodeURIComponent(getIpFromReq(req));
    }
}));

app.listen(1280);
console.log("Web application ready on http://localhost:1280");

Несколько последних строк здесь делают прокси. Единственная хитрость, которую мы здесь делаем, вместо просто прокси, мы обнаруживаем и добавляем IP-адрес клиента явно в форме Протокол измерения URL-параметр Отказ Это необходимо для сбора точных данных о местоположении, поскольку все запросы на Google Analytic изначально исходят от IP-адреса нашего сервера, который остается постоянным.

После настройки нашего сервера прокси, мы можем проверить, будет ли запрос нашим /собирать Конечная точка теперь успешно возвращает 200 HTTP HTTP:

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

Этот подход «Proxy Server» – это быстрый обходной путь для аналитики, который позволяет вашим услугам избежать блокаторов рекламы. Но этот метод опирается на боковой стороне браузера, и если сценарий браузера по какой-то причине не отправляет информацию аналитики нашим серверам, мы ничего не получаем.

Последний возможный шаг, если вы хотите реализовать твердое решение, это отправить аналитику непосредственно с сервера, используя библиотеки на боковых серверах, доступных для разных языков ( Nodejs , Python , Ruby , | Php ). Этот подход определенно избегает любых блокаторов контента, поскольку каждый запрос на серверы аналитики поступают непосредственно с наших серверов.

Опять же, демонстрационное приложение доступно на Github Не стесняйтесь тестировать это! Дайте мне знать, если у вас есть какие-либо отзывы или интересные переживания, используя этот подход.

Спасибо за прочтение!

Оригинал: “https://www.freecodecamp.org/news/save-your-analytics-from-content-blockers-7ee08c6ec7ee/”