Skip to content

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",
    "urls": ["https://www.facebook.com", "https://www.google.com"]
}
  • mode: "basic": urls is an array of URLs; each visit picks a random one.
  • mode: "advanced": urls is an array of {url, rate}, where rate is the percentage for each referrer. The rate values 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 sources system, 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 the usage.custom share. value is the group id from uaGet, and weight is its weight.

geo#

{ "rule": "all", "by": "country", "codes": null }
  • rule: all (no filter), only (accept only the codes in codes), except (accept everything except codes).
  • by: country or continent.
  • codes: country codes or continent codes, depending on by; null when rule is all.

capping#

{ "type": "own", "value": 0, "shared": 0 }
  • type: own (a limit for this campaign alone) or shared (shared with another campaign).
  • value: the minimum number of seconds before the same visitor can view again, up to 259200 (3 days). 0 turns it off.
  • shared: the id of the source campaign when type is shared; ignored when type is own.

ipFilter#

{ "type": 0, "rules": "1.55.*,223.54.1.*,2001:2f:*" }
  • type: 0 by session IP (By Session IP), 1 by the machine's real IP (By Machine IP), 2 both (All).
  • rules: comma-separated addresses; * is a wildcard. Empty turns the filter off.

asnFilter#

{ "type": 0, "list": "AS1,AS2" }
  • type: 0 no filter, 1 accept only the ASNs in list, 2 accept everything except the ASNs in list.
  • list: ASNs in the form AS<number>, comma-separated.

userFilter#

{ "type": 0, "list": "user1,User2,12345" }
  • type: 0 no filter, 2 accept everyone except the users in list. Any other value, including 1 (the removed "accept only the list" mode), makes siteAdd/siteUpdate return an error.
  • list: usernames or user IDs, comma-separated. Usernames are case-sensitive and contain only letters, digits and underscores.

hourlyLimit#

{
    "speed": "fast",
    "hours": [{ "min": 0, "max": 0 }]
}
  • speed: fast (use up the quota early in the hour) or slow (spread it evenly across the hour).
  • hours: exactly 24 items {min, max} for hours 00-23 (UTC). -1 turns traffic off for that hour, min and max both 0 means no limit, and any other values give a random quota between min and max.

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"
}