Traffic Flows and Filters Guide

Complete guide to configuring traffic flows and filters in Simple TDS for intelligent traffic routing and distribution.


Understanding Flows

A Flow is a traffic routing rule that determines where visitors go based on conditions (filters). Think of it as:

IF [visitor matches filters] THEN [send to target]

Each campaign can have multiple flows, and traffic is processed through them in priority order until a match is found.

How Traffic Processing Works

  1. Visitor clicks your campaign link
  2. System checks flows in priority order (highest priority first)
  3. For each flow, filters are evaluated
  4. First matching flow routes traffic to its assigned targets
  5. If no flow matches, traffic goes to the Exit Flow

Creating a Flow

Step 1: Navigate to Flow Creation

  1. Go to Campaigns in the sidebar
  2. Click on your campaign
  3. Go to the Flows tab
  4. Click Add Flow

Step 2: Configure Basic Settings

Field Description
Name Descriptive name (e.g., "Mobile Ukraine Traffic")
Description Optional notes about this flow
Priority Higher number = checked first (1-100)
Active Enable/disable this flow
Exit Flow Mark as fallback for unmatched traffic
Unique Visitors Only Count only first visit from each visitor

Step 3: Add Filters (Optional)

Filters determine which visitors match this flow. A flow without filters matches ALL traffic.

Step 4: Assign Targets

Add one or more targets with weight distribution:

Step 5: Save

Click Save to create the flow.


Flow Priority

Flow priority is determined by the order in the list β€” from top to bottom. Use the ↑↓ arrows to reorder flows and change their priority.

Priority determines the order in which flows are evaluated:

Priority Example

Flow Priority Filters
Premium Mobile 90 Country=US, Device=Mobile
General Mobile 70 Device=Mobile
Desktop Traffic 50 Device=Desktop
Exit Flow 10 None (catches all)

Processing order: Premium Mobile β†’ General Mobile β†’ Desktop Traffic β†’ Exit Flow

Tip: Always keep your Exit Flow at the lowest priority to catch unmatched traffic.

Exit Flows

An Exit Flow is a special fallback flow that receives all traffic that doesn't match any other flow.

Why You Need an Exit Flow

Without an Exit Flow, unmatched traffic has nowhere to go, potentially resulting in errors or lost visitors.

Note: Every campaign must have at least one active Exit flow to handle traffic that doesn't match the main flow filters.

Configuring an Exit Flow

  1. Create a new flow or edit an existing one
  2. Enable the Exit Flow toggle
  3. Set the lowest priority (e.g., 1 or 10)
  4. Do NOT add any filters (it should match everything)
  5. Assign a target (e.g., a general landing page or Google.com)

Exit Flow Rules


Understanding Filters

Filters are conditions that check visitor attributes. They determine whether a visitor matches a flow.

Filter Components

Component Description
Type What attribute to check (country, device, etc.)
Value What to match against
Mode Whitelist (include) or Blacklist (exclude)
Active Enable/disable this filter

Filter Types

Simple TDS supports the following filter types based on detected visitor characteristics:

Country Filter

Match visitors by their geographic location using ISO 2-letter country codes.

Type: country

How it works: System uses MaxMind GeoIP database or Cloudflare headers to detect visitor's country from IP address.

Value format:

Examples:

Tier 1 countries (Whitelist):
US,UK,CA,AU,DE,FR,IT,ES

Block specific regions (Blacklist):
CN,RU,IN

Special codes:

Country Code Reference: ISO 3166-1 alpha-2


Device Type Filter

Match visitors by their device category.

Type: device

How it works: System parses User-Agent header to detect device type.

Supported values:

Value format:

Examples:

Mobile traffic only (Whitelist):
mobile

Mobile and tablet (Whitelist):
mobile,tablet

Block TV and game consoles (Blacklist):
tv,game console

Detection patterns: System checks User-Agent for keywords like mobile, android, iphone, ipad, tablet, smart tv, playstation, xbox, etc.


Operating System Filter

Match visitors by their operating system.

Type: os

How it works: System parses User-Agent header to identify OS.

Supported values:

Value format:

Examples:

Mobile operating systems (Whitelist):
ios,android

Desktop operating systems (Whitelist):
windows,macos,linux

Block Linux and Unix (Blacklist):
linux,unix

Case-insensitive: Values are normalized to lowercase for matching.


Browser Filter

Match visitors by their web browser.

