Skip to main content

GameAction API

GameAction API

A namespace for reporting the lifecycle of a single game round (round / stage / level) to the platform. The recorded actions are used by the platform for analytics and reporting. All calls are fire-and-forget and do not wait for a response.

TudadaSDK.gameAction exposes three methods:


start(options?)

Reports that a round has started. All options are optional.

Options:

ParameterTypeRequiredDescription
payload.roundnumber-Round number
payload.stagenumber-Stage number
payload.levelnumber-Level number
additionalPayloadstring-Free-form metadata (any string the game wants to attach)
// Example 1: no arguments
TudadaSDK.gameAction.start();

// Example 2: with stage info
TudadaSDK.gameAction.start({
payload: { stage: 3 },
});

// Example 3: with free-form metadata
TudadaSDK.gameAction.start({
payload: { round: 1, stage: 3, level: 5 },
additionalPayload: JSON.stringify({ tutorial: true }),
});

complete(options)

Reports that a round has been cleared normally. result and playTime are required.

Options:

ParameterTypeRequiredDescription
payload.result'WIN' | 'LOSE' | 'DRAW' | 'DONE'End result
payload.playTimenumberRound duration (ms)
payload.scorenumber-Score achieved
payload.roundnumber-Round number
payload.stagenumber-Stage number
payload.levelnumber-Level number
additionalPayloadstring-Free-form metadata
TudadaSDK.gameAction.complete({
payload: {
result: 'WIN',
playTime: 12345,
score: 9000,
stage: 3,
},
});

exit(options)

Reports that a round was ended without normal completion (e.g. the player abandoned it, or a time limit expired). playTime and reason are required.

Options:

ParameterTypeRequiredDescription
payload.playTimenumberRound duration (ms)
payload.reason'TIMEOUT' | 'ABANDONED'Exit reason
additionalPayloadstring-Free-form metadata
// Player abandoned the round
TudadaSDK.gameAction.exit({
payload: { playTime: 4500, reason: 'ABANDONED' },
});

// Time limit reached
TudadaSDK.gameAction.exit({
payload: { playTime: 60000, reason: 'TIMEOUT' },
});
tip

exit() should be called explicitly by the game code when it decides a round has ended. It is independent of page unload (web view close).