このセクションには、now.ggクラウドに関連する追加ガイドが含まれており、now.ggクラウドのサービスやAPIを便利に設定することができます。
以下のガイドをご利用いただけます。
このセクションでは、保存ファイルパスと除外ファイルパスを定義することで、ユーザーのゲーム進行データの保存と復元に使用されるnow.ggクラウドストレージの設定が主になります。「保存」および「除外」ファイルパスを定義することは、ゲームの読み込み時間を短縮し、ユーザーエクスペリエンスを向上させ、now.ggクラウドストレージの最適な使用を保証するために必要不可欠です。クラウドストレージを設定するには、以下を指定する必要があります:
/data/data/<package_name>/<file_name>
に保存されます。この設定は、now.ggに提出するすべての新しいアプリに対して行うことができます。既に提出・公開済みのアプリの場合は、新しいバージョンのアプリを提出する必要があります。
ファイルパスを設定するには以下の手順に従ってください。
注意事項:
Android ID
などのAndroid識別子の使用を避けることをお勧めします。このガイドを使用して、nowStudioにアップロードするアプリファイルを準備できます。
nowStudioでリリースを作成するには、アプリファイルを準備する必要があります。スタンドアロンのAPK、またはAPKとアセットのZipファイルのどちらでも構いません。
以下のいずれかを準備することができます:
このセクションでは、nowStudioにアップロードするAPKファイルを準備する手順を説明します。
以下の要件を満たす APKファイルを用意してください:
APKを準備したら、nowStudioにアプリを追加することができます。
このセクションでは、nowStudioでアプリ/ゲームのAPKとアセットのZipアーカイブを準備する手順を説明します。
通常、ゲームは起動時に必要なアセットをダウンロードするため、ゲームプレイに遅延が発生します。 now.ggを使用すると、APKとアセットを含むZipが提供されるため、ゲームの読み込み時間が大幅に短縮され、ユーザーは瞬時にゲームをプレイできるようになります。
アプリとアセットのZipアーカイブを作成するには、以下の指定されたフォーマットと内容に従ってください:
次のサンプルJSONは、マニフェストファイルmetadata.jsonに必要なフォーマットを示しています。
{ "assets": [ { "name": "asset1.xyz", "location": "/data/media/0/Android/data/<packageName>/files" }, { "name": "asset2.unity3d", "location": "/data/media/0/Android/data/<packageName>/files" }, { "name": "OtherAssets", "location": "/data/data/<packageName>/files" } ] }
APKとアセットZipアーカイブを準備したら、nowStudioにアプリを追加してください。
このガイドでは、now.gg以外のドメインでアプリをホストしたい場合のカスタムドメインの追加手順について詳しく説明します。
now.ggクラウドに加え、nowStudioでアプリ用のカスタムドメインを追加することで、他のドメインでアプリをホストすることもできます。
以下のシナリオについての説明:
このセクションでは、新規のアプリにカスタムドメインを追加する手順を説明します。
手順は以下の通りです。
このセクションでは、すでに公開されているアプリにカスタムドメインを追加する手順を説明します。
手順は以下の通りです。
nowgg CLIは、アプリのビルドをnowStudioに簡単にアップロードできるコマンドラインツールです。このガイドでは、この機能の詳細を説明します。
macOSまたはWindowsでターミナルを開きます。
pip install nowgg
nowgg init --token "<your_publisherToken_from_nowStudio>"
nowgg upload --app_id <your_app_id> --file_path "/directory/sample.apk" --apk_version <app_version_name> --version_code <app_version_code>
※自身のアプリはnowStudio内のアプリライブラリにアップロードされます。
nowgg upload --app_id <your_app_id> --file_path "/directory/sample.apk" --apk_version <apk_version> --version_code <app_version_code> --deploy
app_id
があります。
app_id
は1234_t1
になります。--deploy
は、指定したテストトラックへのデプロイ処理をトリガーします。nowgg -h nowgg init -h nowgg upload -h
以下の文書は、nowStudioで提供されているサブスクリプション機能の重要な側面に焦点を当てています。
サブスクリプションは、now.gg上のアプリ内商品であり、ユーザーに定期的な料金を課金してアプリ内のコンテンツやサービスにアクセスさせます。
nowStudioでは、簡単にサブスクリプションを作成し、管理し、販売することができる多機能な「サブスクリプション」機能が提供されています。アプリ内商品とサブスクリプション商品の主な違いは、アプリ内商品がユーザーに一度だけの料金を課金するのに対し、サブスクリプションは定期的な料金が発生する点です。
nowStudioでサブスクリプションを作成し、管理する方法を理解するには:
now.gg Paymentsモジュールを使用してアプリに定期購読を実装する方法を理解するには、次のガイドに従ってください:
重要: このページの情報に加えて、now.ggポリシーも参照する必要があります。
このセクションでは、サブスクリプションについて紹介します。
サブスクリプションは、ユーザーが特定の期間にわたってアクセスできる特典のセットを提供します。同じアプリ内に複数のサブスクリプションを持つことができ、異なる特典セットや単一の特典セットのティア(「Gold」や「Diamond」パックなど)を表すことができます。ユーザーはnow.gg上のあなたのアプリでこれらのサブスクリプションを購入してアクセスできます。
now.ggでは、サブスクリプションの期間を選択することができます。利用可能な課金期間は以下の通りです:
now.ggのサブスクリプションは自動更新されます。ユーザーは特定の課金期間のサブスクリプションを購入し、各期間の終わりに自動的に更新されるため、中断することなくサブスクリプションを利用できます。サブスクリプションはユーザー、開発者、またはnow.ggによってキャンセルすることができます。
サブスクリプションには最大4つの特典を追加でき、ユーザーが受け取る内容を理解するのに役立ちます。サブスクリプションに関連する中核的な特典を強調する必要があります。
更新料金の支払いが拒否された場合、now.ggはユーザーに支払い問題の解決を促します。未解決の場合、サブスクリプションは自動的に期限切れになります。
now.gg Embed Javascript モジュール は、開発者が任意の Web サイトにゲームを簡単に埋め込めるフレームワークを提供します。
now.ggのEmbed モジュール を使って開発者が実現できること:
now.gg Embed モジュールと統合するためには以下の前提条件を満たす必要があります:
clientId
取得するために dev-support@now.gg.にご連絡ください。appId
を取得するには、ここで説明されている手順に従います。上記の前提条件が満たされたら、次のセクションに進み、ウェブページにゲームを埋め込むことができます。
now.gg Embed モジュールの統合方法:
最初のステップは対象のウェブサイトにEmbed モジュールを追加することです。
now.gg Embed モジュールをウェブサイトに追加するには、以下に示すようにモジュールリソースのjavascriptをscriptタグ内に追加します。
<script type="text/javascript" src="https://cdn.now.gg/external/sdk/ifp-sdk-1.2.0.min.js"></script>
now.gg Embed モジュール リソースを追加すると、モジュールを初期化することでnow.gg iframe を使用したゲームをウェブサイトに埋め込むことができます。
手順は以下の通りです。
iframeParentElement
とappEventCallbackFunction
とsdkEventCallbackFunction
. を定義します。.NowIfp
クラスのinit
関数をクラウドゲームを開始するために必要なパラメータと共にコールします。const iframeParentElement = document.getElementById("your_iframe_element"); // Androidアプリから送信されたイベントを処理するためのコールバック関数 const appEventCallbackFunction = (event) => { console.log(event.name); console.log(event.data); // ここでイベントベースの処理を行うことができます }; // JavaScript モジュールのイベントを処理するためのコールバック関数 const sdkEventCallbackFunction = (event) => { console.log(event.name); console.log(event.msg); // ここでイベントベースの処理を行うことができます }; NowIfp.init({ clientId: <"your_clientId"> , appId: <"your_production_appId/your_test_track_appId"> , \\ appId example - Test Track: "1234_t1" | Production: "1234" iframeParentElement: iframeParentElement, customData: {} // アプリ固有のカスタム処理用 appLaunchData: { // 起動引数を埋め込みモジュールに渡し、シリアライズされてアプリに起動インテントで渡されます。 [key]: [value] } appEventCallback: appEventCallbackFunction, sdkEventCallback: sdkEventCallbackFunction, isNowLoginEnabled: true });
このセクションを使用して、nowStudio内でappIdを見つけることができます。
appId
は、nowStudio上のアプリの固有の識別子です。appId
を生成します。
appId
は、アプリがデプロイされた後にのみ表示されます。appId
は、アプリを追加した後「アプリの詳細」セクションでも確認できます。appID
を見つける方法:appId
は、以下のように本番リリースに記載されています。パラメータ | 型 | 必須項目 | 説明 |
---|---|---|---|
clientId | string | はい | 一意のクライアント識別子 |
appId | string | はい | now.gg開発者ポータルでアプリ/ゲームに関連付けられたアプリID |
iframeParentElement | element | はい | embeddedプレーヤがレンダリングされるiframeParentElement |
customData | object | いいえ | 特定の処理を必要とするカスタムデータ |
appLaunchData | object | いいえ | アプリの起動インテントエクストラとして送信される追加データ 参照 – appLaunchDataを定義する セクション |
appEventCallback | function | No | アプリ関連のイベントを処理するためのアプリイベントコールバック関数 参照 – Embed内でゲームを開始する セクション- |
sdkEventCallback | function | No | モジュール関連イベント処理用モジュールイベントコールバック関数 参照 – Embed内でゲームを開始する セクション |
isNowLoginEnabled | boolean | No | true – アプリ起動時に now.gg ログインが起動されます。 false – アプリ起動時に now.gg ログインが起動されません。 |
now.gg クラウドによってゲームが対象のウェブページに埋め込まれました。
このセクションでは、ウェブサイト (HTML ページ) に埋め込まれたゲームで高度な機能を実装する手順について説明します。
埋め込みゲームの体験をさらに向上させるために、now.gg Embed Module では以下が可能です:
now.gg Events モジュールを統合した後、now.gg Cloud 上のアプリから埋め込み先の HTML ページにイベントやデータを渡すことができます。
詳細は、now.gg Events Module ドキュメントの「HTML ページへのイベントとデータの送信」セクションを参照してください:
HTML ページからアプリに起動時のパラメータを渡すことができます。以下のサンプルコードでは、appLaunchData
を NowIfp.init
に渡し、それをアプリで取得する方法を説明します。
appLaunchData
は、NowIfp.init()
に渡され、起動インテントパラメータとしてアプリに渡されます。以下は、そのコード例です:
NowIfp.init({ clientId: <"your_clientId">, appId: <"your_appId">, iframeParentElement: iframeParentElement, customData: {}, // アプリ固有のカスタム処理 appLaunchData: { [key]: [value] }, // 起動時の引数を渡す appEventCallback: appEventCallbackFunction, sdkEventCallback: sdkEventCallbackFunction, isNowLoginEnabled: true });
この手順では、HTML ページからアプリに送信された appLaunchData
をアプリで取得します。
詳細については、now.gg Events Module ドキュメントの「アプリ起動データの取得」セクションを参照してください:
appLaunchData
はアプリ起動時にのみ渡され、アプリが実行中の場合は渡すことができません。NowIfp
インターフェースを使用して、HTML ページからアプリにカスタムイベントと関連データを送信できます。以下はその例です:
NowIfp
インターフェースを使用して、HTML ページからカスタムイベントとデータをアプリに送信できます。以下はそのコード例です:
const sendEventToApp = () => { const eventName = 'CustomEvent'; const eventData = JSON.stringify({ Sample: 'case' }); NowIfp.sendEventToApp(eventName, eventData); };
NowIfp
) が正しく初期化され、実行環境で利用可能であることを確認してください。関数 | タイプ | 概要 |
---|---|---|
sendEventToApp | void | JavaScript からアプリにカスタムイベントを送信します。
イベント構造
エラー処理
|
詳細は、now.gg Events Module ドキュメントの「アプリでのイベント処理」セクションを参照してください:
このセクションでは、now.gg Embed ModuleのデモHTMLページを紹介し、Embed Moduleに関連するエンドツーエンドのフローを説明します。
以下の手順に従って、Embed Moduleデモをご覧ください:
appLaunchData
を追加したい場合:sdkEventCallback
によってキャプチャされます。