コンテンツにスキップ

AdKit Unity for DARO

DARO向けAdKit Unityは、DARO APIを適用して開発されたUnity広告モジュールです。SDKまたは個別のモジュールと併用することで、ログが分析サーバーに送信され、別々の広告分析作業を省略できます。さらに、DAROが提供するUnityパッケージを適用する際に発生するエラーを修正し、試行錯誤を減らすことができるのは、SDKユーザーにとってAdKit Unity for DAROを使用する利点です。

このガイドでは、DARO用のAdKit Unityをインストールする方法、各OS Unity環境の前提条件を設定する方法、および各機能の使用方法について説明します。

インストールまたは更新

初めてDARO用のAdKitを使用する場合は、次の順序でインストールしてください。

また、既存のAdKitインストールを更新したい場合は、既存のインストール済みバージョンを削除し、次の順序でDARO用の最新バージョンのAdKitをインストールしてください。

  1. 最新版のAdKitをDARO用にダウンロードしてインストールします。
  2. Unityのツールバーで、Assets > Import Package > Custom Package...に移動し、.unitypackageファイルを選択してImportをクリックします。

  3. インポート完了後、Hive AdKitおよびDARO関連のファイルとフォルダーがAssetsフォルダー内に作成されていることを確認してください。

  4. ダウンロードして、EDM4Uの最新バージョンをインストールしてください。 EDM4UはHive SDK v4に含まれています。Hive SDK v4を使用している場合は、このステップをスキップしてください。

削除

DAROのためにHive AdKitを削除するには、Unityプロジェクト内の以下のフォルダーを削除してください:

  • Assets/HIVEAdKit
  • Assets/HIVEAdKit_Example

前提条件の設定

AdKit for DAROのインストールを完了した後、それを適用するための前提条件の設定ステップとして、各OSのDAROキー値を追加し、ビルド設定を確認します。

Android

DAROダッシュボードからダウンロードしたキー値をAndroidベースのUnityプロジェクトに追加します。

  1. ダウンロードした android-daro-key.txt ファイルを HIVEAdKit/Plugins/Android フォルダーにコピーします。
    • android-daro-key.txt ファイルは、 DARO ダッシュボード - アプリ画面の「キー ファイル」のダウンロードボタンをクリックすることでダウンロードできます。
  2. gradleTemplage.properties に daroAppKey を次のように追加します:
    daroAppKey=INPUT_DARO_APP_KEY
    

iOS

DAROダッシュボードからダウンロードしたキー値をiOSベースのUnityプロジェクトに追加します。

  1. ダウンロードしたios-daro-key.txtファイルをHIVEAdKit/Plugins/iOSフォルダーにコピーします。
  2. HIVEAdKit/Editor/iOSAdKitPostBuildProcessor.csファイルで、コメントアウトされたGoogle Admob appIdDaro App Keyのセクションのコメントを解除し、以下のように内部値を追加します:
    // Set GADApplicationIdentifier (Please contact Daro for your own ADMOB APPID)
    //rootDict.SetString("GADApplicationIdentifier", "YOUR GOOGLE ADMOB APPID");
    
    // DaroAppKeyを設定します(独自のDaro App KeyについてはDAROにお問い合わせください)
    //rootDict.SetString("DaroAppKey", "YOUR Daro App Key");
    

iOSビルド設定の検証

iOSプロジェクトを構築する際、UnityFrameworkターゲットがDynamicFrameworkとして動作するように作成されます。

  1. EDM4Uの設定(1.2.179に基づく) UnityのiOS Resolver Settings(メニュー: Assets > External Dependency Manager > iOS Resolver > Settings)で、static_frameworkビルド設定が構成されていることを確認してください。

  2. プロジェクトをビルドします。ビルドが完了したら、生成されたプロジェクトのルートパスからPodfileを開いてファイル設定を確認します。

    source 'https://github.com/Com2uSPlatformCorp/HiveAdKit-iOS.git'
    source 'https://cdn.cocoapods.org/'
    
    プラットフォーム :ios, '13.0'
    
    target 'UnityFramework' do
      pod 'HiveAdKit_DARO_UnityPlugin', '1.5.3'
    end
    target 'Unity-iPhone' do
    end
    use_frameworks!
    
Warning

本番サービスをAdKit Unityに適用して構築する前に、Assets/HIVEAdKit_Exampleフォルダーを削除する必要があります。HIVEAdKit Exampleの設定が含まれている可能性があります。

DARO Proguard 設定

ProguardルールはライブラリAARファイルに含まれて配布されるため、別途設定を行わなくても自動的に構成されます。

使用ガイド

このセクションでは、DARO機能のためにAdKit Unityを使用する際の設定とAPI呼び出し方法についてのガイダンスを提供します。

AdKitの初期化

  • あなたのゲームがヨーロッパおよび英国(EEA & UK)地域を対象とする場合、GDPR同意ポップアップを表示するためにShowConsentUI APIを呼び出した後にAdKitを初期化する必要があります。国内でのみサービスを提供する場合は、HIVEAdKit.Initialize APIを呼び出して直接初期化を進めてください。
    HIVEAdKitが提供するすべてのAPI機能は、Unityのメインスレッドから呼び出す必要があります。
using hive.adkit.daro;

// Call GDPR popup
public void ShowGDPR(string noticeId)
{
    HIVEAdKit.ShowConsentUI(noticeId, () =>
    {
        initSdk();
    });
}

// Hive AdKit initialization
public void initSdk()
{
    HIVEAdKit.Initialize(isSuccess =>
    {
        if (isSuccess)
            Debug.Log("AdKit SDK initialization successful!");
        else
            Debug.Log("AdKit SDK initialization failed!");
    });
}

