熱心なプレイヤーに対する広告頻度の削減
シナリオ
このドキュメントでは、以下を示すサンプルゲームの使用方法を説明します。
- キャラクターが削除された ("死亡した") タイミングで、プレイヤーに広告を表示する方法。
- 熱心なプレイヤーをターゲットにする方法。
- 熱心なプレイヤーに表示する広告の頻度を変更する方法 (熱心なプレイヤーとは過去 7 日間に毎日プレイしたプレイヤー)。
Unity プロジェクト "Platformer Microgame" を使用しますが、このユースケースは他のゲームにも適用できます。
要件
- Unity 2019.4 以降
- Unity Ads*
- Authentication
- Remote Config
- Unity Analytics ベータ版へのサインアップ
ノート: この例では Unity Ads について説明しません。ただし、事前作成済みのクラス内で ShowAd 関数を呼び出すことができます。Unity の広告 を参照してください。
手順
以下に手順の概要を示します。各手順の詳細は下で説明します。
- Authentication、Remote Config、および Analytics をインストールします。
- Unity エディター でゲームを Analytics にリンクします。
- Remote Config キー を初期値で設定します。
- ゲームで Remote Config から値を取得します。
- 広告を表示するタイミングを決定します。
- Override を設定して、オーディエンス用に Remote Config キーを調整します。
Analytics、Authentication、Remote Config パッケージのインストール
Unity Dashboard にログインし、このユースケースに必要なパッケージ (Analytics、Authentication、Remote Config) を探します。

各パッケージをダウンロードしてインストールします。パッケージを直接プロジェクトの PACKAGES フォルダーに追加します。manifest.json ファイルを開き、以下を依存関係に追加します。
"com.unity.services.authentication": "1.0.0-pre.4",
"com.unity.services.analytics": "3.0.0-pre.2",
"com.unity.remote-config": "3.0.0-pre.3"ゲームのリンク
Unity エディターで Edit (編集) > Project Settings (プロジェクト設定) > Services (サービス) をクリックします。適切なプロジェクトを選択してリンクします。これによりプロジェクトがダッシュボードにリンクされます。
Remote Config キーの設定
Remote Config キーを設定するには、ダッシュボードから行う方法と、エディターから行う方法があります。
Unity Dashboard で、Remote Config の Config (設定) ページに移動します。このページにはサイドバーの LiveOps の下からアクセスします。
熱心なプレイヤー用に変更する設定キーを追加するには、以下の手順を実行します。
- Add Key (キーの追加) をクリックします。
- キー名 adFrequency を入力します。
- Int 型を選択し、値 1 を入力します。
- Save (保存) をクリックします。
これがすべてのプレイヤーの初期値になります。

代わりに、Unity エディターでこれらの設定値を更新することもできます。メニューバーで Window (ウィンドウ) > Remote Config の順にクリックします。これには、ダッシュボードに似た編集パネルがあります。
ゲームの設定
以下のコードを使用して、Remote Config から adFrequency データを取得します。このコードをシーン内の空のオブジェクトにアタッチします。
using Unity.RemoteConfig;
using Unity.Services.Authentication;
using Unity.Services.Core;
using UnityEngine;
public class UGS : MonoBehaviour
{
public struct userAttributes { }
public struct appAttributes { }
public int adFrequency = 1; //Default is 1 ad on death
async void Start()
{
await UnityServices.InitializeAsync();
// remote config requires authentication for managing environment information
if (!AuthenticationService.Instance.IsSignedIn)
{
await AuthenticationService.Instance.SignInAnonymouslyAsync();
}
ConfigManager.FetchCompleted += ConfigManager_FetchCompleted;
ConfigManager.FetchConfigs(new userAttributes(), new appAttributes());
}
void ConfigManager_FetchCompleted(ConfigResponse configResponse)
{
switch (configResponse.requestOrigin)
{
case ConfigOrigin.Default:
Debug.Log("Default values will be returned");
break;
case ConfigOrigin.Cached:
Debug.Log("Cached values loaded");
break;
case ConfigOrigin.Remote:
Debug.Log("Remote Values loaded");
adFrequency = ConfigManager.appConfig.GetInt("adFrequency");
break;
}
}
}オブジェクトのロード時に、匿名ユーザーが初期化されます。これで Remote Config から adFrequency の設定値を取得できました。
例えば、adFrequency 値を 3 に変更すると、プレイヤーが 3 回死亡するごとに、またはそのレベルで 3 回失敗するごとに広告が表示されます。
死亡ロジックは、プレイヤーの死亡回数をカウントします。死亡カウントが頻度と同じ数になると広告が表示されます。同じ数ではない場合、広告は表示されません。
countDeath++;
if(ugs.adFrequency == countDeath)
{
countDeath = 0;
PlayerPrefs.SetInt("countDeathForAds",countDeath);
ads.ShowAd();
}Override の設定
初期設定は、上の手順の後に行います。
この例の目的は、熱心なプレイヤーをターゲットとする Override を作成し、adFrequency を小さくして、3 回死亡するごとに広告を表示することです。熱心でないプレイヤーには、引き続き死亡するたびに広告を表示します。
横のナビゲーションの LiveOps にある Game Overrides の Overview (概要) に移動します。
Create Override (Override の作成) をクリックします。
Override の 名前 を入力し、Next (次へ) をクリックします。
Stateful Audiences (ステートフルなオーディエンス) をクリックし、事前定義されたオーディエンス "Engaged Players" (熱心なプレイヤー) を選択して Next (次へ) をクリックします。
- ノート: ステートフルなオーディエンスを有効にするには、Unity Analytics がインストールされている必要があります。
Choose Content Type (コンテンツタイプの選択) をクリックし、Config Overrides (設定のオーバーライド) を選択して Done (完了) をクリックします。
Key Name (キー名) ドロップダウンから adFrequency を選択し、値 3 を入力して Next (次へ) をクリックします。

Override を即座に、無期限に、優先度中で実行するようスケジュールし、Finish (終了) をクリックします。優先度を調整することで Override 間に発生する可能性がある競合を管理できます。
変更を確認して Enable (有効) をクリックします。
これで Override がアクティブになり、熱心なプレイヤーは 3 回死亡するごとに広告を受け取るようになります。
質問がある場合は、サポートチケット を開いてください。