Каков наилучший способ записи статистики по количеству посетителей, посещающих мой сайт, которые настроили браузер для блокировки рекламы?Как узнать, блокирует ли веб-клиент рекламные объявления?
ответ
Поскольку такие программы, как AdBlock, на самом деле никогда не запрашивают рекламу, вам нужно будет посмотреть журналы сервера, чтобы узнать, пользовался ли тот же доступ к веб-странице, но не получил доступ к объявлению. Предполагается, что объявление размещено на одном сервере.
Если ваши объявления находятся на отдельном сервере, то я бы предложил, что это невозможно сделать.
Лучший способ помешать пользователям блокировать рекламные объявления - это иметь встроенные текстовые рекламные объявления, которые генерируются сервером и распространяются внутри вашего html.
Я полагаю, вы могли бы сравнить печать объявлений со страницами на своем веб-сайте (которые вы можете получить из своего программного обеспечения для аналитики).
Добавить идентификатор пользователя в запросе объявления:
<img src="./ads/viagra.jpg?{user.id}"/>
таким образом вы можете проверить, какие объявления показываются с помощью которых пользователи.
Вам нужно подумать о различных способах блокировки рекламы. Первое, на что нужно обратить внимание, это то, что они работают с noscript, поэтому вы можете добавить скрипт, который будет проверять это.
Следующая вещь - посмотреть, блокируют ли они вспышку, этот маленький фильм должен это сделать.
Если вы смотрите на сайте Adblock, есть некоторые признаки того, как она блокирует:
How does element hiding work?
Если посмотреть дальше вниз эту страницу, вы увидите, что обычный хром зондирования не будет работать, так что вы необходимо попробовать и проанализировать измененную DOM.
AdBlock forum says Это используется для обнаружения AdBlock. После некоторой настройки вы можете использовать это для сбора статистики.
setTimeout("detect_abp()", 10000);
var isFF = (navigator.userAgent.indexOf("Firefox") > -1) ? true : false,
hasABP = false;
function detect_abp() {
if(isFF) {
if(Components.interfaces.nsIAdblockPlus != undefined) {
hasABP = true;
} else {
var AbpImage = document.createElement("img");
AbpImage.id = "abp_detector";
AbpImage.src = "/textlink-ads.jpg";
AbpImage.style.width = "0";
AbpImage.style.height = "0";
AbpImage.style.top = "-1000px";
AbpImage.style.left = "-1000px";
document.body.appendChild(AbpImage);
hasABP = (document.getElementById("abp_detector").style.display == "none");
var e = document.getElementsByTagName("iframe");
for (var i = 0; i < e.length; i++) {
if(e[i].clientHeight == 0) {
hasABP = true;
}
}
if(hasABP == true) {
history.go(1);
location = "http://www.tweaktown.com/supportus.html";
window.location(location);
}
}
}
}