コールバックの使用

コールバック関数を使用するには、HIVEAdKit.InitPluginを呼び出してAdKitCallbackManagerをGameObjectとして登録する必要があります。
アプリが起動したときに、Startコードブロック内でこれを呼び出してください。

using hive.adkit.daro;

void Start()
{
    HIVEAdKit.InitPlugin(); // Create game object for Hive AdKit callback registration
}

追加情報の設定

追加情報を設定できます。実装コードは以下の通りです:

using hive.adkit.daro;

[Serializable]
public class SendInfo 
{
    public int level;
    public int gold;
}

SendInfo addtionalInfo = new SendInfo();

public void SetAdditionalInfo()
{
    addtionalInfo.level = 1;
    addtionalInfo.gold = 100;

    // Send as JSON Object format
    HIVEAdKit.SetAdditionalInfo(JsonUtility.ToJson(addtionalInfo));
}

報酬広告機能

広告を一定時間以上視聴することで報酬を得られる報酬広告機能を提供します。一度に読み込める広告は1つのみです。報酬広告機能を実装するためのコードは以下の通りです:

using hive.adkit.daro;

private HIVEAdKit.RewardVideo RewardVideoAd = null;

public void InitRewardedAd()
{
    // Set Event Callback
    EventHandlers eventHandlers = new EventHandlers.Builder()
                                                    .OnAdLoaded(OnRewardVideoAdLoadedCB)
                                                    .OnAdOpening(OnRewardVideoAdOpeningCB)
                                                    .OnAdClosed(OnRewardVideoAdClosedCB)
                                                    .OnAdFailed(OnRewardVideoAdFailedCB)
                                                    .OnAdReward(OnRewardVideoAdRewardCB)
                                                    .OnAdClick(OnRewardVideoAdClickCB)
                                                    .OnAdPaidEvent(OnRewardVideoAdPaidEventCB)
                                                    .Build();

    // Create RewardVideoAd Instance
    RewardVideoAd = HIVEAdKit.RewardVideo.Initialize(rewardVideoUnitId, eventHandlers);
}

public void LoadRewardedAd()
{
    // Load RewardVideoAd
    HIVEAdKit.RewardVideo.Load(RewardVideoAd, "Unity-RewardVideo-Load-AdPlacementInfo");
}

public void ShowRewardedAd()
{
    // Show RewardVideoAd
    if( HIVEAdKit.RewardVideo.IsLoaded(RewardVideoAd) ) {
        HIVEAdKit.RewardVideo.Show(RewardVideoAd, "Unity-RewardVideo-Show-AdPlacementInfo");
    }
}

public void DestroyRewardedAd()
{
    // Destroy RewardVideoAd
    HIVEAdKit.RewardVideo.Destroy(RewardVideoAd);
    RewardVideoAd = null;
}

インタースティシャル広告機能

全画面を占有するインタースティシャル広告機能を提供します。実装コードは以下の通りです:

using hive.adkit.daro;

private HIVEAdKit.Interstitial InterstitialAd = null;

public void InitRewardedAd(string unitId)
{
    // Set Event Callback
    EventHandlers eventHandlers = new EventHandlers.Builder()
                                                .OnAdLoaded(OnInterstitialAdLoadedCB)
                                                .OnAdOpening(OnInterstitialAdOpeningCB)
                                                .OnAdClosed(OnInterstitialAdClosedCB)
                                                .OnAdFailed(OnInterstitialAdFailedCB)
                                                .OnAdClick(OnInterstitialAdClickCB)
                                                .OnAdPaidEvent(OnInterstitialAdPaidEventCB)
                                                .Build();

    // Create InterstitialAd Instance                                               
    InterstitialAd = HIVEAdKit.Interstitial.Initialize(unitId, eventHandlers);
}

public void LoadInterstitialAd()
{
    // Load InterstitialAd
    HIVEAdKit.Interstitial.Load(InterstitialAd, "Unity-Interstitial-Load-AdPlacementInfo");
}

public void ShowInterstitialAd()
{
    // Show InterstitialAd
    if( HIVEAdKit.Interstitial.IsLoaded(InterstitialAd) ) {
        HIVEAdKit.Interstitial.Show(InterstitialAd, "Unity-Interstitial-Show-AdPlacementInfo");
    }
}

public void DestroyInterstitialAd()
{
    // Destroy InterstitialAd
    HIVEAdKit.Interstitial.Destroy(InterstitialAd);
    InterstitialAd = null;
}

画面の一部を占めるバナー広告機能を提供します。BannerPositionを入力することで、バナーの位置を画面の上部または下部に調整できます。
バナー広告はOnAdClosed()コールバックを受け取りません。

using hive.adkit.daro;

private HIVEAdKit.Banner BannerAd = null;

public void InitBannerAd(string unitId)
{
    // Set Event Callback
    EventHandlers eventHandlers = new EventHandlers.Builder()
                                                .OnAdLoaded(OnBannerAdLoadedCB)
                                                .OnAdFailed(OnBannerAdFailedCB)
                                                .OnAdClick(OnBannerAdClickCB)
                                                .OnAdPaidEvent(OnBannerAdPaidEventCB)
                                                .Build();

    BannerAd = HIVEAdKit.Banner.Initialize(unitId, BannerPosition.Bottom, eventHandlers);
}

public void LoadBannerAd()
{
    // Automatic Load & Show BannerAd
    HIVEAdKit.AdaptiveBanner.Load(BannerAd, "Unity-AdaptiveBanner-Load-AdPlacementInfo");
}

public void DestroyBannerAd()
{
    // Destroy BannerAd
    HIVEAdKit.Banner.Destroy(BannerAd);
    BannerAd = null;
}