Table of Contents
New Rotation Settings
Basically these are the settings in rotation, which are in Rotation - Settings, but mostly relate to the new rotation.
Rotation Thumb - Gallery Thumb Link
This option links rotation thumbs with gallery thumbs. Typically, rotation thumbs and custom gallery thumbs are two different sets—for example, rotation thumbs might be 100×100 while gallery thumbs are 200×200. The issue was that manual cropping in Preload only affected the rotation thumb, leaving the gallery thumb unmodified. Now the script crops both thumbs uniformly while maintaining their respective sizes. By default this option is disabled; enable it in Rotation - Settings.
Skip Countries
In rotation settings appeared the ability to set a list of countries from which clicks should not be counted in rotation. Note that clicks from these countries are still counted in the trader regardless of this setting. So it affects the counting of clicks only when calculating CTR.
Synonymize Options
In rotation settings for synonymization a new option Synonymize method appeared. The point is described there in the settings. English variant:
Let's say we have “word1,word2,word3” in the synonym file. Full search: we will search for any of these 3 words in the phrase and replace with any of these 3 words. First key only: we will only search for the word 'word1' and replace it with any of these 3 words.
Unique thumbs for slaves (test option)
When multiple sites use the same database (master-slave setup), you may encounter duplicate thumbs on site indexes, especially early in rotation. Two options address this:
“Unique category thumbs” - The script checks what category thumbs are displayed on other sites using the same database and avoids selecting those. So if thumb 1 is the top performer by CTR on your site but is already being used as a category thumb on another site sharing the database, thumb 2 gets selected instead.
“Unique index thumbs” - The same concept, but applies only to thumbs displayed on the index.
Grabber: skip thumbs with wrong orientation
Found in Rotation - Settings - Test Options.
If you need a horizontal thumb but the source is vertical, an auto-cropped thumb will likely be poor quality since it'll cut off essential content. This option automatically skips thumbs with the wrong orientation.
URLs with 0 result thumbs return 404
This option has been added to rotation settings. Previously, if you had 1000 thumbs with 100 per page, page 10 would display content. If you later had only 900 thumbs, page 10 would have nothing—but the page still got generated. This created empty pages that Google might index as duplicates. Now the script returns a 404 on pages with no content (the page is still generated for the cache, so users won't see any difference).
Skimming Priority
Imagine a visitor arrives via Google (SE traffic) on a mobile device (mobile traffic). SE skimming is 70% and mobile skimming is 80%—which applies?
You can set the priority order in Settings - CJSettings - System Traders by dragging traders up and down the list. Higher position = higher priority. For example, if mobile ranks above SE, the 80% mobile skimming applies.
Redirects
Redirect incoming hits to niche pages ? Based on Referer - the script can redirect incoming traffic to a niche page depending on the referrer. BUT for this your category name must fully appear in the referrer. For example: referrer http://trader.com/test.html, if you have a niche Test (case doesn't matter) then redirect will happen, if niche is called Big test - redirect won't happen.
The search for occurrences starts from the end, so first the keyword is checked for presence in test.html, and then the trader domain itself.
Custom Redirects, format: keyword|niche_name - you have a niche Big test, and you would like to redirect traffic to this niche and with referrer http://trader.com/test.html. Then you need to add 'test|Big test'
Sell by groups
Similar to Trade by groups, but we sell traffic on such a site. By default we in Traffic Rules - Traffic Sell specified a URL like http://brocker.com/?id=your_id and all traffic, on all pages of your CMS is sold via this URL. But if we sold traffic for example from the page /category/japanese/ to the URL http://brocker.com/?id=your_id&niche=japanese then the broker would give a higher price.
To do this we add a parameter {GROUP} to the sell URL, so the URL becomes like http://brocker.com/?id=your_id&niche={GROUP}. But the question is, what if the broker doesn't have a niche japanese? the closest for example is tube_asian. To do this in Rotation - CMS - Tube settings there is a field Niche traffic sell in which we need to enter the correspondence of our niches and the broker's niches, for example,
tube_asian=Japanese,Asian
where tube_asian is the broker's niche, and Japanese,Asian are our niches on the site separated by comma.
Exclude Current Thumb from 'Related'
On custom galleries they usually display related galleries. You can set up related by tags, sponsor or category, it's actually top for example 10 galleries for example the same sponsor, as the current gallery. This option excludes the current gallery from the related list (for example, the gallery is also in the top 10 of this sponsor). The plus is that there's no repetition in related for conditional top 10.
Bayesian CTR calculation method
Uses Bayes' theorem (https://en.wikipedia.org/wiki/Bayes%27_theorem) to calculate CTR. This is also called the multi-Armed Bandits algorithm.
It accelerates thumb testing and keeps rotation more dynamic. It's especially useful for low-traffic sites where a single random click could otherwise inflate a thumb's ranking. Instead of calculating CTR as a fixed value (clicks/impressions), the algorithm uses a probability distribution centered on the actual CTR.
Two options are available:
Only for new thumbs: Increase the percentage of test positions for new thumbs and their impression time (New thumbs timelive).
For all thumbs: Reduce the number of new positions since thumbs are tested within the main rotation.
Alt out
You can integrate a third-party traffic script.
To do this: Include the external script in your templates, typically with something like `<? include('/path_to_another_script/in.php') ?>`. However, clicks should flow through SmartCJ's out first (to count the thumb click), which then redirects to the external script. The external script decides whether to send traffic to the trader or gallery. Specify the external script's URL in Rotation - Settings - Alt out, for example: `/url_another_script/external_out.php?url={URL}`
In the general case this looks like this (without rewrites)
/scj/out.php?url=http://gallery.html → smart counts a click on the thumb and redirects to /url_another_script/external_out.php?url=http://gallery.html
As you can see it replaces {URL} with the actual URL of the gallery. external_out.php decides whether to send to gallery or trade.
Nuance with default rewrites and custom galleries.
For example we have URL http://domain/gallery/gallery_slug/index.html and this is a custom gallery. By default without rewrite this looks like /out.php?url=content&slug=gallery_slug - if smart decides to send to trade then immediately redirects to trade, if to gallery - then we read the gallery slug from the database and immediately display the gallery.
With an external script we must send to its out so it turns out the user clicks on http://domain/gallery/gallery_slug/index.html, by rewrite this URL goes to smart's out, smart sends to /url_another_script/external_out.php?url=http://domain/gallery/gallery_slug/index.html and say external_out.php decides to send to gallery, so to http://domain/gallery/gallery_slug/index.html which leads to smart's out. It turns out this process gets into a loop.
Options for solving the problem: 1. by default when external script smart adds a parameter &ao to the URL - and redirects to /url_another_script/external_out.php?url=http://domain/gallery/gallery_slug/index.html?ao In this case, if the external script redirects to the gallery, then smart sees this extra parameter and understands that this needs to 100% show the gallery. This option works by default and you don't need to do anything
2. if you're annoyed by ao in the parameters you can do this - add a rewrite for example to /show_gallery/gallery_slug/index.html - in common.php or rewrites check if there's &au and if there is redirect to an alternative rewrite
Redirects
Redirect incoming hits to niche pages ? Based on Referer - the script can redirect incoming traffic to a niche page depending on the referrer. BUT for this your category name must fully appear in the referrer. For example: referrer http://trader.com/test.html, if you have a niche Test (case doesn't matter) then redirect will happen, if niche is called Big test - redirect won't happen.
The search for occurrences starts from the end, so first the keyword is checked for presence in test.html, and then the trader domain itself.
Custom Redirects, format: keyword|niche_name - you have a niche Big test, and you would like to redirect traffic to this niche and with referrer http://trader.com/test.html. Then you need to add 'test|Big test'
Trade by groups
We have a classic multi-niche CMS, we want to trade by groups. To do this you need to add &group=… to the URL, but for CMS tube with rewrites it's not as convenient and nice as we'd like. So if by default links look like /gallery/cool_gal/index.html, then for trading by groups we need to do something like /gallery/current_group/cool_gal/index.html + change the rewrite a bit, so that the group parameter is passed to the out. For those for whom this is complex there is another option.
If you use default rewrites then your category pages have URLs like /category/123/asian/ or just /category/asian/, then if a person clicks in this category, on the out we can determine which category the click was made from by referrer, and depending on the category send to different groups of traders.
So, to use this function you need to:
- If you haven't created them yet, create trade groups with names like rotation categories. By the way you can do this with one click in Rotation - Groups (Copy To Trade Groups)
- Distribute traders by groups
- Rotation - CMS - Tube settings enable the Niche trade option
- all :)
Exclude Current Thumb from 'Related'
On custom galleries they usually display related galleries. You can set up related by tags, sponsor or category, it's actually top for example 10 galleries for example the same sponsor, as the current gallery. This option excludes the current gallery from the related list (for example, the gallery is also in the top 10 of this sponsor). The plus is that there's no repetition in related for top 10, minus - you can't cache the request and it gives additional load.
Tube Embedded Switch Rules
In rotation settings option for selling traffic to tubes. The meaning is as follows: often a tube gives both a direct URL, to which you can send traffic and get money, and an embed code, which you can play at your place but you don't get money for it. Tubes pay only for unique, so it makes sense to send one surfer there only 1 time, if he clicks on a gallery of this tube again - it makes sense to show him the embedded gallery and monetize there in other ways.
Besides, tubes often buy (count) traffic only from specific countries.
So in the settings you can enter the following data in format domain|countries (comma separated).
for example xhamster.com|US,GB,DE drtuber.com|US,IT,RU and so on For galleries whose source URL contains one of the specified domains a rule will apply: if a surfer of this sponsor hasn't been sent to an external URL yet, if already - show embedded gallery. If the domain is not in this list - everything works as before, so the surfer always sees the embedded gallery (if of course this is an embedded gallery). Thus for your embedded galleries or galleries of some tube, which doesn't pay for traffic and accordingly doesn't make sense to send traffic there, the rule won't apply. PS if the countries list is not specified - it means the rule applies to all countries.
Pagination Limit
With large databases “distant” pages in pagination give increased server load, so in the update it was decided to limit pagination to page 1000. Unlikely a surfer will really go through 1000 pages to get to the very last least clickable ones. This limit can be changed in Rotation - CMS - Settings.
Related Thumbs Shift
When displaying so-called related thumbs on custom galleries they can be displayed by category (so we display for example 10 best thumbs from the same category as the current gallery). At the same time all galleries of category A get approximately the same set of related thumbs. A bit better situation if related by tags, but there can also be nuances since by tag there might not be quite right ones.
In 50 added parameter CMS - Settings : Related Thumbs Shift. The meaning is simple - this is a set shift. So if you specified for example thumbs 1-10 when displaying related, then if you set Related Thumbs Shift = 2 it will show 2nd set (so thumbs 11-20). The main plus here is. that you can write for example 1-4 and it will show randomly 1-10, 11-20, 21-30, 31-40. Related Thumbs will get some variety.
Category Boost \ Separate Thumb CTR
Divides CTR for each thumb per category. Found in Rotation Settings - Boost gallery CTR in category, %.
Each thumb accumulates both an overall CTR and a separate CTR per category. CTR in each category increases proportionally to clicks in that category and also depends on overall CTR. A small boost value keeps category CTR close to overall CTR, while a large value creates more variation.
For example a thumb has 10 impressions and 1 click on the index, 2 in category A and 3 in category B. Boost = 50%, overall CTR when displaying the thumb on the index or without specifying category (1+2+3)/10 = 0.6
For category A (1+2*1.5(boost)+3)/10 = 0.7
For category B (1+2+3*1.5(boost) )/10 = 0.75
Works and with magic rotation parameter.
Redirect spam clicks
Spammers can use your domain to redirect to their URLs for example
http://YOUR_domain/scj/cgi/out.php?url=http://spammer/
such links they can put in spam emails, etc.
To fight this you can add &crc=<!–URL_CRC–> to all links on the site and in this case clicks on links without crc (or with wrong code) will be sent to the specified URL.
Redirects
Redirect incoming hits to niche pages ? Based on Referer - the script can redirect incoming traffic to a niche page depending on the referrer. BUT for this your category name must fully appear in the referrer. For example: referrer http://trader.com/test.html, if you have a niche Test (case doesn't matter) then redirect will happen, if niche is called Big test - redirect won't happen.
The search for occurrences starts from the end, so first the keyword is checked for presence in test.html, and then the trader domain itself.
Custom Redirects, format: keyword|niche_name - you have a niche Big test, and you would like to redirect traffic to this niche and with referrer http://trader.com/test.html. Then you need to add 'test|Big test'
Redirect incoming hits to niche pages
Before 50 when redirecting the trader domain was also considered. Sometimes this was a problem, if for example a surfer came from the main domain and you wanted him to go to the index, but he went to some niche, because the name of this niche is in the domain, especially relevant for niches with short names.
Starting from 50 the domain is not considered. But for backward compatibility you can add to common.php $_GET['niche_redirect_by_domain'] = true; - and it will work as it did before.
Besides, a no_redirect variant was added. Why is this needed: for example we have 10 categories one of which is - cars, we want to redirect to all categories by corresponding keywords, except category cars. To do this in custom redirects we add cars|no-redirect
No Niche Redirect
Problem: trader's thumb is usually taken from the site index, at the same time many sites have niche redirect. So site 1.com trades with site 2.com. on site 1.com the trader's thumb 2.com is taken from the index (2.com/), but 1.com is a multi-niche site and for example in the niche cars there are also top traders, which includes 2.com. Surfer clicks on page 1.com/cars on the top traders on the thumb of trader 2.com and the script sends him to 2.com. On site 2.com the script sees that referrer is 1.com/cars and decides to redirect to a niche redirect to 2.com/cars - to show the surfer the same topic. On page 2.com/cars the thumbs that the surfer clicked on at site 1.com don't exist (because the script took it from the 2.com index, not from the 2.com/cars page. This reduces produ.
Task: you need that when clicking on regular thumbs niche redirect works, but when clicking on top traders - no.
Proposed solution: in the top traders add &nnr=true (or &no_niche_redirect=true same thing) to all URLs (out.php?member=_MEMBER_1_&nnr=true) - in this case when redirecting to the trader out will add &nnr=true and the surfer will go not to 2.com/, but to 2.com/?nnr=true The script will see this parameter and won't do niche redirect.
Cons: extra parameter in the URL
Pros: should increase a bit external produ.
Custom Free Redirect URL
There is niche redirect it has the ability to set custom redirects format: keyword1,keyword2|niche_name. Its limitation was that it could only redirect to existing niches (categories).
In 50 added the ability to redirect to any word which gives a number of interesting possibilities:
- For example you can redirect to tags:
Custom Redirects : tube
Custom Free Redirect URL : http://{DOMAIN}/tag/{NICHE_NAME}/
- Or to search
Custom Redirects : tube
Custom Free Redirect URL : http://{DOMAIN}/?search={NICHE_NAME}
The nuance is as follows: for example in custom redirects it's written test|someword. Before 50 this meant “if there's the word test in the referrer - redirect to the category someword”. In 50 there are 2 options: if there is a category someword - we redirect to Custom Niche Redirect URL, if there's no category someword and Custom Free Redirect URL is specified - we redirect to it.
Trade by groups
We have a classic multi-niche CMS, we want to trade by groups. To do this you need to add &group=… to the URL, but for CMS tube with rewrites it's not as convenient and nice as we'd like. So if by default links look like /gallery/cool_gal/index.html, then for trading by groups we need to do something like /gallery/current_group/cool_gal/index.html + change the rewrite a bit, so that the group parameter is passed to the out. For those for whom this is complex there is another option.
If you use default rewrites then your category pages have URLs like /category/123/asian/ or just /category/asian/, then if a person clicks in this category, on the out we can determine which category the click was made from by referrer, and depending on the category send to different groups of traders.
So, to use this function you need to:
- If you haven't created them yet, create trade groups with names like rotation categories. By the way you can do this with one click in Rotation - Groups (Copy To Trade Groups)
- Distribute traders by groups
- Rotation - CMS - Tube settings enable the Niche trade option
- all :)
Native Like Dislike
By default, voting stores each voter's IP and rating, which adds one database record per vote. With high traffic, databases grow quickly. Native Like Dislike only stores the vote count per gallery, keeping database size limited to roughly galleries × voting options. However, without IP tracking, users can vote multiple times for the same gallery.
Wilson Interval for Rating
A more sophisticated rating sorting system. Compare two galleries: Gallery A has 10 votes (9 up, 1 down) for 90%, while Gallery B has 1 vote (1 up) for 100%. Intuitively, Gallery A is more trustworthy since 10 people voted versus just one random vote.
Wilson confidence intervals address this. When enabled, the script sorts by this algorithm but still displays the “traditional” rating, so 90% appears above 100% in the output.
Search queries log type
There are 2 options for logging search queries.
1. divided by days 2. common list
Option 1 lets you filter searches by date and perform date-related operations, but increases database size roughly 30x since each query is logged per day. Option 2 stores a single record per query.
Choose based on your needs: a larger database with date filtering, or a smaller database without date-based features.
Search query filter pattern
You can filter search queries for various characters, for example remove characters that don't fit you, for example in search you don't need “!” or quotes
Standard rewrite to remove special characters
/[^\p{L}\p{N}\s]/u
you can leave only symbols of the Latin alphabet
/[^A-Z,a-z,0-9,\+]/u
Google Indexing
The script can report new URLs to Google, thus new URLs on your site will immediately be added to the index. To do this you need to download a JSON file from your Google account (authorization file) and specify the URL format at your site in rotation settings.
https://developers.google.com/search/apis/indexing-api/v3/quickstart
The script reports all URLs from the beginning of your database. You can see the ID of the gallery that the script last reported (Last Reported Gallery ID). If you for example are sure that all galleries up to say ID 10000 are already in Google index, then you can set Last Reported Gallery ID = 10000 in settings and it will start from this ID, not from 1.
Google's limitation (not the script) - 200 URLs per day. In rotation.log writes Google Indexing … when it reports new URLs to Google on your site.
So what you need to do:
- register with Google and download the JSON file
- upload the file to your host and specify the PATH (NOT URL!) to it in Google Indexing JSON key file
- specify the format of URLs on the site in URL format at your site
- all, you can watch in the log how new URLs get into Google Index
