Audit partners
Find the countries your partners could scale into tomorrow. One API call, one table, zero spreadsheet gymnastics.
A copy-paste prompt that pulls the last 30 days of performance by country, computes clicks, conversions, CVR, and revenue per geo, compares each country's CVR to your network average, and highlights the countries that are converting well but barely getting any traffic. The output is a ranked opportunity table: countries where the data says "this works" but nobody's scaling it. Ten minutes, one API call, zero spreadsheet gymnastics.
"The only countries that get optimized are the very best and the very worst. Everything in the middle just runs on autopilot."
Roughly 1 in 5 customers we talk to bring up country-level performance analysis. The question is always some version of "which countries are working" or "where should we be spending more." But when you're running campaigns across 20, 30, 50 countries, the economics of manual optimization don't pencil out. You optimize your top 2 geos because that's where the money is. You cut your worst 2 because that's where the losses are. Everything between ranks 3 and 48 just runs on autopilot. The result is a portfolio with hidden winners that never get scaled and quiet losers that keep bleeding budget unnoticed.
Everflow's Reporting page can filter by country. What it doesn't do is compute "above-average CVR + below-average traffic" in one view. That comparison is the gap. It's the difference between knowing that Peru has a 4.2% CVR (nice) and knowing that Peru has a 4.2% CVR against your 1.8% network average but only 200 clicks last month (actionable).
Geo-level reporting is our biggest pain. We're running campaigns across countries with completely different player values. When you blend those together, the numbers just don't make any sense.
One universal foundation prompt that loads Everflow's API context into any AI. Paste it once, then run any recipe on top of it. Ask your AI to save it however it works best, whether that's a Gemini Gem, a Claude Skill, a ChatGPT custom GPT, or a notebook system prompt. Same content, your AI's format.
# Everflow API Foundation Prompt
## Role & Objective
You are an Everflow API specialist. Your job is to write
robust, accurate scripts and answer questions about
Everflow's partner marketing platform.
## Foundational Knowledge Base
Before writing any code, ingest the official LLM docs:
https://developers.everflow.io/llms.txtSame prompt across Claude, ChatGPT, and Gemini. Pulls one month of performance grouped by country, computes CVR per geo, and flags the countries worth investigating.
v1.0 · tag
# role
You are an Everflow geographic performance analyst.
# inputs
api_key = {API_KEY}
network_id = {NETWORK_ID}
threshold = {THRESHOLD} # minimum clicks to count as "scaled" (default 500)
window_days = 30 # default last 30 days
timezone = {TIMEZONE} # e.g. America/New_York
currency = {CURRENCY} # default USD
# task
1. Compute the date range: today minus {window_days} through yesterday.
2. POST /v1/networks/reporting/entity
body: {
from: "{from}", to: "{to}",
columns: [{ column: "country" }],
query: { filters: [], exclusions: [] },
sort_columns: [{ column: "revenue", direction: "desc" }],
timezone_id: 80,
currency_id: "USD"
}
3. From the response, extract per-country:
- country name
- clicks
- conversions (total_conversions)
- revenue
- payout
- CVR = conversions / clicks * 100
4. Compute network-wide averages:
- avg_cvr = total conversions across all countries / total clicks * 100
- median_clicks = median of per-country click counts (excluding 0-click countries)
5. Classify each country:
- "Opportunity" = CVR > avg_cvr AND clicks < {threshold}
- "Scaled" = CVR > avg_cvr AND clicks >= {threshold}
- "Underperforming" = CVR <= avg_cvr AND clicks >= {threshold}
- "Low signal" = CVR <= avg_cvr AND clicks < {threshold}
6. Build two tables:
TABLE 1: OPPORTUNITY COUNTRIES (sorted by CVR descending)
| Country | Clicks | Conversions | CVR | vs Avg | Revenue | Classification |
TABLE 2: FULL COUNTRY BREAKDOWN (sorted by revenue descending)
| Country | Clicks | Conversions | CVR | Revenue | Payout | Classification |
7. Summary block:
- Total countries with traffic: {N}
- Network average CVR: {avg_cvr}%
- Opportunity countries found: {count}
- Top 3 opportunities by CVR gap (CVR minus avg_cvr)
- Estimated revenue upside: for each opportunity country,
compute "if clicks scaled to {threshold}, revenue would be ~${projected}"
using that country's current revenue-per-click.
8. Return the full analysis as Markdown.
# guardrails
- Exclude countries with fewer than 10 clicks from the Opportunity list.
A 50% CVR on 2 clicks is noise, not signal.
- Round CVR to 1 decimal place, currency to whole dollars.
- If a country has 0 clicks, skip it entirely.
- Any country with fewer than 50 clicks gets a "small sample" flag.
- Use the API's native currency conversion (currency_id parameter)
so all revenue figures are in one currency.
- Don't count test traffic (affiliate_id = 1) in the country totals.# role
You are an Everflow geographic performance analyst.
# inputs
api_key = {API_KEY}
network_id = {NETWORK_ID}
threshold = {THRESHOLD} # minimum clicks to count as "scaled" (default 500)
window_days = 30 # default last 30 days
timezone = {TIMEZONE} # e.g. America/New_York
currency = {CURRENCY} # default USD
# task
1. Compute the date range: today minus {window_days} through yesterday.
2. POST /v1/networks/reporting/entity
body: {
from: "{from}", to: "{to}",
columns: [{ column: "country" }],
query: { filters: [], exclusions: [] },
sort_columns: [{ column: "revenue", direction: "desc" }],
timezone_id: 80,
currency_id: "USD"
}
3. From the response, extract per-country:
- country name
- clicks
- conversions (total_conversions)
- revenue
- payout
- CVR = conversions / clicks * 100
4. Compute network-wide averages:
- avg_cvr = total conversions across all countries / total clicks * 100
- median_clicks = median of per-country click counts (excluding 0-click countries)
5. Classify each country:
- "Opportunity" = CVR > avg_cvr AND clicks < {threshold}
- "Scaled" = CVR > avg_cvr AND clicks >= {threshold}
- "Underperforming" = CVR <= avg_cvr AND clicks >= {threshold}
- "Low signal" = CVR <= avg_cvr AND clicks < {threshold}
6. Build two tables:
TABLE 1: OPPORTUNITY COUNTRIES (sorted by CVR descending)
| Country | Clicks | Conversions | CVR | vs Avg | Revenue | Classification |
TABLE 2: FULL COUNTRY BREAKDOWN (sorted by revenue descending)
| Country | Clicks | Conversions | CVR | Revenue | Payout | Classification |
7. Summary block:
- Total countries with traffic: {N}
- Network average CVR: {avg_cvr}%
- Opportunity countries found: {count}
- Top 3 opportunities by CVR gap
- Estimated revenue upside per opportunity country
8. Return the full analysis as Markdown.
# guardrails
- Exclude countries with fewer than 10 clicks from the Opportunity list.
- Round CVR to 1 decimal place, currency to whole dollars.
- If a country has 0 clicks, skip it entirely.
- Any country with fewer than 50 clicks gets a "small sample" flag.
- Use the API's native currency conversion so all figures are in one currency.
- Don't count test traffic (affiliate_id = 1) in the country totals.# role
You are an Everflow geographic performance analyst.
# inputs
api_key = {API_KEY}
network_id = {NETWORK_ID}
threshold = {THRESHOLD} # minimum clicks to count as "scaled" (default 500)
window_days = 30 # default last 30 days
timezone = {TIMEZONE} # e.g. America/New_York
currency = {CURRENCY} # default USD
# task
1. Compute the date range: today minus {window_days} through yesterday.
2. POST /v1/networks/reporting/entity
body: {
from: "{from}", to: "{to}",
columns: [{ column: "country" }],
query: { filters: [], exclusions: [] },
sort_columns: [{ column: "revenue", direction: "desc" }],
timezone_id: 80,
currency_id: "USD"
}
3. From the response, extract per-country:
- country name, clicks, conversions, revenue, payout
- CVR = conversions / clicks * 100
4. Compute network-wide averages:
- avg_cvr = total conversions / total clicks * 100
- median_clicks = median of per-country click counts (excluding 0-click)
5. Classify each country:
- "Opportunity" = CVR > avg_cvr AND clicks < {threshold}
- "Scaled" = CVR > avg_cvr AND clicks >= {threshold}
- "Underperforming" = CVR <= avg_cvr AND clicks >= {threshold}
- "Low signal" = CVR <= avg_cvr AND clicks < {threshold}
6. Build two tables:
TABLE 1: OPPORTUNITY COUNTRIES (CVR desc)
TABLE 2: FULL COUNTRY BREAKDOWN (revenue desc)
7. Summary: total countries, avg CVR, opportunity count, top 3 by CVR gap,
revenue upside estimates.
8. Return as Markdown.
# guardrails
- Exclude countries with <10 clicks from Opportunity.
- Round CVR to 1 decimal, currency to whole dollars.
- Skip 0-click countries. Flag <50-click countries as "small sample."
- Use currency_id for unified currency. Skip test traffic (affiliate_id=1).Generate an API key
Core Platform → Control Center → Security → API Keys → click the + API key button. Read-only on Reporting is enough.
Set your traffic threshold
What counts as low traffic depends on your program. A good starting point: any country below 25% of your median click volume. If your median country gets 2,000 clicks/month, the threshold is 500.
Paste your keys into the prompt
Replace {API_KEY}, {NETWORK_ID}, and {THRESHOLD} in the prompt block below. Default window is last 30 days.
Run it in Claude, ChatGPT, or Gemini
The output is a country table with an Opportunity column highlighting geos that convert above your network average but sit below your traffic threshold. Takes 1-2 minutes.
Act on the top 3 opportunity countries
Start with the countries showing the highest CVR gap vs your network average. Ask your partners: can you send traffic here? If the CVR holds after 200+ clicks, scale it.
The interactive map above shows your country performance breakdown with opportunity countries highlighted. Hover over any dot for the full breakdown. The UK drill-down shows your top 5 affiliates by clicks, CVR, revenue, and month-over-month trend.
Not particularly. This recipe is designed for programs running in 3+ countries. If you're single-country, the same prompt can pivot by state or region (swap country for sub1 or sub2 if you're passing geo data in sub-parameters), but the "hidden geo opportunity" thesis works best with a portfolio of countries where the middle ones get ignored.
The prompt flags any country with fewer than 50 clicks as "small sample." A 4% CVR on 15 clicks could easily be 0% next month. The rule of thumb: use the opportunity list as a conversation starter with your partners ("can you send traffic to Peru?"), not as a guarantee. If the CVR holds after 200+ clicks, it's real.
Yes. The API returns revenue and payout in a single currency (converted via the currency_id parameter). The CVR comparison is conversion-rate based, not revenue-based, so payout differences per geo don't affect the opportunity classification. The revenue column gives you the dollar context, but the signal comes from CVR vs. the network average.
This recipe is most valuable for programs running in 3+ countries. Single-country operations won't find actionable opportunities here.
The strongest signal comes from iGaming, fintech, and multi-country e-commerce, where player or customer value differs dramatically by country. DTC brands with localized stores also benefit. Single-vertical programs in one region will see fewer "hidden" geos.
CVR on small samples is volatile. The prompt's 10-click floor and 50-click "small sample" flag exist to prevent false positives. Treat any opportunity country with under 200 clicks as a hypothesis, not a conclusion.
Multi-currency programs: the API normalizes to a single currency via currency_id, but revenue-per-click in a high-value market (Switzerland) and a low-value market (Turkey) are not directly comparable. The CVR signal is clean; the revenue upside estimate is approximate.
As Zach Measures notes: "Often this kind of optimisation yields very marginal gains." The value of this recipe is in the discovery of the blind spot, not the size of each individual optimization. The countries you find may each contribute only a few thousand dollars, but the portfolio effect across 4-5 opportunity geos adds up.
Drop us the question you wish had a prompt. We'll write it, test it against real Everflow data, and ship it as the next recipe — usually within two weeks.
One Tuesday email. Latest industry news plus new recipes the day they ship. Unsubscribe in one click.
Share what's working with the Everflow API. Our team will reach out about details, timelines, and next steps.