
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
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).

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]

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:
- Create a structure variable (e.g.
ShareParams) with child variables likeid,type,score. - Use the action Poki Games SDK > Create shareable URL and pass in
ShareParams. - Read the generated URL with the expression
PokiGamesSDKHtml::LastShareableURL().
To read URL parameters (including Poki’s gd-prefixed params), use the expression:
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 between0and50.TopPx: An additional pixel offset.- The Poki default is
TopPercent = 0andTopPx = 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.