poki-js-sdk について
poki-js-sdkは、Poki JavaScript SDKをゲームに組み込むためのスキルです。ゲーム開発者向けに、初期化、ライフサイクルイベント、広告ブレーク、Poki Inspectorによる検証を案内します。
主な機能
- 01Poki SDKの読み込みと初期化
- 02ゲーム読み込み完了の通知
- 03ゲームプレイ開始・停止イベントの対応付け
- 04インタースティシャル広告とリワード広告の追加
- 05Poki Inspectorによるフロー検証
活用シーン
- 01ゲームへのPoki統合
- 02ライフサイクルイベントによるプレイセッション管理
- 03広告ブレークと一時停止・再開動作のテスト
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hungify/ playables-skills --skill poki-js-sdkインストール後、Claude Code で/poki-js-sdkを入力して読み込まれたか確認します。
詳細
Poki JavaScript SDK
統合ワークフロー
- SDK スクリプトを追加する — Poki スクリプトタグを埋め込むか、動的に挿入します。
- 初期化する —
PokiSDK.init()を呼び出し、ゲームの準備ができたらgameLoadingFinishedを解決します。 - 初期化を確認する — ブラウザーのコンソールで Poki SDK のハンドシェイクメッセージを確認します。Poki Inspector 開発ツールを使用して、セッションが開始したことを確認します。
- ライフサイクルフックを追加する — 各プレイセッションの前後に
gameplayStart/gameplayStopを呼び出します。 - 広告ブレークを追加する — 自然な休止ポイントに
commercialBreakを挿入し、プレイヤーが選択できる箇所にrewardedBreakを追加します。 - Poki Inspector でテストする —
https://inspector.poki.ioを開き、ゲームの URL を読み込んで、各広告ブレークを実行し、フローを確認します。
インストール
公式の Poki SDK スクリプトをページに追加します。
<script src="https://game-cdn.poki.com/scripts/v2/poki-sdk.js"></script>
または、動的に挿入します。
function loadPokiSdk() {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = 'https://game-cdn.poki.com/scripts/v2/poki-sdk.js';
script.onload = resolve;
script.onerror = reject;
document.head.appendChild(script);
});
}
初期化
loadPokiSdk()
.then(() => window.PokiSDK.init())
.then(() => {
// SDK is ready
window.PokiSDK.gameLoadingFinished();
})
.catch(() => {
// SDK init failed - continue without Poki integration
window.PokiSDK && window.PokiSDK.gameLoadingFinished();
});
プレイヤーがゲームをプレイできる状態になったら、gameLoadingFinished を呼び出します。ローダーに明確なフェーズがある場合は、gameLoadingStart と gameLoadingFinished で各フェーズを囲みます。
広告
インタースティシャル
広告が実際に配信されたかどうかを検出するには、isOpened フラグを使用します。広告が表示されない場合、コールバックは呼び出されません。
function showInterstitial() {
let isOpened = false;
window.PokiSDK.commercialBreak(() => {
isOpened = true;
// Pause game, mute audio
})
.then(() => {
if (isOpened) {
// Resume game, unmute audio
} else {
// Ad was not shown
}
})
.catch(() => {
// Ad request failed
});
}
リワード
rewardedBreak はブール値で解決されます。isOpened が true で、かつ解決された値が真の場合にのみ、報酬を付与します。
function showRewarded() {
let isOpened = false;
window.PokiSDK.rewardedBreak(() => {
isOpened = true;
// Pause game, mute audio
})
.then((success) => {
if (isOpened) {
if (success) {
// Grant reward to the player
}
// Resume game, unmute audio
} else {
// Ad was not shown
}
})
.catch(() => {
// Ad request failed
});
}
ライフサイクル
プレイヤーが操作できるようになったとき(レベル開始、レベル再開)に gameplayStart を呼び出し、操作できなくなったとき(レベルの一時停止、完了、失敗、またはメニューへの復帰)に gameplayStop を呼び出します。すべての gameplayStart に対応する gameplayStop を呼び出してください。
function onLevelStart() {
window.PokiSDK.gameplayStart();
}
function onLevelEnd() {
window.PokiSDK.gameplayStop();
}
テストと確認
https://inspector.poki.ioで Poki Inspector を開き、ゲームの URL を読み込んで開発者セッションを開始します。- ブラウザーのコンソールに Poki SDK のハンドシェイクおよびイベントメッセージが出力されます。
initが解決され、gameLoadingFinishedが確認されることを確認します。 - Inspector の UI から
commercialBreakとrewardedBreakを実行して広告配信をシミュレートし、一時停止/再開のロジックが正しく動作することを確認します。 - 適切なタイミングで
gameplayStartとgameplayStopのイベントが Inspector のタイムラインに表示されることを確認します。
省略した機能に関する注意:このスキルでは、サーバー時刻、広告ブロック検出、happyTime、gameInteractive は扱いません。上記に記載した Poki SDK の機能に実装を絞ってください。