Skip to content
Ritesh FirodiyaGet in touch

Work / Tic Tac Toe / Wiki / Entities

monetisation

Entitycanonicalverified 2026-09-22

MONETISATION.TIC-TAC-TOE

Summary

Advertising is the entire revenue model. There is no purchase of any kind.

Canonical values

Key Value Last changed
MODEL AdMob only 2026-09-22
FORMAT.BANNER 320×50, always present, height reserved whether or not it fills 2026-09-22
FORMAT.INTERSTITIAL shipped — src/hooks/useInterstitialAd.ts, shown from src/app/game.tsx 2026-09-22
IAP none 2026-09-22
SUBSCRIPTION none 2026-09-22
REVENUECAT not used 2026-09-22
GATE.BANNER EXPO_PUBLIC_SHOW_ADS 2026-09-22
WEB EXPORT carries no ad code at all — src/config/ads.web.ts is a no-op shim 2026-09-22

Rules

  • The banner reserves its height whether or not it fills. A banner that arrives late pushes the board down mid-game and costs a misplaced tap. Fill rates sit well below 100%, so the unfilled slot is the common case, not the edge.
  • The interstitial never lands between the winning move and the winning line. It belongs after the result sheet is dismissed. Showing one before the player sees how they won is the most punished thing in this category's reviews.
  • The store listings must say ads are present. An old listing draft once claimed "No Ads" while the production profile shipped both formats. The listing now has one source, .context/listing/listing.md.

Where it is drawn

The banner is a strip inside Home and Game, not a screen of its own — it is AdBanner, rendered under the scroll view on both. It was briefly drawn as three separate wireframes (banner, banner-empty, ads-off); none of those is a route the app has, and a wireframe of a component pretending to be a screen is worse than no wireframe.

Known gap

The interstitial has no wireframe, and the house rule is that a component in no HTML file does not ship. It fires after every third completed game, and its timing — never between the winning move and the winning line — is precisely the thing a wireframe would pin down. Recorded in routes.js and on the gallery rather than left silent.

Related

Sources

  • .context/designs/mobile/home/start.html
  • .context/designs/mobile/game/board.html
  • src/components/ads/AdBanner/, src/hooks/useInterstitialAd.ts
  • CLAUDE.md, app.config.ts

Every project of mine is written down like this.

Read the résumé