Определить, загружено ли изображение на страницу - PullRequest
1 голос
/ 24 мая 2009

Мой вопрос не такой: Независимый от браузера способ определить, когда изображение было загружено

У меня есть реклама на моем сайте, за которую мне платят за показ, в последнее время я наблюдаю резкое снижение количества показов, получаемых каждым объявлением, однако я получаю больше средних просмотров / месяц. Могу ли я определить, загружено ли изображение или загружено что-то вроде 404 (обычно с дешевыми рекламными блокировщиками)?

Ответы [ 5 ]

2 голосов
/ 24 мая 2009

Как ты считаешь сейчас? Судя по вашему вопросу, я подозреваю, что вы анализируете журнал сервера или изображения передаются через динамический URL. Если это так, то падение может быть вызвано кэшированием клиента или прокси. Пользователи просматривают рекламу, но запрос не попадает на ваш сервер.

Очевидным решением было бы отключить кеширование, но это крайне грубо для ваших посетителей. Общий подход сейчас заключается в использовании GIF 1px в качестве маяка для подсчета рекламы. JS тоже будет работать, но вы теряете попадания, когда JS отключен.

<div id="ad">
  <img src="/real.gif?ad_id=3435">
  <img src="/beacon.php?ad_id=3435&random=6354377">
</div>

Кстати: если подсчет выполняется поставщиком рекламы, то всегда есть вероятность, что он лжет. Обычно люди, продающие на рынке, не являются самыми честными или принципиальными людьми.

0 голосов
/ 24 мая 2009

1.) Существует событие загрузки для изображений ... вы можете увидеть, когда / если оно сработало.

2.) Вы можете использовать DOM / JS, чтобы увидеть, существуют ли свойства изображения и соответствуют ли они ожидаемым.

3.) Имейте в виду, что если у изображения нет уникального пути или оно обслуживается для кэширования, браузер не будет повторно получать изображение (поэтому повторные посещения не будут перезагружать изображения)

Для справки: если вам платят за одно впечатление, вам очень повезло. Большинство систем заботятся только о хитах. Таким образом, если изображение загружено, оно ничего не значит ... но если пользователь щелкает по нему, то есть компенсация.

0 голосов
/ 24 мая 2009

Одним из способов было бы зарегистрировать загрузку изображения с помощью Ajax, используя событие загрузки изображения. Если вы загружаете страницу таким же образом, вы можете сравнить загрузки страниц с загрузками страниц, которые успешно загрузили изображение.

<img src="..." onload="logMe(this)" />

function logMe(img) {
   now = new Date()
   src = this.src

   ....your Ajax code that writes to the server log.

}
0 голосов
/ 24 мая 2009

При загрузке изображения к тегу изображения в IE добавляется свойство «complete». Вы также можете прослушивать события «load» и «error» на изображениях.

0 голосов
/ 24 мая 2009

Зачастую блокировщики рекламы не являются причиной "драматического падения" ...

Вы можете добавить javascript, который будет «пинговать» ваш сервер рекламных изображений, или вы можете проверить, загружаются ли ваши изображения ... Оба очень просты в реализации, но если это не удастся, это будет мешать легальным пользователям. Например, я ненавижу, когда страницы зависают при закрытии, потому что кто-то собирает статистику и отправляет запрос на сервер в событии onunload ...

...