Type: browser

How it works: System parses User-Agent header to identify browser.

Supported values:

Value format:

Examples:

Modern browsers (Whitelist):
chrome,firefox,edge,safari

Block old browsers (Blacklist):
ie

Desktop browsers (Whitelist):
chrome,firefox,edge

Detection order: Edge is detected before Chrome (since Edge is Chromium-based), Opera before Chrome, etc.


Language Filter

Match visitors by their browser language preference.

Type: language

How it works: Extracted from Accept-Language HTTP header (browser setting).

Value format:

Examples:

English speakers (Whitelist):
en

English and Spanish (Whitelist):
en,es

European languages (Whitelist):
en,de,fr,it,es

Block specific languages (Blacklist):
ru,zh

Common language codes:

Note: This is the browser's language setting, not necessarily the visitor's actual language or country.

IP Address Filter

Target or block specific IP addresses or IP ranges using CIDR notation.

Type: ip

How it works: Extracts visitor's real IP from X-Forwarded-For, X-Real-IP headers, or connection socket.

Value format:

Examples:

Single IP (Whitelist for testing):
203.0.113.42

Multiple specific IPs (comma-separated):
203.0.113.42,203.0.113.43,203.0.113.44

IP range /24 (256 addresses):
192.168.1.0/24

Large network block /8 (16.7M addresses):
10.0.0.0/8

Block datacenter IPs (Blacklist):
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

IPv6 address:
2001:0db8:85a3::8a2e:0370:7334

IPv6 range:
2001:0db8:85a3::/48

CIDR Notation Primer:

IPv6 CIDR:

Use cases:

Performance note: IP filters are checked early in the filter pipeline for efficiency.

Referrer Filter

Match visitors based on the referring website or traffic source.

Type: referrer

How it works:

  1. For JavaScript redirects: Referrer passed as ?ref= URL parameter (more reliable)
  2. For direct clicks: Extracted from Referer HTTP header
  3. If empty: Marked as Direct

Value format:

Examples:

Traffic from Google (Whitelist):
google.com

Traffic from social media (Whitelist):
facebook.com,instagram.com,twitter.com,linkedin.com

Wildcard patterns:
*.google.com
*facebook*

Block specific referrer (Blacklist):
competitor-spy-tool.com

Multiple referrers with wildcards:
*.google.*,*.facebook.*,*.instagram.*

Matching behavior:

Special case - Direct traffic: To match visitors with NO referrer, use a separate "No Referrer" filter type (see below).

Important notes:
  • Referrer can be spoofed or blocked by browsers/privacy extensions
  • Some browsers strip referrer for HTTPSβ†’HTTP transitions
  • Use as one of multiple filters, not as sole criterion

User Agent Filter

Target or block traffic based on browser User-Agent string.

Type: user_agent

How it works: Matches against the full User-Agent HTTP header sent by browser.

Value format:

Examples:

Block specific bot (Blacklist):
Googlebot

Block multiple bots (Blacklist):
Googlebot,Bingbot,YandexBot,Baiduspider

Wildcard patterns to catch bot variants:
*bot*
*crawler*
*spider*

Block automated tools (Blacklist):
curl,wget,python-requests,*scraper*

Target specific browser version (Whitelist):
Chrome/120.0

Block old browser versions (Blacklist):
MSIE,Trident

Common bot patterns for blacklisting:

Googlebot,Bingbot,YandexBot,Baiduspider,DuckDuckBot,
facebookexternalhit,Slackbot,TwitterBot,LinkedInBot,TelegramBot,
WhatsApp,SemrushBot,AhrefsBot,MJ12bot,DotBot,BLEXBot,
SeznamBot,archive.org_bot,python-requests,curl,wget,
*scraper*,*spider*,*crawler*

Matching behavior:

Use cases:

Note: Simple TDS has built-in bot detection (is_bot filter). This User-Agent filter is for advanced custom rules.

Bot Detection Filter

Automatically block or allow detected bots using built-in bot detection.

Type: is_bot

How it works: System analyzes User-Agent patterns and IP characteristics to detect bots.

Value:

Examples:

Block all bots (Blacklist mode):
Type: is_bot
Value: true
Mode: Blacklist

Allow only humans (Whitelist mode):
Type: is_bot
Value: false
Mode: Whitelist

Allow only bots (unusual - for testing):
Type: is_bot
Value: true
Mode: Whitelist

