TDS.SO
Getting started

Moving from Keitaro

How Keitaro concepts, macros and redirects map to TDS.SO, and a migration plan.

Moving makes sense if you mostly use Keitaro to distribute traffic: streams by geo and device, bot filtering, many domains. TDS.SO has no conversions, postbacks, offers or costs — keep those in your affiliate network or tracker. There is no import; everything is moved by hand.

Concepts

KeitaroTDS.SO
CampaignLink: domain/slug or the whole domain
Shared campaign settingsTemplate — no direct equivalent
StreamStream: top to bottom, first match wins; a stream without conditions never fires
Final streammain URL, the Everything else row
Bot filter streamthe template's Filter Level and Bot Action, checked before streams
Stream weightURL shares inside a stream or the main URL
User bindingHow to choose → Keep the same
Groupstags

Almost all stream filters have conditions with the same name: country, region, city, ISP, IP, proxy, device, browser, OS, language, referrer, and URL Parameter instead of Sub ID. The only operators are is and is not; time and day of week are in UTC. There is no equivalent for click limits, keywords, search engines, mobile operators or connection type. All conditions and formats are in the conditions reference.

Macros

KeitaroTDS.SO
{subid}{click_id}. In TDS.SO, {sub_id} is a regular query parameter
{country}{country} or {country_code} — country code
{region}{region} — a name, not a code
{user_agent}, {language}, {referrer}{ua}, {lang}, {referer}
{device_type:lang}{device}: pc, mobile, tablet
{sub_id_1}…{sub_id_30}{name} of any GET parameter

There are no campaign or stream macros ({campaign_name}, {stream_id}). The full list is in the reference.

Redirects

KeitaroTDS.SO
HTTP302 Temporary
Meta, double meta, JSMeta Refresh, Double Meta Refresh, JavaScript
With empty referrerany type with a page, for example Meta Refresh
IframeiFrame or Simple Iframe

There are no CURL, FormSubmit or Remote redirects. More in Redirect types.

Key differences

  • Your server runs only a web server that passes traffic to TDS.SO. Settings and statistics live in the dashboard; nothing needs updating on the server.
  • The template's redirect type, bot filter and Parameter Forwarding apply to links immediately, while the URL, Bot URL and streams are copied into a link when it is created. See Template and links.
  • Statistics are counted in Moscow time (MSK), stream conditions in UTC.
  • Changes in the dashboard take effect immediately.

Plan

  1. For each campaign, write down the domain, alias, streams, bot settings, redirect type and macros.
  2. Go through the first setup. Install the server on a separate VPS: the installer stops nginx and Apache, so Keitaro campaigns on the same server will stop opening.
  3. Build templates using the tables above. Save repeated streams with the Save all streams as a set button.
  4. On a pilot domain: point the A record to the new server, add the domain, create links with the same alias (Slug after / → Custom) or Just /. Until a link exists, the domain returns 404.
  5. Test the redirect, streams and bots, then move the remaining domains. Turn Keitaro off once clicks on it stop, and export your reports beforehand.

On this page