Отладка

В этой главе перечислены самые частые проблемы, с которыми сталкиваются клиенты при работе с Adspect, их возможные причины и пути решения.

php-curl extension is missing

Сообщение «php-curl extension is missing» означает, что у PHP на вашем сервере отсутствует расширение php-curl. Установите это расширение, чтобы устранить проблему. Обычно оно доступно к установке через пакетный менеджер вашего дистрибутива Linux:

  • Для Debian и Ubuntu:

    apt-get install php-curl
    
  • Для CentOS и Red Hat:

    yum install php-curl
    

Если ваш сервер использует PHP-FPM для запуска PHP-скриптов, то не забудьте перезапустить его:

systemctl restart php-fpm

За помощью в настройке сервера обращайтесь к вашему системному администратору или в техническую поддержку хостинга.

php-json extension is missing

Это сообщение по смыслу аналогично предыдущему, только относится к расширению php-json.

curl error: Couldn’t resolve host name

Данное сообщение говорит о проблеме в настройке DNS на сервере: расширение php-curl не смогло преобразовать доменное имя фильтрующего облака Adspect в IP-адрес. Эта проблема не относится к настройкам потока или способу интеграции Adspect. Обратитесь к системному администратору или в техническую поддержку хостинга для решения проблемы в работе DNS.

File not found

Сообщение «File not found» означает, что вы пытаетесь отобразить несуществующий файл при помощи действия «локальный файл», то есть на сервере нет файла по тому пути, который указан в поле контента/белой страницы.

Искажение верстки страницы

Если при использовании действия «локальный файл» искажается верстка страницы, то убедитесь, что вы не отображаете страницу из поддиректории. Страница должна располагаться в той же директории, где и PHP-файл Adspect. В противном случае поломаются все относительные ссылки на странице, ведь браузер не будет знать о существовании поддиректории и будет пытаться загружать изображения, стили и скрипты по некорректным путям.

Too many redirects

Ошибка «Too many redirects» (ERR_TOO_MANY_REDIRECTS) происходит в том случае, если ваш поток перенаправляет сам на себя. Например, если в качестве контента или белой страницы указан файл index.php потока Adspect вместе с действием редиректа. Убедитесь, что редирект ведет на корректную страницу, а не обратно на вход потока.

Пустая страница

Пустая страница обычно появляется по двум причинам:

  1. Указано действие «без действия», поэтому ничего и не происходит. Установите корректное действие для страницы.

  2. Вы пытаетесь отобразить сам PHP-файл Adspect (index.php, filter.php или страницу, в которую встроен последний) при помощи действия «локальный файл». Либо укажите корректный файл для отображения, либо установите действие «без действия», если вы используете обратную PHP-интеграцию.

Forbidden (ошибка 403)

Эта ошибка вызвана вашим хостинг-провайдером; одним из типичных примеров является виртуальный хостинг Namecheap. Хостинг-провайдер использует WAF (web application firewall, такой как ModSecurity для веб-сервера Apache), который ошибочно блокирует POST-запросы, используемые Adspect для передачи JS-отпечатков.

Если вы используете виртуальный хостинг Namecheap, то отключите ModSecurity по инструкции из базы знаний Namecheap.

В случае с другими хостингами есть два пути решения:

  1. Свяжитесь с технической поддержкой хостинга, чтобы отключить WAF;

  2. Рекомендуется: смените хостинг-провайдера на добросовестного, который не вмешивается в трафик клиентов без их ведома и явного на то разрешения.

Получение JS-отпечатка (MIA)

Если в статистике много переходов, зависших в статусе «Получение JS-отпечатка», то для этого может быть одна из трех типичных причин:

  1. Это переходы «тупых» ботов, которые не способны выполнять JavaScript-код и сформировать отпечаток. Зачастую такие переходы делаются при помощи мобильных приложений и используются для накрутки (скликивания).

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

  3. Ваш хостинг-провайдер блокирует POST-запросы Adspect при помощи WAF, как описано выше. Пройдите по вашему потоку в режиме фильтра и попадите на контент-страницу; если вместо контента вы увидите ошибку «403 Forbidden» или аналогичную ей, то это будет указывать на вмешательство WAF, и вам следует обратиться в техническую поддержку хостинга с этой проблемой.

  4. Закончилось место на диске вашего сервера.

Ошибка в JS-отпечатке

Многочисленные пометки «Ошибка в JS-отпечатке» в отчете обычно свидетельствуют об ошибке интеграции в WordPress-сайт. Убедитесь, что интеграция выполнена в корневой файл index.php WordPress-а, а не какой-либо другой PHP-файл, и что код интеграции добавлен первой строчкой в этот файл.

Нет кликов в статистике

Если переходы по потоку не регистрируются в статистике Adspect, то эти переходы не были обработаны PHP-файлом Adspect, т.е. скрипт для них не вызывался. Для этого есть три типичные причины:

  1. Интеграция выполнена неправильно. Перепроверьте все шаги интеграции и убедитесь, что следуете инструкции дословно. В случае обратной PHP-интеграции перейдите на файл filter.php в браузере и убедитесь, что такой переход исправно регистрируется в статистике потока.

  2. Страница закэширована браузером. Всегда проверяйте интеграцию в режиме инкогнито.

  3. Страница закэширована на стороне сервера. Это часто происходит на WordPress-сайтах со включенным плагином кэширования. Отключите плагин.

Клики помечены как Cloudflare

Если все переходы в потоке имеют пометку «Cloudflare», то это говорит об ошибке в конфигурации вашего веб-сервера в части определения настоящего IP-адреса посетителя.

Эта проблема часто возникает на хостинге Beget: веб-сервер корректно извлекает настоящий IP-адрес посетителя из заголовка X-Forwarded-For, передаваемого прокси-серверами Cloudflare, но зачем-то добавляет к каждому запросу некорректный заголовок X-Real-IP, содержащий IP-адрес сервера Cloudflare вместо IP-адреса посетителя, из-за чего именно этот адрес используется PHP-файлом Adspect в порядке приоритета.

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

Несовпадение числа кликов, высокие задержки

Различия в числе кликов в Adspect, источнике трафика и/или трекере обычно вызваны сетевыми задержками:

  1. Высокий лаг у источника трафика, например медленная мобильная связь 3G/EDGE у посетителей. Располагайте PHP-файлы Adspect максимально близко к целевой аудитории в той же стране (провинции, штате).

  2. Высокий лаг между сервером с PHP-файлом Adspect и вашим трекером. Если нет возможности размещать PHP-файлы Adspect на том же сервере, где расположен трекер, то размещайте оба сервера в одном датацентре.

  3. Высокий лаг между вашим сервером и облаком Adspect. Располагайте PHP-файлы Adspect максимально близко к серверам Cloudflare.

Считайте точное число кликов, дошедших до сервера, по access-логу веб-сервера — только лог содержит первичную информацию обо всех посетителях.

Internal Server Error (ошибка 500)

Это расплывчатая ошибка, которая может быть вызвана разнообразными ошибками как в настройке сервера, так и в коде отображаемой страницы. Лучшее, что вы можете сделать, — обратиться к логу ошибок вашего веб-сервера (часто расположен в файле /var/log/apache2/error.log или /var/log/nginx/error.log, в зависимости от используемого веб-сервера).