Getting started

Trovewall has two sides. Which pages you need depends on whether you have users to monetise or an action you want performed.

If you have users — publisher

  1. Create an account and choose Publisher. You can add the advertiser side later from your account settings; it is the same login.
  2. Create an app. An app is one placement: one offerwall, one pair of keys, one postback URL. A website and its mobile app are two apps even if they share users, because they report different devices.
  3. Copy your app_key from the app page. It is public — it travels in the wall URL — so it identifies, it does not authenticate. The app_secret alongside it is what signs API requests and must never leave your server.
  4. Embed the wall or call the offer API.
  5. Set your postback URL so we can tell your server when to credit a user. Without it nothing reaches your economy.
  6. Test end to end with the postback tester in the dashboard, which sends a signed call with test=1 against real signing.
Never credit from the browser. The wall runs on the user's device and anything it can be made to say, a user can make it say. Credit only on the server-to-server postback.

If you want an action performed — advertiser

  1. Create an account and choose Advertiser.
  2. Fund your wallet. Offers do not serve on an empty balance. Top-ups are by SEPA transfer against a reference code — see payments.
  3. Create an offer: the action, the price per conversion, the instructions the user must follow, and your tracking URL with the {click_id} macro in it.
  4. Target it — countries, devices, operating systems. An untargeted offer serves everywhere, which is rarely what anyone wants.
  5. Report conversions to your postback URL. See postbacks.

Environments

There is no separate sandbox host. Instead, any conversion carrying test=1 is recorded, signed and delivered exactly like a real one but is excluded from billing, from payouts and from every report. That way you test the real signing path rather than a mock of it.

Rate limits

EndpointLimitOn exceeding
/api/v1/*120 requests / minute / key429 with Retry-After
/wall/*60 renders / minute / userCached wall is served
/postback/in/*Not limitedRetry freely; duplicates are safe

The inbound postback endpoint is deliberately unlimited. Rate-limiting the way an advertiser tells us they owe us money would be a strange thing to do.