Your cam smartlink wastes French and Asian clicks (route cam traffic by country instead)

The Adult Affiliate (TAA) logo on an admission ticket, stub reading Geo routing

A cam smartlink promises to send every visitor to the best offer for their country and device. Open your network statistics grouped by country and the promise looks thin: a few countries bring most of the money, and the rest brings conversions that pay cents. In our own accounts, French and East Asian visitors were worth almost nothing on CPA offers while the same countries were among our best on cam revshare. The visitors were fine. The program was wrong for them.

Our verdict

Worth testing

EffortOne afternoon, one redirect script
First resultsSignups per country within weeks
We still use itOn every cam link

The short version

  • A CPA cam offer pays what its advertiser accepts for a lead from a given country; cam revshare pays a share of what the referred user actually spends, whatever the country. Route each visitor to the program that pays for their country.
  • CrakRevenue smartlinks pick an offer from the visitor’s device, location and your vertical, and every CrakRevenue offer page lists its accepted countries (CrakRevenue help center, read in November 2026). A country outside those lists gets a fallback offer, not a premium one.
  • In our accounts, Taiwan, Hong Kong and Japan ranked among the best countries on Stripchat revshare and produced close to nothing on CPA smartlinks or Chaturbate revshare. French, Belgian and Swiss traffic converted on CPA dating and cam offers but paid cents per conversion, and paid well on revshare.
  • Cloudflare adds the visitor’s country to every request in the cf-ipcountry header (two-letter code, XX when unknown, T1 for Tor) once the “Add visitor location headers” Managed Transform is on, on every plan including Free, as of November 2026.
  • Do the routing in your own redirect endpoint, not in the page HTML, so cached pages stay identical for every visitor and for Googlebot.

Why does the same visitor pay differently from one program to another?

Because the two payout models price a visitor at different moments. A CPA offer (pay per lead or pay per sale) pays a fixed amount decided by the advertiser before the visitor exists. Revshare pays a percentage of what the user spends after signing up. CrakRevenue, the adult affiliate network, defines the models the same way on its help center: single opt-in leads pay on an email registration, double opt-in leads pay after the confirmation click, PPS pays on a paid registration such as a trial, and revshare pays a percentage of the revenue generated by the users you referred.

Advertisers only buy leads from countries where they expect to recover the money, so the fixed amounts are high for the United States, the United Kingdom, Canada, Australia and Germany, and low or absent elsewhere. On a CrakRevenue offer page, this appears as the “accepted countries” list next to the terms. A smartlink hides that list from you: it routes the click to whatever offer accepts the visitor’s country and device. For an accepted country that means a premium offer; for the others it means a fallback that pays very little, or a generic offer the visitor never converts on.

Revshare has no accepted-countries list. If a visitor from Taipei signs up on Stripchat through your link and buys tokens, you receive your share of those tokens. The only question is whether users from that country spend on that platform, and that depends on the platform’s audience, not on an advertiser’s media buying.

Which countries pay on which program?

Our data, accumulated over several years on cam revshare and CPA smartlinks, gives a clear pattern. We share the pattern, not the figures, and the right move is to confirm it on your own traffic before rerouting everything. If you still have to pick the programs themselves, start from our program list.

Visitor countryCPA cam smartlinkChaturbate revshareStripchat revshare
US, UK, CA, AU, DEPays well, converts wellPays wellPays well
FR, BE, CH, NLConverts, pays cents per leadAmong our best countriesAmong our best countries
TW, HK, JP, KR, SGClose to zeroMarginalHigh value per spender, Taiwan and Hong Kong on par with the US in our accounts
IN, VN, PH, IDZeroMarginalMany signups, low value per spender
Latin AmericaClose to zeroLowLow, volume without value
What we observed on our own accounts, read in autumn 2026. Patterns, not rates: check them on your traffic.

Two findings surprised us. The first is France: a CPA smartlink recorded more conversions from France than from the United States on our traffic, and still paid a fraction of the money, because the French dating and cam offers behind the smartlink pay a few cents to a dollar per lead. Moving that traffic to revshare turned a leak into one of our best countries. The second is East Asia: Chaturbate and the CPA offers see almost no spending from Taiwan, Hong Kong or Japan, while Stripchat does, and the value per spender there matched the United States in our accounts. The lever for Asian traffic is the platform, not the geo.

One caveat on timing. Revshare arrives late: a referred user often takes months, sometimes years, before the first purchase, so a country can look dead on revshare for a long time and then pay for years. We described why in how we judge a new cam site. CPA pays now. If you need the cash this quarter, route Tier-1 English traffic to CPA and keep everything else on revshare, where CPA would pay nothing anyway.

How do you read the visitor’s country reliably?

From the IP address, on the server, with one of two sources. If your site is behind Cloudflare, enable the Managed Transform called “Add visitor location headers” (Rules, then Settings, then Managed Transforms). Cloudflare then adds cf-ipcountry, cf-ipcity, cf-ipcontinent, cf-region-code and a few more headers to every request it forwards to your origin. The country header is a two-letter ISO 3166-1 code, with two special values documented by Cloudflare: XX when the country is unknown and T1 for visitors coming through the Tor network. The older “IP Geolocation” toggle under Network adds only CF-IPCountry; Cloudflare’s own documentation now recommends the Managed Transform instead. Both are available on the Free plan as of November 2026.

Without Cloudflare, use MaxMind’s GeoLite country database. It is free, requires a MaxMind account and a license key, and the license obliges you to keep it current: the page states that databases must be replaced within 30 days of a new release, so automate the download. Country-level accuracy is good enough for routing; MaxMind itself says the free city database is not meant for commercial precision.

