Campaign object#
Each campaign in the siteGet result has the structure below. siteAdd and siteUpdate accept the
same fields in the body, except the fields marked "Read-only". For how to call each action, see
Campaign actions.
Fields#
| Field | Type | Description |
|---|---|---|
id |
number | Campaign ID. Send it only when calling siteUpdate, to select the campaign to change |
title |
string | Campaign name, up to 200 characters |
isAdult |
boolean | The page has adult content |
hasCoinMining |
boolean | The page has a cryptocurrency mining script |
urls |
string[] | Target URLs. Multiple URLs are only available on the VIP plan |
referrers |
object | Referrers, see referrers |
duration |
[number, number] | Visit duration [from, to] (seconds). Minimum 30 seconds, maximum depends on the plan |
platform |
object | User agent distribution, see platform |
macros |
string | Macro that runs in the main window. Requires PREMIUM or higher |
popupMacros |
string | Macro that runs in popups. Requires VIP, and only has an effect when maxPopups > 0 |
connectionTypes |
string[] | Accepted connection types: system, http, socks4, socks5, ssh. Cannot be empty |
ipTypes |
string[] | Accepted IP types: R (Residential), B (Business), V (VPN). Cannot be empty |
connectionSpeed |
string | Minimum connection speed: slow+, medium+, good+ |
performance |
string | Minimum machine performance: slow+, medium+, good+ |
geo |
object | Filter by country or continent, see geo |
acceptLanguages |
string[] or null | Countries used to set the Accept-Language header (not a filter). null means no language is forced |
capping |
object | Limits how often the same visitor can view again, see capping |
maxHits |
number | Maximum total visits, 0 means unlimited. Requires PREMIUM or higher |
untilDate |
string | When to stop getting traffic, YYYY/MM/DD HH:mm:ss in UTC. Empty if not set or already past |
estimatedHits |
number | Visits recorded. Read-only |
confirmedHits |
number | Visits confirmed. Read-only |
maxPopups |
number | Maximum popups per visit: PREMIUM 1, VIP 3 |
fingerprintSpoof |
boolean | Randomize the browser fingerprint on each visit. Requires VIP |
allowProxy |
boolean | Accept sessions that run through a proxy |
allowIPv6 |
boolean | Accept sessions with an IPv6 address |
allowBlockedPopups |
boolean | Count visits from sessions that have popups blocked |
ipFilter |
object | Block by IP, see ipFilter |
asnFilter |
object | Filter by ASN, see asnFilter |
userFilter |
object | Filter by the user running the session, see userFilter |
hourlyLimit |
object | Hourly visit limits, see hourlyLimit |
disJsRate |
number | % of visits with JavaScript disabled, 0-100 |
disImageRate |
number | % of visits with image loading disabled, 0-100 |
disCookieRate |
number | % of visits with cookies disabled, 0-100. New campaigns default to 100 |
cpuUsage |
number | Measured CPU usage of the target page, rounded to 2 decimal places. Read-only |
forceHide |
boolean | Hide the browser window during the visit. Requires VIP |
adSafe |
string | Ad network blocked from loading, for example google-ads; empty means nothing is blocked. Requires PREMIUM or higher |
webSecurity |
boolean | Enable the browser's same-origin policy. Sending false (off) requires VIP |
bypassCf |
boolean | Bypass Cloudflare on the target page. Requires VIP |
viewerVersion |
string | Accepted Viewer app version: all, 3, 6 (5 is still accepted but is being phased out) |
userState |
string | State you set: running or paused |
systemState |
string | Review status: approved, disabled, flagged, pend. Read-only |
referrers#
mode: "basic":urlsis an array of URLs; each visit picks a random one.mode: "advanced":urlsis an array of{url, rate}, whererateis the percentage for each referrer. Theratevalues must add up to 100.
Both modes require PREMIUM or higher: up to 50 referrers with PREMIUM and 100 with VIP. Referrers beyond the limit are dropped, and on a Regular account the field is ignored.
platform#
{
"usage": { "system": 10, "fixed": 30, "custom": 60 },
"os": { "win": 20, "linux": 5, "mac": 25, "android": 38, "ios": 12 },
"browsers": { "chrome": 60, "edge": 30, "opera": 4, "safari": 3, "firefox": 3 },
"custom": [{ "value": 743, "weight": 56 }, { "value": 8523, "weight": 44 }]
}
usage: shares of the three user agent sourcessystem,fixed,custom, adding up to 100.os: operating system shares for the system-generated user agents, adding up to 100.browsers: browser shares for the system-generated user agents, adding up to 100.custom: the custom user-agent groups for theusage.customshare.valueis the groupidfromuaGet, andweightis its weight.
geo#
rule:all(no filter),only(accept only the codes incodes),except(accept everything exceptcodes).by:countryorcontinent.codes: country codes or continent codes, depending onby;nullwhenruleisall.
capping#
type:own(a limit for this campaign alone) orshared(shared with another campaign).value: the minimum number of seconds before the same visitor can view again, up to 259200 (3 days).0turns it off.shared: the id of the source campaign whentypeisshared; ignored whentypeisown.
ipFilter#
type:0by session IP (By Session IP),1by the machine's real IP (By Machine IP),2both (All).rules: comma-separated addresses;*is a wildcard. Empty turns the filter off.
asnFilter#
type:0no filter,1accept only the ASNs inlist,2accept everything except the ASNs inlist.list: ASNs in the formAS<number>, comma-separated.
userFilter#
type:0no filter,2accept everyone except the users inlist. Any other value, including1(the removed "accept only the list" mode), makessiteAdd/siteUpdatereturn an error.list: usernames or user IDs, comma-separated. Usernames are case-sensitive and contain only letters, digits and underscores.
hourlyLimit#
speed:fast(use up the quota early in the hour) orslow(spread it evenly across the hour).hours: exactly 24 items{min, max}for hours 00-23 (UTC).-1turns traffic off for that hour,minandmaxboth0means no limit, and any other values give a random quota betweenminandmax.
Full JSON example#
{
"id": 812031,
"title": "My Site",
"isAdult": false,
"hasCoinMining": false,
"urls": ["https://my-site.com"],
"referrers": {
"mode": "basic",
"urls": ["https://www.facebook.com", "https://www.google.com"]
},
"duration": [59, 70],
"platform": {
"usage": { "system": 10, "fixed": 30, "custom": 60 },
"os": { "win": 20, "linux": 5, "mac": 25, "android": 38, "ios": 12 },
"browsers": { "chrome": 60, "edge": 30, "opera": 4, "safari": 3, "firefox": 3 },
"custom": [{ "value": 743, "weight": 56 }, { "value": 8523, "weight": 44 }]
},
"macros": "await WaitForLoading();\nwhile(true)\n{\n await Delay(Random(5000, 15000));\n await ClickRandomLink();\n}",
"popupMacros": "",
"connectionTypes": ["system", "http", "socks4", "socks5", "ssh"],
"ipTypes": ["R", "B", "V"],
"connectionSpeed": "slow+",
"performance": "slow+",
"geo": { "rule": "all", "by": "country", "codes": null },
"acceptLanguages": null,
"capping": { "type": "own", "value": 0, "shared": 0 },
"maxHits": 0,
"untilDate": "",
"estimatedHits": 123456,
"confirmedHits": 123000,
"maxPopups": 3,
"fingerprintSpoof": true,
"allowProxy": true,
"allowIPv6": true,
"allowBlockedPopups": true,
"ipFilter": { "type": 0, "rules": "1.55.*,223.54.1.*,2001:2f:*" },
"asnFilter": { "type": 0, "list": "AS1,AS2" },
"userFilter": { "type": 0, "list": "user1,User2,12345" },
"hourlyLimit": {
"speed": "fast",
"hours": [
{ "min": 0, "max": 0 }, { "min": 0, "max": 0 }, { "min": -1, "max": -1 }, { "min": 0, "max": 0 },
{ "min": 0, "max": 0 }, { "min": 0, "max": 0 }, { "min": 0, "max": 0 }, { "min": 0, "max": 0 },
{ "min": 5, "max": 20 }, { "min": 0, "max": 0 }, { "min": 0, "max": 0 }, { "min": 0, "max": 0 },
{ "min": 0, "max": 0 }, { "min": 0, "max": 0 }, { "min": 0, "max": 0 }, { "min": 0, "max": 0 },
{ "min": 0, "max": 0 }, { "min": 0, "max": 0 }, { "min": 0, "max": 0 }, { "min": 0, "max": 0 },
{ "min": 0, "max": 0 }, { "min": 0, "max": 0 }, { "min": 0, "max": 0 }, { "min": 0, "max": 0 }
]
},
"disJsRate": 0,
"disImageRate": 0,
"disCookieRate": 100,
"cpuUsage": 0.57,
"forceHide": true,
"adSafe": "google-ads",
"webSecurity": false,
"bypassCf": true,
"viewerVersion": "all",
"userState": "running",
"systemState": "approved"
}