このページでは、Unity Ads を Unity エンジンに統合する以下の 2 つの方法を説明します。
Build Settings ウィンドウ を使って、サポートされたプラットフォーム用にプロジェクトを設定します。
プラットフォームを iOS または Android に設定して Switch Platform をクリックします。
この処理はインテグレーションに方法 (Services Window、または Asset Package) によって多少異なります。
Ads を使用可能にするには、プロジェクトに Unity Services を設定する必要があります。これには、Organization と Project Name の設定が必要です。詳しくは Unity Services のためのプロジェクトの設定 を参照してください。
Unity Services を設定すると、 Unity Ads を使用できます。
Asset Package を使って Ads を統合する前に、以下の手順で Unity Ads Game ID を作成する必要があります。
Unity Ads Game ID の作成
ウェブブラウザーで、Unity Developer Network UDN アカウントを使って UnityAds Dashboard を開きます。それから、Add new project を選択します。
該当するプラットフォームを選択します (iOS、Android、または両方)。
プラットフォーム特有の Game ID
を取得し、後で使用するために、それを書き留めておきます。
Ads を Asset Package に統合
UnityEngine.Advertisements
をスクリプトのヘッダーで宣言します ( UnityEngine.Advertisements を参照してください)。 using UnityEngine.Advertisements;
gameId
を使って Unity Ads を初期化します。 Advertisement.Initialize(string gameId)
Ads を使用可能にしたら、スクリプトでコードを実装して広告を表示します。
UnityEngine.Advertisement
をスクリプトのヘッダーで宣言します ( UnityEngine.Advertisements を参照してください)。 using UnityEngine.Advertisements;
```
Show()
関数を呼び出して広告を表示します。 Advertisement.Show()
広告を見たプレイヤーに報酬を与えると、プレイヤーのエンゲージメントが増え、収益の増加につながります。例えば、プレイヤーに与えるゲームの報酬として、ゲーム内で使用できる通貨、消費アイテム、寿命の延長、経験値の増加、などがあります。
ビデオ広告を終わりまで見たプレイヤーに報酬を与えるには、下の例の HandleShowResult
コールバックを使用します。 プレイヤーが広告をスキップしなかったことをテストするために、必ず result
を ShowResult.Finished
にするようにしてください。
Show()
を呼び出すときに、メソッドを渡します。"rewardedVideo"
プレースメントを持つ Show()
を呼び出します。ノート: placements
に関する詳細は Unity Ads ナレッジベース を参照してください。
void ShowRewardedVideo ()
{
var options = new ShowOptions();
options.resultCallback = HandleShowResult;
Advertisement.Show("rewardedVideo", options);
}
void HandleShowResult (ShowResult result)
{
if(result == ShowResult.Finished) {
Debug.Log("Video completed - Offer a reward to the player");
// ここで、プレイヤーに報酬を与えます
}else if(result == ShowResult.Skipped) {
Debug.LogWarning("Video was skipped - Do NOT reward the player");
}else if(result == ShowResult.Failed) {
Debug.LogError("Video failed to show");
}
}
下のコードを使用して、リワード広告ボタンを作成します。広告ボタンは押されると、広告が表示可能である限りは広告を表示します。
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Advertisements;
//---------- ASSET PACKAGE INTEGRATION のみに必要です ----------//
#if UNITY_IOS
private string gameId = "1486551";
#elif UNITY_ANDROID
private string gameId = "1486550";
#endif
//-------------------------------------------------------------------//
ColorBlock newColorBlock = new ColorBlock();
public Color green = new Color(0.1F, 0.8F, 0.1F, 1.0F);
[RequireComponent(typeof(Button))]
public class UnityAdsButton : MonoBehaviour
{
Button m_Button;
public string placementId = "rewardedVideo";
void Start ()
{
m_Button = GetComponent<Button>();
if (m_Button) m_Button.onClick.AddListener(ShowAd);
if (Advertisement.isSupported) {
Advertisement.Initialize (gameId, true);
}
//---------- ASSET PACKAGE INTEGRATION のみに必要です ----------//
if (Advertisement.isSupported) {
Advertisement.Initialize (gameId, true);
}
//-------------------------------------------------------------------//
}
void Update ()
{
if (m_Button) m_Button.interactable = Advertisement.IsReady(placementId);
}
void ShowAd ()
{
var options = new ShowOptions();
options.resultCallback = HandleShowResult;
Advertisement.Show(placementId, options);
}
void HandleShowResult (ShowResult result)
{
if(result == ShowResult.Finished) {
Debug.Log("Video completed - Offer a reward to the player");
}else if(result == ShowResult.Skipped) {
Debug.LogWarning("Video was skipped - Do NOT reward the player");
}else if(result == ShowResult.Failed) {
Debug.LogError("Video failed to show");
}
}
}
}
詳しくは Unity Ads フォーラム を参照してください。
設定を使って、プロジェクトのプレースメントと他のゲーム特有の設定を変更できます (プレースメントに関する詳しい情報は Unity Ads ナレッジベース を参照)。