Do not use the browser language as the primary signal. Accept-Language tells you the interface language, not the country, and a French speaker in Montreal is a Canadian lead for a CPA advertiser. Keep the language as a fallback for XX only.

Where should the routing live?

In the redirect endpoint, never in the page

Put the decision in a single redirect script on your own domain, for example /go/cam/, and point every button and link on the site at it. The HTML stays identical for every visitor, so Cloudflare and your own cache can keep serving it, and Googlebot (which crawls mostly from the United States) sees exactly what a user in Lyon sees. Serving different links in the HTML per country forces you to bypass the cache or to vary it by country, and both cost you more than the routing gains.

The endpoint itself must answer with a 302, Cache-Control: no-store and a noindex header, and be disallowed in robots.txt. A minimal PHP version:

<?php
// /go/cam/index.php : one redirect, one decision per country
$country = strtoupper($_SERVER['HTTP_CF_IPCOUNTRY'] ?? 'XX');   // or a GeoLite lookup
$placement = preg_replace('/[^a-z0-9_]/', '', $_GET['p'] ?? 'text');

$revshareStripchat = 'https://YOUR_STRIPCASH_LINK/?campaignId=' . "mysite_{$placement}_{$country}";
$revshareChaturbate = 'https://YOUR_CHATURBATE_LINK/?campaign=' . "mysite_{$placement}_{$country}";
$cpaSmartlink = 'https://YOUR_CRAKREVENUE_SMARTLINK/?s1=' . "mysite_{$placement}_{$country}";

$cpaCountries = ['US', 'GB', 'CA', 'AU', 'DE'];
$stripchatOnly = ['TW', 'HK', 'JP', 'KR', 'SG', 'IN', 'VN', 'PH', 'ID', 'TH', 'MY'];

if (in_array($country, $stripchatOnly, true)) {
    $target = $revshareStripchat;
} elseif (in_array($country, $cpaCountries, true) && NEED_CASH_NOW) {
    $target = $cpaSmartlink;
} else {
    $target = $revshareStripchat;        // default: revshare, including XX and T1
}

header('Cache-Control: no-store');
header('X-Robots-Tag: noindex');
header('Location: ' . $target, true, 302);
exit;

Three details in that script matter more than the country lists. The country goes into the tracking tag, so each program’s statistics can be read per country and per placement (on Stripcash, use campaignId: the s1 to s3 parameters never reach the report). Unknown and Tor visitors fall to the revshare default, where a wrong guess costs nothing. And the lists are data, not code: start with ours, then edit them from your own statistics every quarter.

Split the test, don’t flip the switch

Route half of the clicks from a country group the old way and half the new way for a month, with the arm in the tag, and compare signups per click first and spenders per signup later. We explained how we measure revenue per variant in a separate guide. A country group with fewer than a few hundred clicks a month will not give you an answer; leave it on revshare and move on.

What breaks when you route by country?

Mostly your own assumptions. Data-center traffic is the first trap: scrapers and bots arriving from Singapore or Hong Kong hosting ranges will show up as Asian clicks in the Stripchat column and never sign up. Judge a country on signups and spenders, never on clicks. The second trap is ad blockers, which strip or block cam links regardless of your routing; we covered that separately. VPN users get the program of their exit node’s country; with revshare as the default, that is noise, not loss.

Do not block any country, and do not hide content per country. Blocking a country removes future revshare from users who have not started spending yet, and geo-specific content turns a routing decision into a cloaking risk. The page is the same for everyone; only the redirect differs.

Finally, remember that the routing changes nothing for the users you have already referred. Revshare users keep earning on the program they signed up on. The effect of the new rules shows up in new signups within weeks and in revenue over the following months, so write down the date you switched.

Frequently asked questions

Why does my cam smartlink pay so little for French traffic?

Because the offers that accept French visitors pay a few cents to a dollar per lead, while the US offers pay many times more. The smartlink converts the French click on whatever accepts it. On cam revshare, French users spend normally, so the same traffic pays well once it is sent to Stripchat or Chaturbate instead.

Which cam platform pays for Asian traffic?

In our accounts, Stripchat revshare is the only cam program that produced meaningful earnings from Taiwan, Hong Kong, Japan, Korea and Singapore. CPA cam offers paid nothing for those countries and Chaturbate very little. Send Asian visitors to Stripchat and judge the result on signups and spenders over several months.

How do I get the visitor’s country on a site behind Cloudflare?

Enable the “Add visitor location headers” Managed Transform in the Cloudflare dashboard (Rules, Settings). Your origin then receives the cf-ipcountry header on every request, a two-letter country code, with XX for unknown and T1 for Tor. It is available on the Free plan as of November 2026.

Is geo routing of affiliate links cloaking?

Not when the page content is identical for every visitor and only a noindex redirect endpoint picks the destination. Cloaking is showing search engines different content than users. Keep the routing out of the HTML and out of the indexed URLs.

Should I use CPA or revshare for US cam traffic?

Both pay for US visitors, so the choice depends on your horizon. CPA pays a fixed amount within weeks; revshare pays a share of the user’s token purchases for as long as they spend, often starting months after the signup. We keep revshare as the default and use CPA only when cash is needed now.

How many clicks do I need before trusting a per-country result?

Enough signups to compare, not clicks: a few dozen signups per arm is the minimum before a signup rate means anything, and spender data needs months on top of that. Countries that never reach those numbers should simply stay on revshare, where a wrong choice costs nothing.

The redirect script takes an afternoon and the country lists take a quarter to confirm. Until then, the one change that is safe on day one is to stop sending French and Asian clicks to a CPA smartlink.