AI Playbook/Recipe

Theme

How do I get a weekly digest of suspicious traffic broken down by sub-ID so I can pinpoint which traffic source on which affiliate is bad?

Spot suspicious sub-ID slices before they cost you payouts — a weekly digest of bot signals, duplicates, and CVR collapses per affiliate × sub-ID.

For
Ops, AM, Finance
In
e-com, lead-gen, financial services, iGaming, mobile, SaaS
Dasha Dagayeva
Dasha Dagayeva
Product Education Manager (she/her)
~15 min to ship

Medium

Copy
Copy & export
Copy link
Plain page URL.
Copy page as Markdown
Full recipe content for LLMs
Open in AI
Open in Claude
Recipe prefilled.
Open in ChatGPT
Recipe prefilled.
Open in Gemini
Recipe prefilled.
Open-in actions need you logged into your Claude / ChatGPT / Gemini account in this browser. Not logged in? Copy as Markdown and paste it in.
Share
01

Quick Answer

A copy-paste prompt that pulls the last seven days of clicks and conversions from the Everflow API, projects the sub1-sub5 columns, scores each affiliate × sub-ID combination on bot/duplicate/geo-mismatch/CVR-collapse signals, and emails you a ranked digest every Monday. Surgical precision: kill the one bad creative, keep the rest of the partner live.

Everflow, Slack, Email
This prompt uses
02

The Pain

The fraud signal is in the sub-IDs, but nobody sets aside two hours every Friday to slice the data that way. In affiliate, every click can carry up to five sub-ID parameters (sub1 through sub5) — traffic source, placement, creative, device, geo. When a partner's headline numbers look fine but one slice is rotten — one bot-driven placement, one duplicated source, one geo running outside the offer's targeting — the rollup hides the rot. The customer who notices is the one who pulls the conversions report by hand, group-bys their way through 312 sub-ID slices, and emails the partner asking them to investigate.

Sub-ID quality comes up in 26% of Everflow customer conversations — most-mentioned in lead-gen, finance, and nutra/health. The pattern is the manual-block workflow: a customer flags it, decides internally, then blocks it themselves. Everflow's conversions report can already filter by sub-ID, but most customers don't run that scan weekly. The recipe runs it for them, scores each affiliate × sub-ID combo, and drops a Slack digest with the flagged slices, signals (bot / duplicate / geo-mismatch / CVR collapse), and conversion IDs so the AM can open the right partner conversation Monday morning.

The win isn't a new dataset. It's the discipline of looking at the right grain every week, without having to remember to look.

Stat
26% of Everflow customer conversations touch sub-IDs (988 of 3,824 calls). 1 in 5 of those customers raise it as a fraud / manual-blocking pain.

They'll request us, we create rewards codes, stuff comes in, and then we have to like manually block on our side.

Growth lead, prediction-market exchange
02b

Foundation Prompt

Set this once. Reuse across every recipe.

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.

~55 lines · ~340 tokens
# 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.txt
03

The Prompt

Same prompt across Claude, ChatGPT, and Gemini. Projects sub1–sub5 columns explicitly, scores each affiliate × sub-ID combo on bot/duplicate/geo/CVR signals, and confirms high scores against a 14-day window before flagging. **Optional — scope to one affiliate or advertiser.** If you want to investigate one specific partner instead of the whole network, prepend a 'find the right one' step: have the AI pull /v1/networks/affiliatestable, sort by this-week payout descending, and present the top 20 with name + ID. You pick one, the AI scopes the rest of the recipe to that affiliate. Saves you from guessing the right ID.

v1.0 · tag

# role
You are an Everflow ops assistant running a weekly fraud forensics report.

# inputs
api_key       = {API_KEY}
network_id    = {NETWORK_ID}
window_days   = 7
email_to      = {EMAIL_TO}
slack_webhook = {SLACK_WEBHOOK_URL}    # optional, leave blank to skip

# task
1. POST /v1/networks/reporting/entity
   - body: {
       from: now-{window_days}d,
       to: now,
       columns: ["affiliate","sub1","sub2","sub3","sub4","sub5"],
       query: { exclusions: [
         { resource_type: "is_view_through", filter_id_value: "true" }
       ]}
     }
   This returns clicks, conversions, CVR, payout grouped by affiliate × all 5 sub-IDs.

2. For each affiliate × sub1 combo with >=50 clicks in the window, compute a fraud score
   from these signals (each adds points):
     +3  bot_signal:        median time_to_convert < 5 seconds
     +2  fast_signal:       median time_to_convert < 30 seconds
     +3  duplicate_signal:  duplicate_conversion_rate > 5%
     +2  cvr_collapse:      CVR more than 50% below the affiliate's overall CVR
     +2  cvr_spike:         CVR more than 3x the affiliate's overall CVR (often non-human)
     +2  geo_mismatch:      >20% of conversions from a country the offer doesn't target
     +1  ip_concentration:  top 5 IPs account for >40% of clicks
     +1  high_volume_low_payout: clicks in top 10% but payout in bottom 25%

3. For high scoring rows (score >= 5), also pull a representative sample by calling
   POST /v1/networks/reporting/conversions filtered to that affiliate + sub1 value,
   limit 5 rows. Capture conversion_id, timestamp, time_to_convert, country, ip_hash.

4. Group results by affiliate. For each affiliate with >=1 flagged sub-ID:
     - affiliate name + ID
     - total clicks / conversions / payout in window
     - flagged sub-ID rows (sub1 value, score, signals tripped, sample IDs)
     - non-flagged sub-IDs count (so reader knows what's still safe to keep live)

5. Format an email digest:
   Subject: "Sub-ID fraud digest, week ending {date}: {N} affiliates flagged"
   Body:
     - Top-line: N affiliates × M sub-ID slices flagged, $X potential payout exposure
     - Per affiliate block (ranked by total flagged-payout descending):
       affiliate name, total payout in window, list of flagged sub-IDs with score + signals
     - Footer with link to the Core Platform conversions report filtered to the window
   Send to email_to. If slack_webhook is set, also post a condensed version.

6. Return a Markdown summary so I can verify before you send.

# guardrails
- Skip is_view_through=true conversions (no click)
- Skip click_unix_timestamp = 0 / null (clickless coupon tracking is intentional)
- Require >=50 clicks per affiliate × sub1 combo so we don't flag noise
- Min-tenure: exclude affiliates with `time_created` < today - 30 days from fraud scoring. New partners need a baseline before pattern signals like "CVR collapsed vs partner avg" become meaningful. List them in a separate "new this month — manual review" section so they're not ignored, just not auto-scored.
- Confirm any high-score (>=5) flag using two windows: last 7 days AND last 14 days. A signal that only trips on 7 but not 14 is a one-off spike — drop the score by 2 and re-evaluate. Reduces false positives from a single bad day.
- If sub1 is empty across an entire affiliate, note "no sub-ID granularity available" and
  skip drilldown for that affiliate (don't fail the whole run)
- Don't flag sub-IDs the user has marked "test" or "internal" in a known list
  (ask the user once on first run; persist the list)
- For affiliates flagged 4+ weeks in a row, escalate the headline ("ongoing pattern, not a blip")
04

The Steps

Generate an API key in Core Platform

Core Platform → Control Center → Security → API Keys → click the + API key button. Read-only on Reporting is enough.

Confirm your sub-ID columns are populating

In Core Platform reporting, run a quick conversions report grouped by sub1. If you see real values (not all blank), you're set. If sub1 is empty everywhere, your affiliates aren't passing it — that's a partner conversation, not a recipe problem.

Pick your delivery channel

Email (most common for weekly), Slack channel, or both. Grab a Slack incoming webhook URL if you want Slack delivery.

Paste your keys into the prompt

Replace {API_KEY}, {NETWORK_ID}, {EMAIL_TO}, and optionally {SLACK_WEBHOOK_URL} in the block below.

Run it in Claude, ChatGPT, or Gemini

First run pulls last week, scores each affiliate × sub-ID combo, and sends the digest. Output lands in 1-2 minutes.

05

Sample Output

#fraud-alerts42 members
Everflow
Everflow AlertsAPPMonday 8:00 AM
🚨 Sub-ID fraud digest · week ending May 12 · 6 affiliates flagged · $18.4K payout exposure on 11 sub-ID slices
Scope: 47 affiliates running · 312 sub-ID slices · 11 flagged 1. Push-traffic aggregator (P_4421) · $7.2K payout this week Flagged sub-IDs: • sub1=push_inapp_BR · score 9 signals: bot (med 3s), duplicate 11%, ip-concentration top5=58% sample IDs: cv_88412, cv_88456, cv_88471 • sub1=push_inapp_MX · score 7 signals: bot (med 4s), geo-mismatch 34% (offer targets US only) sample IDs: cv_88489, cv_88503 12 other sub-IDs on this affiliate look clean — keep them live. 2. Native widget partner (P_3308) · $4.8K payout this week Flagged sub-IDs: • sub1=native_widget_v2 · score 6 signals: cvr_collapse (0.4% vs partner avg 2.1%), high_volume_low_payout sample IDs: cv_91220, cv_91244 8 other sub-IDs on this affiliate look clean. 3. Coupon publisher (P_5102) · $3.1K payout this week Flagged sub-IDs: • sub3=COUPON_FLASH50 · score 8 signals: fast (med 14s), cvr_spike 4.2x partner avg sample IDs: cv_77881, cv_77912, cv_77934 ...3 more affiliates flagged below
Open in Core Platform conversions report (last 7 days)  ·  Suppress a sub-ID from next week to mark as cleared.
📈 4👀 8
06

FAQ

Real questions, real answers
What if my affiliates aren't passing sub-IDs?

Then you'll get a "no sub-ID granularity available" line for them, and the recipe falls back to partner-level signals only. The fix is upstream: ask your affiliates to pass at minimum sub1 (traffic source) and sub3 (creative or coupon code). Most premium affiliates already do.

What about sub-IDs I control myself (test traffic, internal QA)?

The prompt asks once on first run for a list of "known internal" sub-ID values to suppress. Once you mark sub1=test_internal_QA as known, it won't show up in future digests. Persist the list in your scheduler config.

My partners pass sub-affiliate IDs in sub2 — does this work for that?

Yes. The recipe scores all five sub-ID columns. Aggregators that pass their sub-affiliate ID in sub2 or sub3 get sliced by that dimension automatically. You'll see "sub2=AGG_SUBAFF_8841" lines in the output, which is exactly the level you need to act on.

06b

Notes & counter-cases

Edge cases, gotchas, and things to watch.

The recipe scores affiliate × sub-ID combos with at least 50 clicks in the window so noise doesn't overwhelm signal. Smaller affiliates with sub-50 clicks roll up to an aggregate "low-volume tail" group instead of being individually flagged.

High fraud scores are confirmed against a 14-day window before flagging. A single bad week from a normally clean affiliate gets the "spike, not trend" label so you investigate rather than auto-block.

If sub1–sub5 are empty across the board, the recipe falls back to affiliate-level scoring and surfaces a callout that sub-ID tracking isn't wired — so you know it's a setup gap, not a clean program.

Internal QA traffic and known-good sub-IDs can be added to an allowlist in the prompt so they don't trip the bot signals.

Sub-ID fraud manifests differently by vertical: in lead-gen and finance it's typically bot-filled forms or synthetic identity (the most-mentioned bucket in customer calls). In nutra and ecom, it shows up as coupon-stacking or last-touch attribution gaming. Mobile / app-install fraud doesn't surface in EF customer voice — the recipe is built around the click+conversion grain Everflow tracks, so install-attribution patterns are out of scope.

ASK US ANYTHING

Got a question this playbook hasn't answered yet?

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.

DJReviewed every Tuesday by Dasha & Jordan
NEWSLETTER

First dibs on new recipes

One Tuesday email. Latest industry news plus new recipes the day they ship. Unsubscribe in one click.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
×
Submit a recipe

Got a recipe of your own?

Share what's working with the Everflow API. Our team will reach out about details, timelines, and next steps.

Reviewed weekly · Author credit on every published recipe · We respond to every submission
Submit your idea and our team will reach out about details, timeline, and process.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
×
SHARE THIS RECIPE

Spread the playbook

LinkedIn no longer accepts pre-filled captions via URL. Two clicks: copy the caption below, then open LinkedIn and paste in the composer.

Your caption
Copy first, then open LinkedIn and paste in the composer.