Skip to main content

Notifications

Jest allows developers to schedule notification messages to re-engage players and drive retention. Using the Jest SDK, you can customize a notification’s text, call to action (CTA), and image.

The Jest platform handles messaging infrastructure and delivery, subsidizing 100% of messaging costs and abstracting away operational complexity. This includes managing regulated messaging requirements such as consent collection, required disclosures, and robust opt-out mechanisms.

For guidance on designing effective notification strategies, copywriting, and scheduling patterns, see Notifications best practices.

Notification channels

There are two notification delivery channels on Jest: the platform Library tab and SMS / RCS text messages.

Library tab

When your game is Approved and set to Public, all scheduled notifications appear in the Jest platform Library tab.

SMS / RCS messages

Jest may also deliver notifications via SMS or RCS. Channel selection is based on availability and the user’s messaging settings.

Library notification
Library notification
SMS notification
SMS notification
RCS notification
RCS notification

Notification mechanics

Jest games use the Jest SDK notification methods to schedule notifications. At the scheduled time, notifications are shown in the Library tab on Jest.com.

Once per day, Jest selects at most one scheduled notification per user across all games on the platform to deliver to the user’s messaging inbox. The platform selects the notification most likely to convert, taking into account the priority provided by the SDK. Delivery time is determined per user based on the scheduled time defined by the game and observed engagement patterns, while respecting compliance requirements. Messages are delivered via SMS or RCS, depending on availability and user preferences.

Notifications API

Here is some example code to demonstrate scheduling notifications on the Jest gaming platform.

note

The Jest platform will only send notifications to registered users. You can check a user’s status with JestSDK.getPlayer() and prompt players to log in via the SDK.

JestSDK.notifications.scheduleNotification

To schedule a notification, use this method.

Notifications can only be scheduled up to 7 days ahead. scheduledInDays must be between 1 and 7 days (inclusive), and scheduledAt must be within the next 7 days. Values outside these ranges throw an INVALID_ARGUMENTS error. Length limits: ctaText must be non-empty and at most 50 characters, title at most 200 characters, and body must be non-empty and at most 2000 characters. Values outside these limits throw an INVALID_ARGUMENTS error.

Notifications can be scheduled in one of two ways:

  • Exact scheduling using scheduledAt, which ensures the notification becomes eligible for delivery after the specified date and time. scheduledAt must be within the next 7 days. Note that delivery is not guaranteed at the exact scheduled moment, as messaging must comply with mandated quiet hours and other delivery constraints.
  • Fuzzy scheduling using scheduledInDays, which schedules a notification 1 to 7 days from now and allows the platform to determine an appropriate delivery time for each user.

Exact scheduling is suited for fixed events or deadlines where timing matters. Fuzzy scheduling is intended for notifications that are relevant within a given day, allowing the platform to determine an appropriate delivery time for each user.

JestSDK.notifications.scheduleNotification({
// When should it be scheduled for (exact datetime)
// Either scheduledAt OR scheduledInDays must be provided, but not both
// Must be within the next 7 days; out-of-range values throw
scheduledAt?: Date;

// Schedule notification for N days from now (fuzzy scheduling)
// Either scheduledAt OR scheduledInDays must be provided, but not both
// Must be an integer between 1 and 7 (inclusive); out-of-range values throw
scheduledInDays?: number;

// Identifier
// Notifications can be rescheduled or unscheduled using this identifier
identifier?: string;

// Priority
// Higher-priority notifications are weighted more heavily when selecting
// which notification to send over SMS / RCS or display in the Library tab.
// Default is 'low'
priority?: 'low' | 'medium' | 'high' | 'critical';

// Asset reference: attach a pre-approved asset (image or video) to your
// notification. Assets must be uploaded and approved in the Developer
// Console before use. See Developer Console > Manage images for details.
assetReference?: string;

// Deprecated alias for assetReference. Still honored as a fallback.
imageReference?: string;

// Body: the main text of the notification
// Must be 1-2000 characters; empty or longer values throw INVALID_ARGUMENTS
body: string;

// Optional title shown above the body
// Must be at most 200 characters; longer values throw INVALID_ARGUMENTS
title?: string;

// Call-to-action (CTA) text shown on the notification button
// Must be 1-50 characters; longer values throw INVALID_ARGUMENTS
ctaText: string;

// Optionally attach a custom payload to the notification entry.
// If the game is entered through this notification, the payload will be passed to the game.
entryPayload?: { [key: string]: string };
});

Notifications can also be unscheduled by their identifiers. If you schedule a notification with an existing identifier, the original notification will be unscheduled and replaced with the new one. You don't need to unschedule the original notification first.

To attach an asset (image or video) to your notification, first upload and submit it for approval in the Manage images section of the Developer Console. Only approved assets can be referenced in notifications.

If an assetReference (or the deprecated imageReference) is invalid, unapproved, or archived, the notification will use your game’s Hero image as a fallback and log an error in the Events page. If neither is set, it will simply fall back to the Hero image.

If no asset is set, the notification will be displayed using the Hero image of your game, configured in the Developer Console.

JestSDK.notifications.unscheduleNotification

To unschedule an already scheduled notification, use this method.

JestSDK.notifications.unscheduleNotification({
identifier: "my_notification_id",
});

Error handling

scheduleNotification and unscheduleNotification can throw an INVALID_ARGUMENTS error if the provided arguments do not match the required schema.

In addition, notifications may be blocked due to:

  • Invalid or unapproved image references
  • Content that violates platform moderation rules

Blocked notifications are logged in the Events → Moderation or Events → Errors tabs in the Developer Console. End users do not see internal error codes.

Moderation and delivery constraints

Notifications are subject to platform review and moderation. Content that violates the Acceptable Use Policy may be blocked from delivery. For more details, see Review and moderation.