Launch Playtime

The primary function of the Playtime SDK is showing the offerwall to the users. The Playtime offerwall lists various campaigns that the users can complete to receive a reward in the app's native in-app currency.

Games displayed to users are chosen programmatically based on their preferences and profile, while the specific campaigns available to them depend on the permissions granted or country.

Campaigns

Advertisers define ad formats and target countries through campaigns, which are then featured in the Playtime Offerwall. These campaigns are set by advertisers and allow for rewards once the completion of the campaign conditions are verified through the MMP.

CampaignExplanation

Playtime (time-based)

Rewards users for the time they spend in the advertised app, e.g. Earn 50 coins per minute for playing a game.

Advance (event-based)

Rewards users based on ordered levels. Example: Reach Level 1 for 50 Coins, Reach Level 2 for 50 coins, etc...

Advance+ (event-based)

Rewards users for achieving a designated combination of events within advertised apps, e.g. in-app purchases, viewing video ads, and/or reaching specified game levels. Users are rewarded after completing each task. Example: "Up to 5 Coins per Task" or "Complete Level 10".

Example of a Playtime Campaign

Example of an Advance Campaign

Example of an Advance+ Campaign

Terms of Service

Users need to accept adjoe's Terms of Service (TOS) to use Playtime and access games. Agreeing to the TOS is mandatory before installing any partner apps. After users accept the TOS, we can identify the types of apps/games they have installed, allowing our algorithm to tailor game suggestions on the offerwall based on their preferences.

Access to Advertising Info

We also ask the user to accept the App Usage Permissions. This allows us to monitor the time spent in each game or app. Without accepting these permissions, users won't be eligible to participate in Playtime campaigns and will be limited to only Advance or Advance+ campaigns.

How Games Are Matched to Users

The Playtime algorithm prioritizes displaying games to users based on their potential to generate maximum revenue and likelihood of being downloaded.

Add a Teaser Event

When the placement button for Playtime appears, whether clicked or not, please send us the teaser event. This notifies adjoe when and where the placement is shown, which is crucial for tracking user engagement and enhancing the user experience.

Use adjoeParams to pass in the placement information, i.e., where in the app the button was shown - for example: "Main Page".

try {
    Adjoe.sendUserEvent(context, Adjoe.EVENT_TEASER_SHOWN, null, adjoeParams)
} 
catch (e: AdjoeNotInitializedException) {
    // you have to initialize the adjoe SDK
}

Launch the Playtime Offerwall

We recommend triggering the offerwall via a button or UI element (within the SDK it is housed in a separate activity). Rather than launching the activity directly, we provide an Intent for you to initiate it, enabling, for example, transition animations for a smoother user experience. Use the code below to launch the AdjoeActivity and display the adjoe Playtime Offerwall. It is recommended to send any updated AdjoeParams when launching the Playtime Offerwall.

try {
    val adjoeParams = AdjoeParams.Builder()
        .setUaNetwork("network")
        .setUaChannel("channel")
        .setUaSubPublisherCleartext("SubPublisherCleartext")
        .setUaSubPublisherEncrypted("SubPublisherEncrypted")
        .setPlacement("placement")
        .build()
    val adjoeOfferwallIntent = Adjoe.getOfferwallIntent(context, adjoeParams)
    context.startActivity(adjoeOfferwallIntent)
} 
    catch(notInitializedException: AdjoeNotInitializedException) {
    // you have not initialized the adjoe SDK
} 
    catch(exception: AdjoeException) {
    // the offerwall cannot be displayed for some other reason
}

Set Up a Listener (Native)

You can set up a listener to be notified when the Playtime Offerwall is opened or closed, with the event type always being offerwall. To remove the listener, simply call Adjoe.removeOfferwallListener().

Adjoe.setOfferwallListener(object:AdjoeOfferwallListener() {
  fun onOfferwallOpened(type:String) {
    Log.d(TAG, "Offerwall of type '" + type + "' was opened")
  }
  fun onOfferwallClosed(type:String) {
    Log.d(TAG, "Offerwall of type '" + type + "' was closed")
  }
})

Example: Playtime Offerwall & My Games

Additional Useful Methods

namedescription

getVersion

Returns the internal version code of the adjoe SDK, for example 70.

getVersionName

Returns the version name of the adjoe Playtime SDK, for example 2.1.1

hasAcceptedTOS

Checks whether the user has accepted the adjoe Terms of Service (TOS). Returns true if the user has accepted the TOS and false otherwise.

getUserId

Returns the unique ID of the user by which the user is identified.

hasAcceptedUsagePermission

Checks whether the user has given access to the usage statistics. Returns true when the user has given access, false otherwise.

Last updated