Documentation index
- ReadMe
- Things To Know
-
- New Style Rotation
Я рад вам помочь, но в 95% случае начинается все с одного и того же: вопроса что именно не работает и как именно не работает. Поэтому дабы ускорить тот процесс, пожалуйста, сделайте следующее:
Заранее спасибо! чем больше информации - тем быстрее и качественее будет помощь :)
не показывается, белая страница и тп - значит в php.ini выключен вывод ошибок. По белому экрану я так же не могу опредлить в чем именно проблема. Надо выключить вывод ошибок и посмотреть что именно пишет.
1. Проверьте работает ли крон. Вкладка Home. Если там нет надписи “check SCJ crontab job” - следуйте к следующим пунктам. Если есть эта надпись, значит кто-то удалил нашу задачу для крона. Необходимо прописать запуск каждую минуту строки вида
cd /path_to_scj/scj/bin/; env HTTP_HOST=yourdomain.com /path_to_php/php -q cron.php
2. При использовании инклуда
<!--#include virtual=”/scj/cgi/include.php”-->
Если вы загружаете в браузере страницу сиджа, а этот код остается неизменным - значит у вас не включена поддержка SSI. Обратительсь к админу.
3. Если вы используете index.php Смарта убедитель, что в том же каталоге нет других index файлов, например index.html. В зависимости от настроек сервера по умолчанию при запросе урла
http://domain.com/
он может брать файл index.php или index.shtml или index.html и тд. Те если в каталоге лежит index.html - сервер грузит его вместо index.php (файл SmartCJ), те скрипт смарта не отрабатывает и хиты не считаются.
Это так же вариант, как можно посмотреть, куда вас редиректит например внешний ротатор. Поскольку каждый клик проходит много правил - единственный вариант узнать почему вас редиректит туда а не сюда - это хедеры. Итак в протоколе HTTP, говоря простым языком, существует понятие хедеров и контента. В хедерах передается служебная информация, контент - это сама страница, картинка или например флеш. 99% всех редиректов происходит с использование хедера Location. Когда браузер получает от сервера такой хедер он сразу же идет по указанному урлу.
Итак, для того что бы посмотреть куда вас редиректит скрипт надо посмотреть хедеры. Это делается следующим образом (вариантов много, но мне кажется данный наиболее простой и требующий минимальных усилий):
Location: http://site.com/
это редирект.
Так же в хедерах может быть строки типа Current-Click: и тп. Для того что бы разобрать каждую конкетную ситуацию надо именно хедеры.
Варианта 2:
1. если вы используете для подсчета кликов инклуд
Проверить это очень просто. Если вы используете include.php переименуйте его в include_scj.php и создайте файл include.php следующего содержания
<?php $f = fopen('./log.txt', a); fputs($f, date('H:i') . " {$_SERVER["HTTP_REFERER"]} \n"); fclose($f); include('include_scj.php');
потом создайте файл log.txt и chmod его 666
Скрипт очень простой, он просто пишет рефы в файл. Ставьте скрипт на час или сутки по желанию и в конце этого периода загрузите файл в эксель и отсортируйте - так будет проще посчитать сколько было хитов с нужным рефом и соотв узнать сколько было хитов с нужного домена.
2. если вы используете индекс смарта
<?php $f = fopen('./log.txt', a); fputs($f, date('H:i') . " {$_SERVER["HTTP_REFERER"]} \n"); fclose($f); include('index_scj.php');
Все. Скрипт очень простой, он просто пишет рефы в файл. Ставьте скрипт на час или сутки по желанию и в конце этого периода загрузите файл в эксель и отсортируйте - так будет проще посчитать сколько было хитов с нужным рефом и соотв узнать сколько было хитов с нужного домена.
Если надо посчитать кол-во КЛИКОВ все практически так же.
<?php if ($_COOKIE['from'] == 'trader.com') { $f = fopen('./log.txt', a); fputs($f, date('H:i') . " {$_SERVER["REMOTE_ADDR"]} \n"); fclose($f); } include('out_scj.php');
где trader.com соответственно нужный трейдер.
потом остается только посмотреть кол-во строк в лог файле за выбранный промежуток времени.
A: Клики считаются по кукам. При ИНЕ пользователю ставится кука, в которой записано от какого трейдера он пришел. При кликах считывается эта кука и соответствующему трейдеру зачисляется клик. Если при клике скрипт не может прочесть куку (ее нет) - скрипт записывает такие клики в nocookie.
Технология работы кук такова, что если кука была поставлена на странице на домене www.asd.com, то на странице с домена asd.com она НЕ будет видна. Прочесть подробнее про это можно в RFC 2965 и RFC 2109.
Что это значит в нашей ситуации: если серфер пришел к вам на страницу
http://www.site.com/
а линк к ауту
http://site.com/out.php
(те без www), то на аут куки переданы НЕ будут и клики будут засчитаны как нокуки. Что бы такого не было надо все линки на аут делать относительными.
<a href='http://site.com/out.php'>Click here</a> - НЕПРАВИЛЬНО <a href='/out.php'>Click here</a> - Правильно
Бывают частные случаи, например : У трейдера прописана Personal Page. Трейдер шлет вам как
http://host.com/
, а в Personal Page прописано
http://www.host.com/trader.html
, те теряется кука. Что бы избежать этого лучше прописывать персональную страницу как путь те просто trader.html (без http:/www..)
Надо включить в сетттингах Debug out.php и посмотреть хедеры (как это сделать описано выше). Если не ясно все равно - обращайтесь к суппорту с хедерами.
Часто сталкиваюсь со сл. ситуацией: при ошибках вебсервера (403, 404 ) редиректит на корень домена. При отсутствующей карнитке на индексе браузер загружает вместо отсутствующей картинки - индекс, так мы получаем 2 ина при одном заходе.
Вариант 2: на корне лежит индекс смарта. При этом в CJ Pages так же прописан тот же индекс, получается что индекс инклудит сам себя.
Вариант 3: включена опция Use SmartCJ as toplist script, а у вас обычный сидж.
Вероятнее всего проблема в настройках resolv сервера. Скрипт проверяет наличие в бане этого сервиcа (http://www.uribl.com/about.shtml) запуском команды в шеле
host -tA trader.com.multi.uribl.com
Если домена нет в базе сервис должен ответить что-то вроде
Host trader.com.multi.uribl.com not found: 3(NXDOMAIN)
Если у вас отвечает например “can not connect” или “can not resolve” - надо обратиться к админу и попросить поправить resolv.conf. Как вариант показать доку (http://www.uribl.com/about.shtml) с описанием того, как это должно работать.
Скрипт пишет хистори каждый час в определнную минуту. Если в нужную минуту скрипт не будет запущен - хистори не будет записана. Следовательно основная причина - cron.php запускается не каждую минуту. Причины - локи в кроне, неправильно прописан крон и тп.
Проверяет очень просто: все части скрипта которые работают с траффиком инклудят файл common.php соответственно можно дописать в этот файл небольшой простой код, который будет логгировать в текстовый файл все обращения к скрипту.
$f = fopen('полный путь до log.txt', 'a'); fputs($f, date('Y-m-d H:i:s') . " file {$_SERVER['REQUEST_URI']} ref {$_SERVER['HTTP_REFERER']} ip {$_SERVER['REMOTE_ADDR']}\n"); fclose($f);
Все. В скрипте как видно 3 строки, ошибиться просто негде, потом можно посчитать кол-во запросов нужных к нужному скрипту (ин\аут) и сравнить с тем что есть в скрипте. Удобно отфильтровать напрмиер в экселе.
Сейчас гугл все больше любит сайты которые подписаны сертификатом (https). Вопрос трейда заключается в том, что по дефолту при переходе с https на http реферер не передается, соответственно траффик приходит как нореф.
В этой ситуации есть 2 выхода:
Таг добавляется в <head> вашего документа и имеет вид <meta name=“referrer” content=“unsafe-url”>
Есть следующие варианты значения тага:
Из этого нас интерисуют только origin и unsafe-url. Технически для трейда достаточно origin. Однако, учитывая что в скрипте часто используется редирет на нишу по реферу трейдера, лучше использовать unsafe-url.
Хотелось бы отметить, что это не фича какого-то скрипта, а фича современных браузеров.
99% проблем с аутом решаются просмотром дебаг хедеров out.php
Обычно по хедерам сразу ясно что как и почему, если что-то не ясно - суппорт на форуме поможет разобраться.