よくある質問(FAQ)
一般
TENTUPLAYがもっとも効果を発揮するゲームジャンルは何ですか?
TENTUPLAYはゲームジャンルに応じて異なるメソッドを使用するものの、ゲーム環境をAIが学習する方法にはあまり差がないため、ジャンルを問わずにLTVの増加を実感することができるはずです。
TENTUPLAYを導入しているゲームには何がありますか?
秘密保持契約のため、タイトル名を公開することはできませんが、MMORPG、放置系ゲーム、ソーシャルゲームやアドベンチャーゲームなどに導入されており、そのMAUは30万に達しています。
基本分析には何が含まれますか?
基本分析には日・週・月ごとのリテンションと転換率に関する統計に加え、課金ユーザーとアプリでの購入に関する詳細が提供されます。一方の上級分析にはコホート分析、休眠ユーザーやゲーム内経済分析などが含まれます。
TENTUPLAYのタイムゾーンはどこですか?タイムゾーンを変更することは可能ですか?
TENTUPLAYではUTC(Universal Time Coordinated、協定世界時)を使用しており、他の時間帯に変更することはできません。アップロードされたイベントは自動的にUTC時間に変換されてデータベースに保存さるため、TENTUPLAYコンソールのデータとグラフに表示されるすべての時間帯はイベントがアップロードされた時点のUTC時間になります。例えば3月2日午前01:00 KST(GMT+9)に登録したユーザーの場合、UTCでは3月1日(厳密には3月1日午後4時UTC)に登録したものとみなされます。
データ関連
AIショップ
セグメントはどのように動きますか?
TENTUPLAY SDKを実装すると、データ収集と分析は自動的に行われます。TENTUPLAY AIがユーザーのプレイスタイルに基づいてユーザータイプを分類し、分類された各ペルソナに属するプレイヤー数はコンソールで確認することができます。
共通メソッドとジャンル別メソッドの違いは何ですか?
Login
やJoin
のような一般的なメソッドはゲームジャンルを問わずに共通的に必要なメソッドであり、一方のジャンル別メソッドはゲームジャンルによって適用状況が異なります。例えばコスチュームや衣装、消耗アイテムのないゲームではGetCosmetic
やUseConsumable
メソッドは不要です。
28種類のペルソナはゲームジャンルを問わずに常に現れますか?
現れるペルソナの数はゲームによって、特にジャンルによって異なります。RPG、MMOゲームでは通常12~15種類のペルソナが、放置系ゲームでは7~9種類、カジュアルやパズルゲームでは3~7種類のペルソナが現れます。
各ペルソナのスレッショルドはどのように決まりますか?
SDK実装後にTENTUPLAY AIが24~72時間をかけてデータを分析し、自動的にペルソナごとのスレッショルドを設定します。スレッショルドは固定されず、ゲームの成長やプレイヤー傾向の変化によって変化します。
AIオファーはゲーム内でどこに表示されますか?
オファーを表示する場所を予め設定する必要があります。例えばログインしたときにポップアップさせることも、特定のアイコンをクリックしたときに表示させることも可能です。
TENTUPLAYではゲーム内の商品に表示する情報(値段や画像など)をどのように取得していますか?
そのためにはコンソールでCSVファイルをアップロードする必要があります。商品情報が変わった場合は最新バージョンのCSVファイルをアップロードし、既存のものを置き換えてください。
ガイドによりますと商品情報のCSVファイルでURLを設定することが可能ですが、実際商品をクリックした場合はこのURLではなくGoogleアプリ内決済に進む仕組みだと思います。purchase_linkの意味が知りたいです。
サンプルCSVのURLは一例に過ぎません。実際の購入リンク(外部リンクまたは内部ディープリンク)がある場合は、そのリンクをpurchase_linkに記載して使用してください。purchase_linkを空欄にし、次のようにpurchasable_slugまたはproduct_indexでおすすめアイテムのpurchase_linkを取得する形で利用することも可能です。
purchase_link = getProductUrl(purchasable_slug); // purchase_linkを取得するためのカスタムメソッド
詳しくはAIショップメッセージの作成 - ステップ2:Unity側のコード修正をご覧ください。
多国語(例:6カ国語)に対応させるにはAIショップでペルソナのメッセージを言語ごとに用意する必要がありますか?
基本的に韓国語、英語、日本語のメッセージが用意されていますが、他の言語に対応させるにはこれらのメッセージを翻訳して使用してください。
パーソナライズされたオファー
コンソールで複数のユーザーIDを1つのリストとして入力することは可能ですか?
入力した複数のユーザーIDをグループにすることができます。またはコンソールで廃課金ユーザーと新規課金ユーザーのリストから選択した特定のユーザーID向けのオファーを作成することもできます。
「すぐに送信」と「キャンペーン」の違いは何ですか?
「すぐに送信」とは文字通りにターゲットユーザーに指定したオファーを直ちに送信することです(例:プレイヤーAAA、ABC、XYZに20%オフクーポンを直ちに送る)。一方の「キャンペーン」は指定した期間中に実施され、その期間中に特定の送信タイミングをトリガーしたプレイヤーにオファーを送る機能です(例:今後2週間、ステージ11に到達したプレイヤー全員に20%オフクーポンを送るキャンペーンを作成する)。
キャンペーン期間中にプレイヤーが特定の送信タイミングをトリガーすると、オファーがすぐに送信されますか?
いいえ、すべてのキャンペーンオファーは送信タイミングのトリガーしたUTC基準で翌日に一斉送信されます。
パーソナライズされたオファーの不正利用を防ぐための検証機能はありますか?
はい、オファーを検証するためのAPIが用意されています。詳しくはオファー検証をご覧ください。
SDK関連
ゲームをアップデートするたびにTENTUPLAY SDKも更新する必要がありますか?
毎回更新する必要はありませんが、アップデートによってビジネスモデルが変わる場合は、TENTUPLAYテクニカルサポートに連絡してサポートを受けることをお勧めします。
SDKが正しく実装されたかどうかを検証するQAプロセスはありますか?
データ収集とアップロード実装に関するデバッグ作業があります。収集したデータのデバッグをご覧ください。同時にTENTUPLAYテクニカルサポートでサーバーに問題がないかを常にチェックしています。
現在TPStashEvent
クラスで一部パラメータのデータ型(例:currency)がfloatになっていますが、入力データがfloatの範囲を超えると、どうなりますか?データのアップロードによって特定メソッドに誤ったデータが保存されると、他のメソッドのデータにも影響を与えますか?
内蔵された型変換が正しく動作する場合は型変換を行ってください。ただし、この場合はオーバーフローが発生するため、次のように追加でデータ処理を行う必要があります。
-
floatの範囲:1.40129846432481707e-45 ~ 3.40282346638528860e+38
-
doubleの範囲:1.7e-308 ~ 1.7e+308
値が10^38を超えるとオーバーフローが発生し、値が無限大になってエラーが発生します。この場合は入力値のログを取得する方法がありますが、この方法にはログ形式でコンソールに値が表示されるという欠点があります。
2つ目の質問については例えばGetCurrency
のいずれかのデータがデータ型の範囲を超えると、GetCurrency
のデータはTENTUPLAYサーバーにアップロードされなくなります。しかし、他のメソッド(例:UseCurrency
)には影響を与えずに正常にデータがアップロードされます。
設定でAuto Uploadをチェックした状態でプレイヤーが次回のアップロード時間前にアプリを閉じてしまうと、直前までに収集されたデータはどうなりますか?
アップロード時間までに収集したデータはプレイヤーのデバイスに保存され、ゲームを再開したときに再度アップロードされます。これを防ぐためにアップロード間隔を短く設定することも可能ですが、逆に頻繁にアップロードを行うことによる影響(例:データ送信時の負荷増加)が発生する可能性があります。
TPStashEventクラスはどのくらいの頻度で呼び出すべきですか?
TPStashEventクラスが使われる仕組みは次の通りです。Auto Uploadが選択されている場合、頻繁に呼び出しが発生するイベントに対してnew TPStashEvent()
クラスで必要なメソッドを呼び出すと、アップロード間隔に応じて自動的にアップロードが行われます。(例:財貨の獲得と使用時の収集メソッドをそれぞれnew TPStashEvent().GetCurrency()
、new TPStashEvent().UseCurrency()
で呼び出す)例えばnew TPStashEvent()
をプレイ開始時にのみ呼び出す場合、プレイ中に収集データがアップロードされることはありません。
データが正しくアップロードされたかどうかを確認するコールバックはありますか?
現在そのようなコールバック関数は用意されていませんが、アップロードが成功すると、TENTUPLAYデバッグモードで"TPDebug||Upload successful"というメッセージがUnityコンソールに表示されます。
アップロードが失敗しても収集したデータは次回のゲームプレイまでにプレイヤーのデバイスに残ります。
SDKの状態をコンソールで確認するとPlayerGetCharacter
イベントがJoin
イベントの後に常に表示されますが、これは正常ですか?
はい、正常です。Join
の直後にPlayerGetCharacter
が自動的に呼び出されるように設計されています。
ドキュメントにはTPStashEvent.Join
がユーザー登録に使われると書かれていますが、登録済みのユーザーかどうかを確認する方法はありますか?(登録状況によってJoin
とLogin
の両方を呼び出すか、またはLogin
のみを呼び出したい)
TENTUPLAYは呼び出したものすべてをアップロードするだけでTENTUPLAYで特定のユーザーが登録済みかどうかを確認することはできません。多くのゲームではTPStashEvent.Join
を最初のワンタイムイベント(例:Googleアカウントでログイン)として呼び出します。