User Tools

Site Tools


ru:update_50

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ru:update_50 [2014/01/29 18:20] (current)
Line 1: Line 1:
 +====== Update 50 ======
 +
 +===== Rotation =====
 +
 +==== Separate slugs  ====
 +
 +До апдейта 50 у слейвов и мастера были одинаковые слаги галер, несмотря на то что можно было сделать разные дески например для мастера и каждого из слейвов. Теперь это происходит автоматически,​ те каждый слейв получает свой слаг на основе своего персонального деска, если конечно вы юзаете персональные дески для слейвов.
 +
 +==== Template Main Tag ====
 +
 +Проблема:​ у нас есть какая то страница на которой 2 тага: <thumb group=A num=1-10 and <thumb group=B num=1-10 ​
 +Возникает проблема с навигацией,​ поскольку не ясно по какому из тагов считать максимальное кол-во страниц. Для того что б пофиксить это введен параметр page_main_tag
 +те <thumb group=B num=1-10 page_main_tag=true в данном варианте посчитает навигацию по этому тагу.
 +
 +==== Mobile Templates ====
 +
 +Если вы хотите отдельный дизайн для мобильных устройств то можно либо попробоватьс делать это стилями и подключать разные стили в нужный момент,​ например в темпелйте
 +
 +<​code>​
 +<?
 +if (список браузеров мобильных) ​ {
 +стиль1
 +} else {
 +стиль2
 +}
 +?>
 +</​code>​
 +
 +либо вариант 2: начиная с версии 50 любой темплейт может быть продублирован темплейтом с таким же именем,​ но с mobile_ в начале,​ и мобильный траффик получит темплейт с mobile. Например,​ у нас есть index, mobile_index и content_custom_pic (mobile_content_custom_pic нету).
 +Серфер мобильный пришел на индекс - ему покажет темпелейт mobile_index.
 +Далее он попал на галерею - ему покажет content_custom_pic,​ тк mobile_content_custom_pic нету.
 +
 +
 +**NOTE** Если по какой-то причине вы хотите дать возможность пользователю выключить этот функционал - есть параметр &​skip_mobile_templates=yes в этом случае скрипт не будет подставлять мобильные темпелйты. Если надо включить снова функционал - skip_mobile_templates=no
 +
 +==== Banners ====
 +
 +В версии 50 появились полноценные баннеры. Ранее у каждого спонсора было просто поле Banner куда можно было вставить html и вывести на странице гали. Это было не совсем удобно тк если там была картинка самого баннера то ее надо было закачивать отдельно. Баннеров можно было добавить 2 максимум,​ к тому же никакой внятной статистики по баннерам не было и крутить их можно было только рэндмно то один то другой. ​
 +
 +
 +Сейчас можно:
 +
 +  * добавить сколько угодно баннеров с привязкой с модели,​ категории,​ спонсору
 +  * можно не выбирать категорию и моделей - тогда будет показывать вне зависимости от категории
 +  * у каждого баннера появился цтр и в целом происходит ротация баннеров так же как тумб, те мы тестируем новые баннеры и потом показываем только лучший
 +
 +Все баннеры видны в Rotation - CMS - Settings - Banners.
 +
 +Но более используемое видимо будет редактирование спонсора. Для обратной совместимости старые вариант баннеров остались как и были в закладке OldStyle banners. Новый вариант в закладке Banners 2.0
 +
 +Начинаем с того что для каждого спонсоора добавляем баннеры. По умолчанию баннер это картинка + html код вокруг это картинки. Минимальный и видимо наиболее используемый вариант будет ​
 +
 +<​code>​
 +<a target=_blank href='/​goto/<​!--GALLERY_SLUG-->/?<​!--THUMB_LINK-->'><​img src='<​!--THUMB_URL-->'></​a>​
 +</​code>​
 +
 +Технически баннеры это тумбы и таги у них практически такие же. GALLERY_SLUG баннер получает автоматически,​ THUMB_URL это закачанная вами картинка. THUMB_LINK так же как и в тумбах для учета кликов по баннеру и соответственно учета цтр баннера. Можно даже оставить такие же линки как для галер, но выглядело бы это немного криво, поэтому добавлен новый префикс /goto для баннеров. Новый реврайт
 +
 +<​code>​
 +RewriteRule ^goto/​([^/​]+)/​$ /​scj/​cgi/​out.php?​link=images/​%{QUERY_STRING}&​url=content&​p=100&​skip_to_cookie=true&​skip_sell=true&​go=banner&​slug=$1 [L]
 +
 +для nginx 
 +
 +rewrite ^/​goto/​([^/​]+)/​$ /​scj/​cgi/​out.php?​link=images/​$query_string&​url=content&​p=100&​skip_to_cookie=true&​skip_sell=true&​go=banner&​slug=$1 last;
 +</​code>​
 +
 +
 +Кроме этого у баннера есть группа. Группы баннеров это не тоже самое что группы трейдеров или группы ротации,​ это отдельный группы для разделения баннеров например по размеру или месту расплоложения в дизайне.
 +
 +В темплейте там где надо вывети баннер пишем ​
 +
 +<​code>​
 +<banner num=1></​banner>​ - выведет первый баннер по цтр из всех.
 +
 +для тага <banner действуют точно такие же правила как и для тумб. Например
 +
 +<banner sponsor=sponsor_name num=1></​banner>​ - выведет баннер опредленного спонсора
 +<banner group=some_group num=1></​banner>​ - баннер по группе и тп
 +
 +Например на кастом гале можно вывести ​
 +
 +<banner sponsor=CURRENT_ITEM_SPONSOR num=1></​banner>​ - выведет лучший по цтр баннер спонсора текущей гали
 +<banner sponsor=CURRENT_ITEM_SPONSOR num=2></​banner>​ - выведет 2й по цтр баннер спонсора текущей гали
 +
 +Кроме этого размеры бывают разными по размеру (либо каким-то другим парамтерам),​ для этого можно ихподелить на группы. При добавлении баннера можно указать его группу например "​100x100"​ или например "​200x200"​. Например у спонсора 5 баннеров,​ 2 размера 100 на 100 и 3 размера 200 на 200 в соотв группах. Можно вывести на кастом галере
 +
 +<banner sponsor=CURRENT_ITEM_SPONSOR num=1 banner_group="​100x100"></​banner>​ - выведет лучший по цтр баннер спонсора текущей гали из группы 100х100, таким образом хорошо вписавшись вам в дизайн и при этом сохраняя ротацию баннеров. Можно на галере иметь например 3 места где буду баннеры одного размера и скрипт поставит более кликабельный баннер выше.
 +
 +
 +</​code>​
 +
 +Добавляется баннер в Rotation - CMS - Settings - Banners. Banner URL - куда будет слать по клику на баннер. Banner Source - можно указать или урл (тогда картинку оттуда скачает) или сразу залить баннер со своего комьютера. Description (HTML) - это фактически сабтемплейт баннера. Поскольку баннеры фактически основаны на системе тумб для для беты таги такие же, в релизе наверно надо будет заменить на более красивые таги что бы масетра не путались. Те картинка баннера это таг THUMB_URL, GALLERY_SLUG - это слаг баннера,​ который генерится из Banner name, а если не задавать Banner name то из имени спонсора.
 +
 +
 +
 +**Мультибаннеры** - лучше названия пока не придумано :) Смысл следующий. Например вы рекламируете cam сайт, есть фактчиески один и тот же баннер,​ но в 10 вариантах с разными моделями. Те по факту баннеров 10. Вешать 10 баннеров одного и того же спонсора на галеру смысла нет. Надо один но наиболее кликабельный из этих 10. Для этого при добавлении баннера есть [+] около Banner image. Оно создает поле для еще одного баннера (или 10, соклько вам надо). Таким образом добавляется 1 запись баннера,​ НО с 10 разными картинками. По аналогии как галерея одна, но у нее 10 тумб ротации. Скрипт ротирует эти 10 баннеров,​ выбирая какой из них лучше и по итогу через какое-то время останется наилучший из 10.
 +
 +==== Import Replacements :: EMPTY_VALUE ====
 +
 +Есть метатаги для заменяемых полей. Начальная идея для добавления этих полей в следующем:​ часто спонсоры дают только 1 описание для галерей,​ при этом было бы удобно иметь в кастом галерее сколько описаний (синомизированных конечно) для улучшения СЕО. Для этого нам надо например description скопировать в alt (title) и скрипт его синонимизирует позже. Для автоматизации процесса копирования в Replacements добавлено несколько метатагов,​ а именно отдельный ​
 +
 +  <​!--EMPTY_VALUE-->​ - означающее что поле пустое
 +  и полный список полей галереи
 +  {DESCRIPTION} {ALT} {URL} и так далее
 +
 +
 +Таким образом дабы из одного описания получить 2 надо сделать следующее:​
 +
 +<​code>​
 +Добавить replacement
 +
 +If this field = Title
 +Contains this value = <​!--EMPTY_VALUE-->​
 +Then Search For  - * (* тут значит полностью все поле)
 +in This Field - Title
 +And Replace it With - {DESCRIPTION}
 +
 +Что значит если значение в поле Title = пусто тогда заменить его на description галеры.
 +
 +</​code>​
 +
 +Можно менять на что-то еще, например,​ на урл. Возможно пригодится в будущем.
 +
 +==== Import Replacements :: external:: ====
 +
 +Технически эта возможность была добавлена для перевода описаний,​ но ее так же можно использовать для модификаций полей таким образом,​ который не предусмотрен в скрипте.
 +
 +Пример,​ мы хотим рендомно в конце фразы добавлять "​!"​ или "​.."​
 +
 +<​code>​
 +Скрипт который будет делать такую замену,​ условно http://​domain.com/​replace.php
 +
 +<?php
 +$rand_char = (rand(0, 100) > 50) ? '​!'​ : '​..';​
 +echo $_GET['​phase'​] . $rand_char;
 +
 +</​code>​
 +
 +Теперь добавим правило,​ которое будет непосредственно делать замену
 +
 +<​code>​
 +
 +If this field = URL
 +Contains this value = http (те по факту все добавляемые галеры)
 +Then Search For - * (* тут значит полностью все поле)
 +in This Field - Alt (Title)
 +And Replace it With - external::​http://​domain/​replace.php?​phase={ALT}
 +
 +Что значит для каждой импортируемой галеры скрипт запросит урл ​ http://​domain/​replace.php?​phase={ALT} где {ALT} будет заменено актуальным значением,​ replace.php вернет значение с добавленным символом и скрипт сохранит новое значение в ALT.
 +
 +</​code>​
 +
 +
 +Пример 2, который ничем не отличается от 1, кроме того что показывается,​ что сохранить можно и в другое поле, те измененное значение мы запишем не в то же поле alt, а в поле Description
 +
 +
 +<​code>​
 +
 +If this field = URL
 +Contains this value = http (те по факту все добавляемые галеры)
 +Then Search For - * (* тут значит полностью все поле)
 +in This Field - Description
 +And Replace it With - external::​http://​domain/​replace.php?​phase={ALT}
 +
 +Что значит для каждой импортируемой галеры скрипт запросит урл ​ http://​domain/​replace.php?​phase={ALT} где {ALT} будет заменено актуальным значением,​ replace.php вернет значение с добавленным символом и скрипт сохранит новое значение в Description.
 +
 +</​code>​
 +
 +
 +==== Translations ====
 +
 +Это тестовая функция.
 +
 +Предыдущие 2 пункта нам понадобяться для данного пункта.
 +
 +Дописывается.
 +
 +
 +==== Rotation Thumb - Gallery Thumb Link ====
 +
 +Тестовая опция для связи тумб ротации и тумб галеры. Как вы наверно знаете тумбы ротации и тумбы самой кастом галеры - это 2 разных сета тумб. Сделано это дабы например тумбы ротации могли быть условно 100 на 100, а тумбы га кастом галерее - 200 на 200. Проблема была в том, что если вы нарезаете руками в Preload то обрезается только тумба ротации,​ а тумба галеры добавляется без кастом обрезаний. С новой опцией скрипт обрезает одинаково обе тумбы, конечно сохраняя при этом размеры (100 на 100 и 200 на 200 в нашем примере). По деофлту опция выключена,​ включается в Rotation - Settings
 +
 +==== Skip Countries ====
 +
 +В настройках ротации появилась возможность задать список стран, клики с которых не должны учитываться в ротации. Обратите внимание что клики учитываются с этих стран в трейдера все равно, вне зависимсоти от этой настройки. Те она влияет на учет кликов только при расчете CTR.
 +
 +==== Row Massedit ====
 +
 +Появился еще один пункт для массового редактирования галер - Rotation - Row Massedit. Вид такой же как импорт.
 +Добавляется дамп виде URL|description и массово меняются описания описания галер соответствующих урлам. Наличие урла обязательно. Вместо или в дополнение к description может быть практически любое поле.
 +
 +==== Tube Embeded Switch Rules  ====
 +
 +В сетингах ротации новая опция для продающих траффик на тубы. ​
 +Смысл следующий:​ часто туб дает как прямой урл, поторому можно послать траффик и получить денежку,​ так и ембед код, который можно крутить у себя но денег за это не получаешь. Тубы платят только на уникальный,​ поэтому имеет смысл послать одного серфера туда только 1 раз, если же он еще раз кликает на галеру этого туба - имеет смысл показать ему ембед галеру и там уже монетизировать иными способами. ​
 +
 +Кроме этого часто тубы выкупают (считают) траффик только определенных стран. ​
 +
 +Поэтому в настройках можно внести следующие данные в формате domain|countries (comma separated).
 +
 +<​code>​
 +например
 +
 +xhamster.com|US,​GB,​DE ​
 +drtuber.com|US,​IT,​RU
 +и тп  ​
 +
 +Для галер у которых исходный урл содержит один из указанных доменов будет действовать правило:​ если серфер у этого спонсора еще не был шлем на внешний урл, если уже был - показываем эмбед галеру. Если домена нет в этом списке - все работает как и раньше,​ те серфер всегда видит ембед галеру (если это конечно эмбед галера). Таким образом для своих эмбед галер или галер какого-то туба, который не платит за траффик и соответственно не имеет смысла туда слать его, правило действовать не будет.
 +
 +PS если список стран не указан - значит правило действует для всех стран.
 +
 +</​code>​
 +
 +==== Cache Engines (New) ====
 +
 +Базовый принцип работы движка - сгенерить нужную страницу,​ положить ее в кеш на определнное время и показывать ее пока кеш не проэкспарится. Какие движки есть на данный момент:​
 +
 +**Файловый** ​
 +Базово кеш хранится в файлах (scj/cache - файловый кеш). ​
 +Плюсы - он работает везде и сразу. ​
 +Минусы - это именно файловый кеш, он он не так быстр, не так эффективно кешится системой как хотелось бы и приходится отдельлно заботиться о размере папки с кешем.
 +
 +**Memcached**
 +В свое время это конечно был большой шаг вперед в плане кеширования.
 +Плюсы - все его знают, админы без проблем ставят на хостиинг,​ его просто администриировать и тп.
 +Минусы - никакого понимания о реально занимаемой памяти получить практически невозможно,​ при перегрузке сервака весь кеш удаляется и нужен тн "​разогрев кеша"​ те положить туда наиболее используемые данные. При перегрузке сервака из-за нагрузки это серьезная проблема - сервак и так нагружен,​ а тут еще и всесь кеш исчез. ​
 +
 +Все данные одинаково прокешены - не важно это наиболее используемые или использзуемые раз в час - они все висят одинаово в памяти и сервис не умеет их скинуть на диск например. ​
 +
 +В мемкешем невозможно прибить кещ для одного сайта. У сайтов общее пространство кеша и прибивая кеш - прибивается кеш для всех сайтов сразу. Можно конечно руками запустить несколько инстансов мемкеша на разных портах,​ но это надо просить админа и часто это проблема и в целом неудобно.
 +
 +**Поэтому сейчас появились новые движки которые рекомендуются к использованию**
 +
 +В новых движках которые базово называются NoSQL решения существует намного больше возможностей нежели будет описано ниже, но для текущих целей кеширования будут описаны базовые.
 +
 +Решение на которое наиболее просто перейти - **Couchbase** ​
 +**CouchBase** - это продолжение MemBase, видимо ближайщего потомка memcachedb, который в свою очередь родом из memcached.
 +
 +Главное - от вас не требуется практически никаких движений дабы начать его использовать. Вы ставите CouchBase и он работает точно так же как мемкеш. Те для того что бы начать его использовать надо ​
 +  - попросить админа поставить CouchBase
 +  - прописать в конфиге мемкеш ​
 +<​code>​
 +$config['​memcached_host'​] = '​127.0.0.1';​
 +$config['​memcached_port'​] = '​11211';​
 +</​code>​
 +
 +и все, вы уже используете современную версию мемкеш. Вы можете это использовать даже с версией 48-49.
 +
 +**Чем это лучше чем memcached** ​
 +  * Нет понятия "​разогрев кеша"​. По факту это файловый кеш,но сделанный на порядок правильнее,​ который намного меньше грузит диск, просчитывает когда и как лучше записать данные блоком на диск и тп. Данные при этом лежат как бы в нескольких файлах,​ а не сотнях файлов как файловый кеш.
 +  * Проэкспаренные данные исчезают с диска\памяти сами, не надо самостоятельно заботиться об этом.
 +  * Можно так же как и с мемкешем ограничить кол-во памяти выделенное под кеш, но при этом кеш не будет ограничен этим кол-вом. Даже если данных будет больше - оно оставит самые активные в памяти,​ а остальное сгрузит на диск. И подгрузить нужный элемент с диска - быстрее чем сгенерить его по новой.
 +  * Можно быстро и просто масштабировать систему из вебадминки
 +  * Можно легко завести несколько кешей. В варианте Couchbase - это как несколько мемкешей,​ но делается все опять же из вебадминки,​ что быстро и удобно. те можно завести например 10 кешей, каждый из которых будет на своем порту и просто указать для каждого сайта свой порт. В этом случае осуществиться желание о внопке "​Удалить весь кеш"​ - вы сможете из вебадминки удалять весь кеш для одного сайта.
 +  * При перезде кеш легко скопировать поскольку копируется не масса мелких файлов как с файловым кешем, а одна база.
 +
 +
 +**Redis** - отдельный написанный с 0 проект NoSQL базы. Смысл его для наших целей практически тот же (в реальности couchBase это уже больше document oriented хранилище,​ а Redis - чисто key-value хранилище ). Для работы с ним функционал был добавлен в версии 50.
 +
 +Для того что бы начать его использовать надо ​
 +  - попросить админа поставить Redis 
 +  - попросить его же поставить модуль redis для пхп ​
 +  - прописать в config.php ​
 +<​code>​
 +$config['​redis_host'​] = '​127.0.0.1';​
 +$config['​redis_port'​] = '​6379';​
 +$config['​redis_database'​] = 0; 
 +$config['​redis_password'​] = '';​
 +
 +если redis висит на сокете то выглядеть будет примерно так ​
 +
 +$config['​redis_host'​] = '/​tmp/​redis.sock';​
 +$config['​redis_port'​] = '​0';​
 +
 +</​code>​
 +
 +и все. ​
 +
 +В данным конфиге кроме понятных полей есть несколько новых. redis_password - в большинстве случаев не актуально посколько сейчас все на dedicated servers. ​
 +redis_database - у Redis нет буквенных названий баз, а есть номера. те если у вас несколько сайтов - вы можете указать каждому сайту свой номер. Но можно и не указывать и использовать одну базу для всех сайтов. Разница будет в том, что если вы захотите скинуть весь кеш и у вас используется одна база для всех сайтов - кеш удалится для всех сайтов. Если же у каждого сайта будет своя база - кеш скинется для одного.
 +
 +**Чем это лучше чем memcached** ​
 +  * Все теже плюсы и в случае couchbase. ​
 +  * Redis более заточенное под кеш решение,​ но у CouchBase готовая удобная админка (говоря о версии 2+).
 +
 +
 +==== Preload 1 - Cast priority ====
 +
 +В Rotation - Preload 1 появилась возможность выделять более кликабельную тумбу с гали. Например,​ вы добавили 10 тумб на галеру. Скрипт должен все из них протестить,​ что б понять какая лучшая. Но вам кажется что вот именно эта точно лучше. Можно по ней кликнуть 2 раза, она выделится желтой рамкой и будет добавлена как тумба с cast priority. Это не значит что для данных 10 тумб ротация остановится. Это значит только то, что сначала будет тестироваться тумба с cast priority и потом все остальные.
 +
 +
 +==== Import : Separate descriptions ====
 +
 +Обратите внимание,​ что если вы используете раздельные дески для слейвов,​ то при импорте можно добавить сразу нужный деск для этого слейва. См. Pattern.
 +
 +==== Test Positions End ====
 +
 +До 50 было 2 параметра для тестирования тумб - % of test places on page (например 15%, значит если на странице 100 мест под тумбы то 15 мест пойдет под тестовые показы) and Test positions start (для того что б новые тумбы не тестировались в самом верху, а вверху всегда были толко уже отротированные тумбы). В 50 добавлена Test positions end , что бы не тестировать тумбы на последних позициях страницы,​ где они могут получить совсем мало кликов. Актуально для сайтов с большим трафом. По деофлту стоит 0 - значит тестировать на любых местах страницы.
 +
 +
 +==== Sponsor Mix (Max Distance) ​ ====
 +
 +В тестовых сеттингах ротации новая фича ориентированная повышение уникальности траффика на спонсоре. Допустим у нас 3 спонсора и мы выводим 5 тумб. Может получиться по спонсоорам примерно так 1 1 1 2 3 (так получилось по цтр). Все тумбы спонсора 1 будут на верних позициях и вероятнее всего получат больше кликов. Мы может немного перемешать их что бы получилось что вроде 1 2 1 3 1. Это конечно собъет порядок по цтр, но теоретически повысит уникальность на спонсоре.
 +
 +Но мы так же не хотим слишком сильно смешать,​ тк это уже больше нарушит продуктивность. Например Max Distance - 5. Значит если между тумбами разных спонсоров больше 5 тумб - передвигать не будем, дабы не попали тумбы с самого низа - наверх.
 +
 +По дефолту стоит 0 = не перемешивать.
 +
 +==== Group Massedit ====
 +
 +Иногда необходимо сменить у групп custom var например. Обычный massedit тут не подходит тк такие переменные обычно надо менять на какие то разные данные. Для этого можно воспользоваться Mass Add: если вы добавляете группу с именем. которое уже существует - скрипт не пропускает ее, а обновляет данные группы новыми данными. Те в нашем примере достаточно добавить группу с таким же именем,​ но другими данными custom var.
 +
 +==== Sphinx 50 ====
 +
 +Поскольку база для этого немного поменялась в конфиге sphinx надо поменять source для индекса,​ теперь он выглядит так ( не забудьте подставтиь свои данные базы
 +
 +<​code>​
 +source scj
 +{
 + type = mysql
 +
 + sql_host = localhost
 + sql_user = LOGIN !!!!!!!
 + sql_pass = PASSWORD !!!!!!
 + sql_db = SCJ_DB !!!!!!
 +
 + sql_query = SELECT id, crc32(g.gallery_md5) as gallery_md5_crc,​ UNIX_TIMESTAMP(activation_date) as date, tags, alt, description,​ duration, sponsor_id, rgroup, content_type,​ gs.total_ctr FROM rot_galleries as g \
 +  ​ JOIN rot_gallery_stats AS gs ON g.id = gs.thumb_id \
 +  ​ JOIN rot_gallery_info AS gi ON g.gallery_md5 = gi.gallery_md5 \
 +  ​ JOIN rot_gallery_data AS gd ON g.gallery_md5 = gd.gallery_md5 \
 +  ​ WHERE status = 1 and gs.best_thumb = '​yes'​ and rgroup != 0
 + sql_attr_timestamp = date
 + sql_attr_uint  ​   = duration
 + sql_attr_uint  ​   = sponsor_id
 + sql_attr_uint  ​   = rgroup
 + sql_attr_float  ​   = total_ctr
 + sql_attr_uint  ​   = content_type
 + sql_attr_uint = gallery_md5_crc
 +
 + sql_query_info = SELECT * FROM rot_galleries WHERE id=$id
 +}
 +
 +</​code>​
 +
 +==== Sphinx Search CTR  ====
 +
 +Если вы используете поиск сфинкс то по дефолту он ищет по релевантности (domain/?​search=...
 +
 +Можно так же сортировать результаты поиска по дате (domain/?​search=...&​order=date) и продолжительности (domain/?​search=...&​order=duration).
 +
 +В 50 добавился еще вариант сортировки результатов по ctr (domain/?​search=...&​order=ctr)
 +
 +==== Convert to Custom Gallery ​ ====
 +
 +Появилась возможность конвертировать в кастом галеры те обычные галеры,​ которые вы добавили раньше. До версии 50 если вы уже добавили галеру и хотите сделать из нее кастом - надо было удалить ее из базы и добавить снова с настройками кастом галеры. Сейчас можно пойти в Rotation - Import и в Extra Options выбрать Convert to custom galleries.
 +
 +==== Related Galleries ​ ====
 +
 +Для кастом галер есть возможно вывести тн related galleries, по дефолту это гадеры из той же категории,​ но можно менять в в Rotation - CMS - Settings, однако можно было вывести только по одному параметру,​ в 50 появился тестовый вариант вывести разные вариант. Обратите внимание что каждый вариант это +1 запрос,​ чем больше их - тем больше нагрузка.
 +
 +<​code>​
 +
 +Примеры ​
 +
 +<thumb group=CURRENT_ITEM_GROUP num=1-5>
 +some template
 +</​thumb>​
 +
 +
 +<thumb sponsor=CURRENT_ITEM_SPONSOR group=""​ num=1-5>
 +some template
 +</​thumb>​
 +
 +
 +<thumb tag=CURRENT_ITEM_TAG num=1-5>
 +some template
 +</​thumb>​
 +
 +</​code>​
 +
 +
 +==== Rotate Tag Thumbs ​ ====
 +
 +В версии 49 была пропущена ротация тумб тагов, те можнобыло сделать тумбы тагов и вывести их 
 +
 +<​code>​
 +
 +<​tag_cloud num=1-10>​
 +<​!--TAG_NAME-->​ и далее можно добавить любые таги, характерные для тумб, например <​!--THUMB_URL-->​ что выведет лучшую тумбу по данному тагу
 +</​tag_cloud>​
 +
 +</​code>​
 +
 +однако не было сортировки по цтр этих тумб. Сейчас можно сделать
 +
 +<​code>​
 +
 +<​tag_cloud num=1-10 order=clicks>​
 +<​!--TAG_NAME-->​ и далее можно добавить любые таги, характерные для тумб, например <​!--THUMB_URL-->​ что выведет лучшую тумбу по данному тагу
 +</​tag_cloud>​
 +
 +</​code>​
 +
 +и скрипт выведет тумбы тагов отсортировав по цтр.
 +
 +В реврайты надо так же добавить реврайт что б считался цтр (по дефолту клики по тумбам тагов - не считаются
 +
 +<​code>​
 +
 +дефолтный ​
 +
 +RewriteRule ^tag/(.*)/$ /​scj/​tube/​index.php?​tag=$1
 +
 +надо заменить на 
 +
 +RewriteCond %{QUERY_STRING} ^(.+)$ ​
 +RewriteRule ^tag/(.*)/$ /​scj/​cgi/​out.php?​link=images/​%{QUERY_STRING}&​url=content&​p=100&​skip_to_cookie=true&​skip_sell=true&​tag=$1 [L]
 +RewriteRule ^tag/(.*)/$ /​scj/​tube/​index.php?​tag=$1
 +</​code>​
 +
 +
 +==== Rotate Model Thumbs ====
 +
 +Для ротации тумб моделей надо добавить в .htaccess правила для подсчета цтр. В целом все аналогично тумба тагов.
 +
 +<​code>​
 +
 +дефолтный ​
 +
 +RewriteRule ^model/​(.*)/​$ /​scj/​tube/?​model_slug=$1&​force_template=model_galleries [L]
 +
 +надо заменить на 
 +
 +RewriteCond %{QUERY_STRING} ^(.+)$ ​
 +RewriteRule ^model/​(.*)/​$ /​scj/​cgi/​out.php?​link=images/​%{QUERY_STRING}&​url=content&​p=100&​skip_to_cookie=true&​skip_sell=true&​model_slug=$1&​force_template=model_galleries [L]
 +RewriteRule ^model/​(.*)/​$ /​scj/​tube/?​model_slug=$1&​force_template=model_galleries [L]
 +</​code>​
 +
 +Выводим тумбы моделей (gallery_count_min=1 добавлено дабы выводить только тех моделей для которых могло создать тумбу модели,​ а для этого надо как минимум одна галера для модели)
 +
 +<​code>​
 +
 +<models num=1-10 gallery_count_min=1 order=ctr>​
 +<a href='/​model/<​!--MODEL_SLUG-->/?<​!--THUMB_LINK-->'>​ <​!--THUMB_URL-->​ <​!--MODEL_NAME-->​ </a> <br>
 +</​models>​
 +
 +</​code>​
 +
 +==== Import - Site Autocreate ​ ====
 +
 +При импорте скрипт может автоматически создать сайт его его не было, см новые опции в паттерне.
 +
 +==== Tags and White tag list ====
 +
 +Появилась возмжоность удалить все таги и перегенерить по новой.
 +
 +А так же в формат white_tag_list добавлены 2 спецсимвола ^(начало слова) и $(конец слова). ​
 +
 +Например:​ если в white list есть bus то оно сработает и на bus и на busty, тк по дефолту ищет вхождение слова. Иногда это проблема. Если надо именно bus то можно ограничиить таг ^bus$  - это сработает только на bus. bus$ - сработает так же на superbus. ^bus - сработает на buses но не сработает на superbus.
 +
 +==== Extra Thumbs ====
 +
 +При импорте можно добавить +2 экстра тумбы что актуально если у вас на той же базе есть мобильный сайт и надо тумбы иного размера. И соответственно 2 новых тага с хитрыми названиями EXTRA_THUMB_URL2 and EXTRA_THUMB_URL3
 +
 +==== Graber ​ (Import Sets)  ====
 +
 +В некоторых рсс тумбы идет в разных полях например
 +
 +<​code>​
 +<​thumbnail_default>​http://​gallery/​7_640x480.jpg</​thumbnail_default>​
 +<​thumbnail1>​http://​gallery/​1_640x480.jpg</​thumbnail1>​
 +<​thumbnail2>​http://​gallery/​2_640x480.jpg</​thumbnail2>​
 +<​thumbnail3>​http://​gallery/​3_640x480.jpg</​thumbnail3>​
 +</​code>​
 +
 +а поле Thumb можно было указать только 1 раз. Теперь Thumb можно указывать на несклько полей и скрипт сграбит корректно все тумбы.
 +
 +==== Import Sets  ====
 +
 +Для удобства пользования у каждого импортсета появилось опциональное имя. Можно его не вводить и список импортсетов будет выглядеть как раньше,​ а можно дать каждому импорсету персональное имя.
 +
 +==== Pagination Limit  ====
 +
 +При больших базах "​дальние"​ страницы в навигации дают повышенную нагрузку для сервака,​ поэтому в апдейте решено ограничить пагинацию 1000й страниц. Вряд ли серфер пойдет реально 1000 страниц листать что б дойти до самых последних наименее кликабельных. Этот лимит можно поменять в Rotation - CMS - Settings.
 +
 +==== group_list separator ​ ====
 +
 +Для тагов <​group_list <​model_list и <​tag_list появился доп параметр - separator. ​
 +
 +<​code>​
 +Смысл проблемы в том что если вы выводили например группы как ​
 +
 +<​group_list ><​!--GROUP_NAME-->​ </​group_list>​
 +
 +то могли получить что то вроде "​group1,​group2,​group3,"​
 +
 +и вот эта последняя запятая портила вид.
 +
 +Теперь можно сделать ​
 +
 +<​group_list separator=","​ ><​!--GROUP_NAME-->​ </​group_list>​
 +
 +и выведет без нее "​group1,​group2,​group3"​
 +
 +</​code>​
 +
 +
 +==== skip_group_id ​ ====
 +
 +Добавлен параметр skip_group_id в УРЛ или таг <thumb ... > , смысл простой - не выводить тумбы из группых такой-то.
 +
 +==== Unset parameter ====
 +
 +Проблема:​ если вы хотите добавить в темпелйт content_search снизу несколько тумб то работало провило наследования,​ те <thumb group=test num=1-10 ></​thumb>​ выводило 10 тумб из категории test, НО в которых есть результаты поиска. В большинстве случае это удобно,​ однако если надо просто вывести из опредленной группы - это была проблема. Сейчас можно "​убрать"​ параметр поиска например <thumb group=test num=1-10 search=""></​thumb> ​
 +
 +==== Sphinx Category content ​ ====
 +
 +Если у вас настроен сфинкс в группах появится кнопка Assign by Sphinx по нажатию которой можно записать тумбы в данную категорию на основе filter keywords этой категории. Удобно тем что можно добавить новую категорию и одним кликом наполнить ее уже существующим контентом. ​
 +
 +==== Filter Keywords ====
 +
 +Если вы используете Filter Keywords для распредления по категориям то для вас появилось несколько удобнений.
 +
 +По дефолту скрипт всегда ищет вхождение слова, для уточнения поиска были добавлены:​
 +
 +**ковычки ""​** для выделения нескольких слов стоящих рядом , например кей **"​word1 word2"​** сработает на фразе **word1 word2 zzzz**, но не сработает на **word1 zzz word2**, тк тут эти 2 слова не стоят рядом.
 +
 +**^ = начало кея** для обозначения что это должно быть в начале слова например ​ **word** сработает и на фразу **words** и на фразу **prewords**,​ потому что по дефолту скрипт ищет вхождение слова. Если надо что б искало именно word, надо писать **^word** - тогда найдет word, words и тп, те где word стоит в начале слова.
 +
 +**$ = окончание кея** аналогично для начала слова, только его кончание. например кей **word** сработает и на фразу **word** и на фразу **words**, если надо только первый вариант надо писать **word$**
 +
 +==== Template add ====
 +
 +Для тага <thumb добавлся фильтр skip_sponsor_id и skip_sponsor (в первом случае ИД, во 2м имя спонсора.
 +
 +==== Synonymize Options ====
 +
 +В сетингах ротации для синомизации появилась новая опция Synonymize method. Суть подписана там же в сетингах. Русский вариант:​
 +
 +Допустим у нас в файле синонимов "​word1,​word2,​word3"​. **Full search:** мы будем искать любое из этих 3х слов в фразе и заменять на любое из этих 3х слов. **First key only:** мы будем искать только слово '​word1'​ и заменять его любым из этих 3х слов.
 +
 +==== Sponsor URLS ====
 +
 +В rotation - sponsors каждому спонсору можно добавить несоклько урлов: site_url, trial_url и join_url.
 +
 +На самой галерее можно соответствующими тагами вывести эти урлы, НО тогда серфер будет видеть урл на спонсора вместе с вашей реф линкой,​ кроме того этот урл не всегда красивый. По дефолту есть реврайт вида http://​domain/​go/<​!--SPONSOR_SLUG-->/​ который пошлет на урл, прописанный в site_url. ​
 +
 +Можно доабвить в реврайты
 +
 +<​code>​
 +RewriteRule ^go/​(.*)/​(.*)/​$ /​scj/​tube/?​action=sponsor&​sponsor_slug=$1&​field=$2 [L]
 +
 +и использовать урлы
 +http://​domain/​go/<​!--SPONSOR_SLUG-->/​trial_url/​
 +http://​domain/​go/<​!--SPONSOR_SLUG-->/​join_url/​
 +
 +что бы посылать на другие урлы спонсора.
 +</​code>​
 +
 +==== Template tag variable unset ====
 +
 +Например на старнице модели мы выводим <thumb num=1-10 , те 10 тумб данной модели. Если нам надо вывестив сех моделей возникает проблема,​ тк модель уже задана и соответственно дабы сказать скрипту что нам надо все модели надо делать что-то вроде <thumb num=1-10 model_id=1,​2,​3,​4 и тп что неудобно.
 +Появился вариант скинуть заданные переменные например <thumb num=1-10 model_id=''​ или например <thumb num=1-10 group_id=''​
 +
 +==== Unique thumbs for slaves (test option) ====
 +
 +Суть проблемы:​ если 2+ сайта работают на одной базе (мастер-слейв) то есть вероятность,​ что часть тумб на индексе сайта будет одинаковой с другими сайтами на той же базе. Особенно это реально в начале ротации.
 +2 тестовых опции дабы решить эти вопросы "​Unique category thumbs"​ - при выборе тумб категорий скрипт смотрит какие тумбы категорий на других сайтах,​ которые висят на той же базе и не выбирает их. Те даже если тумба 1 на этм сайте первая в категории по цтр, но она выбрана как тумба категории на каком-то из сайтов использующих туже базу, то она не будет выбрана тумбой ктагеории. будет выбрана 2я по цтр.
 +
 +Unique index thumbs - аналогично только для тумб которые выводятся на индексе.
 +
 +==== Import\Export Shows\Clicks ====
 +
 +Появилась возмонжость переносить тумбы с цтр (конкретнее данные показов и кликов) - соответственно в экспорте поля новые и в импорте они же.
 +
 +
 +==== Grabber: skip thumbs with wrong orientation ====
 +
 +Rotation - settings - test options.
 +
 +Смысл очень простой:​ если нам надо тумба горизонтальная,​ а исходник вертикальный,​ то с большой долей вероятности нарезанная на автомате такая тумба будет не очень хорошаяя,​ потому что обрежет конечно же самую нужную часть. Эта опция позволяет автоматически пропускать тумбы не той ориентации.
 +
 +
 +==== Custom gallery - antibot question ====
 +
 +По дефолту для защиты комментов от спама на кастом галерах используется капча. Теперь есть вариант номер два -
 +<​code>​
 + <​!--ANTIBOT_QUESTION--> ​
 +</​code>​
 +который выбирается из вопросов которые используются при сайнапе трейдеров, ​ те из Settings - Cjsettings - wm signup. ​
 +
 +В этом опредленно есть смысл, так на форуме smartcj.com было много спама, потому что стандартную капчу давно уже разбирают автоматически. Разобрать автоматически вопрос намного сложнее. Результат - 99% спама пропало.
 +
 +
 +==== Rotation - Sponsors ====
 +
 +Для мобильных вариантов сайтов появилось еще одно поле у спонсора mobile url. таг соотв SPONSOR_MOBILE_URL.
 +Полагаю будет удобно для тех, кто делает отдельные темпелйты для мобильной версии или как-то выводит отдельный урл для мобильных юзаров.
 +
 +
 +==== Rotation - Users ====
 +
 +В скрипте давно есть разделение пользователей в Settings - Password. Те можно создать отдельного пользователя и ограничить его в правах доступом только в определенные пункты меню. Фача не слишком популярная,​ данный момент - попытка развить это направление.
 +
 +Если вы нарезаете тумбы в прелоаде и есть несколько человек которые это делают - можно проконтролировать качество (и при желании количество) нарезанного каждым.
 +
 +Для этого в Settings - Password создаем еще одного или больше пользователей,​ которым даем доступ только к preload. При добавлении галер rotation - import в extra option можно назначить какой пользователь будет их нарезать. И позже этот пользователь будет видеть только "​свои"​ галер в прелоаде. Так же, если вы админ, можно редактировать в massedit владельца галер. Админ видит все галеры в preload.
 +
 +
 +==== <​tag_list ====
 +
 +В темпелйтах есть возомжноть вывести циклом все таги галеры <​tag_list ><​!--TAG-->​ </​tag_list>,​ но иногда их довольно много (особенно при автогенерации из десков и без whitelist) и надо вывести не все. Сейчас этом vожно сделать так:
 +
 +<​code>​
 +<​tag_list num=1-3><​!--TAG-->​ </​tag_list>​
 +
 +аналогично для групп ​
 +
 +<​group_list num=1-3><​!--GROUP_NAME-->​ </​group_list>​
 +
 +</​code>​
 +
 +
 +==== Related Thumbs Shift ====
 +
 +При выводе тн related thumbs на кастом галереях их можно выводить по категории (те выводим в related например 10 лучших тумб из той же категории что и текущая галерея). При этом все галереи категории А получают примерно тот же набор related тумб. Немного лучше ситуация если релейты по тагам, но там так же могут буть нюансы тк по тагу может быть не совсем то.
 +
 +В 50 добавлен паратмер CMS - Settings : Related Thumbs Shift . Смысл простой - это сдвиг сета. Те если у вас указано например тумбы 1-10 при выводе релейтов,​ то если поставить Related Thumbs Shift = 2 то покажет 2й сет (те тумбы 11-20). Основной плюс тут в том. что можно вписать например 1-4 и будет показывать рендомно 1-10, 11-20, 21-30, 31-40. Related Thumbs получат некоторое разнообразие.
 +
 +
 +==== Hidden gallery ====
 +
 +У галерей прибавился новый статус - Hidden Gallery. Смысл следующий:​ например у нас была галера,​ она проиндексирована,​ но она хотлинковала контент откуда-то. В какой-то момент контент удалили и галерея стала нерабочей. Ранее чекер удалял такие галереи (точнее было 2 варианта - удалить сразу или offline), но был минус в том, для СЕ спайдеров старый урл теперь стал 404. Возможно лучше если будет возвращать страницу без контента,​ но не 404. Для этого доабвлен статус "​Hidden gallery"​ - это значит галера будет видна по прямому урлу, но тумбы этой галеры не будут в ротации. те попасть на нее можно будет только по прямому урлу. Этот статус можно выставить в импорт сете, который удаляет галереи.
 +
 +Аналогичная опция появилась у Gallery Checker.
 +
 +Точный эффект от этого для СЕ - неизвестен.
 +
 +
 +==== Content filters ====
 +
 +Добавлено несколько новых фильтров для тага <thumb и тоже самое можно использовать в урлею
 +
 +<​code>​
 +&​date_start=2012-01-01&​date_end=2013-01-02
 +</​code>​
 +
 +соответственно выведет тумбы из данного временного промежутка. Можно использовать и только 1 парамтер начала и конца.
 +
 +А так же несколько пресетов
 +<​code>​
 +&​date_limit=today (yesterday, this_week, this_month) - что автоматически подставит нужные даты
 +</​code>​
 +
 +
 +И по продолжительности мувика (в секундах)
 +
 +<​code>​
 +&​duration_min=60&​duration_max=120
 +</​code>​
 +
 +
 +==== Redirect incoming hits to niche pages  ====
 +
 +До 50 при редиректе учитывался и домен трейдера. Иногда это было проблемой,​ если например серфер приходил с основного домена и хотелось бы что бы он попал на индекс,​ а он попадал на какую-то нишу, тк название этой ниши есть в домене,​ особенно актуально для ниш с короткими названиями. ​
 +
 +Начиная с 50 домен не учитывается. Но для обратной совместимости можно добавить в common.php $_GET['​niche_redirect_by_domain'​] = true; - и будет работать как и было в ранее.
 +
 +
 +Кроме этого добавлен вариант no_redirect. Зачем это надо: например у нас есть 10 категорий одна из которых -  cars , мы хотим что бы редиректило на все категории по соответствующим кейвордам,​ кроме категории cars. Для этого в кастом редиректы добавляем cars|no-redirect
 +
 +==== Aditional IM commands ====
 +
 +Достаточно давно в  кроп профайлах есть Aditional IM commands - это строки,​ которые можно применить к исходной картинке или к уже готовой тумбе. Как-то до текущего момента им применения не находилось,​ а сейчас есть.
 +
 +При редактировании кроп профайла есть 2 поля Image IM and Thumb IM - это соответственно дополнительные строки для исходной картинки и для тумбы. Есть некоторые утилиты,​ которые по идее сжимают jpeg до 7% либо например делают их интерлэйсом для скорости визуальной загрузки ​ (хотя полагаю что скоро они могут стать частью ИМ), но и сейчас можно их использовать. ​
 +
 +
 +Рассмотрим на примере http://​freecode.com/​projects/​jpegoptim - jpegoptim is a utility for optimizing JPEG files. It provides lossless optimization (based on optimizing the Huffman tables) and "​lossy"​ optimization based on setting a maximum quality factor.
 +
 +  * Просим админа поставить jpegoptim
 +  * В кроп профайле добавляем Thumb IM - /​usr/​local/​bin/​jpegoptim --strip-all {FILE} {FILE}
 +
 +Тут надо обратить внимание что путь до jpegoptim на разных серваках может отличаться - имеет смысл узнать у админа. {FILE} заменяется актуальным именем файла. В данном примере оно 2 раза тк jpegoptim требует входное и выходное имя файла, и в нашем примере это один и тот же файл.
 +
 +
 +==== URLs with 0 result thumbs return 404 ====
 +
 +В сетинги ротации добавлена соответствующая опция. Смысл следующий:​ например у нас было 1000 тумб по 100 на страницу и соответственно страница 10 возвращала тумбы. Допустим тумб стало 900 и соответственно для 10й страницы ничего нет, но она все равно генерится,​ как и 11 например. Те скрипт генерит саму страницу вне зависимости от параметров. Есть мнение что такой опдход добавляет в гугл дубли страниц,​ что не совсем хорошо. Сейчас скрипт будет выдавать 404 на страницы где 0 контента (сама страница будет так же генерится,​ те серфер этого не заметит).
 +
 +
 +==== Sponsor Custom Vars  ====
 +
 +По аналогии c кастом переменными категорий и тумб добавлены так же custom vars 1-3 для каждого спонсора. Можно примениить под что-то при формировании темплейта. Таги для вывода аналогично: ​
 +
 +<​code>​
 +<​!--SPONSOR_CUSTOM_VAR1-->​
 +<​!--SPONSOR_CUSTOM_VAR2-->​
 +<​!--SPONSOR_CUSTOM_VAR3-->​
 +</​code>​
 +
 +==== Search Log ====
 +
 +В таг для вывода лога поисковых запросов на сайте добавлены следующие возможности ​
 +
 +<​code>​
 +
 +<thumb search_log=all num=1-10 > ........ </​thumb>​
 +
 +order=hits - может так же быть alphabet, date, если не указано сортируем по кол-ву хитов.
 +
 +date_limit=today - может быть так же yesterday, this_week, this_month
 +
 +date_start=дата date_end=дата ​
 +
 +</​code>​
 +
 +===== Trade =====
 +
 +==== TDS ====
 +
 +С развитием спонсоров работающих с мобильным контентом было определнное количество запросов о введении в продаже траффика отдельного урла для мобильного траффика. По мы решили пойти дальше и была добавлена базовая TDS. Велкам с предложениями если чего-то не хватает.
 +
 +Итак, Traffic Rules - TDS.  Все довольно просто.
 +
 +Слева схемы, справа правила для текущей схемы. Схема - это список правил для редиректа трафика в зависимости от условий. Схемы бывают 2х типов: весовые и линейные. Весовые это когда у схемы есть например 2 правила. У одного вес 60%, другого - 40%. Значит при переходе на /​scj/​cgi/​out.php?​scheme_id=.. в 60% случаев трафик уйдет на первый урл и 40% на второй. При линейной схема скрипт идет сверху вниз по правилам (порядок расположения правил можно менять просто перетаскивая их мышкой) и редиректит на первое правило,​ которое подходит под данный траффик. Обратите внимание,​ что если в весовой схеме например 3 правила,​ то по какой-то причине одно из них не подходит для данного серфера,​ то трафик будет распреляться между 2мя правилами с соответствующим пересчетом %%. Те например 3 правила:​ 1 - 40%, 2 - 40%, 3 - 20%. По какой-то причине идет трафик к которому правило 1 не подходит. Значит получать траффик будут правила 2 (66%) и 3 (34%). ​
 +
 +Правил может быть сколько угодно в пределах разумного.
 +Обратите внимание что в урлах правил все так же работают перменные типа {GROUP} {URL} как они и работали в продаже траффика.
 +
 +Так же при создании каждой схемы появляется тн дефолтный урл - это урл куда уйдет траффик если не подошло ни одно правило.
 +
 +Поля в правилах:​
 +  * Rule URL - куда редиректить если сработало это правило
 +  * Country Filter - список стран (GEOIP country code) разделенные пробелом или запятой или пайп "​|"​
 +  * Language Filter - аналогично по языкам браузера
 +  * Referer Filter - по дефолту список кейвордов для поиска в рефере. Однако вы можете использовать теже правила что и в Filter Keywords, например car -audi это значит под правило подходт хиты где в рефере есть car однако нету audi.
 +  * Unique Filter - хит должен быть уникальным для данного правила. Простой пример:​ весовая схема, 3 урла. У всех стоит уникальный хит. Человек пришел первый раз - его отправило на урл 2 например. Пришел 2й раз - остались для выбора только урлы 1 и 3, тк для правила 2 он уже не уникальный. Например,​ посылаем на 1. При следующем хите соответственно на 3. А следующий хит не является уником ни для одного из правил = посылаем на Default URL схемы.
 +  * Proxy Filter - хит через прокси
 +  * Mobile Filter - мобильный хит
 +  * PHP Filter - очень полезная штука если вам надо какое-то правило,​ которого нет. Смысл этого поля - это должна быть функция,​ которая должна возвращать true or false и соответственно будет срабатывать правило. Например,​ решили вы проверить есть ли у хита кука my_cookie (которую вы ставите где-то в другом своем скрипте). Код будет примрено такой ​
 +<​code>​
 +return isset($_COOKIE['​my_cookie'​]);​
 +
 +или например возвращаем true только если 2 + 2 = 4 :)
 +
 +return (2+2 == 4) ? true : false;
 +</​code>​
 +
 +  * Total Hits Limit, Dayly Hits Limit , Hourly Hits Limit - ограничения по траффику. В самой таблице правил траффик идет как равы (уники).
 +
 +**Примеры настройки ТДС** ​
 +
 +Возвращаясь к вопросу продажи именно мобильного траффика:​ дабы соблюсти обратную совместимость Traffic Sell не меняется,​ но появляется возможность вместо урла брокера вписать например TDS_1 - что значит юзать tds схему 1, или TDS_2 - что как не сложно догадаться схема 2. 
 +
 +Те надо добавить одну схему типа Rule Order в которой ввести правила:​
 +  - правило у которого будет выставлен мобильный фильтр ​
 +  - правило куда будет продаваться весь остальной траффик (никаких фильтров)
 +
 +дефолтный урл тут значения не имеет тк весь траффик будет уходить на какое-то из этих правил ​
 +Схема скорее всего получит номер 1. 
 +Надо вписать урл продажи соостветственно TDS_1
 +
 +
 +**Надо продавать первый клик всех мобильных серферов**. Для этого
 +  - ставим продажу 100%
 +  - в TDS добавляем одно правило с фильтрами "​мобильный"​ и "​уникальные хиты" ​
 +  - дефолтный урл схемы ставим {ORIGINAL_URL} - значит если траффик не подойдет по правилу,​ он пойдет по тому урлу куда и собирался изначально.
 +
 +**Надо редиректить весь вхоядий мобильный траф, но по странам. ** Например,​ штаты на одного спонсора,​ германию на другого:​
 +  - Settings - cjsettings - mobile : personal page - http://​your_domain/​scj/​cgi/​out.php?​scheme_id=1 (может быть 2, 3 и тп  если у вас уже есть схемы)
 +  - настраиваем схему: правило мобильные можно не выставлять - юсда и так попадут только мобильные. Соответственно добавляем 2 правила с фильтром по стране.
 +  - настраиваем default url - куда пойдет траффик мобильный с других стран. ​
 +  - ВНИМАНИЕ,​ не надо ставить дефолтный урл снова на свой же домен - он опять будет средирекчен на ТДС и так пойдет по кругу
 +
 +**Кастом гали и ORIGINAL_URL** По дефолту для кастом галер ORIGINAL_URL ​ формируется в виде дефолтного /​gallery/​gallery_slug/​index.html. Но если ц вас свои реврайты то вместо ORIGINAL_URL можно писать например http://​domain/​video/​{SLUG}/​index.html Общее правило тут: скрипт заменяет все {....} строки - значениями из переменных GET.
 +
 +
 +
 +Тестилось ab на Intel(R) Xeon(R) CPU  X3430  @ 2.40GHz, 3 схемы по 10 правил,​ срабатывает 7е правило в каждой из схем - выдает 700 запросов в сек. Это 60М в сутки, можно урезать в 2 раза и все равно будет 30М в сутки. Достаточно для большинства пользователей.
 +
 +==== Skimming Priority ====
 +
 +Представим ситуацию:​ у вас сайт куда пришел серфер с гугла (те SE траффик) и при этом с телефона (mobile траффик ). У СЕ ским 70 и mobile 80 - какой ским должен быть применен ?
 +Сейчас порядок применения скима можно менять в Settings - CJSettings - System traders. Для этого можно тягать (drug&​drop) позицию трейдера в списке. Чем выше в списке тем вые приоритет. Например,​ если mobile будет выше SE, то ским будет 80.
 +
 +
 +==== No Niche Redirect ====
 +
 +Проблема:​ тумба трейдера обычно берется с индекса сайта, при этом на многих сайтах стоит нишевый редирект. Те сайт 1.com трейдит с сайтом 2.com. на сайте 1.com тумба трейдера 2.com взята с индекса (2.com/), но 1.com это мультинишевый сайт и например в нише cars так же есть топ трейдеров,​ куда входит 2.com. Серфер кликает на странице 1.com/cars по топу трейдеров на тумбу трейджера 2.com и скрипт его шлет на 2.com. На сайте 2.com скрипт видит что реферер 1.com/cars и решает средиректить на нишевый редирект на 2.com/cars - дабы показать серферу ту же тематику. На старнице 2.com/cars тумбы, по которой серфер кликнул на сайте 1.com, нету (потому что скрипт ее брал с индекса 2.com, а не со страницы 2.com/cars. Это снижает проду.
 +
 +Задача:​ надо что б при кликах на обычные тумбы нишевый редирект работал,​ а при клике на топе трейдеров - нет.
 +
 +Предлагаемое решение:​ в топе трейдеров ко всем урлам добавить &​nnr=true (или &​no_niche_redirect=true тоже самое) (out.php?​member=_MEMBER_1_&​nnr=true) - при этом при рещдиректе на трейдера аут добавит &​nnr=true и серфер перейдет не на 2.com/, а на 2.com/?​nnr=true Скрипт увидит данный параметр и не будет делать нишевый редирект.
 +
 +Минусы:​ лишный параметр в урле
 +
 +Плюсы: должна вырасти немного внешняя прода
 +
 +
 +==== Custom Free Redirect URL ====
 +
 +Есть нишевый редирект у него есть возможность задать кастомные редиректы format: keyword1,​keyword2|niche_name. Его ограниченность была в том, что редиректило оно только на имеющуюся ниши (категории). ​
 +
 +В 50 добавленна возможность редиректить на любое слово что дает ряд интересных возможностей:​
 +
 +  * Например можно редиректить на таги:
 +<​code>​
 +Custom Redirects : tube
 +
 +Custom Free Redirect URL  : http://​{DOMAIN}/​tag/​{NICHE_NAME}/​
 +</​code>​
 +
 +  * Или на поиск
 +<​code>​
 +Custom Redirects : tube
 +
 +Custom Free Redirect URL : http://​{DOMAIN}/?​search={NICHE_NAME}
 +</​code>​
 +
 +Ньюанс в следующем:​ например в кастом редиректах прописано test|someword. До 50 это значило "​если в рефе есть слово тест - редиректить на категорию someword"​. В 50 есть 2 варианта:​ если есть категория someword - редиректим на Custom Niche Redirect URL, если категории someword нету и прописан урл Custom Free Redirect URL - редиректим на него.
 +
 +==== Trader Thumb  ====
 +
 +В редактировании трейдера появилась опция Thumb Shift ie skip firxt X thumbs, полезная если у трейдера первые тумбы это например тумбы топлиста или что-то в этом роде и соответственно при грабе тумбы трейдера надо пропустить некоторую часть тумб сначала.
 +
 +
 +==== GA: Sync data ====
 +
 +Немного изменено повеление и добавлена опция для синхронизации данных в Global Admin. Например у нас есть сайт 1. Мыдобавляем сайт 2 (обычно так же доабвляют в GA и сайт 1 дабы было удобнее смотреть статистику). При добавлении сайта 2 есть опция "Sync GA data with this site ?" эта опция означает,​ что данные GA будут скопированы так же на добавляемый сайт 2 и общую статистику по GA можно будет смотреть в Global Admin как на сайте 1 так и на сайте 2.
 +
 +Кроме этого эта опция так же означает что данные будут синхронизироваться постоянно. Те если теперь удалить сайт 2 на сайте 1 в GA - то данные опять же будут синхронизированы с 2. Так же если добавлить сайт 3 например то он так же автоматически появится в GA на сайте 2.
 +
 +Отменить такое поведение можно если в отредактировать нужный сайт в GA.
 +
 +
 +==== GA: Copy anticheat settings ​ ====
 +
 +Добавлена опция для копирования античит сетингов. В целом они копируются и при копировании всех cj settings, но была добавлена отдельная кнопка для копирования именно античит сетингов.
 +
 +==== New columns ====
 +
 +Добавлено 3 новых колонки в Trade: ​
 +
 +  * Эффективность=Клики/​Ауты
 +  * Ретурн=Ауты/​Рав ины
 +  * Трейдовый эффект=Трейдовые клики/​Ауты
 +
 +==== Blocked IPs ====
 +
 +В Cheat Lookup добавлено Blocked IPs. Можно руками вписать список ИП хиты\клики с которых считать не будут. Обратите внимание,​ что серферы с этих ИП все равно будут видеть старницу. Если надо что б хиты с этих ИП вообще не доходили до скрипта - это надо блокоровать в вебсервере.
 +
 +
 +==== SignUp network ====
 +
 +В сетингах добавлена опция "Show Network info ? " ​ при включении которой на странице сайнапа для мастеров будет показан весь список сайтов из Global Admin с возможностью добавится сразу отмеченные сайты. Обратите внимание,​ что в Global Admin у каждого сайта есть опция показывать ли его в Network списке.
 +
 +
 +==== Traffic sell for mobile and spiders ====
 +
 +В Traffic sell добавлено сооветственно 2 пункта. Смысл их тот же как и для других трейдеров,​ кроме одного замечания. Поскольку mobile может быть и от другого трейдера (например mobile от трейдера trader.com или от SE), то mobile имеет преимущество.
 +
 +
 +==== Trader toplist comment ====
 +
 +Добавлен новый парметр в редактировании трейдера - toplist_comment. Выводится в топлисте тагов _MEMBER_1_TOPLIST_COMMENT. Суть нововведения следующая:​ некоторые трейдеры ставят в толистах своих nofollow дабы не передавать "​вес"​ на сайт трейдера. Для таких терйдеров можно вписать аналогичную конструкцию в toplist comment и выводить в темпелйте,​ тем самым адекватно регируя на их действия.те добавляем для нужного трейдера rel="​nofollow"​ (в редактировании трейдера) , а в топлисте делаем
 +<​code>​
 +
 +....<a href="/​scj/​cgi/​out.php?​member=_MEMBER_1_"​ _MEMBER_1_TOPLIST_COMMENT_ > .... </a>
 +
 +</​code>​
 +
 +
 +
 +Так же в рамках добавления этой конструкции добавлены несколько новых тагов
 +
 +<​code>​
 +    _MEMBER_1_ICQ => 123123
 +    _MEMBER_1_NICKNAME => Webmaster
 +    _MEMBER_1_EMAIL => webmaster@admin.net
 +</​code>​
 +
 +===== Admin Changes ​ =====
 +
 +User Menu - В Settings - CJSettings в табе Admin Area  появился удобный пункт. Смысл следующий - вы можете занести сюда урлы нужных вам пунктов меню или даже внешних урлов для быстрого доступа к соответствующим пунктам меню. Они появяться как пользовательское меню слева. Видно оно будет как тонкая полоска,​ но при наведении мышки будет выезжать полное меню.
 +
 +  * Rotation - Sponsors - можно менять статус спонсора кликом его статусу,​ не заходя в редактирование.
 +  * Rotation - List Thumbs - можно ограничитиь вывод тумб только актиdysvb спонсорами для данного сайта.
 +  * Rotation - Trade - добавлена кнопка S для каждого из total трейдеров
 +  * Rotation - Comments - доабвлена возможность редактирования комментов
 +  * Rotation - CMS Templates - добавлен таг <​!--TOTAL_COMMENTS-->​
 +  * Rotation - Slugs - в соотвествии с рекомендациями гугл длина слага ограничена до 30 символов
 +  * Rotation - Settings - Добавлена возможность массэдит настроек ротации для всех сайтов нетворка
 +  * Rotation - Global Admin - возможность экспорта настроек из config files
 +  * Rotation - ImportSets - теперь можно добавить файл больше 600к в импортсеты но сграблен он будет только 1 раз, после чего этот импортсет ставится на паузу.
 +  * Trade - Stats - можно быстро выбрать сайт
 +  * Trade - Anticheat - появилась опция для пропуска проверки whois трейдера на банслова. ​
 +  * Trade - Add trade - гибкий вариант добавления если трейдер уже есть в базе
 +  * Trade - Global Admin - показывает варнинг при резком изменении траффика на любом из доменов
 +  * Trade - Global Admin - добавлена статистика по mobile ​
 +  * Trade - Global Admin - добавлен варнинг "​traffic change"​ который показывается если траффик изменился более чем на 40%
 +  * Trade - Settings - WM Signup ​ - добавлена опция Show Network info , которая выводит список всех сайтов из Global Admin на странице сайтапа мастеров. По деофлту выключена.
 +  * Trade - Settings - Mobile UA - кейворды для определения мобильных вынесены в сетинги
  
ru/update_50.txt · Last modified: 2014/01/29 18:20 (external edit)