Bot detection methods:

  1. User-Agent analysis: Pattern matching against 100+ known bot signatures
  2. IP-based detection: Datacenter and hosting provider IP ranges
  3. Behavior patterns: Automated request characteristics

Detected bot categories:

Best practice: Use Blacklist mode with value true to block bots while allowing humans.

Why use this instead of User-Agent filter?


Direct Traffic / No Referrer Filter

Match visitors who arrive with no referrer (direct traffic, bookmarks, typed URL).

Type: no_referrer (Special filter type - coming soon)

How it works: Checks if referrer is empty, null, or marked as "Direct".

Value: Not applicable (filter has no value - it just checks presence/absence)

Examples:

Allow only direct traffic (Whitelist):
Type: no_referrer
Mode: Whitelist

Block direct traffic (Blacklist):
Type: no_referrer
Mode: Blacklist

Use cases:

Note: Currently, to filter direct traffic, you can use a Referrer filter with empty value or check for "Direct" keyword

Filter Modes: AND vs OR

The Filter Mode determines how multiple whitelist filters are combined.

OR Mode (Default)

Traffic passes if it matches ANY whitelist filter.

Example with OR Mode:

Results:

Visitor Country Device Result
A US Desktop βœ… PASS (US matches)
B FR Mobile βœ… PASS (Mobile matches)
C FR Desktop ❌ BLOCKED (nothing matches)

Use OR when: You want to accept traffic matching ANY of your criteria.

AND Mode

Traffic passes only if it matches ALL whitelist filters.

Example with AND Mode:

Results:

Visitor Country Device Result
A US Mobile βœ… PASS (both match)
B US Desktop ❌ BLOCKED (Device doesn't match)
C FR Mobile ❌ BLOCKED (Country doesn't match)

Use AND when: You need precise targeting where ALL conditions must be met.

Changing Filter Mode

  1. Open the flow for editing
  2. Find the Filter Mode setting
  3. Select AND or OR
  4. Save the flow

Whitelist vs Blacklist

Each filter can operate in two modes:

Whitelist (Include)

Example: Whitelist Country = US β†’ Only US traffic passes

Blacklist (Exclude)

Example: Blacklist Country = CN,RU β†’ Traffic from China and Russia is blocked

Processing Order

  1. Blacklist filters are checked first
    • If traffic matches ANY blacklist β†’ BLOCKED immediately
  2. Then whitelist filters are checked
    • Based on AND/OR mode

Combining Whitelist and Blacklist

Example:

Processing:

  1. Is visitor IP 192.168.1.100? β†’ BLOCK
  2. Is visitor from US or CA? β†’ If yes, PASS; if no, BLOCK

Click Limits

Flows support click limits to cap traffic volume.

Available Limits

Limit Type Description
Total Click Limit Maximum clicks for this flow (lifetime)
Hourly Click Limit Maximum clicks per hour

Setting Click Limits

  1. Open the flow for editing
  2. Find the Click Limits section
  3. Enter values (leave empty for unlimited)
  4. Save the flow

Limit Behavior

When a limit is reached:

Use Cases


Advanced Filter Examples

Example 1: Premium Mobile Traffic

Goal: Target iOS users from US on mobile devices

Configuration:

Example 2: Block Bot Traffic

Goal: Block known bot IPs and suspicious traffic

Configuration:

Example 3: Geo-Targeted Campaign

Goal: Different flows for different regions

Flow 1 (Priority 90):
  • Name: "US Traffic"
  • Filter: Whitelist Country = US
  • Target: US Landing Page
Flow 2 (Priority 80):
  • Name: "EU Traffic"
  • Filter: Whitelist Country = DE,FR,GB,IT,ES
  • Target: EU Landing Page
Flow 3 (Priority 10):
  • Name: "Exit Flow" (checked)
  • No filters
  • Target: Global Landing Page

Example 4: Time-Based Routing

Goal: Different targets for business hours vs off-hours

Flow 1 (Priority 80):
  • Name: "Business Hours"
  • Filter: Whitelist Hour = 9-17
  • Filter: Whitelist Day = Monday,Tuesday,Wednesday,Thursday,Friday
  • Target: Sales Team Chat
Flow 2 (Priority 10):
  • Name: "Off Hours"
  • No filters (Exit Flow)
  • Target: Automated Response Page

Public Flow Statistics

Share flow performance data with partners, advertisers, or clients without giving them access to your account.

What Are Public Statistics?

Public Flow Statistics is a secure way to share real-time traffic data for a specific flow via a unique, unguessable URL. Perfect for transparency with partners while maintaining security.

Enabling Public Statistics

  1. Open the flow you want to share
  2. Go to the Information tab
  3. Find the Public Statistics section
  4. Toggle Enable Public Statistics to ON
  5. System generates a secure 64-character token
  6. Share the public URL: https://yourdomain.com/public-flow-stats/YOUR_TOKEN

What Partners Can See

The public statistics page displays:

Overview Metrics:

Traffic Breakdown:

Time-Based Analysis:

Geographic Distribution:

What Partners CANNOT See

Public statistics are strictly read-only and limited:

Security Features

Unique Token:

Access Control:

Token Management:

Privacy:

Use Cases

Use Case 1: Partner Reporting

Scenario: Affiliate network wants to verify traffic quality

Solution: Enable public stats, share token

Benefit: Build trust with transparency, no account access needed

Use Case 2: Advertiser Verification

Scenario: Advertiser wants proof of traffic volume and quality

Solution: Create dedicated flow for advertiser's offer, enable public stats

Benefit: Real-time verification, prove performance, win more deals

Use Case 3: Client Dashboard

Scenario: Agency managing campaigns for clients

Solution: Enable public stats per client flow, embed in client portal

Benefit: Self-service reporting, reduce support requests

Use Case 4: Media Buyer Transparency

Scenario: Buying traffic from multiple sources, need to show quality

Solution: Separate flow per traffic source, enable public stats

Benefit: Compare sources, optimize spend, negotiate better rates

Sharing the Public URL

Copy URL directly from UI:

  1. Flow β†’ Information tab β†’ Public Statistics section
  2. Click "Copy Link" button
  3. Paste in email, chat, or client portal

URL Format:

https://yourdomain.com/public-flow-stats/abc123...xyz789
                                        └─ 64-char token β”€β”˜

Embedding in websites:

<iframe
  src="https://yourdomain.com/public-flow-stats/YOUR_TOKEN"
  width="100%"
  height="800px"
  frameborder="0">
</iframe>

Revoking Access

Method 1: Disable Public Stats

Method 2: Regenerate Token

When to revoke:

Language Support

Public statistics page supports multiple languages:

Language is auto-detected from browser settings or can be manually selected on the page.

Performance Notes

Troubleshooting

Problem: Token not working

Problem: Stats not updating

Problem: Want to revoke access but forgot who has token


Best Practices

Flow Organization

  1. Use descriptive names: "US Mobile iOS" is better than "Flow 1"
  2. Document with descriptions: Add notes about flow purpose
  3. Keep priority gaps: Use 10, 20, 30... not 1, 2, 3... for easier insertions
  4. Review regularly: Remove or disable unused flows

Filter Efficiency

  1. Order by exclusivity: Most specific flows at highest priority
  2. Use blacklists sparingly: They apply globally and can cause unexpected blocks
  3. Test thoroughly: Use incognito mode and VPN to verify targeting
  4. Monitor statistics: Check if filters are working as expected

Common Mistakes to Avoid

Mistake Problem Solution
No Exit Flow Unmatched traffic errors Always have one Exit Flow
Conflicting filters Traffic unexpectedly blocked Review filter logic carefully
Wrong filter mode AND when OR was needed Understand AND vs OR difference
Too many blacklists Legitimate traffic blocked Use whitelists when possible
Same priority Unpredictable routing Use unique priorities

Performance Tips

  1. Critical filters first: Country and IP filters are fastest
  2. Minimize filter count: Each filter adds processing time
  3. Use caching: System caches flow configs for 60 seconds
  4. Disable unused flows: Reduces processing load

Troubleshooting

Traffic Not Routing Correctly

  1. Check flow priority order
  2. Verify filter values are correct (case-sensitive)
  3. Check filter mode (AND vs OR)
  4. Ensure flow is active
  5. Check click limits haven't been reached

All Traffic Going to Exit Flow

  1. Verify other flows have matching filters
  2. Check filter mode - AND requires ALL to match
  3. Ensure filters aren't conflicting
  4. Test with your own traffic using VPN

Filters Not Working

  1. Confirm filter is set to Active
  2. Check value format (country codes, IP format)
  3. Verify data is being detected (check click logs)
  4. Some data may not be available (e.g., ISP for some visitors)

Next Steps