{"id":162970,"date":"2026-04-09T10:21:44","date_gmt":"2026-04-09T10:21:44","guid":{"rendered":"https:\/\/www.scaleo.io\/blog\/?p=162970"},"modified":"2026-04-09T10:59:17","modified_gmt":"2026-04-09T10:59:17","slug":"subid-click-id-architecture-for-casino-affiliates-tracking-taxonomy","status":"publish","type":"post","link":"https:\/\/www.scaleo.io\/blog\/subid-click-id-architecture-for-casino-affiliates-tracking-taxonomy\/","title":{"rendered":"SubID &amp; Click-ID Architecture for Casino Affiliates in 2026 &#8211; Tracking Taxonomy That Makes Optimization Possible"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">You&#8217;re paying \u20ac40,000\/month to an affiliate who claims they&#8217;re sending premium traffic. Your platform shows 2,847 registrations attributed to them. But you have no idea which of their 14 different traffic sources is actually profitable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Was it their Instagram story? The banner ad on their review site? The Twitch stream overlay? The email blast to their house list?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You don&#8217;t know. Because you&#8217;re tracking at the affiliate level, not the placement level. You&#8217;re flying blind on \u20ac480,000 in annual spend, optimizing based on aggregate data that hides more than it reveals.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.scaleo.io\/igaming\" rel=\"dofollow\" ><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1340\" src=\"https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-partner-marketing-software-developed-fori-igaming-industry-scaled.jpg\" alt=\"partner marketing software for igaming industry\" class=\"wp-image-8617\" title=\"-\" srcset=\"https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-partner-marketing-software-developed-fori-igaming-industry-scaled.jpg 2560w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-partner-marketing-software-developed-fori-igaming-industry-300x157.jpg 300w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-partner-marketing-software-developed-fori-igaming-industry-1024x536.jpg 1024w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-partner-marketing-software-developed-fori-igaming-industry-768x402.jpg 768w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-partner-marketing-software-developed-fori-igaming-industry-1536x804.jpg 1536w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-partner-marketing-software-developed-fori-igaming-industry-2048x1072.jpg 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">SubIDs and Click IDs solve this. They&#8217;re the tracking infrastructure that transforms your affiliate program from a black box into an analyzable system where you can trace every euro of revenue back to the exact creative, placement, and traffic source that generated it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s what this guide covers: a practical naming convention you can implement this week, parameter mapping that survives cross-domain tracking, traffic-type-specific <a href=\"https:\/\/www.scaleo.io\/blog\/7-tips-to-increase-your-affiliate-conversion-with-subids\/\" title=\"7 Tips To Increase Your Affiliate Conversion With SubIDs\" data-wpil-monitor-id=\"253139\" rel=\"dofollow\" >SubID<\/a> structures, and a QA checklist that prevents the &#8220;we can&#8217;t track this&#8221; disasters before they cost you money.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The 30-Second Technical Definition<\/h2>\n\n\n\n<p class=\"has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-paragraph\"><strong>SubIDs<\/strong> are operator-defined dimension labels that affiliates append to tracking links to categorize their traffic sources. Think of them as the &#8220;why&#8221; and &#8220;where&#8221; of the click\u2014which campaign, which placement, which creative variation drove this player.<\/p>\n\n\n\n<p class=\"has-blush-light-purple-gradient-background has-background wp-block-paragraph\"><strong>Click IDs<\/strong> are platform-generated unique identifiers assigned to each individual click event. They&#8217;re the &#8220;who&#8221; and &#8220;when&#8221;\u2014the immutable token that connects a specific click to all downstream events (registration, deposit, wager) for attribution and postback reconciliation.<\/p>\n\n\n\n<p class=\"has-pale-ocean-gradient-background has-background wp-block-paragraph\"><strong>Partner IDs<\/strong> (or Affiliate IDs) identify which affiliate network or individual partner the traffic came from. This is the top-level grouping.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All three work together:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Component<\/th><th>Purpose<\/th><th>Set By<\/th><th>Example<\/th><\/tr><\/thead><tbody><tr><td>Partner ID<\/td><td>Identify the affiliate<\/td><td>Platform<\/td><td><code>aff_12345<\/code><\/td><\/tr><tr><td>Click ID<\/td><td>Unique click identifier for attribution<\/td><td>Platform (auto-generated)<\/td><td><code>clk_a7f3d9e2b4<\/code><\/td><\/tr><tr><td>SubID<\/td><td>Categorize traffic source\/placement<\/td><td>Affiliate\/Operator<\/td><td><code>twitch|jan2026|overlay|bonus50<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You need all three. Partner ID groups affiliates. Click ID enables postback attribution. SubID enables optimization.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Problem This Solves (And the Money It Saves)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&#8220;We can&#8217;t tell which affiliate placements produce <a class=\"wpil_keyword_link\" href=\"https:\/\/www.scaleo.io\/blog\/how-to-analyze-improve-ggr-and-ngr-top-casino-kpis-explained\/#How_to_Calculate_Net_Gaming_Revenue_NGR\" title=\"How To Analyze &amp; Improve GGR and NGR + Top Casino KPIs Explained\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"253138\" rel=\"dofollow\" >NGR<\/a>.&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your top affiliate has five websites, runs paid traffic on three platforms, sends email to four different lists, and posts on six social channels. All of that funnels through one affiliate ID. Your reporting shows they drove \u20ac180,000 NGR last month.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Which of those 18+ sources was profitable? Which should they scale? Which should they kill?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Without SubIDs, you can&#8217;t answer. You&#8217;re optimizing at affiliate level when the actual performance variance is at placement level. One of their Instagram posts might be delivering 4.2x ROI while their paid Google traffic is bleeding money at 0.6x. But you&#8217;re paying them the same blended commission rate on all of it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&#8220;Partners claim conversions we can&#8217;t verify.&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Affiliate says they drove player ID 847392. Your platform shows that player registered, but you have no click record connecting them to the affiliate. No Click ID. No way to verify the claim. You either pay on faith or deny the claim and damage the relationship.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Click IDs create an immutable audit trail. Player registered? Show me the Click ID. No Click ID? No payout. Clean attribution requires unforgeable identifiers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&#8220;Duplicate credit, missing postbacks, broken funnels.&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Player clicks Affiliate A&#8217;s link, browses, leaves. Two days later clicks Affiliate B&#8217;s link and registers. Both affiliates have cookie-based tracking. Both claim the conversion.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Without Click ID-based deduplication, you&#8217;re paying double. With Click IDs, you have timestamps, you know which click was most recent, and your attribution rules determine who gets credit. One source of truth.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&#8220;No clean path from click \u2192 KYC \u2192 FTD \u2192 wager \u2192 NGR.&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your platform fires a registration event. Your KYC system fires an approval event three hours later. Your PSP fires a deposit event the next day. Your gaming platform calculates NGR weekly. Four different systems, four different event schemas, and you need to join them all to understand affiliate performance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Click IDs are the join key. Every event\u2014reg, KYC, deposit, wager\u2014includes the Click ID from the original click. Your reconciliation system links them. You can now trace the full player lifecycle from initial click through twelve months of wagering activity, all attributed to the exact SubID placement that sourced the player.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is how you calculate lifetime value by traffic source. This is how you identify that Affiliate A&#8217;s Twitch streams generate players with 18-month LTV of \u20ac840 while Affiliate B&#8217;s incentivized email traffic generates players with 6-week LTV of \u20ac45.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Same registration count. Wildly different economics.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Most Tracking Platforms Fail at This (And What We Built Instead)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We, the team behind <a href=\"https:\/\/www.scaleo.io\/igaming\" title=\"iGaming\" data-wpil-monitor-id=\"262860\" rel=\"dofollow\" >Scaleo<\/a>, work with hundreds of casino operators and see the same tracking failures repeatedly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Legacy affiliate platforms treat SubIDs as an afterthought\u2014basic text fields with no validation, no reporting structure, no integration with postback systems. Operators end up with:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Inconsistent SubID formats across affiliates (one uses <code>twitch_jan_2026<\/code>, another uses <code>TwitchJan2026<\/code>, another uses <code>twitch|jan|2026<\/code>)<\/li>\n\n\n\n<li>No way to analyze SubID performance without manual Excel exports<\/li>\n\n\n\n<li>Click IDs that don&#8217;t survive redirect chains or cross-domain hops<\/li>\n\n\n\n<li>Postback systems that can&#8217;t map Click IDs back to SubID dimensions<\/li>\n\n\n\n<li>Reports that show affiliate-level data but zero SubID granularity<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The result? Operators know they need SubID tracking but can&#8217;t actually use it for optimization because the infrastructure is broken.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Modern iGaming affiliate tracking requires platforms built specifically for multi-dimensional attribution where SubIDs aren&#8217;t just captured\u2014they&#8217;re validated, structured, and reported on at every stage of the player lifecycle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is why <strong>Scaleo&#8217;s <\/strong>tracking architecture treats SubIDs as first-class dimensions, not optional metadata. Every click logs up to 10 SubID fields with validation rules, every conversion preserves those dimensions, and every report can filter and segment by any SubID combination.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1090\" src=\"https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2025\/12\/scaleo-casino-operator-affiliate-software-dashboard-screenshot2.webp\" alt=\"-\" class=\"wp-image-136830\" title=\"-\" srcset=\"https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2025\/12\/scaleo-casino-operator-affiliate-software-dashboard-screenshot2.webp 1920w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2025\/12\/scaleo-casino-operator-affiliate-software-dashboard-screenshot2-1536x872.webp 1536w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2025\/12\/scaleo-casino-operator-affiliate-software-dashboard-screenshot2-768x436.webp 768w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">But before we get into platform capabilities, let&#8217;s cover the taxonomy that makes this work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Operator-Grade Tracking Taxonomy (The Hierarchy That Doesn&#8217;t Collapse at Scale)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">The Recommended Hierarchy<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Your tracking structure needs to be granular enough to enable optimization but not so complex that it becomes unmaintainable. Here&#8217;s the proven hierarchy for casino <a class=\"wpil_keyword_link\" href=\"https:\/\/www.scaleo.io\/blog\/best-25-free-affiliate-tracking-software\/\" title=\"25 Free &amp; Affordable Affiliate Tracking Software Worth Using (2026-Ready Update)\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"253137\" rel=\"dofollow\" >affiliate tracking<\/a>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Level 1: Partner (Affiliate ID)<\/strong> The affiliate network or individual partner. Auto-assigned by your platform. Never changes. Example: <code>partner_12345<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Level 2: Offer (Offer ID)<\/strong> Which product or promotion the affiliate is promoting. You might have different offers for different geos, different welcome bonuses, or different brand variants. Example: <code>offer_welcome100<\/code> or <code>offer_casinogames_de<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Level 3: Campaign<\/strong> The affiliate&#8217;s marketing initiative. Time-bound or ongoing. This is their organization layer. Example: <code>spring2026_relaunch<\/code> or <code>evergreen_review<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Level 4: Placement<\/strong> Where the link appears. This is the page or channel context. Example: <code>homepage_hero<\/code>, <code>reviewpage_table<\/code>, <code>twitch_overlay<\/code>, <code>email_header<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Level 5: Creative<\/strong> The specific ad creative, CTA text, or visual variant. Example: <code>banner_300x250_v2<\/code>, <code>cta_getbonus_red<\/code>, <code>video_intro_15sec<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Level 6: SubID Slots (sub1\u2013sub5)<\/strong> Flexible dimension fields that affiliates populate based on their tracking needs. These map to the hierarchy above or capture additional metadata.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example mapping:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>sub1<\/code> = traffic source platform (organic, meta, google, twitch)<\/li>\n\n\n\n<li><code>sub2<\/code> = campaign identifier<\/li>\n\n\n\n<li><code>sub3<\/code> = placement\/position<\/li>\n\n\n\n<li><code>sub4<\/code> = creative variant<\/li>\n\n\n\n<li><code>sub5<\/code> = geo or device or experiment ID<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Optional Dimensions:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GEO code (especially if offer isn&#8217;t geo-specific)<\/li>\n\n\n\n<li>Device type (desktop, mobile, tablet, app)<\/li>\n\n\n\n<li>Landing page variant (if you&#8217;re A\/B testing landing pages)<\/li>\n\n\n\n<li>Funnel step (for multi-step registration flows)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The key is consistency. Don&#8217;t let one affiliate use <code>sub1<\/code> for campaign while another uses it for creative. Define a standard and enforce it in your affiliate onboarding documentation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The &#8220;Never Change This&#8221; Rule<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Use stable IDs, not mutable labels.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Wrong approach: Set <code>campaign=SummerPromo2026<\/code> then reuse that field next year for <code>campaign=WinterPromo2027<\/code>. Now your historical data is corrupted. Last year&#8217;s summer traffic is labeled with this year&#8217;s winter campaign.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 Right approach: Use immutable identifiers. <code>campaign=c_001<\/code> where c_001 always refers to Summer 2026, even after the campaign ends. Store the human-readable label (&#8220;Summer Promo 2026&#8221;) in your campaign metadata table, not in your tracking parameters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This applies to all dimensions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Offer IDs don&#8217;t change meaning<\/li>\n\n\n\n<li>Placement IDs don&#8217;t get reassigned<\/li>\n\n\n\n<li>SubID schemas don&#8217;t shift definitions mid-year<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">When you need to change something, create a new ID. Don&#8217;t reuse old ones. Your year-over-year analysis will thank you.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SubID Naming Convention Template (Copy\/Paste Ready)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use a consistent separator-delimited format for SubID values when affiliates need to pack multiple dimensions into one field.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Recommended format:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>source|channel|placement|creative|variant\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Real example:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sub1=twitch|channelXYZ|overlay|bonus50|v2\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This reads as: traffic source is Twitch, specific channel is channelXYZ, placement is the stream overlay, creative is the &#8220;bonus50&#8221; offer, variant is version 2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Allowed characters:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lowercase letters: <code>a-z<\/code><\/li>\n\n\n\n<li>Numbers: <code>0-9<\/code><\/li>\n\n\n\n<li>Hyphens: <code>-<\/code><\/li>\n\n\n\n<li>Underscores: <code>_<\/code><\/li>\n\n\n\n<li>Pipe separator: <code>|<\/code> (use only if your tracking stack doesn&#8217;t mangle it)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Avoid:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Spaces (they break URLs or get encoded as %20)<\/li>\n\n\n\n<li>Special characters: <code>&amp;, ?, #, =, \/<\/code> (these have meaning in URLs)<\/li>\n\n\n\n<li>Uppercase letters (causes case-sensitivity matching issues)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Max length guidance:<\/strong> Most platforms handle 255 characters per SubID field. Practical limit: keep each SubID under 100 characters. If you need more, you&#8217;re probably overcomplicating it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Case rules:<\/strong> Lowercase everything. <code>Twitch<\/code> and <code>twitch<\/code> will be treated as different values in most reporting systems. Pick one (lowercase), enforce it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Separator rules:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <code>|<\/code> (pipe) to separate logical components within a SubID<\/li>\n\n\n\n<li>Use <code>-<\/code> (hyphen) within component values (<code>campaign-name-here<\/code>)<\/li>\n\n\n\n<li>Use <code>_<\/code> (underscore) for word separation (<code>landing_page_variant<\/code>)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Avoid mixing separators inconsistently. Pick a standard and document it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example SubID schema for media buyers:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sub1 = platform-campaign-id\nsub2 = adset-id\nsub3 = ad-id  \nsub4 = landing-page-variant\nsub5 = geo-device\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Populated:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sub1=meta-spring2026\nsub2=adset-789\nsub3=ad-456-carousel\nsub4=lp-v3\nsub5=de-mobile\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Clean. Parseable. URL-safe. Ready for reporting segmentation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Click ID Lifecycle: From Click to Postback to Payout<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step-by-Step Lifecycle<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Understanding the Click ID journey is essential to debugging attribution problems. Here&#8217;s exactly what happens:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Click generated \u2192 Click ID issued<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Player clicks affiliate&#8217;s tracking link:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;yourcasino.com\/?aff_id=12345&amp;sub1=twitch&amp;sub2=stream-jan15\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Your tracking system receives the click, generates a unique Click ID, logs the event:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Click ID: clk_a7f3d9e2b4\nTimestamp: 2026-01-15 14:32:18 UTC\nAffiliate ID: 12345\nSubID values: {sub1: \"twitch\", sub2: \"stream-jan15\"}\nIP: 85.214.x.x\nUser Agent: Mozilla\/5.0...\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Redirected to landing page (with params)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Player gets redirected to your landing page with Click ID appended:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;yourcasino.com\/register?click_id=clk_a7f3d9e2b4\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Your landing page JavaScript or server-side code extracts the Click ID and stores it (cookie, localStorage, or server-side session).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Registration event fired<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Player completes registration. Your platform fires an event to your tracking system:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>POST \/api\/conversion\n{\n  \"click_id\": \"clk_a7f3d9e2b4\",\n  \"event\": \"registration\",\n  \"player_id\": \"p_847392\",\n  \"timestamp\": \"2026-01-15 14:38:44 UTC\"\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tracking system matches Click ID to the original click, validates it, creates a conversion record.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. KYC event (optional but valuable)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Player passes KYC verification. Platform fires another event:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"click_id\": \"clk_a7f3d9e2b4\",\n  \"event\": \"kyc_approved\",\n  \"player_id\": \"p_847392\",\n  \"timestamp\": \"2026-01-15 16:22:11 UTC\"\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. Deposit event (FTD &#8211; First Time Deposit)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Player makes first deposit. PSP or platform fires:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"click_id\": \"clk_a7f3d9e2b4\",\n  \"event\": \"first_deposit\",\n  \"player_id\": \"p_847392\",\n  \"amount\": \"200.00\",\n  \"currency\": \"EUR\",\n  \"timestamp\": \"2026-01-15 18:45:33 UTC\"\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This is typically when commission becomes payable (after hold period).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6. Wager\/NGR events (the gold standard)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Player wagers, platform calculates NGR, fires ongoing events:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"click_id\": \"clk_a7f3d9e2b4\",\n  \"event\": \"ngr_update\",\n  \"player_id\": \"p_847392\",\n  \"ngr\": \"45.30\",\n  \"period\": \"2026-01-15\",\n  \"timestamp\": \"2026-01-16 02:00:00 UTC\"\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>7. Postback sends data back to affiliate network<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your affiliate is working through a network that requires postbacks, your system makes a server-to-server call:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>POST https:\/\/affiliate-network.com\/postback\n{\n  \"click_id\": \"clk_a7f3d9e2b4\",\n  \"status\": \"approved\",\n  \"payout\": \"80.00\",\n  \"currency\": \"EUR\",\n  \"transaction_id\": \"txn_445566\"\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>8. Conversion validated \u2192 payable or reversed<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your finance team reviews the conversion during the hold period. If player is clean (no fraud, no chargeback), status stays &#8220;approved&#8221; and becomes payable. If fraud detected, status changes to &#8220;rejected&#8221; and commission is reversed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>9. Payout logic reads validated events<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Month-end arrives. Your payout system queries all conversions with <code>status=approved<\/code> for each affiliate, calculates commission based on your agreement (CPA, <a href=\"https:\/\/www.scaleo.io\/blog\/understanding-the-basics-of-revenue-sharing-rev-share-for-an-igaming-affiliate-programs\/\" title=\"Revenue Sharing (RevShare) for iGaming Affiliate Programs \u2013 Full Guide\" data-wpil-monitor-id=\"253143\" rel=\"dofollow\" >RevShare<\/a>, hybrid), generates payout reports.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The entire flow is keyed on Click ID. Without it, this chain breaks at step 3.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What Breaks It<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Redirect chains stripping params<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Player clicks affiliate link \u2192 redirects through affiliate&#8217;s tracking domain \u2192 redirects through your CDN \u2192 lands on your site. Each hop is an opportunity to lose URL parameters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If any redirect doesn&#8217;t preserve query params, your <code>click_id<\/code> disappears. Player registers with no attribution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fix: Test your redirect chain. Use server-side 302 redirects that explicitly preserve all query parameters. Avoid JavaScript redirects that might not carry params.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cross-domain hops without pass-through<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Affiliate link is on <code>review-site.com<\/code>. Your registration is on <code>yourcasino.com<\/code>. Browser cookies don&#8217;t transfer across domains.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re relying on cookies to persist Click ID across domains, it won&#8217;t work. Use URL parameters and server-side storage instead.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Mobile in-app browsers<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instagram, Facebook, TikTok all use in-app browsers with restricted cookie and storage access. Click ID stored in a cookie might not persist when player opens the link.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fix: Use server-side Click ID storage tied to a session identifier that survives browser quirks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Caching \/ prefetch \/ bot clicks<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CDNs and browsers prefetch links. Bots crawl affiliate links. Each generates a click but never leads to a real player.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your system registers thousands of Click IDs from <a href=\"https:\/\/www.scaleo.io\/blog\/what-is-bot-traffic-and-how-to-filter-it-out\/\" title=\"What is Bot Traffic and How to Filter it Out?\" data-wpil-monitor-id=\"253146\" rel=\"dofollow\" >bot traffic<\/a>. When a real player registers, if you&#8217;re not validating that the Click ID came from a human session, you might attribute to a bot click instead of the real affiliate click.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fix: Implement bot detection at click time. Flag suspicious clicks. Use fingerprinting or behavioral signals to validate human traffic before issuing Click IDs that count toward attribution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wrong event mapping from platform\/CRM<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your gaming platform fires a &#8220;new_player&#8221; event but doesn&#8217;t include Click ID in the payload. Your tracking system receives the event and has no way to attribute it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fix: Ensure your platform integration includes Click ID in every event payload. Registration, deposit, wager\u2014everything needs the Click ID field populated.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Parameter Map (The Core Implementation Table)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s the complete parameter reference for casino affiliate tracking. Use this as your integration specification:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Parameter<\/th><th>Set By<\/th><th>Purpose<\/th><th>Example Value<\/th><th>Required?<\/th><\/tr><\/thead><tbody><tr><td><code>click_id<\/code><\/td><td>Platform (auto)<\/td><td>Unique click identifier for attribution<\/td><td><code>clk_a7f3d9e2b4<\/code><\/td><td>Yes<\/td><\/tr><tr><td><code>affiliate_id<\/code><\/td><td>Platform<\/td><td>Identifies which partner\/affiliate<\/td><td><code>aff_12345<\/code><\/td><td>Yes<\/td><\/tr><tr><td><code>offer_id<\/code><\/td><td>Operator<\/td><td>Which offer\/promotion being tracked<\/td><td><code>offer_welcome100_de<\/code><\/td><td>Yes<\/td><\/tr><tr><td><code>sub1<\/code><\/td><td>Affiliate<\/td><td>First SubID dimension (traffic source)<\/td><td><code>twitch<\/code><\/td><td>Recommended<\/td><\/tr><tr><td><code>sub2<\/code><\/td><td>Affiliate<\/td><td>Second SubID dimension (campaign)<\/td><td><code>stream-jan15<\/code><\/td><td>Optional<\/td><\/tr><tr><td><code>sub3<\/code><\/td><td>Affiliate<\/td><td>Third SubID dimension (placement)<\/td><td><code>overlay<\/code><\/td><td>Optional<\/td><\/tr><tr><td><code>sub4<\/code><\/td><td>Affiliate<\/td><td>Fourth SubID dimension (creative)<\/td><td><code>bonus50-cta<\/code><\/td><td>Optional<\/td><\/tr><tr><td><code>sub5<\/code><\/td><td>Affiliate<\/td><td>Fifth SubID dimension (variant\/geo)<\/td><td><code>de-mobile<\/code><\/td><td>Optional<\/td><\/tr><tr><td><code>creative_id<\/code><\/td><td>Affiliate<\/td><td>Specific creative asset identifier<\/td><td><code>banner_728x90_v3<\/code><\/td><td>Optional<\/td><\/tr><tr><td><code>placement_id<\/code><\/td><td>Affiliate<\/td><td>Where the link appeared<\/td><td><code>homepage_hero<\/code><\/td><td>Optional<\/td><\/tr><tr><td><code>geo<\/code><\/td><td>Platform\/Affiliate<\/td><td>Player&#8217;s country code<\/td><td><code>DE<\/code>, <code>UK<\/code>, <code>CA<\/code><\/td><td>Recommended<\/td><\/tr><tr><td><code>device<\/code><\/td><td>Platform<\/td><td>Device type<\/td><td><code>desktop<\/code>, <code>mobile<\/code>, <code>tablet<\/code><\/td><td>Optional<\/td><\/tr><tr><td><code>event<\/code><\/td><td>Platform<\/td><td>Conversion event type in postback<\/td><td><code>registration<\/code>, <code>ftd<\/code>, <code>ngr<\/code><\/td><td>Yes (postback)<\/td><\/tr><tr><td><code>player_id<\/code><\/td><td>Platform<\/td><td>Internal player identifier<\/td><td><code>p_847392<\/code><\/td><td>Yes (postback)<\/td><\/tr><tr><td><code>amount<\/code><\/td><td>Platform<\/td><td>Transaction or revenue amount<\/td><td><code>200.00<\/code><\/td><td>Yes (if CPA\/RevShare)<\/td><\/tr><tr><td><code>currency<\/code><\/td><td>Platform<\/td><td>Three-letter currency code<\/td><td><code>EUR<\/code>, <code>USD<\/code>, <code>GBP<\/code><\/td><td>Yes<\/td><\/tr><tr><td><code>timestamp<\/code><\/td><td>Platform<\/td><td>Event occurrence time in UTC<\/td><td><code>2026-01-15T14:38:44Z<\/code><\/td><td>Yes<\/td><\/tr><tr><td><code>status<\/code><\/td><td>Platform<\/td><td>Conversion status<\/td><td><code>pending<\/code>, <code>approved<\/code>, <code>rejected<\/code><\/td><td>Yes (payout)<\/td><\/tr><tr><td><code>payout<\/code><\/td><td>Platform<\/td><td>Commission amount owed<\/td><td><code>80.00<\/code><\/td><td>Yes (payout)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Implementation notes:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All parameters should be URL-encoded when passed in links<\/li>\n\n\n\n<li>Click ID should be persisted server-side, not just in cookies<\/li>\n\n\n\n<li>SubID fields are flexible\u2014define your schema and stick to it<\/li>\n\n\n\n<li>GEO should be detected server-side to prevent spoofing<\/li>\n\n\n\n<li>Timestamps must be in UTC to avoid timezone reconciliation nightmares<\/li>\n\n\n\n<li>Status should have clear definitions in your affiliate agreement<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">SubID Recipes by Traffic Type (Intent-Driven Structures)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Different affiliate traffic sources require different SubID structures. Here&#8217;s what works in practice:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SEO Affiliates (Review Sites)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">These affiliates run comparison and review sites. They need to track which pages and placements convert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SubID structure:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sub1 = site_section\nsub2 = page_slug  \nsub3 = table_position_or_cta\nsub4 = geo_page_variant\nsub5 = experiment_id\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example tracking link:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;yourcasino.com\/signup?\n  aff_id=5432&amp;\n  sub1=reviews&amp;\n  sub2=best-live-dealer-casinos&amp;\n  sub3=table-row-3&amp;\n  sub4=de-version&amp;\n  sub5=exp-47\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why this structure:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>sub1<\/code> lets them see which site section (reviews vs guides vs comparisons) performs best<\/li>\n\n\n\n<li><code>sub2<\/code> identifies the specific page\u2014critical for content optimization<\/li>\n\n\n\n<li><code>sub3<\/code> shows which table position or CTA button drove the click (above fold vs below)<\/li>\n\n\n\n<li><code>sub4<\/code> tracks geo-specific page variants (German version vs UK version)<\/li>\n\n\n\n<li><code>sub5<\/code> enables A\/B testing without changing other parameters<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Optimization insight:<\/strong> When you report back that <code>sub3=table-row-1<\/code> has 3.2x higher FTD rate than <code>sub3=table-row-7<\/code>, the affiliate moves your casino higher in their comparison tables. Everybody wins.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Streamers\/Influencers<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Twitch streamers, YouTube creators, Instagram influencers need to track which streams and content pieces convert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SubID structure:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sub1 = channel_or_platform\nsub2 = stream_date_or_video_id\nsub3 = overlay_command_or_cta\nsub4 = promo_code_id\nsub5 = creative_variant\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example tracking link:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;yourcasino.com\/bonus?\n  aff_id=7821&amp;\n  sub1=twitch-channelXYZ&amp;\n  sub2=2026-01-15&amp;\n  sub3=overlay-cmd-bonus&amp;\n  sub4=promo-STREAMER50&amp;\n  sub5=banner-v2\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why this structure:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>sub1<\/code> differentiates between Twitch, YouTube, Instagram if they&#8217;re multi-platform<\/li>\n\n\n\n<li><code>sub2<\/code> ties conversions to specific streams or videos for content analysis<\/li>\n\n\n\n<li><code>sub3<\/code> tracks whether the overlay link, chat command, or video description drove the click<\/li>\n\n\n\n<li><code>sub4<\/code> links to promo codes so you can match claimed codes to attributed conversions<\/li>\n\n\n\n<li><code>sub5<\/code> tests different banner\/overlay creative variants<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Optimization insight:<\/strong> Streamer sees that their Friday night streams (<code>sub2=2026-01-*-friday<\/code>) convert 2.1x better than weekday streams. They shift schedule. You get more FTDs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Media Buyers (Paid Traffic)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Affiliates running paid ads on Meta, Google, TikTok need to track campaign\/adset\/ad performance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SubID structure:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sub1 = platform-campaign_id\nsub2 = adset_id\nsub3 = ad_id\nsub4 = landing_page_variant\nsub5 = targeting_segment\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example tracking link:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;yourcasino.com\/register?\n  aff_id=9384&amp;\n  sub1=meta-c447&amp;\n  sub2=as-778&amp;\n  sub3=ad-992-video&amp;\n  sub4=lp-fastregister&amp;\n  sub5=audience-lookalike-depositors\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Critical distinction:<\/strong> Don&#8217;t confuse the ad platform&#8217;s click ID (Facebook&#8217;s <code>fbclid<\/code>, Google&#8217;s <code>gclid<\/code>) with your affiliate Click ID. These are different things.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Platform click ID (fbclid): Used by Facebook for their attribution<\/li>\n\n\n\n<li>Affiliate click_id: Used by your system for affiliate attribution<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Both can coexist in the URL. Your system ignores <code>fbclid<\/code>. Facebook ignores your <code>click_id<\/code>. Each system uses what it needs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why this structure:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>sub1<\/code> identifies ad platform and high-level campaign<\/li>\n\n\n\n<li><code>sub2<\/code> enables adset-level optimization (different audiences, budgets, bids)<\/li>\n\n\n\n<li><code>sub3<\/code> pins conversions to specific ad creative (video vs image vs carousel)<\/li>\n\n\n\n<li><code>sub4<\/code> tracks landing page variants so you can see which converts better<\/li>\n\n\n\n<li><code>sub5<\/code> captures audience targeting for LTV analysis<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Optimization insight:<\/strong> Media buyer discovers that <code>sub5=audience-lookalike-depositors<\/code> has 40% higher FTD rate but 22% lower 30-day NGR than <code>sub5=audience-cold-interest<\/code>. They adjust bid strategy and targeting accordingly. You get better LTV players.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Email \/ CRM Partners<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Affiliates with email lists or databases need to track list performance, send timing, and creative variants.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SubID structure:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sub1 = list_or_segment\nsub2 = send_date\nsub3 = subject_line_test\nsub4 = template_version\nsub5 = offer_angle\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example tracking link:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;yourcasino.com\/welcome?\n  aff_id=2847&amp;\n  sub1=list-highrollers&amp;\n  sub2=2026-01-15&amp;\n  sub3=subject-limited-time&amp;\n  sub4=template-v4&amp;\n  sub5=angle-vip-treatment\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why this structure:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>sub1<\/code> segments list quality (high rollers vs cold prospects vs reactivation)<\/li>\n\n\n\n<li><code>sub2<\/code> tracks send date for timing analysis (day of week, seasonality)<\/li>\n\n\n\n<li><code>sub3<\/code> identifies subject line variant for open rate correlation<\/li>\n\n\n\n<li><code>sub4<\/code> tracks email template for design\/layout optimization<\/li>\n\n\n\n<li><code>sub5<\/code> captures messaging angle (bonus focus vs VIP focus vs game variety)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Optimization insight:<\/strong> You discover that <code>sub1=list-reactivation<\/code> has 0.8x FTD rate but 1.9x NGR compared to <code>sub1=list-cold<\/code>. These are lapsed players coming back. Higher value. You adjust commission tiers to incentivize reactivation traffic specifically.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Connect SubIDs to Business Outcomes (The &#8220;So What&#8221; for Operators)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SubIDs don&#8217;t matter unless they drive decisions. Here&#8217;s how to build reporting that translates SubID data into action.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The money report:<\/strong> Join SubID dimensions to player lifecycle metrics:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SubID \u2192 Clicks \u2192 Registrations \u2192 KYC Pass Rate \u2192 FTD \u2192 FTD Amount \u2192 \n30-Day NGR \u2192 90-Day NGR \u2192 180-Day Retention \u2192 Lifetime Value\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This report shows you which traffic sources produce valuable players, not just volume.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example scenario:<\/strong> Affiliate A has two main placements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>sub3=homepage-hero<\/code>: 10,000 clicks\/month, 4.2% FTD rate, \u20ac85 avg FTD, \u20ac340 90-day NGR<\/li>\n\n\n\n<li><code>sub3=blog-sidebar<\/code>: 3,000 clicks\/month, 2.1% FTD rate, \u20ac180 avg FTD, \u20ac890 90-day NGR<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Naive optimization: Scale the homepage hero (higher volume, higher conversion rate).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Smart optimization: Scale the blog sidebar (higher quality, 2.6x better LTV).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SubIDs enable this analysis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Optimization rules to implement:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pause low-quality placements:<\/strong> If <code>sub3=X<\/code> has FTD rate &gt;3% but 30-day NGR &lt;\u20ac100, it&#8217;s bonus hunters or low-quality traffic. Pause it or shift to CPA-only compensation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Reward high-LTV sources:<\/strong> If <code>sub1=Y<\/code> consistently delivers players with 180-day NGR &gt;\u20ac600, increase commission tier for that SubID specifically. Incentivize the affiliate to scale that exact source.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Commission tiering based on cohort quality:<\/strong> Standard RevShare: 25% of NGR High-LTV SubIDs (based on historical data): 35% of NGR Low-quality SubIDs: CPA only, no RevShare<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You define &#8220;quality&#8221; using SubID cohort performance data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is how sophisticated operators move from volume-based affiliate programs to value-based programs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Validation and Fraud Controls Using SubIDs and Click IDs<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SubID patterns reveal fraud faster than aggregate data ever could.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Spotting spam placements:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sudden spike in one SubID. <code>sub2=new-campaign-X<\/code> goes from 50 clicks\/day to 5,000 clicks\/day overnight. All from the same device type, same ISP block, sequential IP addresses.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Red flag. Likely bot traffic or click fraud.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your fraud system should alert when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SubID volume increases &gt;500% day-over-day<\/li>\n\n\n\n<li>Click-to-registration time is suspiciously uniform (all 2-3 minutes)<\/li>\n\n\n\n<li>Same SubID shows &gt;80% registrations from single GEO despite being &#8220;international traffic&#8221;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Identifying incentivized traffic via patterns:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Incentivized traffic (pay-to-signup schemes) has distinct signatures:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>High registration rate (&gt;8%) but low KYC pass rate (&lt;40%)<\/li>\n\n\n\n<li>High FTD rate but minimum deposits (everyone deposits exactly the minimum)<\/li>\n\n\n\n<li>Zero retention (players disappear after claiming bonus)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">When you segment by SubID, incentivized placements light up like a flare. Normal placements have 2-3% reg rate, 75% KYC pass, varied deposit amounts, 30%+ 30-day retention.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Flag SubIDs where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>KYC pass rate &lt;50%<\/li>\n\n\n\n<li>Avg FTD amount within \u20ac5 of minimum requirement<\/li>\n\n\n\n<li>30-day return rate &lt;15%<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Duplicate account clusters:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Same player creating <a href=\"https:\/\/www.scaleo.io\/blog\/how-to-detect-and-prevent-affiliate-partners-from-creating-multiple-accounts\/\" title=\"How To Detect and Prevent Affiliate Partners from Creating Multiple Accounts?\" data-wpil-monitor-id=\"253142\" rel=\"dofollow\" >multiple accounts<\/a> to claim bonuses repeatedly. They&#8217;re not smart enough to vary their SubID.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Query: How many accounts from <code>aff_12345<\/code> + <code>sub3=email-blast-jan<\/code> have matching device fingerprints or sequential IP addresses or identical deposit patterns?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you see 40 accounts all from the same SubID, all registering within a 6-hour window, all making \u20ac50 deposits, all claiming the same bonus\u2014cluster detected.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Block the SubID. Investigate the affiliate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Mismatched GEO\/device distributions:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Affiliate claims they&#8217;re targeting Germany. <code>sub1=google-de<\/code> suggests German traffic. But Click IDs show 80% of traffic is from Romania and Bulgaria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Either they&#8217;re using VPNs (fraud) or they&#8217;re misrepresenting their traffic source (also fraud).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cross-reference SubID labels against actual GEO distribution from Click ID data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>QA alert thresholds:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Configure automated alerts:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Condition<\/th><th>Threshold<\/th><th>Action<\/th><\/tr><\/thead><tbody><tr><td>SubID volume spike<\/td><td>&gt;300% day-over-day<\/td><td>Alert fraud team<\/td><\/tr><tr><td>KYC pass rate drop<\/td><td>&lt;45% for SubID with &gt;100 regs<\/td><td>Pause SubID pending review<\/td><\/tr><tr><td>Duplicate device fingerprints<\/td><td>&gt;10 accounts per SubID per day<\/td><td>Flag for manual review<\/td><\/tr><tr><td>GEO mismatch<\/td><td>&gt;60% traffic from unexpected GEO<\/td><td>Verify with affiliate<\/td><\/tr><tr><td>Uniform timing patterns<\/td><td>&gt;75% regs within 5-min intervals<\/td><td>Bot detection scan<\/td><\/tr><tr><td>Zero retention<\/td><td>&lt;10% 7-day return rate after 50+ FTDs<\/td><td>Quality review<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">These thresholds prevent fraud from scaling before it costs you serious money.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">QA Checklist Before You Scale Spend (Super Practical)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Don&#8217;t ramp affiliate budgets until you&#8217;ve validated that tracking works. Here&#8217;s your pre-launch checklist:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u2705 Test link in 3 browsers + mobile<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Generate a test tracking link with all parameters populated:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;yourcasino.com\/signup?aff_id=TEST&amp;click_id=TEST123&amp;sub1=qa&amp;sub2=test\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Open in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Chrome desktop<\/li>\n\n\n\n<li>Firefox desktop<\/li>\n\n\n\n<li>Safari desktop<\/li>\n\n\n\n<li>Chrome mobile<\/li>\n\n\n\n<li>Safari mobile (iOS)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Verify that all parameters appear in the landing page URL. If any disappear, your redirect chain is broken.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u2705 Confirm all params survive redirects<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your affiliate link goes through multiple redirects (affiliate domain \u2192 tracking domain \u2192 your landing page), test the full chain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check browser network inspector to see each redirect. Confirm query parameters persist through every hop.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u2705 Confirm Click ID appears in postback<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Complete a test registration and deposit using your test link. Check your tracking system&#8217;s postback logs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verify the postback includes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Correct <code>click_id<\/code><\/li>\n\n\n\n<li>Correct <code>affiliate_id<\/code><\/li>\n\n\n\n<li>Correct <code>sub1<\/code>, <code>sub2<\/code>, etc.<\/li>\n\n\n\n<li>Correct <code>event<\/code> type<\/li>\n\n\n\n<li>Correct <code>amount<\/code> and <code>currency<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If any field is missing or incorrect, your integration is incomplete.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u2705 Confirm dedupe works (double deposits)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create a test account. Make a deposit. System should fire FTD event.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Make a second deposit on the same account. System should NOT fire another FTD event (unless your logic allows it).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check logs. Confirm deduplication is working. Only one FTD per player per Click ID.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u2705 Confirm timezone\/currency alignment<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Make a test deposit at 23:55 your local time. Check when it appears in your tracking system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your local time is CET but tracking runs in UTC, that deposit should appear with UTC timestamp (22:55 UTC if CET is UTC+1).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verify that reports use consistent timezones. Don&#8217;t mix CET data with UTC data\u2014recipe for reconciliation disasters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Test a USD deposit. Verify currency conversion uses your defined rules (real-time rate vs fixed monthly rate).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u2705 Confirm reversals propagate to reports<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create a test conversion. Approve it. Then reverse it (simulate chargeback or fraud rejection).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check affiliate dashboard. Does the reversed conversion show a negative entry? Does it reduce the affiliate&#8217;s revenue total?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If reversals don&#8217;t propagate, you&#8217;re overpaying affiliates for fraudulent conversions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u2705 Confirm affiliates see consistent attribution rules<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Document your attribution logic (first-touch, last-touch, time-decay, etc.) in your affiliate terms.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Run a test where you click two different affiliate links before registering. Check which affiliate gets credited.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verify this matches your stated policy. If your terms say &#8220;last-click attribution&#8221; but the first click gets credited, you have a contractual problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u2705 Test cross-device scenarios (if applicable)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your attribution logic supports cross-device tracking (via user accounts), test it:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click affiliate link on mobile (don&#8217;t register)<\/li>\n\n\n\n<li>Log into existing account on desktop<\/li>\n\n\n\n<li>Make a deposit<\/li>\n\n\n\n<li>Check if affiliate gets credited<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">If your logic doesn&#8217;t support this, that&#8217;s fine\u2014just document it clearly so affiliates understand the limitation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u2705 Verify reporting matches platform data<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pull a SubID performance report from your affiliate system. Pull the same data from your gaming platform.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do registration counts match? Do FTD counts match? Do revenue totals align within acceptable tolerance (&lt;2%)?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If deltas are &gt;5%, you have a reconciliation problem. Fix it before you scale.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Common Disputes and How This Architecture Prevents Them<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Affiliate disputes are expensive in time and relationships. SubID and Click ID architecture prevents most of them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">&#8220;I sent the player, you didn&#8217;t pay me&#8221;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Affiliate claim:<\/strong> &#8220;Player ID 94733 is mine. I have proof they clicked my link. You didn&#8217;t credit me.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Your response with proper tracking:<\/strong> &#8220;Show me the Click ID. We have no Click record linking your affiliate ID to that player ID. Without a Click ID, we cannot verify attribution.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Resolution:<\/strong> If affiliate cannot provide a Click ID that exists in your system and links to that player, the claim is invalid. If they <em>can<\/em> provide a valid Click ID, you honor it\u2014the data is unambiguous.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Click IDs create an audit trail that&#8217;s difficult to falsify. Either the click happened and generated a Click ID, or it didn&#8217;t.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">&#8220;You stole my conversion \/ gave it to another affiliate&#8221;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Affiliate claim:<\/strong> &#8220;Player clicked my link on January 10, registered same day, but you credited Affiliate B instead of me.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Your response with proper tracking:<\/strong> &#8220;We use last-click attribution with a 30-day window. Player clicked your link on January 10 (Click ID: clk_AAA). Player clicked Affiliate B&#8217;s link on January 12 (Click ID: clk_BBB). Player registered on January 12. Last-click attribution awards the conversion to Affiliate B per our agreement terms.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Resolution:<\/strong> Your attribution rules are documented. Your Click ID data shows exactly which clicks occurred when. No ambiguity. Affiliate might not like the outcome, but they can&#8217;t dispute the logic or data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is why attribution window and attribution model need to be clearly defined in affiliate agreements. First-click vs last-click changes who gets credit. Document it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">&#8220;Your numbers don&#8217;t match mine&#8221;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Affiliate claim:<\/strong> &#8220;My tracker shows 247 FTDs this month. Your report shows 198. What happened to 49 conversions?&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Your response with proper tracking:<\/strong> &#8220;Please provide Click IDs for the 49 disputed conversions. We&#8217;ll investigate each one.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Common causes of discrepancies:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Affiliate&#8217;s tracker counts registrations as &#8220;conversions&#8221;; you only count FTDs<\/li>\n\n\n\n<li>Affiliate&#8217;s tracker doesn&#8217;t account for fraud rejections; you do<\/li>\n\n\n\n<li>Timezone differences (they report in PST, you report in UTC, creates date boundary issues)<\/li>\n\n\n\n<li>Deduplication differences (they don&#8217;t dedupe multi-click players, you do)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Resolution:<\/strong> Compare Click ID lists. Identify which specific conversions are in dispute. Check logs for each Click ID. Determine root cause (event definition mismatch, dedupe logic, fraud filtering, etc.).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fix systematic issues. For one-off errors, adjust payout manually.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is why event definitions and dedupe rules need to be specified in contracts. When both parties define &#8220;conversion&#8221; differently, reconciliation is impossible.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How Scaleo Handles Click IDs, SubIDs, and Postback-Proof Attribution for iGaming<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Most casino operators don&#8217;t have the development resources to build enterprise-grade SubID tracking infrastructure from scratch. The technical requirements we&#8217;ve covered\u2014Click ID generation, multi-dimensional SubID capture, postback validation, fraud pattern detection, cohort reporting\u2014require significant engineering investment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is exactly why we built Scaleo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unlike legacy affiliate platforms that bolt on basic tracking as an afterthought, Scaleo was architected from day one for complex, multi-system iGaming environments where attribution accuracy isn&#8217;t optional\u2014it&#8217;s the foundation of your entire affiliate economics.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Click ID Generation and Storage<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When a player clicks an affiliate link through Scaleo&#8217;s tracking system:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Generates a unique Click ID<\/strong> using cryptographically secure random generation (not sequential, not guessable)<\/li>\n\n\n\n<li><strong>Logs the click event<\/strong> with timestamp (UTC), IP address, user agent, referrer, GEO (server-detected), device type, and all SubID parameters<\/li>\n\n\n\n<li><strong>Stores the mapping<\/strong> between Click ID and affiliate ID + SubID values for 365 days (configurable up to lifetime retention)<\/li>\n\n\n\n<li><strong>Redirects the player<\/strong> to your landing page with the Click ID appended as a URL parameter<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Example redirect:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;yourcasino.com\/register?click_id=clk_7f3a8d2e9b4c\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Your landing page extracts this Click ID and either:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stores it in a first-party cookie (client-side tracking)<\/li>\n\n\n\n<li>Sends it to your server to store in session (server-side tracking, ITP-proof)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Both methods work. Server-side is more reliable for Safari\/iOS traffic with ITP restrictions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The key differentiator: Scaleo&#8217;s Click ID system is built for high-volume casino traffic with redundancy, sub-50ms response times, and 99.99% uptime. Your affiliates&#8217; tracking links don&#8217;t break during traffic spikes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SubID Capture and Reporting<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Scaleo supports up to 10 SubID fields (sub1\u2013sub10, fully configurable). Affiliates append these to their tracking links:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;track.yoursite.scaleo.io\/click?\n  aff=12345&amp;\n  offer=welcome100&amp;\n  sub1=twitch&amp;\n  sub2=jan-stream&amp;\n  sub3=overlay&amp;\n  sub4=bonus50&amp;\n  sub5=mobile\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Scaleo captures all SubID values at click time and associates them with the Click ID. When conversions occur, all SubID dimensions are preserved in conversion records\u2014no data loss, no orphaned conversions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Reporting interface:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Affiliates log into their Scaleo dashboard and see:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clicks by SubID (any combination: filter by sub1 only, or sub1+sub3, or all five)<\/li>\n\n\n\n<li>Registrations by SubID<\/li>\n\n\n\n<li>FTDs by SubID<\/li>\n\n\n\n<li>Revenue by SubID (NGR, if you&#8217;re sharing that data)<\/li>\n\n\n\n<li>Commission earned by SubID<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">They can filter: &#8220;Show me all conversions from <code>sub1=twitch<\/code> in January&#8221; or drill down to &#8220;Show me <code>sub1=twitch<\/code> + <code>sub3=overlay<\/code> + <code>sub4=bonus50<\/code>.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Operators see the same data plus:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Player IDs linked to each Click ID<\/li>\n\n\n\n<li>Full lifecycle metrics (KYC pass rate, deposit amount, wagering activity, retention, LTV)<\/li>\n\n\n\n<li>Fraud flags (auto-generated and manual)<\/li>\n\n\n\n<li>Cohort quality scores calculated from historical SubID performance<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This is the infrastructure that enables the optimization workflows we discussed earlier\u2014rewarding high-LTV SubIDs with better commission tiers, pausing low-quality placements, identifying fraud patterns.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Postback Setup (S2S) and Event Mapping<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Scaleo provides postback URLs for your gaming platform or PSP to call when conversion events occur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example <a href=\"https:\/\/www.scaleo.io\/blog\/affiliate-marketing-postback-url-tracking\/\" title=\"Postback URL Tracking in Affiliate Marketing\u2014Full Guide\" data-wpil-monitor-id=\"253144\" rel=\"dofollow\" >postback URL<\/a> for FTD:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;yoursite.scaleo.io\/postback?\n  click_id={CLICK_ID}&amp;\n  event=first_deposit&amp;\n  player_id={PLAYER_ID}&amp;\n  amount={AMOUNT}&amp;\n  currency={CURRENCY}&amp;\n  status=approved&amp;\n  timestamp={TIMESTAMP}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Your platform populates the dynamic fields (<code>{CLICK_ID}<\/code>, <code>{AMOUNT}<\/code>, etc.) from your transaction data and makes an HTTPS GET or POST request to this URL when a deposit occurs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Scaleo receives the postback, validates the Click ID exists, checks for duplicates, applies your deduplication rules, and creates a conversion record with all associated SubID dimensions intact.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Supported event types:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>registration<\/code> (account created)<\/li>\n\n\n\n<li><code>kyc_approved<\/code> (KYC verification passed)<\/li>\n\n\n\n<li><code>first_deposit<\/code> (first-time deposit, triggers CPA if applicable)<\/li>\n\n\n\n<li><code>deposit<\/code> (repeat deposits)<\/li>\n\n\n\n<li><code>ngr_daily<\/code> (daily NGR for RevShare calculation)<\/li>\n\n\n\n<li><code>ngr_monthly<\/code> (monthly NGR aggregation)<\/li>\n\n\n\n<li><code>chargeback<\/code> (negative adjustment for chargebacks)<\/li>\n\n\n\n<li><code>fraud<\/code> (conversion reversal due to fraud)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You configure which events trigger payouts. Typical setup: FTD triggers CPA commission, NGR events trigger RevShare commission.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Custom event mapping:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your platform uses different event names (<code>new_player<\/code> instead of <code>registration<\/code>), Scaleo&#8217;s event mapping configuration lets you alias them:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Platform event: \"new_player\" \u2192 Maps to Scaleo event: \"registration\"\nPlatform event: \"first_payment\" \u2192 Maps to Scaleo event: \"first_deposit\"\nPlatform event: \"net_revenue\" \u2192 Maps to Scaleo event: \"ngr_daily\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This allows integration without requiring your dev team to change existing event schemas or rebuild your platform&#8217;s webhook system.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Deduplication + Conversion Validation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Scaleo&#8217;s deduplication engine prevents the payout errors that cost casino operators thousands per month:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Per-player FTD dedupe:<\/strong> If Player ID 12345 makes multiple deposits, only the first deposit fires an FTD event and triggers CPA commission. Subsequent deposits don&#8217;t create duplicate FTD payouts (though they do contribute to RevShare if configured).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Per-Click ID conversion dedupe:<\/strong> If your platform accidentally fires the same FTD event twice (network retry, webhook duplication, integration bug), Scaleo detects the duplicate based on Click ID + Player ID + Timestamp and rejects it automatically.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Multi-click attribution:<\/strong> If a player clicks multiple affiliate links before converting (common with comparison sites and retargeting), Scaleo applies your configured attribution model:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Last-click:<\/strong> Most recent click within attribution window gets credit<\/li>\n\n\n\n<li><strong>First-click:<\/strong> Original click within attribution window gets credit<\/li>\n\n\n\n<li><strong>Linear:<\/strong> Credit split equally (rare in iGaming, but supported)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Attribution window is configurable per affiliate or program-wide (7 days, 30 days, 90 days, lifetime).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Conversion hold and validation workflow:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Scaleo supports pending conversion status for fraud review and chargeback protection. When an FTD occurs, the conversion is created with <code>status=pending<\/code>. It remains pending for your configured hold period (typically 30-60 days).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">During the hold period:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Affiliate sees the conversion in their dashboard marked as &#8220;pending&#8221;<\/li>\n\n\n\n<li>No commission is calculated or paid yet<\/li>\n\n\n\n<li>You can review for fraud, chargebacks, bonus abuse, multi-accounting<\/li>\n\n\n\n<li>Automated fraud flags highlight suspicious patterns<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">After the hold period, if no issues are found, status automatically changes to <code>approved<\/code> and commission becomes payable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If fraud is detected, you manually change status to <code>rejected<\/code>. Scaleo creates a reversal entry, the conversion is removed from payout calculations, and the affiliate sees it marked as rejected with your specified reason (fraud, chargeback, duplicate account, etc.).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Real-world impact:<\/strong> One of our casino operators reduced duplicate payouts from \u20ac12,000\/month to zero within the first month of migration to Scaleo&#8217;s deduplication system. The previous platform was <a href=\"https:\/\/www.scaleo.io\/blog\/starting-an-affiliate-network-how-to-pay-affiliates\/\" title=\"Starting an Affiliate Network: How To Pay Affiliates?\" data-wpil-monitor-id=\"253140\" rel=\"dofollow\" >paying affiliates<\/a> twice for the same FTD when players made multiple deposits in quick succession.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reporting: Filtering by SubID, Cohort Quality, Export\/API<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Operator dashboard views:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SubID performance report:<\/strong> Columns: SubID value | Clicks | Regs | Reg Rate | FTDs | FTD Rate | Avg FTD Amount | 30-Day NGR | 90-Day NGR | 180-Day NGR | Retention % | LTV Projection<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Filter by: Affiliate, Date Range, Offer, Any SubID field (sub1 through sub10)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This answers questions like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;Which of Affiliate A&#8217;s Twitch streams produce the best LTV players?&#8221;<\/li>\n\n\n\n<li>&#8220;Are his Friday streams better than weekday streams?&#8221;<\/li>\n\n\n\n<li>&#8220;Does the overlay CTA convert better than chat commands?&#8221;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cohort quality view:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Group conversions by acquisition date and SubID, track cohort performance over time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example: Players acquired from <code>sub1=twitch<\/code> + <code>sub3=overlay<\/code> in January 2026, tracked through June 2026. Shows month-by-month NGR contribution, retention curve, LTV projection based on cohort trajectory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is how you identify that certain SubID combinations consistently produce high-value players worth higher commission rates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Fraud pattern detection:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Automated reports flag SubIDs exhibiting suspicious patterns:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Volume spikes &gt;300% day-over-day<\/li>\n\n\n\n<li>KYC pass rates &lt;45%<\/li>\n\n\n\n<li>Deposit amount clustering (everyone deposits exactly \u20ac50)<\/li>\n\n\n\n<li>GEO mismatches (SubID says Germany, traffic is 80% Bulgaria)<\/li>\n\n\n\n<li>Zero retention (no 7-day return visits)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These reports prevent fraud from scaling undetected.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Export and API access:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All reports are exportable to CSV\/Excel for offline analysis. For operators with BI tools (Tableau, Power BI, Looker), Scaleo provides a REST API to pull:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Click data with all SubID dimensions<\/li>\n\n\n\n<li>Conversion data with player lifecycle events<\/li>\n\n\n\n<li>SubID performance breakdowns<\/li>\n\n\n\n<li>Player-level attribution records<\/li>\n\n\n\n<li>Fraud flags and quality scores<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This feeds into your existing data warehouse for custom analysis or executive dashboards.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Operator Controls: Attribution Window, Conversion Status Logic, Fraud Flags<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Attribution window configuration:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Set per affiliate, per offer, or program-wide. Example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Premium SEO affiliates: 90-day attribution window (long consideration cycle)<\/li>\n\n\n\n<li>Standard affiliates: 30-day attribution window<\/li>\n\n\n\n<li>Retargeting\/remarketing affiliates: 7-day attribution window (they get last-touch credit but shorter window)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Different traffic sources have different purchase cycles. Your attribution windows should reflect that reality.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Conversion status workflow:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Define status transitions for your specific business logic:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pending \u2192 (hold period expires + no fraud flags) \u2192 approved \u2192 payable\npending \u2192 (fraud detected) \u2192 rejected \u2192 reversed\napproved \u2192 (chargeback occurs) \u2192 rejected \u2192 reversed + commission clawback\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">All status changes are visible to affiliates in real-time with timestamps and reasons.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Fraud flag automation:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Configure rules that auto-flag conversions for review before they become payable:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>First deposit &lt;\u20ac20 (bonus hunters targeting minimum deposit)<\/li>\n\n\n\n<li>KYC pending &gt;48 hours (potential document fraud or problematic jurisdictions)<\/li>\n\n\n\n<li>Player registered from VPN detected IP (GEO mismatch)<\/li>\n\n\n\n<li>Device fingerprint matches &gt;3 other accounts in last 30 days (multi-accounting)<\/li>\n\n\n\n<li>SubID has &gt;50% historical fraud rate (known bad placement)<\/li>\n\n\n\n<li>Player deposited, wagered 1x, withdrew immediately (bonus abuse pattern)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Flagged conversions require manual approval or auto-reject based on your risk tolerance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example: Complete Tracking Link + Postback Workflow<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Affiliate generates their tracking link:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;track.yourcasino.scaleo.io\/click?\n  aff=5432&amp;\n  offer=welcome_de&amp;\n  sub1=review-site&amp;\n  sub2=best-casinos-2026&amp;\n  sub3=table-position-2&amp;\n  sub4=cta-claim-bonus&amp;\n  sub5=de-desktop\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Player clicks, Scaleo generates Click ID and redirects to:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;yourcasino.com\/register?click_id=clk_9d4f7a2e8b3c\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Scaleo has logged:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Click ID: <code>clk_9d4f7a2e8b3c<\/code><\/li>\n\n\n\n<li>Affiliate ID: <code>5432<\/code><\/li>\n\n\n\n<li>Offer: <code>welcome_de<\/code><\/li>\n\n\n\n<li>SubIDs: <code>{sub1: \"review-site\", sub2: \"best-casinos-2026\", sub3: \"table-position-2\", sub4: \"cta-claim-bonus\", sub5: \"de-desktop\"}<\/code><\/li>\n\n\n\n<li>Timestamp: <code>2026-01-15 14:32:18 UTC<\/code><\/li>\n\n\n\n<li>IP: <code>85.214.45.123<\/code><\/li>\n\n\n\n<li>GEO: <code>DE<\/code> (server-detected)<\/li>\n\n\n\n<li>Device: <code>desktop<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Player registers and deposits \u20ac150. Your platform fires postback:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>POST https:\/\/yourcasino.scaleo.io\/postback\n{\n  \"click_id\": \"clk_9d4f7a2e8b3c\",\n  \"event\": \"first_deposit\",\n  \"player_id\": \"p_948573\",\n  \"amount\": \"150.00\",\n  \"currency\": \"EUR\",\n  \"status\": \"pending\",\n  \"timestamp\": \"2026-01-15T16:42:18Z\"\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Scaleo processes postback:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2713 Validates Click ID exists<\/li>\n\n\n\n<li>\u2713 Checks for duplicate FTD from this player (none found)<\/li>\n\n\n\n<li>\u2713 Applies attribution (last-click within 30-day window)<\/li>\n\n\n\n<li>\u2713 Retrieves all SubID dimensions from original click<\/li>\n\n\n\n<li>\u2713 Creates conversion record with status &#8220;pending&#8221;<\/li>\n\n\n\n<li>\u2713 Runs fraud rules (no flags triggered)<\/li>\n\n\n\n<li>\u2713 Notifies affiliate (email\/dashboard notification)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Affiliate sees in their dashboard immediately:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Date<\/th><th>Event<\/th><th>Click ID<\/th><th>Amount<\/th><th>SubID Details<\/th><th>Status<\/th><th>Commission<\/th><\/tr><\/thead><tbody><tr><td>Jan 15<\/td><td>FTD<\/td><td>clk_9d4f&#8230;8b3c<\/td><td>\u20ac150<\/td><td>sub1: review-site, sub3: table-position-2<\/td><td>Pending<\/td><td>\u20ac52.50 (pending)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>30 days later, no fraud detected, no chargeback, status auto-approves:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Commission calculated: \u20ac150 \u00d7 35% RevShare = \u20ac52.50<\/li>\n\n\n\n<li>Status changes to &#8220;approved&#8221;<\/li>\n\n\n\n<li>Added to affiliate&#8217;s next payout (scheduled for Feb 15)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Affiliate sees updated dashboard:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Date<\/th><th>Event<\/th><th>Click ID<\/th><th>Amount<\/th><th>SubID Details<\/th><th>Status<\/th><th>Commission<\/th><\/tr><\/thead><tbody><tr><td>Jan 15<\/td><td>FTD<\/td><td>clk_9d4f&#8230;8b3c<\/td><td>\u20ac150<\/td><td>sub1: review-site, sub3: table-position-2<\/td><td><strong>Approved<\/strong><\/td><td>\u20ac52.50<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Clean. Transparent. Auditable. Zero disputes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.scaleo.io\/igaming\" rel=\"dofollow\" ><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1340\" src=\"https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-affiliate-software-for-gambling-industry-scaled.jpg\" alt=\"cyber security in igaming partner business\" class=\"wp-image-8619\" title=\"-\" srcset=\"https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-affiliate-software-for-gambling-industry-scaled.jpg 2560w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-affiliate-software-for-gambling-industry-300x157.jpg 300w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-affiliate-software-for-gambling-industry-1024x536.jpg 1024w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-affiliate-software-for-gambling-industry-768x402.jpg 768w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-affiliate-software-for-gambling-industry-1536x804.jpg 1536w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2023\/01\/scaleo-affiliate-software-for-gambling-industry-2048x1072.jpg 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ: SubID &amp; Click ID Tracking for Casino Affiliates<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ready to implement SubID and Click ID tracking that actually works at scale?<\/strong> Scaleo&#8217;s tracking infrastructure is built specifically for casino operators who need accurate attribution across multi-system environments. Our platform handles click generation, SubID capture across 10 fields, postback validation, fraud detection, and cohort-based reporting\u2014all with 99.99% uptime and sub-50ms response times. <a href=\"https:\/\/scaleo.io\/demo\" rel=\"dofollow noopener\" target=\"_blank\">Book a demo<\/a> to see how proper tracking taxonomy transforms your affiliate program from guesswork into a data-driven optimization engine.<\/p>\n\n\n\n<div class=\"wp-block-group has-background\" style=\"border-radius:14px;background:linear-gradient(135deg,rgb(243,248,255) 0%,rgb(228,244,252) 50%,rgb(222,247,238) 100%);padding-top:22px;padding-right:22px;padding-bottom:22px;padding-left:22px\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"text-transform:capitalize\">\ud83c\udfaf Unlock the full potential of your gambling business<\/h3>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Get actionable insights into your players&#8217; funnel. In-depth reports let you discover your players\u2019 journeys, from clicking on an affiliate link to registration and deposit.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-f6d872f4 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.scaleo.io\/igaming\" style=\"background:linear-gradient(273deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%)\" rel=\"dofollow\">BOOK A DEMO<\/a><\/div>\n\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-midnight-gradient-background has-background wp-element-button\" href=\"https:\/\/www.scaleo.io\/pricing\" rel=\"dofollow\">Request Pricing<\/a><\/div>\n<\/div>\n<\/div><\/div>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1775729542750\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">What are the best tools for managing sub IDs across multiple affiliate networks?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Managing sub IDs (sub-affiliate IDs) across multiple networks requires tools that aggregate data, standardize naming conventions, and automate link generation. The best tools for this, as of 2026, include Scaleo, Tune and Voluum.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775729909353\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What&#8217;s the difference between SubID and Click ID?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>SubID is a label you or your affiliate assigns to categorize traffic (e.g., &#8220;twitch-stream&#8221; or &#8220;email-january&#8221;). Click ID is a unique identifier your tracking platform generates for each individual click. SubID helps you analyze performance by source. Click ID enables accurate attribution and reconciliation by linking specific clicks to conversions.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775729918641\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>How many SubIDs should I use?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Most operators use 3-5 SubID fields. More than 5 becomes difficult to manage and report on. Fewer than 3 limits optimization granularity. Start with sub1 (traffic source), sub2 (campaign), sub3 (placement). Add more if you have specific tracking needs like creative variants or A\/B tests.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775729927645\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What SubID structure works best for media buyers?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Media buyers should map SubIDs to their ad platform hierarchy: sub1 = platform + campaign, sub2 = adset ID, sub3 = ad ID, sub4 = landing page variant, sub5 = audience segment. This mirrors how they optimize in Facebook Ads Manager or Google Ads and lets them directly correlate your casino conversion data with their ad performance data.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775729938905\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>Why are conversions missing even when clicks track?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Common causes: (1) Click ID not persisting from landing page to registration (check cookie\/session storage), (2) Registration event not firing a postback with Click ID, (3) Redirect chain stripping URL parameters, (4) Cross-domain tracking failure, (5) Mobile in-app browser restrictions. Test your tracking flow end-to-end with browser dev tools to identify where Click ID is lost.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775729950543\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>How do I prevent duplicate payouts?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Implement deduplication at two levels: (1) Per-player FTD dedupe\u2014only pay once for each player&#8217;s first deposit regardless of how many times they deposit, (2) Per-Click ID event dedupe\u2014if your platform accidentally fires the same event twice, detect and reject duplicates based on Click ID + Player ID + Event Type + Timestamp matching.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775729962424\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What&#8217;s the best attribution window for casinos?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>It depends on your product and market. Fast-play casino games with impulse deposits: 7-14 day window is sufficient. High-consideration markets (regulated, high-stakes): 30-60 day window accounts for players who research before depositing. B2B or VIP programs: 90+ day windows. Set your window based on actual customer journey data\u2014analyze how long it takes from click to FTD in your historical data.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775729973203\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>Can SubIDs help detect fraud or bonus abuse?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes. Fraudulent traffic often exhibits patterns visible at SubID level: abnormally high registration rates with low KYC pass rates, uniform deposit amounts (everyone deposits exactly the minimum), zero retention, geographic mismatches (SubID says &#8220;Germany&#8221; but 80% of clicks are from Romania), or sudden volume spikes (0 to 5,000 clicks overnight). Flag SubIDs exhibiting these patterns for review.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775729983343\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What data should affiliates see vs what should stay internal?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Affiliates should see: their clicks, conversions, SubID performance, commission earned, and basic player metrics (FTD count, aggregate revenue). Keep internal: individual player IDs, detailed player behavior, fraud investigation details, your acquisition costs, margin data, and other affiliates&#8217; performance. Transparency builds trust, but operational data is competitive sensitive.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775729991156\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>How do I handle cross-device conversions?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>If a player clicks on mobile but converts on desktop, cookie-based tracking fails. Solutions: (1) Server-side Click ID storage tied to email\/phone during registration, (2) Authenticated user tracking where login connects clicks across devices, (3) Accept that pure <a title=\"Cross-Device Attribution: Taking Your Affiliate Marketing to the Next Level\" data-wpil-monitor-id=\"253145\" href=\"https:\/\/www.scaleo.io\/blog\/cross-device-attribution-taking-your-affiliate-marketing-to-the-next-level\/\" rel=\"dofollow\">cross-device attribution<\/a> is imperfect and set expectations with affiliates. Most platforms use &#8220;best effort&#8221; click-to-conversion matching with awareness that some cross-device conversions won&#8217;t attribute.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775730010636\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>Should I let affiliates customize their SubID structure or enforce a standard?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Enforce a standard for sub1-sub3 (traffic source, campaign, placement) so you can compare affiliates consistently. Allow flexibility in sub4-sub5 for affiliate-specific needs. Document the standard in your affiliate onboarding guide and provide examples. Consistency enables cross-affiliate benchmarking and reduces reconciliation complexity.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775730023032\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>How long should I retain Click ID data?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Minimum: 90 days for short-term attribution and fraud investigation. Recommended: 12 months for LTV analysis and annual reconciliation. Some operators keep click data for 24+ months to analyze long-term cohort performance. Storage is cheap. Losing historical attribution data is expensive.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775730034126\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>What happens if my tracking platform goes down during a big campaign?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>If your tracking is purely client-side (cookies\/pixels), you lose all clicks during downtime. If you have server-side tracking with redundancy, clicks still get logged. Best practice: Use a tracking platform with &gt;99.9% uptime SLA, implement health check monitoring, and have a fallback URL that redirects to your site directly if tracking fails (better to lose attribution data than lose the customer entirely).<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1775732085969\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">What are the best tools for managing sub IDs across multiple affiliate networks?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>For publishers managing multiple affiliate networks, the best tools consolidate data into a single dashboard and automate the injection of SubIDs across various link formats.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>You&#8217;re paying \u20ac40,000\/month to an affiliate who claims they&#8217;re sending premium traffic. Your platform shows 2,847 registrations attributed to them. But you have no idea which of their 14 different traffic sources is actually profitable. Was it their Instagram story? The banner ad on their review site? The Twitch stream overlay? The email blast to<\/p>\n","protected":false},"author":2,"featured_media":6778,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[4140],"class_list":["post-162970","post","type-post","status-publish","format-standard","has-post-thumbnail","category-igaming","tag-operator-intelligence"],"_links":{"self":[{"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/posts\/162970","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/comments?post=162970"}],"version-history":[{"count":16,"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/posts\/162970\/revisions"}],"predecessor-version":[{"id":201160,"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/posts\/162970\/revisions\/201160"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/media\/6778"}],"wp:attachment":[{"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/media?parent=162970"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/categories?post=162970"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/tags?post=162970"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}