Как отслеживать количество просмотров/активность просмотра изображений?

Вопрос или проблема

Прежде всего, пожалуйста, простите меня, если это не в том разделе. Я всегда кажется, выбираю неправильный сайт, когда дело касается вопросов о компьютерах.

В свете недавних, бурно распространенных интернет-событий, мой друг и я сформулировали идею провести эксперимент, чтобы увидеть, как работает этот феномен. Однако я не уверен, как будет работать исходная часть.

Мы разместим один файл изображения (.jpg/.png/.gif) на нашем сервере. Изображение не предназначено для размещения на одной веб-странице – предполагается, что это изображение будет перепоститься, делиться и так далее. То, что сам файл изображения размещен на нашем сервере, останется постоянным (мы не учитываем ситуации, когда изображение сохраняется/архивируется и размещается в другом месте, а затем просматривается).

Мы хотели бы иметь возможность просматривать журнал посещений, которые получает изображение, вместе с IP адресами просматривающих компьютеров (чтобы выяснить прогрессивное географическое распространение изображения).

Во-первых, возможно ли это? Я видел много изображений, на которых написано ‘ваш IP такой-то, используется Safari…’, а также видел много случаев, когда изображение “знает”, когда оно размещено на сайте, отличном от домашнего (чтобы предотвратить хотлинкинг).

Во-вторых, как это можно осуществить? Может ли программа аналитики отслеживать такие конкретные посещения простого файла изображения?

Просто настройте веб-сервер, поместите изображение на него и настройте логирование так, как вы хотите. Я думаю, что стандартная конфигурация логирования Apache должна быть достаточной.

Вы можете передавать этот лог в любую аналитическую программу, которую вы хотите.

Вы задали несколько вопросов, поэтому я разделю ответы

  1. Мониторинг логов
  2. Динамические изображения

Мониторинг логов

Вы можете просто наблюдать access.log (предполагая, что это Apache), чтобы увидеть обзор исходных IP и посещений файла, который вы хотите. Но это не даст вам никакой полезной/осязаемой информации – особенно с учетом того, что вы спрашиваете, какие пакеты аналитики можно использовать для достижения этого.

Существует несколько бесплатных приложений, которые могут делать то, что вам нужно, хотя и с большей сложностью (и функциональностью, чем вам, вероятно, требуется). Они работают на уровне сервера, анализируя журналы доступа. Два хороших примера:

  1. Webalizer
  2. Awstats

Динамические изображения

Если вы хотите, чтобы изображение содержало динамически генерируемую информацию, такую как источник IP, количество посещений, дата/время … список бесконечен; вам потребуется использовать какой-то язык программирования.

В зависимости от платформы, которую вы используете для вашего веб-сервера, вам доступны разные варианты. Например, с PHP, вы можете использовать библиотеку Image GD

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

Вопреки мнению других, это на самом деле самый простой способ отслеживать и генерировать динамически создаваемое изображение. flair значки Server Fault — хороший пример этого.

Затем вы можете объединить свои данные из этого с расширением PECL GeoIP и построить свою карту географического распространения, как вы хотите.

Если вы хотите действительно простое решение, вы можете вставить URL изображения в сокращатель ссылок, такой как tinyurl.com, оплатить подписку у них, а затем отслеживать, сколько людей посещает любые URL, которые вы создаете там.

Это не “бесплатно”, но и запуск собственного сервера таковым не является.

Ответ или решение

Теория

Чтобы отследить количество просмотров и активность в отношении конкретного файла изображения, необходимо использовать серверное решение. Стандартные веб-серверы, такие как Apache или Nginx, предоставляют базовые возможности для логирования всех запросов, включая запросы на изображения. Таким образом, можно собрать информацию о количестве загрузок изображения, IP-адресах пользователей и других аспектах их активности. Это может включать методы предотвращения хотлинкинга и динамическое создание изображений с целью получения более подробной аналитики.

Пример

Рассмотрим Apache. По умолчанию этот сервер логирует все запросы в файл access.log, который содержит всю необходимую информацию для отслеживания просмотров изображений. Пример записи в логе может выглядеть так:

192.168.1.1 - - [12/Oct/2023:06:25:24 +0000] "GET /images/sample.jpg HTTP/1.1" 200 1234 "http://referrer.url/" "User-Agent: Mozilla/5.0..."

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

Для более углубленного анализа можно использовать инструменты, такие как Webalizer или Awstats. Эти программы парсят логи сервера, позволяя получить отчеты с визуализацией данных, включая географию пользователей.

Приложение

Логирование

Для настройки логирования в Apache вам может понадобиться изменить конфигурацию. Добавьте или измените записи в конфигурации виртуального хоста:

CustomLog ${APACHE_LOG_DIR}/access.log combined

Этот формат комбинированного логирования обеспечит максимальный объем данных для анализа. Затем вы можете установить и настроить такие инструменты, как Webalizer или Awstats, чтобы автоматически обрабатывать эти логи и представлять их в вычислимом и наглядном виде.

Динамические изображения

Чтобы добавить в изображения динамические данные, такие как IP-адреса и количество нажатий, можно использовать язык программирования, который поддерживает графические библиотеки. Например, в PHP имеется библиотека GD, которая позволяет генерировать изображения "на лету". Вот простой пример кода на PHP:

<?php
header('Content-Type: image/png');

$im = imagecreatetruecolor(200, 50);
$bgColor = imagecolorallocate($im, 0, 0, 0);
$textColor = imagecolorallocate($im, 255, 255, 255);

imagefilledrectangle($im, 0, 0, 199, 49, $bgColor);
imagestring($im, 5, 10, 10, 'IP: ' . $_SERVER['REMOTE_ADDR'], $textColor);

imagepng($im);
imagedestroy($im);
?>

При каждом обращении к данному скрипту, он будет создавать изображение, содержащее текст с IP-адресом клиента. Такие динамические изображения энергетически затратны для сервера, поэтому рекомендуется их использовать вдумчиво.

Гео-локализация

Для анализа географии просмотров можно использовать расширения, такие как PECL GeoIP в PHP, которое позволяет определять местоположение пользователя по IP-адресу. Это поможет вам создать карту распространения вашего изображения.

Вывод

Отслеживание просмотров и активности изображения требует комбинации разных технологий и подходов. Логирование запросов на сервере — это простое решение для получения данных. Если вы хотите расширить функционал и добавить элементы динамического контента, нужно будет использовать серверные языки программирования и графические библиотеки. Комплексный анализ позволит вам понять распространение вашего контента и реакцию аудитории, помогая сделать правильные выводы для дальнейшего продвижения или оптимизации.

Оцените материал
Добавить комментарий

Капча загружается...