Skip to main content

User acquisition

Overview​

User acquisition on Jest is about getting users to register and engage with your app on the platform.

Registered users are subscribed to their personal Jest messaging thread, which unlocks access to the messaging inbox - the stickiest retention surface available. This is what makes registration critical: without it, Jest’s messaging-based re-engagement features are not available.

Registration is also what determines who gets paid for bringing a user to Jest. See Internal registration attribution below.

App entry points​

On Jest, users can enter your app through a few different entry points. Understanding how they differ helps you design acquisition flows and optimize for registration and retention.

Organic entry​

Organic entry points are the surfaces where users find your app while already browsing Jest. They cost nothing and benefit from platform trust and built-in discovery. The list grows as the platform evolves. Today it includes, non-exhaustively:

  • Explore - the main discovery feed for users browsing what to try next.
  • Recommended for you - personalized placement based on what a player has played.
  • Activity and recents - re-entry surfaces for apps a player has already tried.
  • Search - users looking for something specific.
  • Chat screenshots - a player shares a moment from your app into a conversation, and the screenshot links back.
  • Profile pages - public profiles surface the apps a player plays.

Users arriving this way are typically evaluating multiple apps and deciding what to try, so optimizing your app’s presentation and first-time experience is especially important for converting them into registered users.

From the Developer Console, you can configure how your app appears in Explore, including your app icon, hero image, and short description. These elements play a significant role in attracting attention and setting expectations before a player ever enters the app.

Explore surface showing game discovery on Jest

Example of a game featured in Explore

Jest Ads entry​

You can also buy placements inside Jest. Currently in beta, Jest Ads promotes your app across the platform, with campaigns and reporting managed in Ads Manager in the Developer Console.

See the Jest Ads guide for bids, budgets, creatives, and what counts as a billed entry.

Direct entry​

Players can also enter your app directly on its app page. This entry point is commonly used by players coming from outside of Jest, such as those arriving via paid user acquisition, social sharing, or viral features.

Direct entry allows you to bring in players with higher intent and more context. Because these players are often new to Jest, clear onboarding and meaningful registration prompts play a key role in unlocking messaging-based re-engagement.

If you are buying traffic into your app, you need to attach your team’s Tracking ID to the link so the acquisition is credited to you. See Internal registration attribution below for more details.

Registration and login paths​

Registration is vital for success on Jest because it’s the main mechanism for reaching users outside of Jest, through the most personal mobile surface area: their messaging inbox.

Registration also determines how net revenue gets paid out. When a user registers, Jest records an acquisition and attributes it to a team. That team earns a share of everything the user spends anywhere on Jest for the next 12 months.

Before prompting a player to register or log in, apps should first check whether the player is already registered. See JestSDK.getPlayer() for technical details.

If a player is not registered, there are four primary ways they can log in or create an account on Jest.

note

Users can only sign up with a US phone number for now. Visitors with an IP address outside the US will see a message informing them that Jest is not available in their country. As a developer, you can still test your app from any country with sandbox users; you don’t need a US phone number.

User-initiated registration​

Users can choose to register or log in on their own through the Jest platform footer or the in-app footer. These entry points are always accessible and allow motivated users to sign up at their own pace.

User-initiated registration works well for players who already understand the value of creating an account.

Platform-initiated registration​

Jest automatically prompts unregistered players to register at timed intervals while they play. Currently it happens in the first few minutes of play, and periodically after that.

These registration prompts can be helpful as they drive acquisition for your app. When a guest registers while in your app, that registration is credited to your team unless a tracking parameter takes precedence. Keeping guests engaged long enough to reach these registration moments can therefore have a meaningful impact on acquisition.

Developers can disable these prompts if they have their own app-initiated registration prompts.

App-initiated registration prompts​

Apps can actively prompt players to register or log in by invoking the platform’s registration flow at strategic points during gameplay. The most effective prompts occur early and coincide with peak emotional moments - times when a player feels a sense of accomplishment, surprise, or high stakes. Ideal opportunities to leverage this emotional investment include:

  • First "Aha!" moments: Directly after a player experiences the core hook or feels the first rush of gameplay success.
  • Peak achievements: Immediately following a hard-won victory or completing a challenging level.
  • High-value reward drops: When a player feels the excitement of unlocking rare items or new features.
  • Meaningful progression: At the moment a player realizes they want to save their progress to avoid losing a "hot streak."

Jest provides two distinct registration options:

  1. Standard Registration Dialog: Uses the default Jest platform interface and styling.
  2. Custom Registration Flow: Can be fully themed to match your app's unique UI and branding.

