Initialize the SDK

You need to initialize the adjoe SDK before you can use any of its features. To do this, call Adjoe.Init(sdkHash, options, success, failure). when your app is starting. The initialization will run asynchronously in the background and notify you when it is finished by invoking one of the callback methods. After one successful initialization all following calls to Adjoe.Init will immediately invoke the success callback until your app is removed from the heap. The SDK initialization should be started as soon as possible after the app starts to make sure that all adjoe features are available when you want to use them.

Best practices for the SDK initialization:

  • Initialize early: You should initialize the SDK as soon as possible after your app starts to make sure that all adjoe features are available when you want to use them.
  • Initialize regularly: For the best user experience, we highly recommend to call this method every time your app comes to the foreground. This should not be noticeable in your app's performance.
  • Initialization triggers: Good places to call this method are the app start and resume.
local Adjoe = class("Adjoe", cc.load("adjoe").Adjoe)
function MyApp:onCreate()
Adjoe.Init("sdkHash", options,
function ()
-- the adjoe plugin was initialized successfully
function (msg)
-- an error occurred while initializing the adjoe plugin.
The parameters to this call are as follows:
  • String sdkHash: You adjoe API key.
  • Table options: A table for passing additional values to the initialization of adjoe. Currently the following options are supported:
    • String UserID: A custom identifier that you wish to assign to this user. If you don't have an identifier for your user already, the adjoe SDK will generate one.
    • Table AdjoeParams: A table containing User Acquisition and Playtime placement parameters.
If you do not want to use the options, you can passnil in place of the table.
If you want to use S2S payout, you have to set the user id in order to match the payout to your user.
Adjoe Parameters
You can pass additional UA and placement parameters when you initialize the SDK
local params = Adjoe.NewAdjoeParams()
local options = Adjoe.NewOptions()
Adjoe.Init("sdkHash", options, success, failure)

The IsInitialized method

To check whether the SDK is initialized you can call Adjoe.IsInitialized(). This will return true if the SDK is initialized and false otherwise. However, you should not condition calling Init on the result of IsInitialized because the SDK will do some checks on its own. You should not do something like the following as it can lead to bad user experience:
function MyApp:onCreate()
if not Adjoe.IsInitialized() then
Adjoe.Init(sdkHash, options, successCallback, errorCallback);
Instead, just call Init without checking for IsInitialized. You can however use IsInitialized e.g. for debugging or to check whether the SDK is initialized before calling other methods of the SDK like RequestRewards.