{"id":114563,"date":"2025-12-15T16:05:21","date_gmt":"2025-12-15T16:05:21","guid":{"rendered":"https:\/\/www.scaleo.io\/blog\/?p=114563"},"modified":"2026-03-10T10:50:22","modified_gmt":"2026-03-10T10:50:22","slug":"migrating-from-affise-to-scaleo-data-import-guide-for-casino-operators","status":"publish","type":"post","link":"https:\/\/www.scaleo.io\/blog\/migrating-from-affise-to-scaleo-data-import-guide-for-casino-operators\/","title":{"rendered":"Migrating from Affise to Scaleo: Data Import Guide for Casino Operators"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When operators talk to me about migrating from Affise to Scaleo, the emotion that comes up most often isn\u2019t excitement. It\u2019s fear. Fear of breaking something that \u201csort of works\u201d, fear of upsetting top partners, fear of waking up to a dashboard that suddenly shows 0 conversions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That fear is rational. You\u2019re moving the nervous system of your acquisition engine. If you rush it, you can absolutely lose data, mis-attribute VIPs, or create ugly reconciliation disputes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At the same time, the \u201cdo nothing\u201d option is getting more expensive every quarter. Privacy signals are changing, fraud tactics are evolving, and casino operators are pushing far more granular player funnels into their tracking stack than they did even 2\u20133 years ago. Legacy setups that were bolted together for simple CPA flows now have to cope with multi-brand, multi-licence, multi-goal realities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So this guide is designed as a blueprint \u2013 not just \u201chow to export a CSV\u201d, but the exact order of operations I recommend when you\u2019re <a href=\"https:\/\/www.scaleo.io\/blog\/migrating-to-another-affiliate-platform-heres-how-to-do-it-without-downtime-or-data-loss\/\" title=\"Migrating To Another Affiliate Platform? Here\u2019s How to Do It Without Downtime or Data Loss\" data-wpil-monitor-id=\"167418\" rel=\"dofollow\" >migrating<\/a> from Affise to Scaleo with live casino traffic on the line.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is \u201cmigrating from Affise to Scaleo\u201d?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Migrating from Affise to <a href=\"https:\/\/www.scaleo.io\/igaming\" title=\"iGaming\" data-wpil-monitor-id=\"262862\" rel=\"dofollow\" >Scaleo<\/a><\/strong> is the structured process of moving all core entities \u2013 advertisers, affiliates, offers, tracking links, postbacks, and (optionally) historical stats \u2013 from your legacy Affise instance into <strong>Scaleo<\/strong>, while preserving data integrity, partner relationships, and live traffic flow, using a staged, zero-downtime cutover strategy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The goal is simple: switch brains without stopping the heartbeat.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1536\" src=\"https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2025\/12\/Migration-Roadmap-scaleo-zero-downtime.webp\" alt=\"zero downtime migration roadmap\n\" class=\"wp-image-129037\" title=\"-\" srcset=\"https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2025\/12\/Migration-Roadmap-scaleo-zero-downtime.webp 1024w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2025\/12\/Migration-Roadmap-scaleo-zero-downtime-768x1152.webp 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1 \u2013 Design the migration architecture<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before you touch an export button, you need a clear dependency map. If you import in the wrong order, Scaleo will simply reject part of your data, and you\u2019ll be stuck debugging half-created offers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The strict order that works in practice looks like this:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Advertisers<\/li>\n\n\n\n<li>Affiliates<\/li>\n\n\n\n<li>Offers (including goals\/payouts, caps, and targeting)<\/li>\n\n\n\n<li>Running traffic (soft migration \/ overlap period)<\/li>\n\n\n\n<li>Historical statistics (optional but recommended for the last 3\u20136 months)<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Why this order matters<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Offers depend on advertisers. If the advertiser doesn\u2019t exist in Scaleo, the offer import fails.<\/li>\n\n\n\n<li>Affiliates and their postbacks must exist before you start switching traffic, or you\u2019ll be catching conversions in a net with holes.<\/li>\n\n\n\n<li>Caps, geos, and goal structures often evolve over time; importing a sensible recent snapshot (not 5 years of junk) keeps Scaleo clean and fast.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In our experience analyzing millions of clicks across large migrations, the single biggest mistake is trying to \u201clift and shift everything\u201d in one shot. You don\u2019t need every dead offer and every dormant affiliate. You need a clean, operationally useful mirror of your current revenue engine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So at this stage:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Decide your <strong>time window<\/strong> for historical data (for example: last 6 months of stats).<\/li>\n\n\n\n<li>Decide which <strong>affiliates are worth migrating<\/strong> (inactive for 3+ years? Maybe leave them behind and re-onboard if needed).<\/li>\n\n\n\n<li>Decide whether you\u2019ll use <strong>API, CSV, or a hybrid<\/strong> approach.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2 \u2013 Export data from Affise correctly<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You have two practical avenues out of Affise: API (JSON) and GUI CSV exports. For casino programs with any sort of scale, I strongly prefer an API-first approach, using CSV only where it\u2019s operationally simpler (for example, a quick affiliate list sanity check).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 Export via Affise API<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You\u2019ll use your Affise Admin API key and your tenant domain. The patterns look like this:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Advertisers:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>GET https:\/\/api.YOUR_DOMAIN.affise.com\/3.0\/admin\/advertisers\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Affiliates (Partners):<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>GET https:\/\/api.YOUR_DOMAIN.affise.com\/3.0\/admin\/partners\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Offers (usually filtered to active):<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>GET \"https:\/\/api.YOUR_DOMAIN.affise.com\/3.0\/offers?status&#091;]=active\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">From a migration standpoint, you don\u2019t want everything. You want the fields that map cleanly to Scaleo and help reconstruct relationships.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For advertisers, keep at minimum:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>id<\/code> \u2013 you\u2019ll use this as a reference during transformation.<\/li>\n\n\n\n<li><code>title<\/code> \u2013 maps to Scaleo company\/advertiser name.<\/li>\n\n\n\n<li><code>manager_id<\/code> \u2013 so you can map the right account manager, if you structure your team that way.<\/li>\n\n\n\n<li>Anything custom you genuinely use in your workflows.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For affiliates, keep:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>id<\/code> \u2013 becomes your external reference when transforming.<\/li>\n\n\n\n<li><code>email<\/code><\/li>\n\n\n\n<li><code>login<\/code> or main contact name<\/li>\n\n\n\n<li><code>status<\/code> \u2013 so you don\u2019t accidentally re-activate banned partners.<\/li>\n\n\n\n<li><code>manager_id<\/code> \u2013 again, for team ownership mappings.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Password note: you can\u2019t and shouldn\u2019t migrate passwords. More on that later.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For offers, keep:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>id<\/code> \u2013 the original offer ID.<\/li>\n\n\n\n<li><code>title<\/code> \u2013 offer name.<\/li>\n\n\n\n<li><code>preview_url<\/code> \u2013 what affiliates see.<\/li>\n\n\n\n<li><code>tracking_url<\/code> \u2013 the advertiser landing URL (not the Affise tracking link \u2013 Scaleo will generate its own).<\/li>\n\n\n\n<li><code>payments<\/code> \/ <code>payouts<\/code> \u2013 including model and GEO-specific rules.<\/li>\n\n\n\n<li><code>caps<\/code> \u2013 daily\/weekly\/monthly; timezones; event types.<\/li>\n\n\n\n<li><code>targeting<\/code> \u2013 GEOs, devices, OS, etc.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This is where things get interesting. Casino flows typically have multiple payout models per GEO, plus different goals (FTD, qualified deposit, <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=\"208064\" rel=\"dofollow\" >NGR<\/a> share, hybrid deals). Affise stores these in one way; Scaleo expects a cleaner \u201cGoals\u201d structure. We\u2019ll map that in Step 3.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.2 Export via CSV (GUI)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If your program is mid-size or you simply prefer a visual sanity check:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to Advertisers \/ Affiliates \/ Offers in the Affise UI.<\/li>\n\n\n\n<li>Use the <code>Export<\/code> button.<\/li>\n\n\n\n<li>Always include \u201cAll columns\u201d or at least all payout and targeting-related columns, even if you don\u2019t think you need them.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Practical tip some have learned the hard way: keep a <strong>frozen copy<\/strong> of the raw exports before you start manipulating anything. That way, if your transformation scripts go sideways, you always have a clean baseline.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3 \u2013 Transform data for Scaleo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Scaleo is flexible, but it\u2019s not magic; it expects data in a specific format whether you use CSV imports or the API. This step is where you go from \u201craw dumps\u201d to \u201cScaleo-ready\u201d entities.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.1 Import advertisers first<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In Scaleo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UI path: <code>Advertisers<\/code> \u2192 <code>Add Advertiser<\/code> (for manual tests)<\/li>\n\n\n\n<li>API path: <code>POST \/network\/advertisers<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">At a minimum, map:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Affise <code>title<\/code> \u2192 Scaleo <code>Company Name<\/code><\/li>\n\n\n\n<li>Affise <code>id<\/code> \u2192 store as a custom field or external reference if you want cross-system traceability during the overlap period.<\/li>\n\n\n\n<li>Affise <code>manager_id<\/code> \u2192 Scaleo <code>Manager<\/code> (after you create your internal manager users in Scaleo).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Top-tier operators typically use this phase to clean up naming conventions. If you\u2019ve had years of \u201cAdvertiser 01 \/ Casino Test \/ John\u2019s Deals\u201d, now is the moment to standardize.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.2 Import affiliates with a re-onboarding strategy<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Affiliates are trickier because you\u2019re dealing with user accounts and security.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Scaleo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UI path: <code>Affiliates<\/code> \u2192 <code>Add Affiliate<\/code><\/li>\n\n\n\n<li>API path: <code>POST \/network\/affiliates<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Key steps:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Import <code>email<\/code>, <code>login<\/code>\/name, and status.<\/li>\n\n\n\n<li>Do <strong>not<\/strong> try to migrate passwords. That\u2019s both insecure and technically off-limits.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Two patterns that work well:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Temporary password + forced reset\n<ul class=\"wp-block-list\">\n<li>Assign a generic strong password on import.<\/li>\n\n\n\n<li>Send a controlled communication explaining the migration and encouraging them to reset via the portal.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Passwordless invites\n<ul class=\"wp-block-list\">\n<li>Create affiliates with no password.<\/li>\n\n\n\n<li>Use Scaleo\u2019s invitation flow to send \u201cSet your password\u201d emails as part of your migration announcement.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">I tend to prefer option 2 for serious casino programs. It feels more professional and avoids the security smell of shared temporary passwords.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Postback migration \u2013 the critical link<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">If you get postbacks wrong, you\u2019ll have conversions firing into a void.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From Affise, you\u2019ll typically export partner-level, offer-level, or global postbacks in a structure that contains macros like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>{clickid}<\/code><\/li>\n\n\n\n<li><code>{sum}<\/code><\/li>\n\n\n\n<li><code>{goal}<\/code><\/li>\n\n\n\n<li><code>{action_id}<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In Scaleo, the equivalent macros look like:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Variable<\/th><th>Affise Macro<\/th><th>Scaleo Macro<\/th><\/tr><\/thead><tbody><tr><td>Click ID<\/td><td><code>{clickid}<\/code><\/td><td><code>{click_id}<\/code><\/td><\/tr><tr><td>Payout \/ Amount<\/td><td><code>{sum}<\/code><\/td><td><code>{payout}<\/code>\/<code>{amount}<\/code><\/td><\/tr><tr><td>Transaction ID<\/td><td><code>{action_id}<\/code><\/td><td><code>{transaction_id}<\/code><\/td><\/tr><tr><td>Source ID<\/td><td><code>{pid}<\/code><\/td><td><code>{source_id}<\/code><\/td><\/tr><tr><td>Offer ID<\/td><td><code>{offer_id}<\/code><\/td><td><code>{offer_id}<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">When you recreate postbacks in Scaleo (either through the UI or via API), you essentially:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Replace Affise macros with Scaleo macros.<\/li>\n\n\n\n<li>Keep the advertiser\u2019s endpoint and any static parameters identical.<\/li>\n\n\n\n<li>Optionally add extra parameters if you want more granular reporting (for example, passing <code>{goal_value}<\/code> for multi-goal setups).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s the bottom line: invest time here. When we audit rocky migrations, 80% of the pain traces back to loose macro mapping and inconsistent <a class=\"wpil_keyword_link\" href=\"https:\/\/www.scaleo.io\/blog\/affiliate-marketing-postback-url-tracking\/\" title=\"Postback URL Tracking in Affiliate Marketing\u2014Full Guide\" data-wpil-keyword-link=\"linked\" data-wpil-monitor-id=\"167417\" rel=\"dofollow\" >postback<\/a> reconstruction.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4 \u2013 Import offers and rebuild goals<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Offers are where casino migrations either feel elegant or descend into spreadsheet hell. Affise and Scaleo both support complex payouts, but they model them differently.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Scaleo uses a clean <strong>Offer + Goals<\/strong> structure:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Offer = the wrapper (name, advertiser, base URLs, visibility, caps, targeting).<\/li>\n\n\n\n<li>Goals = individual conversion events with their own payout model (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=\"167419\" rel=\"dofollow\" >RevShare<\/a>, Hybrid, CPL, etc.).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4.1 Use the Scaleo offer import template<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In Scaleo, you\u2019ll typically start from a CSV import template:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UI path: <code>Settings<\/code> \u2192 <code>Import<\/code> \u2192 <code>Offers<\/code> (exact path may differ per setup).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Key mappings:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Data Point<\/th><th>Affise Field<\/th><th>Scaleo Field \/ Param<\/th><th>Notes<\/th><\/tr><\/thead><tbody><tr><td>Name<\/td><td><code>title<\/code><\/td><td><code>title<\/code><\/td><td>Direct copy.<\/td><\/tr><tr><td>Tracking Link<\/td><td><code>tracking_url<\/code><\/td><td><code>url<\/code><\/td><td>Advertiser landing URL, not the old Affise click URL.<\/td><\/tr><tr><td>Preview Link<\/td><td><code>preview_url<\/code><\/td><td><code>preview_url<\/code><\/td><td>What affiliates see in their panel.<\/td><\/tr><tr><td>Payouts<\/td><td><code>payments<\/code><\/td><td><code>goals<\/code><\/td><td>Create a default Goal + additional Goals as needed.<\/td><\/tr><tr><td>Caps<\/td><td><code>caps<\/code><\/td><td><code>caps<\/code><\/td><td>Always check timezone assumptions.<\/td><\/tr><tr><td>Status<\/td><td><code>status<\/code><\/td><td><code>status<\/code><\/td><td>Map <code>active<\/code> to active, others as needed.<\/td><\/tr><tr><td>Privacy<\/td><td><code>is_private<\/code><\/td><td><code>public<\/code> \/ <code>private<\/code><\/td><td>Private offers will require affiliate approval in Scaleo.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re using the API, the pattern is:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create the offer.<\/li>\n\n\n\n<li>Take the returned <code>offer_id<\/code>.<\/li>\n\n\n\n<li>Create one or more Goals attached to that <code>offer_id<\/code>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">For example, you might have:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Goal A \u2013 FTD (CPA, \u00a3150, GEO = UK)<\/li>\n\n\n\n<li>Goal B \u2013 NGR RevShare (35%, GEO = UK)<\/li>\n\n\n\n<li>Goal C \u2013 FTD (CPA, \u20ac120, GEO = DE)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Legacy setups often stuff this into one dense payout array; Scaleo encourages you to think in terms of distinct, transparent events. For affiliate relations and finance, that clarity is a gift.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.2 Respect caps and timezones<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This sounds mundane, but caps are where finance teams get nervous.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Affise might be resetting caps at UTC, while your team internally reports on CET, and your biggest brands run off MGA or UKGC timeframes. When you set up caps in Scaleo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Decide which timezone is your <strong>single source of truth<\/strong> for daily\/weekly\/monthly caps.<\/li>\n\n\n\n<li>Align Scaleo\u2019s cap reset logic with that.<\/li>\n\n\n\n<li>Communicate clearly with affiliates if reported cap timing changes for them.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">From an operator\u2019s point of view, you care less about what your old system did and more about having a sane, documented standard going forward.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Legacy vs modern migration approaches<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To really see why this structured method matters, it\u2019s helpful to look at how migrations used to happen vs how top-tier teams run them now.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table><thead><tr><th>Feature \/ Step<\/th><th>Legacy Approach \u274c<\/th><th>Modern Approach \u2705<\/th><\/tr><\/thead><tbody><tr><td>Migration planning<\/td><td>\u201cWe\u2019ll export everything Friday and go live Monday.\u201d<\/td><td>Phased plan with entity order, overlap period, and rollback strategy.<\/td><\/tr><tr><td>Data export<\/td><td>One-off bulk CSV dumps with manual edits.<\/td><td>API-driven exports with scripted transformation and versioned backups.<\/td><\/tr><tr><td>Advertiser \/ affiliate setup<\/td><td>Created on the fly as offers are reported missing.<\/td><td>Pre-created in Scaleo with owner mapping and security reviewed.<\/td><\/tr><tr><td>Password handling<\/td><td>Shared temporary logins emailed around.<\/td><td>Secure invite flow and forced password setup in Scaleo.<\/td><\/tr><tr><td>Postback mapping<\/td><td>Copy-paste plus quick macro edits \u201cby eye\u201d.<\/td><td>Systematic macro mapping with test conversions per partner\/offer.<\/td><\/tr><tr><td>Offers \/ payouts<\/td><td>One monolithic \u201cbest effort\u201d mapping.<\/td><td>Offer + Goal design that mirrors real casino KPIs (FTD, NGR, Hybrid, etc.).<\/td><\/tr><tr><td>Cap\/timezone alignment<\/td><td>Assumed similar to previous platform.<\/td><td>Explicit timezone standard + communicated to team and partners.<\/td><\/tr><tr><td>Go-live<\/td><td>Hard cutover, old platform turned off immediately.<\/td><td>Soft switch with dual postbacks and traffic overlap until Affise hits zero.<\/td><\/tr><tr><td>Validation<\/td><td>\u201cLooks okay if dashboard isn\u2019t red.\u201d<\/td><td>Scripted click\/postback tests + subID\/macros validation across top partners.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Most of the pain stories you\u2019ve heard about \u201cwe migrated tracking and it was a nightmare\u201d live entirely in the left column.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5 \u2013 Plan the \u201csoft switch\u201d traffic strategy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once advertisers, affiliates, and offers exist in Scaleo, you\u2019re still not done. The real test is what happens when live casino traffic starts flowing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Top-tier operators treat this as a controlled <strong>overlap period<\/strong>, not a cliff jump.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">High-level flow:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Generate new Scaleo tracking links for all active offers.<\/li>\n\n\n\n<li>Notify affiliates with a clear <strong>update-by<\/strong> date, linking to Scaleo\u2019s new panel.<\/li>\n\n\n\n<li>Configure a <strong>global safety net<\/strong> on your old platform to send any \u201cforgotten\u201d traffic into Scaleo instead of dropping it.<\/li>\n\n\n\n<li>Dual-fire postbacks from advertisers during the overlap, so both systems record conversions.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">In Affise, this usually looks like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Setting the <strong>Global Trafficback URL<\/strong> to a Scaleo smart link or rotator.<\/li>\n\n\n\n<li>Optionally adding offer-level trafficback rules for high-volume deals.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Result: if an affiliate ignores your email and keeps sending to their old Affise click URL, that click is still redirected into Scaleo and monetized.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Is it pretty? Not particularly. Is it effective? Extremely.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">During this window, you\u2019ll see:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Some traffic still landing on the old platform.<\/li>\n\n\n\n<li>Some affiliates fully switched to Scaleo links.<\/li>\n\n\n\n<li>Conversions firing into both systems thanks to dual postbacks.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">When Scaleo is consistently reporting 100% of active traffic and Affise has effectively gone dark, you can confidently retire the old system.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">From the Data Lab: What we see working<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let me share one specific pattern we see across healthy migrations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When operators try to migrate \u201ceverything ever\u201d \u2013 every dormant affiliate, every paused offer, every edge-case payout \u2013 the project drags, the risk surface explodes, and teams burn out. When they ruthlessly scope to <strong>\u201cthe last 3\u20136 months of meaningful activity\u201d<\/strong>, three good things happen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Migration time drops dramatically.<\/li>\n\n\n\n<li>Edge-case bugs (on ancient offers no one remembers) disappear from the critical path.<\/li>\n\n\n\n<li>Teams have more bandwidth to deeply test the flows that actually drive revenue.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">There\u2019s another subtle insight: operators who <strong>treat the migration as a chance to redesign their Goal structure around real casino KPIs<\/strong> tend to see uplift post-migration. When FTD, qualified deposit, and NGR or net-win events are properly modeled as distinct goals in Scaleo, it suddenly becomes much easier to fine-tune commissions, spot bonus abuse, and reward the affiliates who deliver actual player value.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s tempting to do a 1:1 replica of your old Affise setup inside Scaleo. The operators who see the biggest gains treat it instead as a controlled evolution.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How technology automates migrating from Affise to Scaleo?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once the architecture is clear, technology does the heavy lifting. The worst thing you can do is treat this like a manual Excel migration. You have a modern, API-driven system on the Scaleo side \u2013 use it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In practice, the automation breaks down into four pillars:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>API-driven entity creation (advertisers, affiliates, offers, goals)<\/li>\n\n\n\n<li>Scripted data transformation<\/li>\n\n\n\n<li>Automated validation (click and postback tests)<\/li>\n\n\n\n<li>Monitoring during the overlap period<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re working with a dev or BI team, this is where they\u2019ll spend most of their time.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1060\" src=\"https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2025\/02\/affiliate-marketing-scaleo-metrics.webp\" alt=\"-\" class=\"wp-image-21919\" title=\"-\" srcset=\"https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2025\/02\/affiliate-marketing-scaleo-metrics.webp 1920w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2025\/02\/affiliate-marketing-scaleo-metrics-500x276.webp 500w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2025\/02\/affiliate-marketing-scaleo-metrics-768x424.webp 768w, https:\/\/www.scaleo.io\/blog\/wp-content\/uploads\/2025\/02\/affiliate-marketing-scaleo-metrics-1536x848.webp 1536w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">1. Automate entity creation via API<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of manually re-creating hundreds of advertisers and offers, you can script the entire process:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Pull JSON from Affise via API.<\/li>\n\n\n\n<li>Transform into Scaleo\u2019s expected schema.<\/li>\n\n\n\n<li>Push into Scaleo via <code>POST \/network\/advertisers<\/code>, <code>POST \/network\/affiliates<\/code>, <code>POST \/network\/offers<\/code>, and <code>POST \/network\/goals<\/code>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">This gives you:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Consistency \u2013 every advertiser and offer follows the same structure.<\/li>\n\n\n\n<li>Speed \u2013 you can recreate an entire catalog in minutes.<\/li>\n\n\n\n<li>Idempotency \u2013 if something fails, you can safely re-run chunks without duplicating entities, as long as you store mapping keys.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Casino teams often underestimate how valuable this is when you have multiple brands, licensing jurisdictions, and regional teams all sharing the same infrastructure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Script your postback mapping, don\u2019t eyeball it<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A common anti-pattern I\u2019ve seen: someone exports a CSV of postbacks, opens it in a spreadsheet, does a global Find &amp; Replace on <code>{clickid}<\/code> and <code>{sum}<\/code>, and calls it a day. That\u2019s how you end up with one parameter missing in a corner-case integration you only discover at month-end reconciliation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Parse postbacks from Affise into a structured format.<\/li>\n\n\n\n<li>For each parameter, apply a deterministic mapping (for example, <code>\"clickid\" \u2192 \"click_id\"<\/code>, <code>\"sum\" \u2192 \"payout\"<\/code>).<\/li>\n\n\n\n<li>Add unit tests or simple checks: \u201cDoes every postback contain <code>{click_id}<\/code>? Does every payout-capable campaign pass <code>{payout}<\/code> or <code>{amount}<\/code>?\u201d<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Then, when you write postbacks into Scaleo (or pass templates to advertisers), you know you\u2019re not relying on someone\u2019s memory of \u201chow we usually do this.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Run systematic validation tests<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before you even think about shutting down Affise, you want a battery of tests that gives you confidence that migrating from Affise to Scaleo hasn\u2019t left gaps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At a minimum, I recommend:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Click test<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Check that a Scaleo click URL is redirecting correctly to the advertiser:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -I \"https:\/\/YOUR-SCALEO-DOMAIN.com\/click?o=OFFER_ID&amp;a=AFFILIATE_ID\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You should see an HTTP 302\/301 to the advertiser\u2019s landing URL, not an error or unexpected intermediate.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Postback test<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Fire a synthetic conversion directly into Scaleo using a known <code>click_id<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl \"https:\/\/YOUR-SCALEO-DOMAIN.com\/track\/goal?click_id=TEST_CLICK_ID&amp;amount=10.00\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then verify:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The conversion appears under the correct offer and affiliate.<\/li>\n\n\n\n<li>The payout matches the goal configuration.<\/li>\n\n\n\n<li>Any <a href=\"https:\/\/www.scaleo.io\/blog\/the-power-of-custom-parameters-in-affiliate-reports-boosting-igaming-success\/\" title=\"Custom Parameters in Affiliate Reports: Cheat Sheet to Boosting iGaming Success\" data-wpil-monitor-id=\"167415\" rel=\"dofollow\" >custom parameters<\/a> \/ subIDs are captured as expected.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Macro \/ subID validation<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">In live casino traffic, subIDs are gold. They carry campaign IDs, placements, creative labels, and all the little bits you need to actually optimize.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Make sure your Affise sub parameters map properly to Scaleo sub parameters:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>sub1<\/code> \u2192 <code>sub_id1<\/code><\/li>\n\n\n\n<li><code>sub2<\/code> \u2192 <code>sub_id2<\/code><\/li>\n\n\n\n<li>etc.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Practically, during the overlap, I recommend picking 5\u201310 top affiliates and running side-by-side comparisons:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fire test clicks through their existing Affise links and your new Scaleo links (where possible).<\/li>\n\n\n\n<li>Compare what lands in the reporting for subs, GEO, device, and any custom params.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You want to catch mismatches before they\u2019re happening at scale with real money.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Monitor the overlap period in Scaleo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Once you start routing traffic into Scaleo, it becomes your single source of truth for performance \u2013 even while Affise is still technically online.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Useful Scaleo views during migration:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Offer-level click and conversion charts (is volume ramping up as expected?)<\/li>\n\n\n\n<li>Affiliate-level performance (are your whales seeing numbers that match their expectations?)<\/li>\n\n\n\n<li>Error \/ invalid conversion logs (are postbacks failing? Are goal values missing?)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Think of it as ICU monitoring for your migration. For 1\u20133 weeks, you\u2019re obsessively checking vitals until it\u2019s boring again \u2013 and boring is exactly what you want.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[INSERT IMAGE: A flowchart showing traffic entering Affise links, being redirected via trafficback to Scaleo, with Scaleo recording clicks and conversions]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ \u2013 Technical questions operators ask during migration<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Can I run Affise and Scaleo in parallel without double-counting conversions?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can, and you should for a short period \u2013 but you need to be deliberate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The safe pattern:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Affiliates gradually switch their links to Scaleo click URLs.<\/li>\n\n\n\n<li>In Affise, any residual traffic that still hits old links is redirected via Global Trafficback to Scaleo, so those clicks are counted only in Scaleo.<\/li>\n\n\n\n<li>On the advertiser side, you ask them to temporarily \u201cdual-fire\u201d postbacks \u2013 one to the old Affise URL, one to the new Scaleo URL.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">What does this mean in practice?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clicks that originate on Affise links and redirect to Scaleo will only be recorded once in Scaleo\u2019s click logs.<\/li>\n\n\n\n<li>Conversions may be logged in both systems during the overlap (because of dual postbacks), but that\u2019s fine; you\u2019re not using Affise for billing at that point, you\u2019re using it as a safety mirror.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Once Scaleo\u2019s data is stable and complete, you simply stop reading Affise\u2019s numbers for commercial purposes and use Scaleo as your billing source of truth.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. How does S2S tracking in Scaleo reduce the risk of pixel and cookie issues?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In legacy setups, a lot of casino programs still rely on browser-based pixels and cookies. That model breaks down under:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ITP \/ ETP restrictions<\/li>\n\n\n\n<li>Aggressive ad blockers<\/li>\n\n\n\n<li>Cross-device journeys<\/li>\n\n\n\n<li>GEOs with stricter privacy standards<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Scaleo is built around <strong>server-to-server (S2S)<\/strong> tracking:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>When a player clicks an affiliate link, Scaleo generates a <code>click_id<\/code>.<\/li>\n\n\n\n<li>That <code>click_id<\/code> is passed to the advertiser in the tracking link.<\/li>\n\n\n\n<li>On conversion (FTD, qualified deposit, revenue event), the advertiser\u2019s back end calls Scaleo\u2019s postback URL with that same <code>click_id<\/code> and the relevant parameters.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Because the conversion signal is server-to-server:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You\u2019re not hoping a pixel loads in the browser.<\/li>\n\n\n\n<li>You\u2019re not dependent on third-party cookies surviving.<\/li>\n\n\n\n<li>Even if the player moves from mobile to desktop, as long as the advertiser\u2019s system ties the session together, you can still attribute correctly.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">When you\u2019re migrating from Affise to Scaleo, the most important part is updating advertiser-side postbacks to the new S2S endpoints and macro structure. Once that\u2019s done, your risk from browser-level tracking noise drops significantly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Do I really need to import historical stats, or is it enough to start \u201cfresh\u201d in Scaleo?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Technically, you could start fresh. Operationally, that\u2019s rarely a good idea for a casino program.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You want at least the <strong>last 3\u20136 months<\/strong> of actionable history so that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.scaleo.io\/blog\/10-places-where-to-hire-affiliate-managers-for-an-online-casino\/\" title=\"10 Places Where You Can Hire Affiliate Managers for an Online Casino\" data-wpil-monitor-id=\"167416\" rel=\"dofollow\" >Affiliate managers<\/a> can see which partners were driving quality players before the migration.<\/li>\n\n\n\n<li>Fraud and compliance teams have context for patterns, not just what happened post-migration.<\/li>\n\n\n\n<li>Finance can reconcile \u201cpre\u201d and \u201cpost\u201d periods more easily.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">There are two main approaches to historical data:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Full granular import\n<ul class=\"wp-block-list\">\n<li>You import historical conversions into Scaleo, attached to the correct offers, affiliates, and goals.<\/li>\n\n\n\n<li>This gives you unified reporting but requires more careful mapping.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Summary import\n<ul class=\"wp-block-list\">\n<li>You keep full granular data in your BI or data warehouse.<\/li>\n\n\n\n<li>In Scaleo, you import summarized stats (for example, monthly aggregates per affiliate\/offer) as reference.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Most operators going through migrating from Affise to Scaleo pick a hybrid approach: detailed import for recent months and summary or external storage for older periods.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Migrating from Affise to Scaleo is not \u201cjust\u201d a platform switch; it\u2019s a chance to rebuild the core logic of how you track, attribute, and reward affiliate-driven casino traffic.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Respect the correct migration order (Advertisers \u2192 Affiliates \u2192 Offers \u2192 Traffic \u2192 History).<\/li>\n\n\n\n<li>Treat postbacks and macros as critical infrastructure, not an afterthought.<\/li>\n\n\n\n<li>Run a structured overlap period with redirects and dual postbacks.<\/li>\n\n\n\n<li>Use Scaleo\u2019s API-driven architecture to automate, validate, and monitor every step.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u2026then the scary part of migration becomes surprisingly uneventful. Your affiliates see a faster, cleaner UI. Your team gets clearer goal structures, more reliable S2S tracking, and better tools to police fraud and bonus abuse. And you get to retire a stack that was never really designed for where iGaming is heading.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s the question I always ask operators at this stage: if you\u2019re going to run your next license application, your next VIP push, and your next three markets on this tracking backbone, do you really want to keep patching the old setup \u2013 or do you want a stack that\u2019s actually built for the next five years?<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<ul style=\"background-color:#eff8ff\" class=\"wp-block-list has-background\">\n<li>A structured migration path (<code>Advertisers \u2192 Affiliates \u2192 Offers \u2192 Traffic \u2192 Historical data<\/code>) is the difference between a clean cutover and weeks of angry affiliates.<\/li>\n\n\n\n<li>Using API + CSV in a controlled \u201coverlap period\u201d lets you migrate live traffic with effectively zero downtime.<\/li>\n\n\n\n<li>Proper macro and postback mapping preserves every click, every conversion, and every cent of partner revenue \u2013 without losing reporting continuity.<\/li>\n<\/ul>\n<\/div><\/div>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Ready to automate your migrating from Affise to Scaleo project instead of wrestling with spreadsheets? Start your free trial with Scaleo today and see the difference in real-time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/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","protected":false},"excerpt":{"rendered":"<p>When operators talk to me about migrating from Affise to Scaleo, the emotion that comes up most often isn\u2019t excitement. It\u2019s fear. Fear of breaking something that \u201csort of works\u201d, fear of upsetting top partners, fear of waking up to a dashboard that suddenly shows 0 conversions. That fear is rational. You\u2019re moving the nervous<\/p>\n","protected":false},"author":2,"featured_media":114587,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[4140],"class_list":["post-114563","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\/114563","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=114563"}],"version-history":[{"count":123,"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/posts\/114563\/revisions"}],"predecessor-version":[{"id":200891,"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/posts\/114563\/revisions\/200891"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/media\/114587"}],"wp:attachment":[{"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/media?parent=114563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/categories?post=114563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scaleo.io\/blog\/wp-json\/wp\/v2\/tags?post=114563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}