Watch And Earn docs
v3.1.0
Live demoConsole demo Get help
● Monetise · Direct deals

Sponsored campaigns
banners, tasks and quizzes you sell.

Sell space in the app directly to brands: a sponsored banner, a sponsored task or a sponsored quiz. The app always labels it Sponsored, counts impressions and clicks, and the amount the sponsor paid you is recorded as revenue.

Always labelled SponsoredImpressions and clicksBooking = revenue

01What a sponsored campaign is

A sponsorship is a deal between you and a brand. This package does not find sponsors or take payment from them. It shows the campaign you set up, labels it, counts it and records what you were paid. Console → Sponsors (admin/pages/app.js, collection sponsors).

KindWhat the user seesFields
BannerA sponsored card on the Home and Earn screens, opening your link when tapped.Link, logo URL, optional title and text
Sponsored taskOne of your daily tasks, carrying the "Sponsored" label.Task id from the Tasks page
Sponsored quizOne of your quizzes, carrying the "Sponsored" label.Quiz id from the Quizzes page
The label cannot be removed

The console always writes label: "Sponsored", and the app always shows it. Stores and advertising rules require paid content to be recognisable as such. Do not try to hide it.

Switch: Features → Sponsored content (on by default). It has no effect until you create a campaign.

02Create a campaign

  1. Create the task or quiz firstFor a sponsored task or quiz, create it on the Tasks or Quizzes page and copy its id.
  2. New sponsorConsole → Sponsors. Fill in Sponsor name (up to 80 characters), Kind, Starts (UTC) and Ends (UTC).
  3. ContentBanner: Link and optionally Logo URL. Task or quiz: the Task id or Quiz id. Optional Title (up to 80) and Text (up to 240) are the card copy. Without them the app shows the sponsor name.
  4. Booking amountOptional: what the sponsor paid you, in minor units (cents), plus the Currency (ISO code, default USD). 25000 with USD means 250.00 USD. Leave it empty if nothing was paid.
  5. ActiveTick it. The campaign runs between the start and the end. New campaigns are inactive until you tick it.

03Impressions and clicks

The app calls trackSponsor with impression when a banner, sponsored task or sponsored quiz is shown, and with click when a sponsored banner is tapped (app/lib/ui/widgets/sponsored.dart). Sponsored tasks and quizzes count impressions only. The function is rate-limited, and impressions count once per user per UTC day (sponsorStats/{id}/seen/{day_uid}). The app also deduplicates them on the device. The Sponsors page shows totals per campaign, and opening one shows daily impressions and clicks.

These are counts from your own app, useful for the report you send the sponsor. They are not audited third-party ad measurement. Agree with the sponsor beforehand on what you report.

04The booking amount is revenue

When you save a sponsor with a booking amount, the Functions trigger onSponsorWrite writes revenueEvents/sponsor_<sponsorId> with source sponsor, dated at the campaign start. It shows in the revenue centre under "Sponsor bookings".

  • Clearing the amount, or setting it to 0, deletes that revenue event.
  • Deleting the sponsor keeps the event, because the campaign was paid.
  • Amounts in a currency other than the revenue centre currency are listed per currency and never converted.

05Before you sell a sponsorship

  • A sponsored task or quiz credits points like any other task or quiz. It must never promise cash or prizes of cash value.
  • Check the sponsor's link and content against your store's policies and your ad network's rules, for example about competing ads.
  • Your contract with the sponsor (price, run dates, reporting) is outside this package.