Streams
Traffic management in Adspect is organized through streams. A stream is a traffic channel managed as a whole, similar to a campaign in an ad network or a scheme in a TDS (traffic distribution system). You can manage streams in the Streams section of the clients area. Use the + Create Stream button there to add a new stream. Below, we’ll go through each stream setting in detail.
When creating a stream, you’ll need to choose your use case. It’s important to pick the one that best matches your scenario, as this directly affects performance. Default settings are already optimized for the chosen use case. You don’t have to fill in every field–usually it’s enough to set up money and safe pages and let Adspect handle the rest.
Basic Settings
Name
The stream name is a human-readable identifier that helps you distinguish between different streams. It’s a good idea to match stream names with ad campaigns on a one-to-one basis to keep your traffic sources consistent and clear.
Mode
The stream mode is the main setting that turns traffic filtering on or off.
Mode |
Description |
|---|---|
Filtering |
Primary working mode–clicks are checked in real time and sent to either the money or safe page. All Adspect technologies, including VLA™ machine learning, operate in this mode. |
On Review |
Special mode that you must use when your ad campaign is under review–it guarantees that Adspect will have no impact
on your ad campaign’s approval. All visitors land on the safe page. |
All Money |
Auxiliary mode where all visitors land on the money page. Useful for testing the money page settings. |
All Safe |
Auxiliary mode where all visitors land on the safe page. Useful for testing the safe page settings. Set this mode when your ad campaign is paused. |
“On Review” is the default mode when creating a new stream. You must always use it when submitting campaigns for review. Once a campaign is approved, change the stream mode to “Filtering” before actual traffic starts arriving.
Notes
You can write down arbitrary notes in this field. It serves a purely informational purpose.
Macros
Adspect provides a variety of macros (also known as placeholders or tokens) that you can use in different stream fields to automatically insert values of various attributes for each click. Below is a table of available macros with examples:
Macro |
Description |
Examples |
|---|---|---|
|
ID of the account that received the click. |
|
|
ID of the stream that received the click. |
|
|
IP address of the visitor. |
|
|
Autonomous system number (ASN) of the visitor’s ISP. |
|
|
Protocol part of the click URL: |
If click URL is |
|
Domain name in the click URL. |
If click URL is |
|
Path part of the click URL (after the domain). |
If click URL is |
|
N-th part of the click URL path, separated by slashes. |
If click URL is |
|
Full URL parameters of the click URL (query string after |
If click URL is |
|
Value of the click URL parameter named |
If click URL is |
|
Value of the click HTTP header named |
|
|
Value of the click cookie named |
If request header is |
|
User agent string of the visitor’s browser. |
|
|
Referrer URL of the click. |
|
|
Two-letter country code of the visitor. |
|
|
Operating system of the visitor (with version for Windows and Android). |
|
|
Name of the visitor’s browser. |
|
|
Name of the browser’s rendering engine. |
|
|
Primary language of the visitor’s browser. |
|
|
All browser languages, space-separated. |
|
|
Click ID–external or generated internally. |
If Click ID is |
|
Cost of the click. |
If Click Cost is |
|
Sub ID of the click. |
If Sub ID is |
|
Space-separated click tags (triggered filters). |
|
|
Unix timestamp of the click. |
|
Money and Safe Pages
Money and safe pages determine how traffic is routed–which pages are shown to real visitors and which to bots.
Both fields support macros, for example:
https://example.com/offer?clickid={clickid}&geo={country}&os={os}
When using macros in money/safe page URLs, their values are
URL-encoded before being inserted into the link,
since they are intended for substituting URL parameter values. If you need to disable URL encoding for a specific macro,
add an underscore _ immediately after the opening curly brace, e.g. {_subid}. In all other stream fields that
support macros, URL encoding is not applied.
Money Page
This is your actual landing page or offer that you are going to advertise. The “money” word is intended to indicate that this is the page that makes you money. You can specify up to 32 money pages for A/B testing. Traffic will be distributed among them according to the rules of the selected rotator.
Depending on the selected action, this field can contain various values such as URLs, paths to local files, PHP or JavaScript code, etc. The two most common value types are URLs and paths.
A URL is a link that you normally see in your browser’s address bar, e.g.
https://example.com/page.php. This may be your offer in a CPA network, a smartlink, a tracking link in a third party tracker, a TDS stream, etc. URLs must start withhttp://orhttps://, otherwise they will be treated as paths.With redirect actions, you can also use various non-HTTP URLs to do special tasks on your visitors’ devices. Some of the more common examples:
mailto:user@example.comwill open up a default e-mail program in compose mode;tel:+08001234567will dial the number on mobile devices and some desktops with installed telephony software;market://details?id=appwill bring the visitor to a particular app’s page in Google Play.
This is particularly useful with the so called “deep links” that link to mobile in-app content.
A path to a local file or directory, e.g.
page.phpor/landers/page.html. The word “local” here means that the file or directory the path points to is supposed to reside on the same server where you put our PHP file (more on PHP files will be described in the Intergration chapter), i.e. on the same domain that will be used for your final link.
Action
This is the action to peform for a visitor. Adspect supports many different types of actions. You will normally use just two or three of the most common actions.
PT (Parameter Passthrough)
PT stands for “URL parameter passthrough.” When enabled, parameters passed in the incoming URL will be appended to money page URL or file.
For example, consider the stream’s money page is configured as follows:
https://example.com/?utm_campaign=sweeps
A visitor accesses index.php of the stream using the following URL:
https://tracker.test/lander/index.php?utm_medium=ppc&utm_source=search
If the visitor is considered legitimate, they will be redirected to the money URL with URL parameters combined from both of the above:
https://example.com/?utm_campaign=sweeps&utm_medium=ppc&utm_content=search
Weight
Each money page has a “weight” parameter, which defaults to 10. It is used only for A/B testing when you have more than one money page. The exact effect of “weight” depends on the selected rotator. If you have only one money page, this parameter is ignored.
“On” Checkbox
The “On” checkbox lets you turn individual money pages on or off. This is useful for removing poorly performing offers or landing pages from A/B testing without deleting them from the list.
Rotator
The rotator controls how multiple money pages are rotated–that is, how Adspect decides which money page to show to each visitor. If only a single money page is specified, the rotator has no effect.
Split Rotator
This is the default rotator that splits traffic across all enabled money pages according to their weights (A/B testing). The more the weight is, the more traffic that money page will receive, proportionally.
For example, if you have three money pages with weights 10, 15, and 25, the first page will receieve about 20% of all human traffic, the second page will receieve 30%, and the third page will get around 50%.
Since this rotator is based on a pseudorandom number generator (PRNG), there may be distribution bias on small scale. However, mathematical properties of the PRNG guarantee that distribution will reach target weights on distance.
Timer Rotator
Timer rotator cycles through enabled money pages, using weight as a number of seconds that a money page is active for.
For instance, if you have three money pages with weights 60, 120, and 180, the first page will be shown to visitors for 1 minute, then the rotator will cycle to the second page and display it to incoming clicks for 2 minutes, then go to the third page and use it for 3 minutes, then cycle back to the first one, and so on.
This rotator is useful for automatic time-based switching of domains.
Safe Page
This is the safe page to show to moderators, robots, scrapers, etc. It should not contain any sensitive content that may put your affiliate campaign in danger or in violation of any rules. Everything described above for the money page fields also applies to the safe page.
Important
In most cases, your safe page must be displayed without redirects! Consider using either the local file or the reverse proxy actions.
Actions
This section explains the mechanics of page actions. Each action has its own use cases and serves a specific purpose.
Important
The same action may have different behaviors with PHP and JavaScript integrations. In such cases, JavaScript integration behavior is explained in a standalone paragraph after the general description which applies to PHP integration only.
Local File (“Zero Redirect”)
This action displays the specified local file directly without redirect.
Tip
This is the most secure action, and we strongly advise to use it wherever possible.
There are several ways to specify a local file:
Syntax |
Examples |
Description |
|---|---|---|
Relative path |
|
A path relative to the location of the Adspect integration PHP file. |
Absolute path |
|
An exact file path specified from the root of the server’s file system tree. |
URL |
|
The path part of the URL is used relative to the visited domain’s root. The scheme and domain parts of the URL are ignored. |
Important
Usually this action is used to display an HTML or PHP file. In this case, you should put the Adspect PHP file in the same directory. Otherwise all relative links on the page will be broken because the visitor’s browser will not be aware that the page’s resources (images, styles, scripts) should be loaded from a different directory–there’s no redirect to inform it of the actual location of those files.
What exactly happens depends on the file name suffix (extension):
Suffix |
Examples |
Action |
|---|---|---|
|
|
Adspect will display the file |
|
|
The file will be executed as a PHP script using the |
|
|
The file will be displayed as a static HTML page. |
Anything else |
|
The file will be downloaded by the browser. |
When using the local file action, you can add parameters with macros after the file name of your page, and they will be parsed and made available in PHP code in the $_GET superglobal variable. For example:
page.php?cid={clickid}
The value of this macro can be accessed in the page.php code like this:
<a href="https://example.com/offer?clickid=<?= $_GET['cid'] ?>">
This is a link to the offer
</a>
Important
With JavaScript integration, this action loads the page via synchronous XMLHttpRequest and replaces the safe page content with it
without redirecting. This will only work if your money and safe pages are on the same domain, or if your money page is served with
a proper Access-Control-Allow-Origin header
that allows cross-origin resource sharing (CORS).
Reverse Proxy
Reverse proxy displays a third-party website on your domain via smart HTTP request proxying. It creates a fully dynamic, navigatable replica of another website. Most websites are proxied correctly, however, in some edge cases the result may appear broken or even blank.
This action is best suited for displaying remote safe pages as if they were located on your own domain. Not recommended for displaying money pages as it may break internal page logic.
Important
With JavaScript integration, this action loads the page via synchronous XMLHttpRequest and replaces the safe page content with it
without redirecting. This will only work if your money and safe pages are on the same domain, or if your money page is served with
a proper Access-Control-Allow-Origin header
that allows cross-origin resource sharing (CORS).
Insert HTML Code
This action is a simpler version of reverse proxy that fetches a remote page and inserts its HTML code into the current page without performing the more complex link substituion to achieve seamless navigation. This action may be used to display self-contained pages from a remote repository without redirects.
Important
With JavaScript integration, this action loads the page via synchronous XMLHttpRequest and replaces the safe page content with it
without redirecting. This will only work if your money and safe pages are on the same domain, or if your money page is served with
a proper Access-Control-Allow-Origin header
that allows cross-origin resource sharing (CORS).
Display in Iframe
Displays a web page using an <iframe> HTML tag
without changing the URL in the browser’s address bar.
Attention
Websites may forbid displaying their content inside an iframe by using the X-Frame-Options response header, so this action may not work.
Warning
Contrary to what is widely believed, iframing is considered a redirect by many ad networks because it emits a trackable HTTP request. It is not as safe as it may seem to be. Consider using reverse proxy instead.
HTTP 301 Moved Permanently
HTTP 301 Moved Permanently is the permanent redirect. These redirect responses may be cached by browsers, which means that if a visitor goes by the same cloaked link again, then the browser may instantly redirect them to where they were redirected before (the cached link), bypassing the cloaker.
Attention
This behavior is at the sole discretion of a particular browser implementation and thereby must not be relied upon if security is at stake.
Important
With JavaScript integration, this action performs a JavaScript replace() redirect.
HTTP 302 Found
HTTP 302 Found is the usual redirection as you know it, also known as a temporary redirect. These redirect responses are not cached by browsers, hence accessing the same cloaked link again will lead to re-scanning the visitor by Adspect.
Tip
If you don’t know which redirect type to choose, go with HTTP 302 Found redirect.
Important
With JavaScript integration, this action performs a JavaScript replace() redirect.
HTTP 303 See Other
HTTP 303 See Other is a type of redirect similar to HTTP 302 Found.
Important
With JavaScript integration, this action performs a JavaScript replace() redirect.
HTTP 307 Temporary Redirect
HTTP 307 Temporary Redirect is a type of redirect similar to HTTP 302 Found.
Important
With JavaScript integration, this action performs a JavaScript replace() redirect.
HTTP 308 Permanent Redirect
HTTP 308 Permanent Redirect is a type of redirect similar to HTTP 301 Moved Permanently.
Important
With JavaScript integration, this action performs a JavaScript replace() redirect.
No Action
Nothing will be done; the visitor will be left where they are. This action is normally only used together with reverse PHP integration. It may be used to implement passive tracking without any traffic filtering by integrating a stream into your website with both money and safe page actions set to No Action.
HTTP Refresh Header
A special type of HTTP redirect that is performed with an HTTP 200 OK response code. When used in combination with reverse PHP integration, it also returns content of the page Adspect was integrated into like No Action does.
Important
With JavaScript integration, this action performs a JavaScript replace() redirect.
HTML Meta Refresh
An HTML-only variant of the previous HTTP Refresh redirect performed with
a <meta> HTML tag. Use cases are similar.
Note
Some types of “dumb” bots do not follow these redirects.
Important
With JavaScript integration, this action performs a JavaScript replace() redirect.
Form Submit
A redirect triggered by submitting an HTML form using JavaScript.
Note
“Dumb” bots without JavaScript support will not follow this redirect because of their inability to execute the script.
JavaScript assign() Redirect
A JavaScript redirect that is done via the location.assign() method.
Note
“Dumb” bots without JavaScript support will not follow this redirect because of their inability to execute the script.
JavaScript replace() Redirect
A JavaScript redirect that is done via the location.replace() method.
Unlike the JavaScript assign() redirect, it does not save the current page in the browser session history, so the visitor will not
be able to navigate back to the page they were redirected from.
Note
“Dumb” bots without JavaScript support will not follow this redirect because of their inability to execute the script.
Break Out of Frame
A JavaScript redirect that opens a link in the parent browser window even if the cloaked link is displayed in a frame or iframe,
thereby making the browser navigate out (“break out”) of the frame.
If there’s no parent frame, this redirect is equivalent to the JavaScript assign() redirect.
Important
This feat will not work with sandboxed iframes.
Note
“Dumb” bots without JavaScript support will not follow this redirect because of their inability to execute the script.
Custom HTTP Response Code
Returns a custom HTTP response code specified
in the page field, e.g. 404 to display a “404 Not Found” error page. This action may be used to simulate
a server-side error with 50x codes or explicitly block access to a resource with a 403 Forbidden response.
Important
With JavaScript integration, this action does nothing.
Execute PHP Code
Executes PHP code specified in the page field, for example:
echo '<h1>Hello, world!</h1>';
Important
With JavaScript integration, this action does nothing.
Execute JavaScript Code
Executes JavaScript code specified in the page field, for example:
document.write("<h1>Hello, world!</h1>");
This is a special purpose action that may be used to implement complex click processing logic like adding or removing safe page content to turn it into money page, changing element styles, attaching scripts or pixels, etc. It is most useful with JavaScript integration.
Note
“Dumb” bots without JavaScript support will not execute the code.
X-Accel-Redirect Header
This action allows Adspect to interoperate with non-PHP web applications. It returns 200 OK with X-Accel-Redirect header – a server-side redirect mechanism supported by NGINX and Cherokee web servers.
Usage is best explained by example. Suppose you have an NGINX location block that serves a Node.js web application (or proxies
a remote website, delivers static files, anything really) which you want to protect with Adspect as your money page:
location /app {
internal;
proxy_pass http://127.0.0.1:8080/;
}
You should add another location block to serve the index.php file of Adspect which will protect your web application:
location ~ \.php$ {
root /var/www/html;
include fastcgi.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
Then you configure your stream to use your web application as the money page:
Money page field:
/appMoney page action: X-Accel-Redirect header
With this setup, if the visitor is legitimate, Adspect will transfer control to your web application inside NGINX seamlessly for the visitor without any visible redirection.
Important
With JavaScript integration, this action performs a JavaScript replace() redirect.
X-Sendfile Header
Returns 200 OK with X-Sendfile header – a server-side redirect mechanism supported by Apache, Cherokee, and Lighttpd web servers.
Important
With JavaScript integration, this action performs a JavaScript replace() redirect.
Delayed Start
Delayed start allows you to filter out a given number of first clicks in the stream. For example, if you have observed that the first 10–15 clicks in each campaign in your ad network belong to ad reviewers and malware checkers, you can set your stream to send the first 20 clicks to the safe page (just a little more to stay on the safe side).
Attention
Delayed start works only when the stream is in Filter mode.
Delayed start has three modes that differ in click counter logic:
Mode |
Description |
|---|---|
All |
Counts all clicks. |
Money |
Counts only those clicks that would otherwise be admitted to money page, passing all other filters save JS fingerprinting. |
Safe |
Counts only invalid clicks that would be blocked by any other filter. |
Tip
Delayed start is useful if you launch many ad campaigns and don’t want to manually switch each stream from “On Review” to “Filter”.
Filtering Settings
This group of settings controls most of the built-in traffic filters of Adspect.
Filtering Level
Filtering level lets you adjust aggressiveness of traffic filtering by selecting one of several pre-defined levels.
Level |
Description |
|---|---|
|
All built-in and third-party filtering databases are disabled. VLA™ machine learning is not used. Do not use use this level unless you have a compelling reason. |
|
Only the most blatant offenders are blocked: big corporations, largest datacenters and hosting providers, antivirus companies, etc. VLA™ machine learning is not used. This level fits best for in-app and WebView cloaking. |
|
All the IT corporations, datacenters, hosting providers, and IP transit networks are blocked. VLA™ machine learning is enabled. All clicks are also checked with the top twelve competing cloaking services. |
|
Same as Medium, plus IP network ownership history of up to 3 years back is checked for all the blocked organizations. Third-party filtering databases and risk scoring companies are also queried. This level is safe for most scenarios. |
|
Same as High, plus all the government, military, scientific, and educational organizations are blocked, as well as certain high risk Internet service providers. This level is the safest, but may result in high bleed rate. |
Tip
If you don’t know which filtering level to select, go with level High.
Enable JavaScript Fingerprinting and VLA™ Model Training
This setting controls JavaScript fingerprinting–one of our strongest cutting edge filters. When enabled, visitors that pass all the naïve checks (by IP address, user agent, referrer, targeting, URL rules, etc.) will be given a JavaScript challenge: a tiny script that will collect extensive information about the browser’s internals–a fingerprint–and submit it back to us.
Upon reception, Adspect will analyze the fingerprint with more than a hundred know-how heuristics looking for signatures of bots, web automation software that some bots are built on, fake (spoofed) information about OS and browser version, and many other tell-tale technical pieces of information. Additionally, this fingerprint will undergo probabilistic analysis by our VLA™ machine learning model, if available in your plan.
Note
This feature is not implemented in native Keitaro integration due to technical limitations of the Keitaro custom filter framework.
Enable Built-in User Agent-based Filters
This setting lets you enable or disable internal user agent-based filtering. Just like with IP address blocklists, these filters are developed and maintaned by Adspect and always kept up to date.
Attention
It is strongly recommended to enable this setting in all use cases except in-app cloaking.
Allow Only Unique Visitors
This setting blocks non-unique visitors. If enabled, only the first click with any particular IP address or click ID will be allowed, and all repeated clicks will be blocked.
Allow Only Touchscreen Devices
This setting allows only those visitors that use devices with a touchscreen (mobile phones and tablets). It may be useful for mobile-only campaigns that target visitors with contemporary mobile phones and tablets: lots of security bots that use desktop browser automation will be cut off by this setting alone.
Note
This check only works when JavaScript fingerprinting is enabled.
Allow Only Visitors With In-browser Web3 Wallets
This setting allows only those visitors that have a Web3 wallet installed in their browser.
Note
This check only works when JavaScript fingerprinting is enabled.
Allow Traffic From Mobile Apps
This setting allows traffic that originates from inside mobile applications, e.g. from the WebView browser. While natural for certain niche ad formats, such traffic is widely seen as click fraud in other formats (automated clicks generated by mobile malware) and should normally be disabled unless your ad format is somehow based on mobile applications.
Allow Traffic From Frames, Iframes, and Embedded Objects
This setting allows traffic that originates from inside embedded environments such as <iframe>,
<embed>, <object>, etc. Similarly to traffic from mobile apps, this setting should be set or cleared
depending on your particular traffic format and source. Keep it enabled if unsure.
Note
This check only works when JavaScript fingerprinting is enabled.
Allow Google IP Protection Traffic (Chrome Privacy Sandbox)
This setting allows visitors that use Google IP Protection (also known as Chrome Privacy Sandbox) to hide their real IP addresses behind Google-operated privacy proxies. Enable it if you observe high volumes of blocked traffic coming from Google-owned IP addresses.
Allow Apple iCloud Private Relay Traffic
This setting allows visitors that use Apple’s iCloud Private Relay to hide their real IP addresses behind Apple-operated privacy proxies. Enable it if you observe high volumes of blocked traffic coming from Apple iOS devices.
Countries and Devices
These fields allow you to allow visitors only from the specified countries, using specified operating systems, browsers, browser engines, and browser language preferences. If a field is empty, no check will be made for that attribute (allows all).
Tracking Settings
These settings are used to assign Sub ID, Click ID, and cost to individual clicks. Adspect takes the value of each field below, replaces macros in it, and assigns the result to the corresponding attribute of each click.
Filling these fields is not required, but may be useful if you want to track individual clicks, conversions, expenses, revenue, and per-subaccount statistics in the Reporting section.
Sub ID
Sub ID is a click attribute that you can group reports by in Reporting by choosing Sub ID in the breakdown field.
The concept is best described by example. Suppose your ad network has a notion of zones for dividing different publishers or ad
placements into numbered groups. You would use a macro like {zoneid} to put zone identifiers into your campaign URL, for example:
https://example.com/?subid={zoneid}
For each click, the ad network will replace the {zoneid} macro with an actual zone ID which can then be taken
out of the click link and tracked individually. In this example, subid is name of the parameter used to track
zone IDs. If you specify {p:subid} for the Sub ID stream setting, you will be able to pull per-zone reports
in Reporting. This may come in very handy for building blacklists of bot-ridden publishers, zones, placements, etc.
Click ID
Click ID works the same way as Sub ID, but for assigning unique identifiers to individual clicks, which are then used for signalling conversions to the tracker or ad network via pixel or S2S postback mechanism.
Clicks often already have unique identifiers automatically added by the ad platform, e.g. in the gclid URL parameter in Google Ads
or fbclid in Facebook. The Click ID field lets you extract that identifier from that URL parameter and assign it to each
individual click in Adspect reports. To do this, enter {p:gclid} (Google Ads example) or {p:fbclid} (Facebook example) there.
Click ID may be added to money or safe page links via the {clickid} macro.
If the Click ID field is empty, Adspect will generate its own unique click IDs.
Click Cost
This field sets cost of each click which is used to calculate expenses in Reporting. You can enter a fixed number here, but some ad networks support adding cost to each click’s URL in a URL parameter. For example, suppose a click comes by a link like this:
https://example.com/?cost=0.15
If you enter {p:cost} in the Click Cost field, Adspect will take 0.15 from the cost URL parameter and use that as the cost
of that particular click.
If the Click Cost field is empty, clicks will have zero cost in reports.
IP Address Filtering
This block of settings lets you filter traffic by lists of IP addresses, IP address ranges, CIDR prefixes, and/or autonomous system numbers (ASN). Each stream has two lists: black and white. Individual list entries should be delimited by newlines or whitespace.
Entry format examples:
Format |
Description |
|---|---|
|
Single IPv4 address. |
|
IPv4 CIDR prefix. |
|
IPv4 address range. |
|
Single IPv6 address. |
|
IPv6 CIDR prefix. |
|
IPv6 address range. |
|
Autonomous system number. |
|
Autonomous system number. |
|
Autonomous system number in dot+ format. |
|
Autonomous system number in dot+ format. |
IP/ASN List Mode
The IP/ASN list mode controls how blacklist and whitelist work together.
Mode |
Visitor in blacklist |
Visitor in whitelist |
Visitor not in lists |
Notes |
|---|---|---|---|---|
Black |
Blocked if not whitelisted |
Checked by other filters |
Checked by other filters |
The whitelist has priority over the blacklist. |
White |
Blocked |
Checked by other filters if not blacklisted |
Blocked |
The blacklist has priority over the whitelist. |
Special |
Blocked if not whitelisted |
Goes to the money page |
Checked by other filters |
Whitelisted visitors skip all checks and go to the money page. |
Blacklist All IP Addresses in Review Mode
If enabled, this setting instructs Adspect to add IP addresses of all incoming visitors to the IP blacklist if the stream is in Review mode. Since the Review mode is meant to be used only when your ad campaigns are under review by moderators, it is safe to assume that every visitor in this mode is a moderator and should be barred. We recommend you to always enable this setting, but pay attention to the moment your campaign is approved, to switch the stream mode to Filtering in time lest you blacklist IP addresses of legitimate visitors when your campaign goes live.
We recommended to enable this setting.
IP Extrapolation
IP extrapolation allows you to control fuzzy matching of IP addresses against our internal blocklists. Larger values result in banning of more addresses adjacent to already blacklisted ones, which results in better protection at the expense of higher chances of false positives.
User Agent Filtering
The black and white user agent lists let you filter visitors by their user agents. The lists should contain Perl-compatible regular expressions (PCRE) each on its own line. They are checked in order until the first match. Regular expression matching is case-sensitive.
User Agent List Mode
The user agent list mode controls how blacklist and whitelist work together.
Mode |
Visitor in blacklist |
Visitor in whitelist |
Visitor not in lists |
Notes |
|---|---|---|---|---|
Black |
Blocked if not whitelisted |
Checked by other filters |
Checked by other filters |
The whitelist has priority over the blacklist. |
White |
Blocked |
Checked by other filters if not blacklisted |
Blocked |
The blacklist has priority over the whitelist. |
Special |
Blocked if not whitelisted |
Goes to the money page |
Checked by other filters |
Whitelisted visitors skip all checks and go to the money page. |
Referrer Filtering
The black and white referrer lists let you filter visitors by their referrers. The lists should contain Perl-compatible regular expressions (PCRE) each on its own line. They are checked in order until the first match. Regular expression matching is case-sensitive.
Common use cases:
Blocking visitors with empty referrers. Add this line to the blacklist:
^$
Blocking visitors that did not come from ads. Set the list mode to White and add allowed domains to the whitelist. Example for Google Ads:
google\.com
Referrer List Mode
The referrer list mode controls how blacklist and whitelist work together.
Mode |
Visitor in blacklist |
Visitor in whitelist |
Visitor not in lists |
Notes |
|---|---|---|---|---|
Black |
Blocked if not whitelisted |
Checked by other filters |
Checked by other filters |
The whitelist has priority over the blacklist. |
White |
Blocked |
Checked by other filters if not blacklisted |
Blocked |
The blacklist has priority over the whitelist. |
URL Rules
URL rules let you check, add, modify, or remove URL parameters in the links of incoming clicks. You can use them to block a click if it has or doesn’t have a specific parameter, or to check whether a parameter matches or doesn’t match a regular expression, etc.
Rules are applied in order–from top to bottom, as listed in the stream settings. Each rule works with the link as it was modified by the previous rules. For example, if one rule removes a parameter from the link, the following rules won’t be able to check or change its original value. If a rule adds a new parameter, the next ones can work with it.
Rules work with the link the click originally came through–not the final link to your money or safe page. So any changes to parameters (adding, modifying, deleting) won’t affect the final link unless you enable parameter passthrough for it.
Note
If there are several parameters with the same name, a rule with that parameter name will apply to all of them.
Each rule consists of the following fields:
Rule Field |
Description |
|---|---|
URL Parameter |
The name of the URL parameter that the rule applies to.
For example, if the link contains the parameter |
Operator |
Defines what kind of check or operation will be performed on the URL parameter. See the operator table below. |
Argument |
Additional data for the rule, required by certain operators (see the operator table below). This field supports macros. |
“On” Checkbox |
Enables or disables the rule. |
Operator |
Description |
|---|---|
exists |
Checks if the parameter exists. The rule argument is not used. |
does not exist |
Checks if the parameter does not exist. The rule argument is not used. |
matches regexp |
Checks if the parameter value matches a Perl-compatible regular expression (PCRE) in the rule argument (case-sensitive). |
matches regexp (no case) |
Checks if the parameter value matches a regular expression in the rule argument (case-insensitive). |
does not match regexp |
Checks if the parameter value does not match a regular expression in the rule argument (case-sensitive). |
does not match regexp (no case) |
Checks if the parameter value does not match a regular expression in the rule argument (case-insensitive). |
equal to |
Checks if the parameter value compares with the rule argument accordingly. Integers and real values are compared as numbers, and strings are compared according to their lexicographical order. |
assign value |
Sets the parameter’s value to the rule argument. Existing parameters with the same name will be deleted. |
append value |
Appends a new parameter with the rule argument as its value. Existing parameters with the same name will remain. |
rename to |
Renames the parameter to the name specified in the rule argument. Existing parameters with the same name will remain. |
replace |
Renames the parameter to the name specified in the rule argument. Existing parameters with the same name will be deleted. |
delete |
Deletes the parameter. The rule argument is not used. |
Filtering by Time
This section allows you to filter visitors by time and time zones.
Schedule (Dayparting)
Schedule allows you to specify dayparts and optionally days of week during which traffic filtering is on. All visits on time and days not explicitly listed will be blocked. Schedule is active if at least one daypart is specified. If a daypart does not specify days of week, it is applied to all days.
Time Zones
This field lets you allow visitors only from the specified time zones.
Time zone settings are restricted to full hour offsets from UTC. If a visitor’s time zone is not offset by full hours, the offset will be rounded.
Match Browser Time Zone to Location Time Zone
If this setting is enabled, Adspect will check whether the time zone reported by visitor’s browser matches the time zone of the visitor as determined by our geolocation. This check may slightly increase the rate of false positives, but it significantly boosts protection against moderators and bots that use VPN or proxies.
We recommended to enable this setting.
Note
This check only works when JavaScript fingerprinting is enabled.