For implementation and technical details, see Platform login.

Dedicated onboardings​

Dedicated onboardings are a highly effective approach to converting players into registered users on Jest.

You can think of onboardings as short, interactive flows - similar to playable ads - that players engage with before entering the full app. Onboardings introduce the app, create emotional investment, and turn registration into a natural continuation of play.

Onboardings can be used both for paid user acquisition campaigns and for viral or social features that bring new players into your app.

If your app is accepted into the Jest Fund, the Jest team will work with you to design and run onboarding flows to drive user acquisition for your app.

Marketing and attribution analytics​

Jest is built on web entry points, which makes attribution for both paid acquisition and viral growth straightforward and reliable.

Two different things are worth keeping apart here. Your own campaign measurement - which ad drove which session - runs on parameters you attach and read in your own analytics. Jest’s internal attribution - which team is credited with acquiring a user, and therefore paid 20% of net revenue - runs on the tracking ID and the app that converted the user into registration, and is decided by the platform once at the moment of registration or reactivation.

Standard marketing attribution parameters (UTM parameters) are preserved when users enter your app through Jest links and are passed through to the app.

The following UTM parameters are supported:

  • utm_source
  • utm_medium
  • utm_campaign
  • utm_term
  • utm_content

Because all entry points flow through web URLs, paid user acquisition campaigns benefit from high attribution accuracy. Apps can reliably associate registrations and sessions with their originating campaigns without requiring custom SDK integrations or probabilistic matching.

This makes Jest well-suited for performance-driven acquisition channels such as paid social, search, and influencer campaigns.

note

UTM parameters are for your own analytics. Jest does not use them to decide who acquired a user - that is the job of the tracking ID described below. Attaching UTMs alone will not credit an acquisition to your team.

Internal registration attribution​

Separately from your own campaign reporting, Jest records one acquisition per registered user and attributes it to exactly one team. That team earns 20% of everything the user spends anywhere on Jest for the next 12 months, including in apps they don’t own. The app where a purchase happens takes 70%. When the acquirer and the publisher are the same team, that team keeps 90%.

There are two ways to become the acquirer:

  • A tracking ID on the link. If the user arrives with your team’s Tracking ID attached and registers within the 24hr attribution window, you are credited - even if they end up registering inside a different app.

    note

    We use a single last-touch model: if a user arrives through multiple Tracking IDs, registration is attributed to the most recent Tracking ID used within the 24-hour window before registration.

  • The app they converted in. If no valid tracking ID applies, or if the 24hr attribution window expired, the user is considered acquired by the publisher of the app that the user was in when they registered.

If neither applies, for example, a user who registers on the Jest platform itself, the user is organic and there is no acquiring team. That means that 90% of the net revenue from that user will go to the apps where purchases are made.

If you are buying traffic into your app, attach your team’s Tracking ID to the link as a t parameter so the acquisition is credited to you:

https://jest.com/g/your-app-slug?t=<your-tracking-id>

Your Tracking ID lives in the Developer Console under Team Settings > User Acquisition, which also builds the full link for you. It is not the same as your Team ID.

A typical paid acquisition link carries both: the t parameter so Jest credits the acquisition to you, and UTMs so you can break performance down by campaign, ad set, and creative in your own analytics.

https://jest.com/g/your-app-slug?t=<your-tracking-id>&utm_source=meta&utm_medium=paid_social&utm_campaign=spring_launch&utm_content=video_a

Viral and social attribution​

For viral or social sharing flows, we recommend using entryPayload to pass structured attribution data into the app.

The entryPayload is preserved when a user enters the app and can be accessed after login via JestSDK.getEntryPayload(). This allows you to:

  • identify the source of an invite or share
  • attribute conversions to specific features or referrers
  • trigger contextual in-app logic based on how the user arrived

Using entryPayload for viral attribution keeps acquisition logic explicit, debuggable, and flexible, while avoiding reliance on URL parsing or fragile client-side state.

Jest also provides referral APIs you can use to implement invite flows (share dialog + conversion tracking). See the referrals SDK module and the example: Unlock a feature after 3 invites.

From CPI to CPS: comparing acquisition funnels​

Mobile app user acquisition provides a familiar reference point for thinking about funnels and acquisition cost. In a typical CPI model, users must navigate an app store and complete an install flow before they can interact with the product.

Messaging-based experiences follow a comparable funnel, but shift when value is delivered: users can engage immediately, while subscription or registration happens later. Comparing CPI and CPS funnels side by side helps clarify where friction appears in each model and how instant interaction in messaging changes the path to acquisition.

Messaging app

Mobile app