Как я могу сказать, блокирует ли веб-клиент рекламные объявления?

В C ++ 11 возможно:

auto array = new double[M][N]; 

Таким образом, память не инициализируется. Для инициализации это сделайте это вместо:

auto array = new double[M][N]();

Пример программы (скомпилируйте с помощью «g ++ -std = c ++ 11»):

#include <iostream>
#include <utility>
#include <type_traits>
#include <typeinfo>
#include <cxxabi.h>
using namespace std;

int main()
{
    const auto M = 2;
    const auto N = 2;

    // allocate (no initializatoin)
    auto array = new double[M][N];

    // pollute the memory
    array[0][0] = 2;
    array[1][0] = 3;
    array[0][1] = 4;
    array[1][1] = 5;

    // re-allocate, probably will fetch the same memory block (not portable)
    delete[] array;
    array = new double[M][N];

    // show that memory is not initialized
    for(int r = 0; r < M; r++)
    {
        for(int c = 0; c < N; c++)
            cout << array[r][c] << " ";
        cout << endl;
    }
    cout << endl;

    delete[] array;

    // the proper way to zero-initialize the array
    array = new double[M][N]();

    // show the memory is initialized
    for(int r = 0; r < M; r++)
    {
        for(int c = 0; c < N; c++)
            cout << array[r][c] << " ";
        cout << endl;
    }

    int info;
    cout << abi::__cxa_demangle(typeid(array).name(),0,0,&info) << endl;

    return 0;
}

Выход:

2 4 
3 5 

0 0 
0 0 
double (*) [2]
15
задан gunr2171 8 May 2015 в 19:02
поделиться

5 ответов

Так как программы как AdBlock на самом деле никогда не запрашивают объявление, необходимо было бы посмотреть журналы сервера, чтобы видеть, получил ли тот же пользователь доступ к веб-странице, но не получил доступ к объявлению. Это предполагает, что объявление находится на том же сервере.

, Если бы Ваши объявления находятся на отдельном сервере, то я предположил бы, что невозможно сделать так.

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

11
ответ дан 1 December 2019 в 01:54
поделиться

Добавьте идентификатор пользователя к запросу на рекламу:

<img src="./ads/viagra.jpg?{user.id}"/>

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

10
ответ дан 1 December 2019 в 01:54
поделиться

Необходимо думать о различных способах, которыми заблокирована реклама. Первая вещь посмотреть на состоит в том, выполняют ли они noscript, таким образом, Вы могли добавить сценарий, который проверит на это.

следующая вещь состоит в том, чтобы видеть, блокируют ли они флэш-память, маленький фильм должен сделать это.

при рассмотрении adblock сайта существует некоторый признак того, как он делает блокирование:
, Как сокрытие элемента работает?

, Если Вы смотрите далее вниз, что страница, Вы будете видеть, что стандартное хромовое зондирование не будет работать, таким образом, необходимо будет попытаться проанализировать измененный DOM.

4
ответ дан 1 December 2019 в 01:54
поделиться

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

3
ответ дан 1 December 2019 в 01:54
поделиться

Форум AdBlock говорит , это используется для обнаружения 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);
      }
    }
  }
}
4
ответ дан 1 December 2019 в 01:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: