How the swap works.

The actual mechanics: how views move, what gets shown where, what stops people gaming it, and what happens to your visitors' data.

The exchangeWho gets shownWeekly boardAnti-fraudPrivacy

One currency: views.

Your widget shows other makers' apps on your pages. Theirs show yours. Every counted view moves three balances at once: the app's owner, the site that showed it, and the house.

Illustration: your widget, at the end of a post on your blog, shows another maker's app. Their widget, on their changelog, shows yours.

10

Other makers' cards shown on your pages.

8

Your card shown on theirs. The last 2 go to the house and fund the free views every new maker starts with.

  • 50 free views when your widget goes live.The bonus for going live rewards the one thing that grows the network: another site showing cards. Nothing is given at signup.
  • Show 10 cards, earn 8 views. On Pro, earn 9.Each counted view costs the app's owner 1 view. The site that showed it earns 0.8 (0.9 on Pro), and the rest goes to the house.
  • The house share keeps the economy in balance.It offsets the free views every new maker starts with, so the total number of views in the network doesn't just keep growing.
  • Clicks are reported, never paid.You see them in your stats and they help good cards get shown more. Paying for clicks is paying for click fraud.
SwapsExample board. Your dashboard shows the real one.
Swaps
WhenEntryWhereViewsStatus
14:02Shown on your sitehabitloop.app+0.8Pending
14:02Your app shownHabitloop-1Cleared
13:58Shown on your sitehabitloop.app+0.8Pending
13:47Your app shownHabitloop-1Cleared
09:15Install bonushabitloop.app+50Cleared

Who gets shown.

A card is dealt only when the app passes all five checks below for that site.

  • Approved by a personEvery app is reviewed against the public guidelines before it's shown anywhere.
  • Paid forIts owner has at least one view available to spend.
  • Switched onNot paused, by its owner or by us.
  • Somebody else'sA site never shows its owner's own apps.
  • Welcome on that siteIn a category the site allows, and not blocked by the site.

Among the apps that pass, the pick is random, weighted by recent click-through rate. New apps start at the network average rather than at zero and get a boost in their first 7 days, so they can earn their own numbers.

The weekly board.

Every Monday the cards that did best the week before are named. Here's exactly how they're scored.

  • Scored against the same spots.A card at the end of a post gets clicked more than one in a footer. So each card is scored against what other cards got on the same sites that week: 1.0× is as many clicks as an average card there, 2.0× is twice as many.
  • Enough traffic to mean something.A card needs 300 counted views on at least 2 different sites in the week. The board only appears in a week when at least 5 cards qualify, and until then the dashboard says so.
  • Small samples stay near average.Two lucky clicks don't make a winner. 2 is added to both the clicks and the clicks expected, so a card with little data stays close to 1.0×.
  • Names for the top, numbers for you.The top five are named without numbers. Each maker sees how their own cards did. The winner is Card of the week on Discover for a week, and in the Monday email.
  • Nothing to spend, and our own card sits out.A place on the board earns no views, so it can't be farmed for balance. The AppAdSwap card is shown in the network like any other, but it isn't ranked.

Anti-fraud, the real list.

These rules run on every view today. A view that fails any of them isn't counted, and nobody earns anything for it.

  1. Signed, single-use tokensEvery card starts with a pick request that returns a signed token with a 30-minute expiry. A view can't be recorded without that exact token, and the database accepts each token once. A replay is rejected, not just discouraged.
  2. A daily visitor hash, never an IPA visitor is counted as a SHA-256 hash of their IP address, browser and a salt that changes every day. That's enough to count each visitor once a day. The IP itself is never saved to our database.
  3. Seen, not just loadedAt least half the card has to be on screen for a full second, in a tab that's visible, before the widget reports a view.
  4. Caps per visitorOne counted view per visitor per app per day, and at most five per visitor per site per day, however many apps they saw.
  5. A click counts only after a counted viewA click on a card is added to its stats only if the same card already had a counted view. A click on its own, with no view behind it, still takes the visitor to the app but is not counted, so it can't raise a card's ranking.
  6. Views count only on the site's own domainThe server checks that each view comes from the domain the site registered. Requests fired from anywhere else don't count.
  7. Bots are turned awayKnown crawlers and automation tools (headless Chrome, Puppeteer, Playwright, curl and the common search bots) are rejected before anything is recorded.
  8. New sites start smallFor its first 14 days after going live, a site can earn at most 1,000 counted views a day, so a new or compromised site can't build a big balance before anyone notices.
  9. Earnings wait 72 hoursEvery earned view is pending for 72 hours before it can be spent. If we confirm fraud inside that window, we reverse the earnings and pause the site. Nothing has to be clawed back later.
Not live yet: automatic anomaly holds. Before public launch, a site's earnings will be held for review automatically when its click-through rate, daily volume or visitor mix looks wrong. Until then, the 72-hour window is the backstop.

Private by construction.

Not a promise in a policy: these are properties of how the widget and the server are built.

  • No cookies, no storage on the visitor's deviceThe widget sets no cookies, touches no local or session storage, uses no fingerprinting APIs and calls no third parties. It makes two requests: one to pick a card, one to report that it was seen.
  • IP addresses are never storedThe IP is used in memory, for the length of one request, to compute the daily visitor hash and enforce the caps. It never reaches our database; only our host's request logs keep it, briefly, as with any website.
  • Labelled as advertising, alwaysThe widget says Sponsored on every plan, including Pro. Views are paid in kind, so this is advertising and it's labelled as such. Links carry rel="sponsored".
  • Isolated from your pageThe card lives in its own shadow DOM, so your CSS can't break it and its CSS can't touch your page. It takes only what you ask for: your text color, background or font, read in the visitor's browser and never sent anywhere.