Unity の詳細設定
ユーザー セグメント、カスタム パラメーター、価格帯など、Unityの高度な設定を行い、広告の配信とMonetizationを最適化します。
読み終わるまでの所要時間 18 分最終更新 6日前
セグメントの定義
特定のオーディエンスに合わせて広告の配信方法を簡単に調整できるようになりました。ユーザーの詳細をサーバーに通知して、ユーザーが属するセグメントに応じてSDKが広告を配信するようにする必要があります。
LevelPlay SDK は、データをサーバーに送信してユーザーセグメントのアウトラインを作成する 3 つの方法をサポートしています。
- デバイスプロパティ: LevelPlay SDK は、デバイスモデル、デバイス製造元、アプリケーションバージョン、OS など、ユーザーのデバイスに関連する特定の標準パラメータを自動的に収集します。このデータを当社に送信する必要はありません
- ユーザープロパティ: SDKによって収集されないユーザーデータ(例えば、年齢、性別、作成日)は、APIを通じてリレーする必要があります。(サポートされているセグメント プロパティの全リストと以下のセクションの説明を参照してください)。指示に従ってこれらの詳細を送信し、LevelPlay プラットフォームで定義したセグメントに関連する広告設定を SDK が適用できるようにします。
- カスタムセグメント: ユーザーの詳細をサーバに送信せずにカスタムセグメントを作成し、そのユーザーセグメントの広告設定を調整できます。
Pass ユーザープロパティ
LevelPlay プラットフォームでセグメントを定義したら、サーバーにユーザーの詳細情報を通知する必要があります。
セグメントのベースとなるサーバーに送信するプロパティを定義します。この情報は以下のいずれかの方法で送信できます。
-
ユーザーが属するセグメントがわかっている場合は、新しいセグメントを作成し、そのセグメント名を設定します。var segment = new LevelPlaySegment();segment.SegmentName = "nameOfSegment";
-
それ以外の場合は、ユーザーの詳細をお送りください。LevelPlay には、API でユーザーをセグメントにアトリビュートするように設定できる、範囲な標準ユーザープロパティが用意されています。スクロールダウンして、サポートされているユーザーセグメントプロパティの表を参照します。var segment = new LevelPlaySegment();segment.Level = 5;segment.UserCreationDate = 1758100075134;segment.IapTotal = 100;segment.IsPaying = 1;セグメントごとに最大5つのカスタムユーザープロパティを設定することもできます。var key = "key1";var val = "value1";var segment = new LevelPlaySegment();segment.SetCustom(key, val);最後に、以下の機能を呼び出し、新しく作成したセグメントを渡します。LevelPlay.SetSegment(segment);
サポートされるユーザーセグメントプロパティ
セグメントプロパティ | Type (タイプ) | 制限 | 説明 |
|---|---|---|---|
| SegmentName | String | 最大 32 文字の英数字 | LevelPlay アカウントのセグメントの指定された名前 |
| IsPaying | Int | 0 または 1 | 1 ユーザーがアプリ内課金に課金した場合は 0 ユーザーがアプリ内課金に課金しなかった場合 |
| IapTotal | ダブル | 1-999999.99 | ユーザーがアプリケーション内課金に費やした金額の合計 |
| UserCreationDate | ロング | 0 より小さい値にすることはできません | ユーザーがアプリケーションをインストールした日付。例: DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() |
| カスタムパラメーター | key=string, value=string | LevelPlay は最大 5 つのカスタムパラメーターをサポートし、最大 32 文字の英数字を使用できます。 | サーバにディスパッチする追加データ |
リワードサーバーからサーバーへのコールバックのカスタムパラメーター
LevelPlay 報酬ベースの広告ユニットは、広告完了イベントの成功後にユーザーに付与する必要があるゲーム内報酬を通知するサーバー側のイベントをサポートします。詳細については、こちらを参照してください。
サーバーパラメーターに加えて、実行時のカスタムパラメーターをクライアント経由で共有できます。これを実装するには、setMetadata API を使用してカスタムパラメーターを LevelPlay_Rewarded_Server_Params に渡すだけです。カスタムパラメーターは、以前の値をオーバーライドして、セッションを通じて複数回更新できます。
カスタム パラメータをリセットするには、LevelPlay_Rewarded_Server_Params を空の配列に設定します。
実装コード例
LevelPlay.SetMetaData("LevelPlay_Rewarded_Server_Params", new [] { "key1=value1", "key2=value2" });
その後、以下に示すように、対応するコールバックを受け取ります。
http://www.mydomain.com/rewardsCallback?appUserId=[ユーザー ID]&ゲーム内報酬=[ゲーム内報酬]&eventId=[イベント ID]&itemName=[項目名]&custom_key1=値1&custom_key2=値2
ゲームの一時停止
API SetPauseGame は LevelPlay SDK バージョン 8.5.0 の一部として LevelPlay クラスに導入され、iOS アプリケーションにのみ関連します。
PauseGame状態をtrueに設定すると、Unity 3Dゲームのすべてのアクティビティが一時停止されます(広告コールバックを除く)。広告が閉じられると、ゲームアクティビティが自動的に再開されます。
SetPauseGame API は、LevelPlay SDK の初期化の前または後に、セッション内のすべての広告 (複数の AdUnit API の動画リワード広告とインタースティシャル広告) に影響するため、セッション内で 1 回呼び出しする必要があります。
LevelPlay.SetPauseGame(true);
このセッションでこの機能を無効にするには、値を false にして SetPauseGame を呼び出します。
LevelPlay.SetPauseGame(false);
古い機能 LevelPlay SDK(7.2.4 から 8.4.0 まで)では、以下の API を使用します。
// Pause all game activities except ad callbacks. The game activity will be resumed automatically when the ad is closedLevelPlay.SetPauseGame(true);// Deactivate the functionality in this sessionLevelPlay.SetPauseGame(false);
Price Floor設定
フロア設定 API では、特定の広告単位に下限を設定できます。ユーザーごとに最低価格を設定することで、ターゲティングの効率を高め、待ち時間を削減し、広告パフォーマンスを最適化できます。
価格下限は広告オブジェクトの作成時に割り当てる必要があり、そのオブジェクトのその後のすべてのロードに適用されます。
プロパティ | Type (タイプ) | 説明 |
|---|---|---|
| 入札フロア | double | 従来のインスタンスと入札者に適用される最小 eCPM を定義する米ドルの価格。 |
インタースティシャル広告の例
// Define a price floor configurationvar adConfig = new LevelPlayInterstitialAd.Config.Builder() .SetBidFloor(1.23) // 米ドルで下限を設定します .Build()// Apply the configuration to an interstitial ad unitvar interstitialAd = new LevelPlayInterstitialAd("adUnitId", adConfig);
インタースティシャルの完全な実装は、こちらで利用できます。
リワード広告の例
// Define a price floor configurationvar adConfig = new LevelPlayRewardedAd.Config.Builder() .SetBidFloor(1.23) // 米ドルで下限を設定します .Build()// Apply the configuration to a rewarded ad unitvar rewardedAd = new LevelPlayRewardedAd("adUnitId", adConfig);
リワード広告の完全実装は、こちらで利用できます。
バナー広告の例
// Define a price floor configurationvar adConfig = new LevelPlayBannerAd.Config.Builder() .SetBidFloor(1.23) // 米ドルで下限を設定します .Build();// Apply the configuration to a banner ad unitvar bannerAd = new LevelPlayBannerAd("adUnitId", adConfig);
バナー広告の完全な実装は、こちらで利用できます。
LevelPlay SDK のエラーコード
LevelPlay は、SDK インテグレーションでのすべての失敗を説明するエラーフィードバックメカニズムを提供します。これらのエラーは、問題が発生したときやインテグレーションのアスペクトが正しく完了しなかったときに発生します。
LevelPlay Error オブジェクトには、エラー コードとメッセージが含まれます。以下は、考えられるすべてのエラーと、その機能に基づくメッセージです。
エラーコード | 広告ユニット | 説明 |
|---|---|---|
| 508 | N/A |
|
| 509 | インタースティシャル、動画リワード | Show Fail:No ads to show | (表示する広告がありません)
| 510 | インタースティシャル、動画リワード、バナー | ロード失敗:サーバー反応失敗 |
| 520 | インタースティシャル、動画リワード | Show Fail:インターネット接続なし。TrackNetworkState が有効になっている必要があります。
Show Fail:インターネット接続なし |
| 524 | インタースティシャル、動画リワード | Show Fail:配置%@ はペースごとに定義された制限に達しました
Show Fail:配置%@ が制限に達しました |
| 526 | インタースティシャル、動画リワード | Show Fail:広告単位がセッションあたりの 1 日の上限に達しました |
| 604 | バナー | 配置に上限があるためロードできません |
| 605 | バナー | バナーのロード中に予期しない例外が発生しました |
| 606 | バナー | 最初のロード時にすべてのネットワークでバナーが埋められない |
| 1007 | インタースティシャル、動画リワード | オークション失敗:オークションリクエストに必要な情報がすべて含まれていませんでした |
| 1022 | 動画リワード | Show Fail:別の RV が表示されている間は RV を表示できない |
| 1023 | 動画リワード | Show Fail:Show RV called when there are no available ads to show | (表示できる広告がない場合に呼び出される RV の表示)
| 1035 | インタースティシャル | Empty Waterfall |
| 1036 | インタースティシャル | Show Fail:別のインタースティシャルが表示されている間はインタースティシャルを表示できない |
| 1037 | インタースティシャル | ロード失敗:別のインタースティシャルが表示されている間はインタースティシャルをロードできません |
| 1039 | インタースティシャル | show interstitial | の呼び出し中の例外