User Tools

Site Tools


ru:rotation_settings

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
ru:rotation_settings [2024/03/24 08:33] – [CTR Recalculation period] adminru:rotation_settings [2026/10/20 18:18] (current) – Documentation: Preview quality filter, thresholds, manual test and logs admin
Line 1: Line 1:
 +====== Rotation Settings ======
 +
 +Главный параметр, включена ли ротация вообще :) Вы можете выключить ротацию если не пользуетесь ей - это сэкономит какие-то доли процессорного времени :)
 +
 +  * Refresh (Rotate) thumbs every X minutes  - как часто перерисоывать страницы. 
 +
 +===== CTR Recalculation period =====
 +
 +кол-во последних показов, по которому вычисляется ЦТР тумбы. Этот параметр очень важен для того, что б тумбы не "зависали" вверху. Например, если стоит 20 000 - значит ЦТР тумбы опредляется по послденим 20 000 показам, если 1000 - значит только за послдение 1000 показов.
 +
 +Для примера уменьшим до 10 показов.
 +<code>
 +1 - 5%
 +2 - 5%
 +3 - 5%
 +4 - 4%
 +5 - 4%
 +6 - 4%
 +7 - 3%
 +8 - 4%
 +9 - 3%
 +10 - 3%
 +</code>
 +
 +если у нас стоит CTR Recalculation period = 10 показов то ЦТР тумбы = 4%, если CTR Recalculation period = 5, то ЦТР тумбы (6 - 4% + 7 - 3% + 8 - 4% + 9 - 3% +10 - 3%) = 3.4%
 +
 +**% of test places on page** - При попадании новых тумб в список активных (при шифте) нам необходимо сначала выяснить их ЦТР. Места жти выбираются рендомно, исключая только первые 5 позиций.
 +
 +**New thumbs  timelive**  означает количество показов, после которого тумба уже не считается новой и ротируется на одинаковых условиях со всеми. 
 +
 +===== Cell K =====
 +
 +**Что такое Cell K** - у нас есть страница с тумбами. По умолчанию у нас на месте 1 самая популярная тумба и далее вниз по уменьшению популярности. Логично что если тумба находится вверху, то вероятность того что на нее кликнут выше, нежели если та же тумба находтся внизу. Поэтому выставляют К ячейки. Мы делим ЦТР тумбы на К ячейки, те если у первой ячейки К = 2, а у последней 1 это значит, что 2 клика на первой тумбе и 1 клик на последней дадут одинаковый ЦТР.
 +
 +Вы можете руками выставить К ячеек в Rotation - Cell Stats. Это полезно делать на маленьком трафе, тк когда мало статистики эти данные может быть не совсем верными. Если вы выставляете Cell K руками - поставь **Recalculate Cell K ** = NO что б скрипт автоматически не пересчитывал их.
 +
 +Скрипт так же может вычислять К ячейки автоматически (**Recalculate Cell K ** = YES). Мы можете видеть вычисленные К в Rotation - Cell Stats.
 +
 +**Use Cell K** - это значит 2 момента:
 +  * скрипт будет вычислять ЦТР тумб с учетом К ячейки 
 +  * скрипт будет ставить тумбу с самым большим ЦТР в ячейку с самым большим К. Обычно первая позиция на странице и самая популярная, однако дальше в зависимости от дизайна это может плавать, например места по бокам частооказываются более кликабельными нежели в центре и тп. Те при включенном **Use Cell K** порядок тумб при выводе в админке с сортировкой по ЦТР может не на 100% совпадать с их положением на странице.
 +
 +
 +
 +**Recalculate Cell K ** - как уже было сказано скрипт автоматически вычисляет К ячеек. Однако на мелких сиджах (до 5к) из-за недостаточности трафа могу возникать перекосы в вычислении К ячеек. Поэтому пока сидж не перерастет этот размер лучше выставить значения Cell K руками. см. [[Cell Stats]] Те если вы хотите выставить руками - Recalculate Cell K надо ставить NO, что бы скрипт не менял ваши настройки, если надо автоматически - Recalculate Cell K = YES
 +
 +**Use Cell K** использовать ли К ячейки выставленнй вами или вычисленный скриптом.  Те вы можете выставить, но _не_ использовать временно например. 
 +
 +
 +===== Alt Hosts =====
 + 
 +Alternative thumb hosts  - изначально практически любой браузер ограничен в кол-ве конектов на 1 урл. Для ИЕ это было 4. Те юзер вводит урл вашего сайта, браузер открывает 1 соединение для загрузки html, там он находит картинки и начинает грузить их. Далее можно представить как 4 слота, каждый из который грузит 1 картинку. Когда картинка загружена, слот освобождается и начинает грузить следующую. Те одновременно браузер грузит максимум 4 картинку. Что бы ускорить этот процесс надо что бы браузер думал что картинки находятся на разных хостах, так если хостов 2 то он будет грузить по 8 картинок одновременно улучшая скорость загрузки вашей графики и проду. Для этого надо создать алиасы вашего домена или поддомены. Например img.domain.com, img2.domain.com и тд которые будут указывать на ваш же домен. Что бы это сделать обратитесь к вашему админу.
 +
 +Обратите внимание, что Alt Hosts это должен быть просто домен, потому что скрипт заменяет именно домен в урле тумбы. Например, у нас урл тумбы http://domain.com/scj/thumbs/1.jpg В Alt Hosts прописано: img1.domain.com,img2.domain.com,img3.domain.com
 +Скрипт возмет рендомно обиз из сабдоменов и заменит domain.com на этот субдомен, например на img2.domain.com и урл получится http://img2.domain.com/scj/thumbs/1.jpg
 +И такая замена будет произведена для всех тумб на странице.
 +
 +
 + 
 +**Graber Connection settings**  Это настройка для грабера тубм (с галерей). Фактически это настройки прокси если вдруг ИП вашего сервака забанен где-то, использует это редко.
 +
 +
 +===== Graber Save Settings =====
 +Настройки куда  сохранять сграбленные тумбы. Можно на том же серваке, где стоит скрипт либо на другом, как часто говорят - тумбовом серваке. Тут самое главное не путать ПУТЬ и УРЛ. 
 +
 +**Для удаленного сервака:**
 +Например, у нас есть сервак1 где лежит cj.com.
 +И есть сервак2 где есть домен thumbs.com, где мы и хотим хранить тумбы. На 2м серваке мы создаем каталог куда хотим сохранять тумбы, например по фтп к нему путь получается /thumbs.com/public_html/thumbs_cj/.
 +
 +На cj.com мы прописываем FTP Host\Login\Pass для удаленного сервака и Destination directory on FTP server = /thumbs.com/public_html/thumbs_cj/, те ПУТЬ на фтп куда надо убедт сохранять тумбы. 
 +В URL to FTP directory прописываем УРЛ туда же = http://thumbs.com/thumbs_cj/
 +Обратите внимание на разницу между УРЛ и ПУТЬ.
 +
 +Система сохранения тумб очень простая: например у нас есть тумба ИД = 123456. Она будет сохранена как /thumbs.com/public_html/thumbs_cj/123/456.jpg
 +В базу запишется урл к ней http://thumbs.com/thumbs_cj/123/456.jpg
 +
 +Позже, если вы будете использовать Alt Hosts, скрипт будет менять хост в получившемся урле на альт хост. Например, если альт хост img1.thumbs.com, img2.thumbs.com то урл тумбы получится http://img1.thumbs.com/thumbs_cj/123/456.jpg или http://img2.thumbs.com/thumbs_cj/123/456.jpg  (альт хост меняется рендомно)
 +
 +При переносе уже готовых тумб на новый хост может быть следующая проблема:
 +  * Тумбы были добавлены при сетингах "сохранять локально" и URL to data = /scj/thumbs
 +  * например была добавлена тумба ИД = 123456. Она в базе получила урл /scj/thumbs/123/456.jpg
 +  * потом создают удаленный хост для тумб но там уже для тумб урл другой, например http://imghost/something/thumbs 
 +  * и прописывают в Alternative hosts = imghost ожидая что каким то образом тумбы старые получат урл http://imghost/something/thumbs/123/456.jpg. А урл в реальности получается http://imghost/scj/thumbs/123/456.jpg поскольку у тумбы в базе уже прописан урл /scj/thumbs/123/456.jpg и у нему просто добавляется alt host
 +
 +**Что делать**
 +Не сложно заметить, что проблема в том, что раньше сохраняло с путем /scj/thumbs/ а теперь надо что б он был /something/thumbs/. Варианта 2:
 +  - Делаем бекап. Заходим в list thumbs - massedit и меняем урлы тумб. этот вариант может не пройти если большая база.
 +  - Делаем бекам. Заходим в phpmyadmin и делаем UPDATE rot_galleries SET thumb_url = REPLACE(thumb_url, '/scj/thumbs/', '/something/thumbs/') - этот вариант быстрый
 +
 +Если данная инструкция кажется сложной - покажите ее админу (админ это не суппорт скрипта)
 +
 +===== Thumb Settings =====
 +
 +Тут можно отметить что тумбы можно делать 2мя псобами: GВ или IM (Image Magick) - это отражается в параметре  Image Lib.  GD - это встроенная библиотека ПХП, IM - это внешняя библиотека. Если вы используете IM (что обычно предпочтительнее) то надо проставить путь в **Path to IM**. Путь обычно /usr/local/bin/ или /usr/bin/. В этом поле можно увидеть autodetect если скрипт находит автоматически путь.
 +
 +
 +**Replace specials (ampersant to %26)** - по RFC (документация на все протоколы) если у вас в урле галеры есть амперсанды & то их надо заменять на %26. Это делается по следующей причине. допустим у нас есть урл 
 +
 +  /out.php?url=http://gallery.com/&p=60
 +
 +те урл контента http://gallery.com/, скиминг - 60. Но допустим у нас такой урл галереи
 +
 +  /out.php?url=http://gallery.com/gallery.php?wm_id=5&template=6&p=60
 +...gallery.com/gallery.php?wm_id=5&template=6&p=60 в этой строке скрипту сложно понять &template=6 относителься к параметрам галеры или аута. Для этого в таких случаях & заменяют на %26 , например у нас это будет выгялдеть 
 +
 +  /out.php?url=http://gallery.com/gallery.php?wm_id=5%26template=6&p=60
 +
 +по дефолту эта опция включена и выключать ее не надо :)
 +
 +**Encode urls** - в обычном случае урлы на морде сиджа выглядят так 
 +  /out.php?url=http://gallery.com/&p=60, 
 +те серфер может просто вырезать урл галеры из урла. Что бы скрыть можно закодировать урлы, например base64- тогда они будут выгялдеть так /out.php?url=b64hghh3j3nddbHh32nd&p=60. те скрипт ротации при создании страницы кодирует урлы, а аут - раскодирует. Есть 2 точки зрения на эту опцию: с одной стороны да, кодируются урлы, серфер не может обойти аут, но с другой стороны если серфер может вырезать урл галеры и ему не лень это делать - врядли он купит что-то, к тому же некоторых такие хитрые урлы просто пугают.
 +
 +**Check galleries** проверка галер в базе на работоспособность, те открываются ли они. Если галера не открывается - скрипт временно суспендит ее, а через некоторое время проверяет опять и если все ок, то активирует снова.
 +
 +
 +**New Rotation: test all thumbs from each gallery first** 
 +
 +Например, у гали 3 тумбы в ротации. 
 +
 +  * Take best ASAP - значит взяли тумбу 1 с гали, если она получила хороший ЦТР после тестирования - она сразу будет висеть на первой странице. Остальные тестируются как обычно и если условно 2я или 3я получит лучший цтр то будет показана она.
 +  * Test all thumb - это значит что даже если после теста 1я получила хороший ЦТР мы ее не показываем на первой старнице, а сначала так же тестим оставшиеся 2 и только после того как все 3 тумбы протестились - выбираем лучшую и показываем на первой странице.
 +
 +
 +
 +===== Preview quality filter =====
 +
 +Допустим, вы делаете тумбы из видео, и среди нормальных кадров попадаются почти чёрные, белые или сильно размытые. **Preview quality filter** позволяет автоматически пропускать такие тумбы при импорте.
 +
 +Настройки находятся в **Rotation - Settings - Preview quality filter**. По умолчанию **Enable preview quality filter = Off**. Для проверки нужен **Image Lib = ImageMagick** и правильный **Path to IM**. С GD эта проверка пропускается. Обработка работает на CPU, GPU и подключение к внешнему сервису не нужны.
 +
 +==== Что означают пороги ====
 +
 +Все четыре поля задаются в процентах от 0 до 100. **Ноль отключает отдельную проверку.** Если сработает хотя бы одна включённая проверка, тумба будет отклонена.
 +
 +^ Поле ^ По умолчанию ^ Когда тумба отклоняется ^
 +| **Dark pixels** | 98% | Доля почти чёрных пикселей достигла указанного порога. Почти чёрными считаются пиксели с яркостью не выше 2%. |
 +| **Light pixels** | 98% | Доля почти белых пикселей достигла указанного порога. Почти белыми считаются пиксели с яркостью выше 98%. |
 +| **Minimum brightness variation** | 1% | Разброс яркости ниже указанного порога: картинка почти однотонная. |
 +| **Minimum edge detail** | 0.5% | Показатель выраженности границ ниже указанного порога: картинка может быть сильно размытой. |
 +
 +Например, при **Dark pixels = 98** тумба, у которой 99% пикселей почти чёрные, будет отклонена. Если таких пикселей 90%, именно эта проверка её пропустит, но остальные проверки всё равно выполняются.
 +
 +Для **Dark pixels** и **Light pixels** уменьшение порога делает отбор строже. Для **Minimum brightness variation** и **Minimum edge detail**, наоборот, отбор становится строже при увеличении порога. Последние два показателя — это характеристики изображения, а не вероятность того, что тумба плохая.
 +
 +==== Как проверить и включить ====
 +
 +  - В **Thumb Settings** выберите **Image Lib = ImageMagick**, проверьте **Path to IM** и сохраните этот выбор.
 +  - Откройте **Preview quality filter**. Для начала оставьте **Enable preview quality filter = Off** и пороги по умолчанию.
 +  - В **Test image** укажите прямой HTTP/HTTPS-урл картинки и нажмите **Test image**. Картинку скачивает сервер, поэтому урл должен быть доступен с сервера.
 +  - Посмотрите результат: **PASSES these thresholds** означает, что картинка проходит выбранные пороги, **REJECTED by these thresholds** — что она отклонена. Ниже выводятся измеренные показатели и причины отказа.
 +  - Проверьте несколько нормальных тумб и несколько заведомо плохих. При необходимости измените пороги и повторите тест.
 +  - Когда результат вас устраивает, выставьте **Enable preview quality filter = On** и сохраните настройки.
 +
 +**Test image использует текущие значения четырёх порогов из формы без их сохранения.** Тест работает и при выключенном автоматическом фильтре. Нажатие этой кнопки само по себе не включает фильтр и не изменяет настройки.
 +
 +==== Что происходит при импорте ====
 +
 +Фильтр проверяет локальные тумбы: как созданные через кроп профайл, так и скопированные без изменения размера. Дополнительные кропы также проверяются; если дополнительный кроп отклонён, соответствующая тумба пропускается целиком. Остальные кандидаты продолжают обрабатываться.
 +
 +Хотлинки, которые не скачиваются на сервер, не проверяются. Если картинка уже скачана для проверки MD5, фильтр может проверить и её. Простое включение опции не запускает повторную проверку уже сохранённых тумб.
 +
 +Например, если из 30 кандидатов фильтр отклонил 5, импорт продолжится с оставшимися кандидатами. Если не осталось ни одной тумбы, импорт завершается с ошибкой. Дальнейшее действие определяется существующей настройкой **Grab error action**: **Mark as grab error** или **Delete gallery**.
 +
 +Если ImageMagick не смог выполнить анализ, ошибка записывается в лог. Сама по себе ошибка анализа не считается признаком плохой картинки, поэтому этот фильтр сохраняет кандидата.
 +
 +==== Ошибки и логи ====
 +
 +В ручном тесте на каждую попытку скачивания отводится 15 секунд, на установление соединения — до 5 секунд. При неудаче возможен повтор без Referer с таким же таймаутом. Браузер ждёт ответ теста до 30 секунд, после чего показывает ошибку таймаута.
 +
 +Ошибки скачивания содержат HTTP-код или причину cURL. Если тест долго показывает **Loading and checking image**, смотрите **logs/admin_area.log**. Записи начинаются с **Preview quality test:** и показывают начало скачивания, переход к анализу, результат или ошибку, а также затраченное время.
 +
 +Из каталога установки скрипта можно смотреть эти записи командой:
 +
 +<code bash>
 +tail -f logs/admin_area.log | grep --line-buffered 'Preview quality test:'
 +</code>
 +
 +При автоматическом импорте результаты и ошибки проверки записываются в **logs/gallery_grabber.log**. Файлы ручного теста создаются во временном каталоге и удаляются после успешной проверки или ошибки.
 +
 +==== Ограничения ====
 +
 +Проверяется только первый кадр анимированного изображения. Для анализа картинка уменьшается до размера не больше 320 x 320 пикселей и переводится в оттенки серого; исходный файл не изменяется.
 +
 +Фильтр ищет явные дефекты. Он не оценивает сюжет, лица или привлекательность тумбы и не выбирает лучший кадр из видео. Например, надпись или резкий фон могут скрыть размытость основного объекта, а нормальная картинка с гладким фоном может получить низкий показатель детализации. Поэтому сначала проверьте пороги на своих тумбах через **Test image**.
 +
 +===== 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 = не перемешивать.
  
ru/rotation_settings.txt · Last modified: by admin