Skip to content

gdevelop-banner

PokiSDK - GDevelop

Introduction & Features

This is the Poki Games SDK extension for GDevelop, the open-source, no-code game engine. Since GDevelop uses a visual event system instead of traditional code, the SDK is integrated entirely through actions, conditions, and expressions – no scripting required.

Available Actions
Gameplay started          -- in JS: PokiSDK.gameplayStart()
Gameplay stopped          -- in JS: PokiSDK.gameplayStop()
Commercial break          -- in JS: PokiSDK.commercialBreak()
Rewarded break            -- in JS: PokiSDK.rewardedBreak()
Game loading finished     -- in JS: PokiSDK.gameLoadingFinished()
Create shareable URL      -- in JS: PokiSDK.shareableURL({})
Open external link        -- opens a URL via the Poki SDK
Move Poki Pill            -- repositions the Poki Pill on mobile
Measure event             -- sends an analytics event to Poki
Available Conditions
Poki SDK is ready                      -- check if the SDK is initialized
Commercial break just finished playing -- fires once after a commercial break ends
Commercial break is playing            -- true while a commercial break is active
Rewarded break just finished playing   -- fires once after a rewarded break ends
Rewarded break is playing              -- true while a rewarded break is active
Should reward player                   -- true if the player watched the full rewarded ad
Available Expressions
PokiGamesSDKHtml::LastShareableURL()        -- the last generated shareable URL
PokiGamesSDKHtml::URLParam("paramName")     -- read a URL param (supports gd-prefixed params)

1. Install the Extension

Open your GDevelop project, go to the Project Manager and click Create or search for new extensions. Search for Poki and install the Poki Games SDK extension.

Once installed, the extension’s actions, conditions, and expressions will be available in your event sheets.

Publishing to Poki

GDevelop has a built-in Poki export option. When you’re ready to publish, go to File > Export > Poki to generate a build specifically for the Poki platform. For more details, see the GDevelop publishing guide for Poki.


2. Implement the gameplay events

Use the  ðŸŽ® gameplayStart()  event to describe when users are playing your game (e.g. level start and unpause).

Use the  â˜  gameplayStop()  event to describe when users aren’t playing your game (e.g. level finish, game over, pause, quit to menu).

In GDevelop, add these as actions in your event sheet:

Condition: [Player clicks or taps to start]
Action:    Poki Games SDK > Gameplay started

Condition: [Player dies / level ends / game pauses]
Action:    Poki Games SDK > Gameplay stopped


3. Implement commercialBreak

Commercial breaks are used to display video ads and should be triggered on natural breaks in your game. Throughout the rest of your game, we recommend you implement the  ðŸŽž commercialBreak()  before every  ðŸŽ® gameplayStart() , i.e. whenever the user has shown an intent to continue playing (it’s important that the gameplay start event is not fired during the advertisement, but only after gameplay resumes).

gdevelop-commercial

Condition: [Player clicks "Play Again" or "Next Level"]
Action:    Poki Games SDK > Gameplay stopped
Action:    Poki Games SDK > Commercial break

Then handle the ad finishing:

Condition: Poki Games SDK > Commercial break just finished playing
Action:    Poki Games SDK > Gameplay started
Action:    [Your action to resume/start the game]

gdevelop-commercial

Important information about commercialBreaks

Not every single  ðŸŽž commercialBreak()  will trigger an ad. Poki’s system will determine when a user is ready for another ad, so feel free to signal as many commercial break opportunities as possible.


4. Implement rewardedBreak

Rewarded breaks allow for a user to choose to watch a rewarded video ad in exchange for a certain benefit in the game (e.g. more coins, etc.). When using  ðŸŽ¬ rewardedBreak() , please make it clear to the player beforehand that they’re about to watch an ad.

Condition: [Player clicks "Watch Ad for Reward"]
Action:    Poki Games SDK > Gameplay stopped
Action:    Poki Games SDK > Rewarded break

Then handle the result using both conditions together:

Condition: Poki Games SDK > Rewarded break just finished playing
           AND Poki Games SDK > Should reward player
Action:    [Give the player their reward]
Action:    Poki Games SDK > Gameplay started
Condition: Poki Games SDK > Rewarded break just finished playing
           AND NOT Poki Games SDK > Should reward player
Action:    [No reward - player skipped or ad did not play]
Action:    Poki Games SDK > Gameplay started

About the rewardedBreak timer

 ðŸŽ¬ rewardedBreak()  affects the timing of  ðŸŽž commercialBreak()  - When a user interacts with a rewarded break, our system’s ad timer is reset to ensure the user does not immediately see another ad.


Final Steps

Disable sound and input during ads

Make sure that audio and keyboard input are disabled during commercialBreaks, so that the game doesn’t interfere with the ad. You can use the Commercial break is playing and Rewarded break is playing conditions to detect when an ad is active:

Condition: Poki Games SDK > Commercial break is playing
           OR Poki Games SDK > Rewarded break is playing
Action:    [Mute audio / disable player input]

Alternatively, mute before requesting the break and unmute in the “just finished playing” event.


Shareable URLs

You can create a shareable URL using a structure variable:

  1. Create a structure variable (e.g. ShareParams) with child variables like id, type, score.
  2. Use the action Poki Games SDK > Create shareable URL and pass in ShareParams.
  3. Read the generated URL with the expression PokiGamesSDKHtml::LastShareableURL().

To read URL parameters (including Poki’s gd-prefixed params), use the expression:

PokiGamesSDKHtml::URLParam("id")

This will return either the gdid param set on poki.com or the id param on the current URL.


Poki Pill on mobile

If the Poki Pill overlaps your UI on mobile, you can reposition it with the Move Poki Pill action:

  • TopPercent: A value between 0 and 50.
  • TopPx: An additional pixel offset.
  • The Poki default is TopPercent = 0 and TopPx = 20.


Upload and test your game in Poki for Developers

Congrats, you’ve successfully implemented the PokiSDK! Now upload your game to the Poki Inspector and test it there. When you’re happy with the implementation, send us a review request and we’ll play the game. Feel free to contact us via Discord or developersupport@poki.com if you’re stuck.


Extension source and reference

For the full list of actions, conditions, and expressions, see the GDevelop Poki SDK reference page.