コンテンツにスキップ

Android

Adiz Android

Adiz Androidは、AdMobが提供する広告表示機能をより便利に使用できるようにHiveが提供するAndroid用広告モジュールです。Adiz Androidが提供する広告の形態は次のとおりです。

  • インタースティシャル広告(Interstitial)
  • バナー広告(Banner)
  • ネイティブ広告(Native)
  • 報酬型広告(Rewarded)
  • 報酬型インタースティシャル広告(Rewarded Interstitial)
  • アプリオープニング広告(AppOpen)

Adiz Androidをインストールして使用するには、以下のガイドを順番に参照してください。

インストール

モジュールのアプリレベルのGradleファイル(app/build.gradle)にAdizライブラリ項目を追加します。

    dependencies {
        implementation 'com.com2us.android.adiz:hive-adiz:2.1.0'
    }
 

Java 8機能サポートのために、モジュールのアプリレベルのGradleファイルにandroid設定で以下のように追加します。

android {
    // ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

 

AndroidManifest.xml ファイルに AdMobId(ca-app-pub-XXXXX~YYYYY 形式) を入力します。

<manifest>
    <application>
    <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    </application>
</manifest>
 

Proguardを使用する際、AdizモジュールにProGuardルールが含まれています。したがって、プロジェクトにProGuardルールを追加する必要はありません。

 

動画広告を表示するには、ハードウェアアクセラレーションを有効にする必要があります。 AndroidManifest.xml ファイルにハードウェアアクセラレーションの設定を追加します。 application タグに追加すると、アプリケーション全体でハードウェアアクセラレーションが使用されます。 activity タグに追加すると、広告を表示したい特定の Activity のみでハードウェアアクセラレーションが使用されます。

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
</application>

テスト広告設定

Adizは2つの方法でテスト広告を表示できます。

  • テストモードを有効化: AdMobから発行されたテスト用広告のみ表示
  • テストデバイス登録後の広告表示: 実際の広告をテストするために表示し、無効なトラフィックが発生しないようにテストし、テスト広告を表示するデバイスを登録して進める

テストモードを有効にする

開発段階では、テスト広告をクリックしても広告主に費用が請求されないようにテストモードを有効にします。テストモードを有効にすると、テスト広告のみが表示されます。テストモードでは、コンソールにAdMob広告キーを入力しなくてもテスト広告が表示されます。商用配布時には、テストモードを無効にします。

テストモードを有効にする方法は2つあります。

  • ハイブコンソールにテストデバイスを登録した後、デモ広告に設定することをお勧めします:
    コンソールガイドのテストデバイス管理の内容を参照してください。
  • AdizクラスのsetTestMode()メソッドを使用する:
    以下の例コードを参照してください。
Note

開発段階でテストモードでないときに広告を過剰にクリックすると、無効なトラフィックと見なされ、AdMobアカウントが報告されて広告が表示されなくなる可能性があります。

Adiz.setTestMode() メソッドの使用

import com.hive.adiz.Adiz
import com.hive.adiz.AdizError

import org.json.JSONException
import org.json.JSONObject

// テストモードを有効にします。商業配布の場合は以下の行をコメントアウトしてください。
Adiz.setTestMode(true)

// Hive Adizモジュールのログを有効にします。ログはテストモードでのみ使用するべきです。商業配布のために以下の行をコメントアウトしてください。
Adiz.setLogEnable(true)
import com.hive.adiz.Adiz;
import com.hive.adiz.AdizError;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;

// テストモードを有効にします。商業配布の場合は以下の行をコメントアウトしてください。
Adiz.setTestMode(true);

// Hive Adizモジュールのログを有効にします。ログはテストモードでのみ使用する必要があります。商業配布の場合は、以下の行をコメントアウトしてください。
Adiz.setLogEnable(true);

テストデバイスに広告を表示

以下の状況では、テストデバイスを登録してテスト広告を表示する必要があります。

  • コンソールに登録したAdMob広告キーが正常に動作するかテストする場合
  • GDPRメッセージを作成し、GDPR同意ポップアップが正常に動作するか確認する場合
  • 広告インスペクターを実行して広告リクエストを分析し、デバッグする場合

    <

テスト機器に広告を表示する方法は2つあります。

  • ハイブコンソールにテストデバイスを登録後、広告ユニットIDを使用に設定すること (推奨):
    コンソールガイドのテストデバイス管理の内容を参照してください。

  • Adiz クラスの setTestDevice() メソッドを使用する:
    以下の 例コード を参照してください。

Note

テストデバイスを登録せずに実際の広告を表示するテストを行うと、無効なトラフィックと見なされ、AbMobアカウントがブロックされ、広告が表示されなくなる可能性があります。テストデバイスを登録すると、広告表示時に「Test Mode」または「Test Ad」(ネイティブ広告)が表示されます。商用配布時にはテストデバイスを無効にする必要があります。


バナー、全画面広告または報酬型広告


ネイティブ広告


Adiz.setTestDevice() メソッドの使用

テストデバイスを登録するには、まずテストデバイスIDを確認します。テストデバイスID(例:33BE2250B43518CCDA7DE426D04EE231)は以下の2つの方法で確認できます。

  • Adiz.Initialize() を呼び出した後、Logcat ログを確認してください:

    新しいものを使用する
    ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231")を使用して、これをデバッグデバイスとして設定します。
    
  • Adiz.Initialize() を呼び出した後、広告タイプに関係なく initialize()load() を呼び出し、Logcat ログを確認してください:

    I/Ads: このデバイスでテスト広告を取得するには、RequestConfiguration.Builder.setTestDeviceIds(Arrays.asList("33BE2250B43518CCDA7DE426D04EE231"))を使用してください。
    


テストデバイスIDを確認後、既存のAdiz初期化コードでAdiz.initializeを実行する前にAdiz.setTestDevice(DEVICE_ID)の行を追加します。DEVICE_IDにはコピーしたテストデバイスIDを入力します。

import com.hive.Adiz
import com.hive.adiz.AdizError
import org.json.JSONObject


fun initialize() {

        Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231")

        Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
                override fun onComplete(error: AdizError, jsonData: JSONObject?) {
                        // ... 省略
                }
        })
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import org.json.JSONObject;


public void initialize() {

        Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231");

        Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
                @Override
                public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

                        if(error.isSuccess()) {
                                // ... 生略
                        }
                }
        });
}


import com.hive.Adiz;
import com.hive.adiz.AdizError;
import org.json.JSONObject;


public void initialize() {

        Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231");

        Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
                @Override
                public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

                        if(error.isSuccess()) {
                                // ... 省略
                        }
                }
        });
}


広告インスペクターの活用

広告インスペクターは、テストデバイス上で実際の広告をリクエストし、表示するプロセスをリアルタイムで分析するインアプリオーバーレイツールです。広告をロードするのにかかった時間を知らせ、表示に失敗した場合はその理由を教えてくれます。また、特定の広告ネットワークを指定して広告が適切に表示されているか確認でき、問題があればコードレベルでデバッグを行うことができます。このすべてのプロセスは広告インスペクターUIと共に進行します。Google Mobile Ads SDK Android 20.0.0以上に含まれており、AdizDeveloperTool.openAdInspectorを呼び出して使用できます。


広告検査ツールを使用するには、テストデバイスに広告表示が設定されている必要があります。

import com.hive.adiz.utils.AdizDeveloperTool

AdizDeveloperTool.openAdInspector(activity)
import com.hive.adiz.utils.AdizDeveloperTool;

AdizDeveloperTool.openAdInspector(activity);


Adiz AppID 設定

コンソール AppCenterに登録した Adiz AppID を設定します。未設定の場合は AndroidManifest.xml パッケージ名を使用します。

Adiz.setAppId("YOUR_APPID")
Adiz.setAppId("YOUR_APPID");

Hive コンソールサーバー設定

使用する Hive コンソールサーバーを設定します。デフォルトは REAL です。商用サーバーを使用しても、テストモードを有効にするとテスト広告のみが表示されます。

  • Hive テストコンソールサーバー: ZoneType.TEST
  • Hive サンドボックスコンソールサーバー: ZoneType.SANDBOX
  • Hive 商用コンソールサーバー: ZoneType.REAL
Adiz.setZone(AdizConfiguration.ZoneType.REAL)
Adiz.setZone(AdizConfiguration.ZoneType.REAL);

ゲームがヨーロッパおよびイギリス(EEA & UK)をターゲットにしている場合、GDPR(欧州連合一般データ保護規則)同意ポップアップを表示する必要があります。GDPR同意ポップアップは、ユーザーのデバイスのIPアドレスがヨーロッパおよびイギリス(EEA & UK)のIPアドレスである場合にのみ表示されます。AdizはGDPR同意ポップアップの表示のためにGoogle UMP(ユーザーメッセージングプラットフォーム)をサポートしています。AdMobコンソールでGDPRメッセージを作成した後に Adizを初期化すると、ヨーロッパおよびイギリス地域からアクセスしたユーザーにGDPRポップアップが表示されます。

Warning

ヨーロッパおよびイギリス以外の地域をターゲットにする場合、例えば国内でのみサービスを計画している場合は GDPR同意ポップアップの表示(ヨーロッパ、イギリス) ステップをスキップし、Adiz.initializeForNonGDPR() メソッドを使用して初期化を進めることができます。
Adiz.initialize() メソッドを使用して初期化を進める場合、AdMobコンソールでGDPRメッセージを作成する必要があり、そうしないとAdizの初期化は正常に進行しません。

GDPRメッセージ作成

Google AdMobコンソールにアクセスしてGDPRメッセージを作成します。GDPRメッセージを作成する前に、まずGDPRメッセージ作成ガイドを参照してください。

GDPRメッセージを作成した場合、Adiz初期化時に自動的にGDPR同意ポップアップが表示されます。

GDPR同意/撤回機能の実装

GDPR同意ポップアップにある項目は、ユーザーが同意の有無をいつでも修正できるように修正機能を提供する必要があります。例えば、ユーザーが最初はGDPRに同意しなかったが、カスタマイズ広告を見るために再度同意を希望する場合や、逆に最初はGDPRに同意したが、もう個人情報を提供したくないために同意を撤回したい場合があります。このような状況に対応するために、アプリ開発者は各項目に再度同意するか、既存の同意を撤回する機能を実装する必要があります。GDPR同意/撤回機能を実装するには、次のステップに従います。

  1. GDPR同意ポップアップを再表示するボタンUIをアプリに実装します。
  2. Adiz初期化を実装する際にisPrivacyOptionsRequired()を呼び出し、ヨーロッパおよびイギリスからアクセスするユーザーには上記のボタンUIを表示し、それ以外の場合は表示しないように実装します。ヨーロッパおよびイギリスからアクセスするユーザーが上記のボタンを押すとshowPrivacyOptionsFormを呼び出してGDPR同意ポップアップを再表示します。これにより、ユーザーはアプリ内でいつでも「Manage Options」のようなボタンを押してGDPRの詳細項目の同意状況を修正できます。以下のshowPrivacyOptionsFormは例示のために任意に実装したメソッドであり、開発者が望む形に実装を変更することができます。
    import com.hive.Adiz
    import com.hive.adiz.AdizError
    import com.hive.AdizConsentManager
    import org.json.JSONObject

    fun initialize() {
            // ...
            Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
                    override fun onComplete(error: AdizError, jsonData: JSONObject?) {

                            if(error.isSuccess) {
                                    // ... 省略
                                    // GDPR同意ポップアップを再表示するボタンをアプリに表示するかどうかを決定
                                    var isPrivacyOptionsRequired = AdizConsentManager.isPrivacyOptionsRequired()
                                    if(isPrivacyOptionsRequired) {
                                            // ボタンをアプリに表示する。(ボタンクリック時にshowPrivacyOptionsForm()を呼び出してGDPR同意ポップアップを表示する)
                                            showGDPRConsentPopupButton()
                                    } else {
                                            // ボタンをアプリに表示しない。
                                            // その他アプリで希望する処理。
                                    }
                            }
                    }
            })
    }


    fun showPrivacyOptionsForm(activity: Activity) {

            // GDPR同意オプションフォーム呼び出し
            if(AdizConsentManager.isPrivacyOptionsRequired()) {
                    AdizConsentManager.showPrivacyOptionsForm(activity, object : AdizConsentManager.ConsentListener {
                            override fun onResult(error: AdizError) {
                                    addLog("AdizConsentManager.showPrivacyOptionsForm() errorCode : ${error.getCode()}, errorMessage : ${error.getMessage()}}\n")
                                    // エラーハンドリングは必要ありません。
                            }
                    })
            }
    }
    import com.hive.adiz.Adiz;
    import com.hive.adiz.AdizError;
    import com.hive.AdizConsentManager;
    import org.json.JSONObject;


    public void initialize() {
Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
    @Override
    public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

        if(error.isSuccess()) {
            // ... 省略
            // GDPR同意ポップアップを再表示するボタンをアプリに表示するかどうかを決定
            boolean isPrivacyOptionsRequired = AdizConsentManager.isPrivacyOptionsRequired();
            if(isPrivacyOptionsRequired) {
                // ボタンをアプリに表示します。(ボタンをクリックするとshowPrivacyOptionsForm()を呼び出してGDPR同意ポップアップを表示します)
                showGDPRConsentPopupButton();
            } else {
                // ボタンをアプリに表示しません。
                // その他アプリで希望する処理。
            }
        }
    }
    });
    }


    public void showPrivacyOptionsForm(Activity activity) {
            // GDPR同意オプションフォームを呼び出す
            if(AdizConsentManager.isPrivacyOptionsRequired()) {
                    AdizConsentManager.showPrivacyOptionsForm(activity, new AdizConsentManager.ConsentListener() {
                            @Override
                            public void onResult(@NonNull AdizError error) {
                                    // エラーハンドリングは必要ありません。
                            }
                    });
            }
    }

GDPR同意年齢未満のユーザーのためのタグ(TFUA)設定

GDPR同意年齢未満のユーザーのためのタグ(Tag For Under the Age of Consent, TFUA)を使用して、ヨーロッパ経済地域(EEA)、イギリス、スイスに居住するユーザーを制限的なデータ処理対象として扱うように広告リクエスト時に設定できます。子供を対象としたサービスを提供するアプリの場合、AdizConsentManager.setUserPrivacySettingsを使用してユーザーが同意年齢未満であることを設定できます。ヨーロッパの国ごとにいくつかの違いがありますが、GDPRは16歳未満を親の同意が必要な年齢として定義しています。同意年齢未満設定はAdiz.initialize実行前に設定する必要があります。

Warning

GDPR同意年齢未満タグ設定のsetTagForUnderAgeOfConsentとCOPPA子供対象設定のsetTagForChildDirectedTreatmentを同時にtrueに設定すると、COPPA子供対象設定setTagForChildDirectedTreatment設定が優先的に適用されるため、これらを同時にtrueに設定して使用しないでください。

Note

Hive SDK v4 24.2.0以上とAdiz 2.0.1以上を一緒に使用する場合、Hive SDKで設定した同意年齢未満ユーザーの有無が自動的に適用されるため、AdizConsentManager.setUserPrivacySettingsを呼び出す必要はありません。

 

import com.hive.Adiz
import com.hive.adiz.AdizError
import com.hive.adiz.consent.PrivacySettings
import org.json.JSONObject

fun initialize() {

        val isUnderAgeForGDPR = false // 子供の場合はtrueに変更

        val settings = PrivacySettings.Builder()
                .setTagForUnderAgeOfConsent(isUnderAgeForGDPR)
                .build()
        AdizConsentManager.setUserPrivacySettings(settings)

        Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
                override fun onComplete(error: AdizError, jsonData: JSONObject?) {
                        // ... 省略
                }
        })
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import com.hive.adiz.consent.PrivacySettings;
import org.json.JSONObject;


public void initialize() {

        boolean isUnderAgeForGDPR = false; // 子供の場合はtrueに変更

        PrivacySettings settings = new PrivacySettings.Builder()
                        .setTagForUnderAgeOfConsent(isUnderAgeForGDPR)
                        .build();
        AdizConsentManager.setUserPrivacySettings(settings);

        Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
                @Override
                public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

                        if(error.isSuccess()) {
                                // ... 省略
                        }
                }
        });
}

GDPRテストデバイス設定

GDPR同意ポップアップは、デバイスのIPアドレスがヨーロッパおよびイギリスのIPアドレスの場合にのみ表示されます。開発段階では、IPアドレスに関係なくGDPR同意ポップアップを強制的に表示させてポップアップの表示をテストすることができ、そのためにはGDPRテストデバイスを設定する必要があります。ハイブコンソールでテストデバイスを設定すると、簡単にテストを行うことができます。 setTestDeviceメソッドを使用して設定する方法は以下の通りで、テストデバイスに広告を表示する方法と同じです。

  1. Adizを初期化します。テストデバイスIDを確認するための初期化であり、GDPR同意メッセージを作成する必要はありません。
  2. Logcatログ出力でデバイスIDを確認できるメッセージを確認します。以下は例示メッセージです。

    Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
    
  3. メッセージからデバイスID(例: 33BE2250B43518CCDA7DE426D04EE231)を確認します。
  4. デバイスIDをコピーします。
  5. 既存のAdiz初期化コードでAdiz.initializeを実行する前にAdizGDPRManager.setTestDevice(DEVICE_ID)を追加します。
  6. GDPR同意メッセージを作成し、Adizを再初期化してGDPR同意ポップアップが正しく表示されるか確認します。
import com.hive.Adiz
import com.hive.adiz.AdizError
import org.json.JSONObject


fun initialize() {

        Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231")

        Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
                override fun onComplete(error: AdizError, jsonData: JSONObject?) {
                        // ... 省略
                }
        })
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import org.json.JSONObject;


public void initialize() {

        Adiz.setTestDevice("33BE2250B43518CCDA7DE426D04EE231");

        Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
                @Override
                public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

                        if(error.isSuccess()) {
                                // ... 省略
                        }
                }
        });
}

COPPA 子供向け取り扱いタグ設定

子供オンラインプライバシー保護法(COPPA)の目的に従い、アプリ開発者は子供向け取り扱いタグ設定(tagForChildDirectedTreatment, TFCD)を使用して、広告リクエスト時にGoogleがコンテンツを子供向けコンテンツとして処理するかどうかを指定できます。子供向けとして処理したい場合は、AdizConsentManager.setUserPrivacySettingsAdiz.initializeの実行前に呼び出す必要があります。AdizとHive SDKを一緒に使用する場合、子供向け取り扱いタグは自動的に適用されるため、別途設定は必要ありません。

import com.hive.Adiz
import com.hive.adiz.AdizError
import com.hive.adiz.consent.PrivacySettings
import org.json.JSONObject

fun initialize() {

        val isChildDirectedTreatmentForCOPPA = false // 子供の場合はtrueに変更

        val settings = PrivacySettings.Builder()
                .setTagForChildDirectedTreatment(isChildDirectedTreatmentForCOPPA)
                .build()
        AdizConsentManager.setUserPrivacySettings(settings)

        Adiz.initialize(activity, object : Adiz.SdkInitializationListener {
                override fun onComplete(error: AdizError, jsonData: JSONObject?) {
                        // ... 生략
                }
        })
}
import com.hive.Adiz;
import com.hive.adiz.AdizError;
import com.hive.adiz.consent.PrivacySettings;
import org.json.JSONObject;


public void initialize() {

        boolean isChildDirectedTreatmentForCOPPA = false; // 子供の場合はtrueに変更

        PrivacySettings settings = new PrivacySettings.Builder()
                        .setTagForChildDirectedTreatment(isChildDirectedTreatmentForCOPPA)
                        .build();
        AdizConsentManager.setUserPrivacySettings(settings);

        Adiz.initialize(activity, new Adiz.SdkInitializationListener() {
                @Override
                public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

                        if(error.isSuccess()) {
                                // ... 省略
                        }
                }
        });
}

広告メディエーションの追加

AdizはAdMobメディエーションを使用して広告を表示できます。AdMobメディエーションを追加するには、以下の手順に従ってください。

AdMobのメディエーション追加

AdMobコンソールで広告ソースの連携作業を進めます。以下の表に従って進めます。

AppLovin Pangle Unity Ads Meta
ステップ 1 AppLovinの設定を行う Pangleの設定を行う Unity Adsの設定を行う Metaの設定を行う
ステップ 2 AdMobにAppLovin広告ソースを追加する AdMobにPangle広告ソースを追加する AdMobにUnity Ads広告ソースを追加する AdMobにMeta広告ソースを追加する
ステップ 3 Adizアダプターを追加する

Adiz アダプターの追加

アプリレベルのbuild.gradleにライブラリの依存関係を追加します。


dependencies {
    // ... (생략) 

    implementation 'com.com2us.android.adiz:hive-adiz:2.0.1' // 共通 (必須追加)

    implementation 'com.com2us.android.adiz:hive-adiz-adapter-applovin:2.0.1' // AppLovin 連携時追加
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-pangle:2.0.1' // Pangle 連携時追加
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-unityads:2.0.1' // Unity Ads 連携時追加
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-meta:2.0.1' // Meta 連携時追加
}

 

Pangleを統合する際には、次の設定を追加します。Gradle 7.0以上を使用している場合、プロジェクトレベルのsettings.gradledependencyResolutionManagement部分にrepository設定を追加します。


// Gradle 7.0 以上使用時の settings.gradle 設定

dependencyResolutionManagement {
    repositories {
        maven { url 'https://artifact.bytedance.com/repository/pangle/' } // Pangle連携時に追加
    }
}

 

Gradle 7.0未満を使用している場合、プロジェクトレベルのbuild.gradle allprojects部分にrepository設定を追加します。


// Gradle 7.0未満使用時のbuild.gradle設定

allprojects {
    repositories {
        maven {
            url 'https://artifact.bytedance.com/repository/pangle' // Pangleとの連携時に追加
        }

    }
}

 

Adizアダプターの構成が正しく適用されているか確認するために、アプリを実行後、広告検査機画面で構成リストを確認します。

Adiz初期化

すべてのタイプの広告を表示する前に必ず実行する必要があるステップです。Adiz初期化を行うと、広告を表示するために必要な広告キーを受け取ることができます。テストモードを有効にしている場合は、テストキーを受け取ります。Hive SDKを使用している場合は、AuthV4.setupを呼び出した後にAdiz初期化を進めます。

val sdkInitializationListener = object : Adiz.SdkInitializationListener {
    override fun onComplete(error: AdizError, jsonData: JSONObject?) {
        Log.d(TAG, "Adiz initialize complete. error code : ${error.getCode()}, message : ${error.getMessage()}, data : $jsonData")
        if(error.isSuccess) {
            if(jsonData != null) {

                var interstitialKeyList = ArrayList<String>()
                var bannerKeyList = ArrayList<String>()
                var nativeKeyList = ArrayList<String>()
                var rewardedKeyList = ArrayList<String>()
                var rewardedInterstitialKeyList = ArrayList<String>()
                var appOpenKeyList = ArrayList<String>()

                try {
                    var keysArr = jsonData.getJSONArray("keys")
                    for (i in 0 until keysArr.length()) {
                        var unit = keysArr.optJSONObject(i)

                        // ゲーム内で広告キーを直接入力した場合、is_defaultがfalseであるキーのリストを構築する例です。
                        if (unit.optBoolean("is_default").not()) {

                            var hiveAdKey = unit.optString("key")
                            when (unit.optString("form")) {
                                "interstitial" -> interstitialKeyList.add(hiveAdKey)
                                "banner" -> bannerKeyList.add(hiveAdKey)
                                "native" -> nativeKeyList.add(hiveAdKey)
                                "rewarded" -> rewardedKeyList.add(hiveAdKey)
                                "rewarded_interstitial" -> rewardedInterstitialKeyList.add(hiveAdKey)
                                "app_open" -> appOpenKeyList.add(hiveAdKey)
                            }
                        }
                    }

                    println("interstitialKeyList $interstitialKeyList")
                    println("bannerKeyList $bannerKeyList")
                    println("nativeKeyList $nativeKeyList")
                    println("rewardedKeyList $rewardedKeyList")
                    println("rewardedInterstitialKeyList $rewardedInterstitialKeyList")
                    println("appOpenKeyList $appOpenKeyList")

                } catch (e: JSONException) {
                    //...
                }
            }
        }
    }
}

fun initAdiz() {
    // 一般的な初期化
    Adiz.initialize(activity, sdkInitializationListener)
}

fun initAdizForNonGDPR() {
    // GDPRに対応しない場合
    Adiz.initializeForNonGDPR(activity, sdkInitializationListener)
}
Adiz.SdkInitializationListener sdkInitializationListener = new Adiz.SdkInitializationListener() {
    @Override
    public void onComplete(@NonNull AdizError error, @Nullable JSONObject jsonData) {

        if(error.isSuccess()) {
            if(jsonData != null) {
                ArrayList interstitialKeyList = new ArrayList<String>();
                ArrayList bannerKeyList = new ArrayList<String>();
                ArrayList nativeKeyList = new ArrayList<String>();
                ArrayList rewardedKeyList = new ArrayList<String>();
                ArrayList rewardedInterstitialKeyList = new ArrayList<String>();
                ArrayList appOpenKeyList = new ArrayList<String>();

                try {
                    JSONArray keysArr = jsonData.optJSONArray("keys");
                    for(int i = 0; i < keysArr.length(); i++) {
                        JSONObject unit = keysArr.optJSONObject(i);

                        if(unit.optBoolean("is_default") == false) {
                            String hiveAdKey = unit.optString("key");
                            String form = unit.optString("form");
                            switch (form) {
                                case "interstitial":
                                    interstitialKeyList.add(hiveAdKey);
                                    break;
                                case "banner":
                                    bannerKeyList.add(hiveAdKey);
                                    break;
                                case "native":
                                    nativeKeyList.add(hiveAdKey);
                                    break;
                                case "rewarded":
                                    rewardedKeyList.add(hiveAdKey);
                                    break;
                                case "rewarded_interstitial":
                                    rewardedInterstitialKeyList.add(hiveAdKey);
                                    break;
                                case "app_open":
                                    appOpenKeyList.add(hiveAdKey);
                                    break;
                            }
                        }
                    }

                    System.out.println("interstitialKeyList " + interstitialKeyList);
                    System.out.println("bannerKeyList " + bannerKeyList);
                    System.out.println("nativeKeyList " + nativeKeyList);
                    System.out.println("rewardedKeyList " + rewardedKeyList);
                    System.out.println("rewardedInterstitialKeyList " + rewardedInterstitialKeyList);
                    System.out.println("appOpenKeyList " + appOpenKeyList);

                } catch (Exception e) {

                }
            }
        }
    }
};

void initAdiz() {
    // 一般的な初期化
    Adiz.initialize(activity, sdkInitializationListener);
}

void initAdizForNonGDPR() {
    // GDPRに対応していない場合
    Adiz.initializeForNonGDPR(activity, sdkInitializationListener);
}

 

初期化実行時にコールバックとして受け取るJSONファイルには広告キーのリストがあります。広告キーのリストは次のような形式になります。

 
    {
        "keys":[
            {
                "mediation_id":5,
                "key":"ca-app-pub-3940256099942544/5354046379",
                "form":"rewarded_interstitial",
                "is_default":true,
                "placement_id":"lobby01"
            },
            {
                "mediation_id":4,
                "key":"ca-app-pub-3940256099942544/5224354917",
                "form":"rewarded",
                "is_default":true,
                "placement_id":"game02"
            },
            {
                "mediation_id":3,
                "key":"ca-app-pub-3940256099942544/2247696110",
                "form":"native",
                "is_default":true,
                "placement_id":"event01"
            },
            {
                "mediation_id":1,
                "key":"ca-app-pub-3940256099942544/1033173712",
                "form":"interstitial",
                "is_default":true,
                "placement_id":"mission01"
            },
            {
                "mediation_id":2,
                "key":"ca-app-pub-3940256099942544/6300978111",
                "form":"banner",
                "is_default":true,
                "placement_id":"main01"
            },
            {
                "mediation_id":6,
                "key":"ca-app-pub-3940256099942544/9257395921",
                "form":"app_open",
                "is_default":true,
                "placement_id":"appopen01"
            }
        ]
    }

 

テストモードで初期化を行うと、AdMob広告キーをHiveコンソールに登録していなくても、テスト用広告キーのリストを受け取ります。商用モードで初期化を行うと、Hiveコンソールに登録したAdMob広告キーのリストを受け取ります。

広告の形態(form)ごとに1つの広告は基本広告("is_default":trueの広告)として使用されます。どの広告形態を最初に登録した場合、その最初に登録した広告が基本広告になります。基本広告は、広告インスタンスを生成(initialize())する際に広告キー(hiveAdKey)を入力する必要はありません。基本広告を変更するには、Hive コンソールで既存の基本広告を削除し、新しい広告を登録する必要があります。

広告コールバックリスナーの設定

各広告インスタンスを生成する際にAdizListenerを実装すると、広告の状態変化に応じてコールバックを受け取ることができます。

名称 説明 必須実装
onLoad() 広告のロード成功 O
onFail(error: AdizError) 失敗(error.getCode()error.getMessage()で失敗理由を知ることができる) O
onShow() 広告の表示成功 O
onClick() 広告クリック O
onPaidEvent(adRevenueData: AdRevenueData) 広告表示後にpaid eventを受け取るタイミングで、広告収益情報が伝達される O
onClose() 広告終了
  • 広告が終了した後、同じ広告インスタンスで広告を再表示するにはload()を再度呼び出し、その後show()を呼び出す必要があります。
  • もう広告を表示しない場合はdestroy()を呼び出して広告インスタンスを削除します。
X
onRewarded(rewardItem: RewardItem) 報酬型広告(rewarded, rewarded interstitial)で広告表示後にユーザーが報酬を受け取るタイミング X
var adizListener = object : AdizListener() {
    override fun onLoad() {
        // 広告が読み込まれたときに呼び出されます。
        // 広告の読み込みが成功した場合、広告インスタンスの.show()を表示したいポイントで呼び出す必要があります。
    }

    override fun onFail(loadError: AdizError) {
        // 広告の読み込みに失敗した場合や、他の理由で広告の表示に失敗した場合に呼び出されます。
    }

    override fun onShow() {
        // 広告が表示されたときに呼び出されます。
    }

    override fun onClick() {
        // Called when the ad is clicked.
    }

    override fun onPaidEvent(adRevenueData: AdRevenueData) {     
        // 広告の収益が生成されたときに呼び出されます。

        var revenue = adRevenueData.revenue // 広告表示時の収益
        var currency = adRevenueData.currency // 広告表示時の収益の通貨コード     
    }

    override fun onClose() {
        // 広告が閉じられたときに呼び出されます。
        // バナー、ネイティブ広告にはonCloseコールバックがありません。
    }

    override fun onRewarded(rewardItem: RewardItem) {         
        // 広告を視聴した際に報酬が作成されたときに呼び出されます。
        var itemType = rewardItem.itemType // 報酬アイテムの種類
        var itemAmount = rewardItem.itemAmount // 報酬アイテムの数量   
    } 
}
AdizListener adizListener = new AdizListener() {
    @Override
    public void onLoad() {
        // 広告が読み込まれたときに呼び出されます。
        // 広告の読み込みが成功した場合、広告を表示するために必要なポイントで広告インスタンスの.show()を呼び出す必要があります。
    }

    @Override
    public void onFail(@NonNull AdizError loadError) {
        // Called if the ad load failed or the ad display failed for some other reason.
    }

    @Override
    public void onShow() {
        // 広告が表示されたときに呼び出されます。
    }

    @Override
    public void onClick() {
        // 広告がクリックされたときに呼ばれます。
    }

    @Override
    public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {         
        double revenue = adRevenueData.getRevenue(); // 広告表示時の収益
        String currency = adRevenueData.getCurrency(); // 広告表示時の収益の通貨コード      
    }

    @Override
    public void onClose() {
        // 広告が閉じられたときに呼び出されます。
        // バナー広告やネイティブ広告には閉じるボタンがないため、onCloseコールバックはありません。
    }

    @Override
    public void onRewarded(@NonNull RewardItem rewardItem) {
        // 広告を視聴した際に報酬が発生したときに呼び出されます。
        String rewardType = rewardItem.getItemType(); // 報酬アイテムの種類
        int rewardAmount = rewardItem.getItemAmount(); // 報酬アイテムの数量
    }
};

エラーコード

Adiz.InitializeAdizListeneronFail()を受け取ったときのAdizErrorエラーコードとエラーメッセージは次のとおりです。

共通コード

番号 ケース 説明
0 成功 成功

Adiz エラーコード

番号 ケース 説明
-1 InvalidParam 無効なパラメータ
-2 NotSupported サポートされていません
-3 InProgress プロセス進行中
-4 Network ネットワークエラー
-5 NeedInitialize 初期化が必要
-6 ResponseFail 応答失敗
-7 Timeout ネットワークタイムアウト
-99 Unknown 不明なエラー

広告プラットフォームエラーコード

番号 ケース 説明
-101 NeedLoad 広告がロードされていません
-102 NeedReload 広告表示時間の期限切れによる再ロードが必要
-103 NotEnoughInventory メディエーションの応答は成功しましたが、在庫不足のため充填された広告がありません
-104 MissingAppId メディエーションリクエスト用のAppIDエラー
-105 InternalNetworkError メディエーションネットワーク関連のエラー
-106 InvalidUnitId 無効なUnit Id
-107 MediationNoFill メディエーションアダプターが広告リクエストを処理できませんでした
-108 AlreadyLoaded すでにロードされた状態
-109 CannotRequestAds 広告をリクエストできません
-201 GdprConsentError GDPR同意エラー
-202 IsNotPrivacyOptionsRequired GDPR同意ポップアップを表示できないか、表示しなくてもよい状態です

広告の表示と広告の終了

広告を表示し、終了するには、次の手順に従ってください。

  1. 表示したい広告の形式ごとに広告クラスで広告インスタンスを生成します。表示したい広告が 基本広告 でない場合は、 初期化 で取得した広告キーまたは位置IDを入力する必要があります。
    広告キー(hiveAdKey)または位置ID(placementId)を入力しないと、基本広告インスタンスが生成されます。位置IDはハイブコンソールで設定でき、詳細はコンソールガイドの Admob設定 ページを参照してください。
  2. 表示したい広告をロード(load())します。
  3. ロードした広告を表示(show())します。広告を再表示するには load() を再度呼び出した後、 show() を呼び出します。
  4. 広告を終了するには destroy() を呼び出します。

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

画面全体を占めるインタースティシャル広告です。

import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizInterstitial
import com.hive.adiz.common.AdRevenueData

class InterstitialExample : Activity() {

    var interstitialAd: AdizInterstitial? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // ...

        // requestInitAd(this)
    }

    val adizListener = object : AdizListener() {
        override fun onLoad() {
            // requestShowAd()
        }

        override fun onFail(loadError: AdizError) {
            var code = loadError.getCode() // エラーコード
            var message = loadError.getMessage() // エラーメッセージ
        }

        override fun onShow() {
            //
        }

        override fun onClick() {
            //
        }

        override fun onPaidEvent(adRevenueData: AdRevenueData) {
            var revenue = adRevenueData.revenue // 広告が表示されたときの収益
            var currency = adRevenueData.currency // 広告が表示されたときの収益の通貨コード
        }

        override fun onClose() {
            // requestDestroyAd()
        }
    }

    fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {

        if(hiveAdKey.isNullOrEmpty()) {
            // インタースティシャル広告インスタンスを作成します。
            interstitialAd = AdizInterstitial.initialize(activity, adizListener)
        } else {
            // hiveAdKeyを入力してインタースティシャル広告インスタンスを作成できます。
            interstitialAd = AdizInterstitial.initialize(activity, hiveAdKey, adizListener)
        }

        // requestLoadAd()
    }

    fun requestInitAdWithPlacementid(activity: Activity, placementId: String? = null) {

        if(placementId.isNullOrEmpty()) {
            // インタースティシャル広告インスタンスを作成します。
            interstitialAd = AdizInterstitial.initialize(activity, adizListener)
        } else {
            // placementIdを入力することでインタースティシャル広告インスタンスを作成できます。
            interstitialAd = AdizInterstitial.initializeWithPlacementId(activity, placementId, adizListener)
        }

        // requestLoadAd()
    }

    fun requestLoadAd() {
        // インタースティシャル広告を読み込む。
        interstitialAd?.let { 
            if(it.isInitialized()) it.load()
        }
    }

    fun requestShowAd() {
        // インタースティシャル広告を表示します。
        interstitialAd?.let { 
            if(it.isLoaded()) it.show()
        }
    }

    fun requestDestroyAd() {
        // インタースティシャル広告を削除します。
        interstitialAd?.destroy()
    }
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizInterstitial;
import com.hive.adiz.common.AdRevenueData;

public class InterstitialExample extends Activity {

    AdizInterstitial interstitialAd = null;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //...

        // requestInitAd(this, null);
    }

    AdizListener adizListener = new AdizListener() {
        @Override
        public void onLoad() {
            // requestShowAd();
        }

        @Override
        public void onFail(@NonNull AdizError loadError) {
            int code = loadError.getCode(); // エラーコード
            String message = loadError.getMessage(); // エラーメッセージ
        }

        @Override
        public void onShow() {

        }

        @Override
        public void onClick() {
            //
        }

        @Override
        public void onClose() {
            // requestDestroyAd();
        }

        @Override
        public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
            double revenue = adRevenueData.getRevenue(); // 広告が表示されたときの収益
            String currency = adRevenueData.getCurrency(); // 広告が表示されたときの収益の通貨コード
        }
    };

    public void requestInitAd(Activity activity, String hiveAdKey) {

        if(TextUtils.isEmpty(hiveAdKey)) {
            // インタースティシャル広告インスタンスを作成します。
            interstitialAd = AdizInterstitial.initialize(activity, adizListener);
        } else {
            // hiveAdKeyを入力することでインタースティシャル広告インスタンスを作成できます。
            interstitialAd = AdizInterstitial.initialize(activity, hiveAdKey, adizListener);
        }

        // requestLoadAd();
    }

    public void requestInitAdWithPlacementId(Activity activity, String placementId) {

        if(TextUtils.isEmpty(placementId)) {
            // インタースティシャル広告インスタンスを作成します。
            interstitialAd = AdizInterstitial.initialize(activity, adizListener);
        } else {
            // placementIdを入力してインタースティシャル広告インスタンスを作成できます。
            interstitialAd = AdizInterstitial.initializeWithPlacementId(activity, placementId, adizListener);
        }

        // requestLoadAd();
    }

    private void requestLoadAd() {
        // インタースティシャル広告を読み込みます。
        if(interstitialAd != null && interstitialAd.isInitialized()) interstitialAd.load();
    }

    private void  requestShowAd() {
        // インタースティシャル広告を表示します。
        if(interstitialAd != null && interstitialAd.isLoaded()) interstitialAd.show();
    }

    private void  requestDestroyAd() {
        // インタースティシャル広告を削除します。
        if(interstitialAd != null) interstitialAd.destroy();
    }
}

特定のサイズのバナーを表示するバナー広告です。バナー広告は onClose() コールバックを受け取りません。したがって、他の場所で destroy() を呼び出して広告を終了する必要があります。

 

BannerSizeは標準バナーサイズに従います。

サイズポイント (幅x高さ) 説明 対象 BannerSize 定数
320x50 バナー 携帯電話およびタブレット BannerSize.NORMAL
320x100 大バナー 携帯電話およびタブレット BannerSize.MEDIUM
300x250 IAB 中間長方形 携帯電話およびタブレット BannerSize.LARGE
468 x 60 IAB フルサイズバナー タブレット BannerSize.FULL

 

PositionTypeは最上部または最下部です。デフォルト値は最下部です。

整列 説明 PositionType 定数
最上部整列 画面最上部整列指定 PositionType.TOP
最下部整列 (デフォルト) 画面最下部整列指定 PositionType.BOTTOM
import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizBanner
import com.hive.adiz.common.AdRevenueData
import com.hive.adiz.common.BannerSize
import com.hive.adiz.common.PositionType

class BannerExample : Activity() {

    var banner: AdizBanner? = null

    // バナーサイズを設定します。
    var bannerSize = BannerSize.NORMAL

    override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)

            // ...

            // requestInitAd(this)
    }

    val adizListener = object : AdizListener() {
        override fun onLoad() {
            // requestShowAd()
        }

        override fun onFail(loadError: AdizError) {
            var code = loadError.getCode() // エラーコード
            var message = loadError.getMessage() // エラーメッセージ
        }

        override fun onShow() {
            //
        }

        override fun onClick() {
            //
        }

        override fun onPaidEvent(adRevenueData: AdRevenueData) {
            var revenue = adRevenueData.revenue // revenue when ad is exposed
            var currency = adRevenueData.currency // currency code for revenue when ad is exposed
        }
    }

    fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {

        if(hiveAdKey.isNullOrEmpty()) {
            // バナー広告インスタンスを作成します。
            banner = AdizBanner.initialize(activity, bannerSize, adizListener)
        } else {
            // hiveAdKeyを入力してバナー広告インスタンスを作成できます。
            banner = AdizBanner.initialize(activity, hiveAdKey, bannerSize, adizListener)
        }

        // requestLoadAd()
    }

    fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {

        if(placementId.isNullOrEmpty()) {
            // バナー広告インスタンスを作成します。
            banner = AdizBanner.initialize(activity, bannerSize, adizListener)
        } else {
            // placementIdを入力することでバナー広告インスタンスを作成できます。
            banner = AdizBanner.initializeWithPlacementId(activity, placementId, bannerSize, adizListener)
        }

        // requestLoadAd()
    }

    fun requestLoadAd() {
        // バナー広告を読み込みます。
        banner?.let { 
            if(it.isInitialized()) it.load()
        }
    }

    fun requestShowAd() {
        // バナー広告を表示します。
        banner?.let { 
            if(it.isLoaded()) it.show()
        }

        // バナーの位置を設定
        /* 
        var position = PositionType.TOP
        banner?.let {
            if(it.isLoaded()) it.show(position)
        } 
        */
    }

    fun requestDestroyAd() {
        // バナー広告を削除します。
        banner?.destroy()
    }
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizBanner;
import com.hive.adiz.common.AdRevenueData;
import com.hive.adiz.common.BannerSize;
import com.hive.adiz.common.PositionType;

public class BannerExample extends Activity {

        // バナーサイズを設定します。
        BannerSize bannerSize = BannerSize.NORMAL;
        AdizBanner banner = null;

        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                //...

                // requestInitAd(this, null);
        }

        AdizListener adizListener = new AdizListener() {
                @Override
                public void onLoad() {
                        // requestShowAd();
                }

                @Override
                public void onFail(@NonNull AdizError loadError) {
                        int code = loadError.getCode(); // エラーコード
                        String message = loadError.getMessage(); // エラーメッセージ
                }

                @Override
                public void onShow() {

                }

                @Override
                public void onClick() {
                        //
                }

                @Override
                public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
                        double revenue = adRevenueData.getRevenue(); // 広告が表示されたときの収益
                        String currency = adRevenueData.getCurrency(); // 広告が表示されたときの収益の通貨コード
                }
        };

        public void requestInitAd(Activity activity, String hiveAdKey) {

                if(TextUtils.isEmpty(hiveAdKey)) {
                        // バナー広告インスタンスを作成します。
                        banner = AdizBanner.initialize(activity, bannerSize, adizListener);
                } else {
                        // hiveAdKeyを入力してバナー広告インスタンスを作成できます。
                        banner = AdizBanner.initialize(activity, hiveAdKey, bannerSize, adizListener);
                }

                // requestLoadAd();
        }

        public void requestInitAdWithPlacementId(Activity activity, String placementId) {

                if(TextUtils.isEmpty(placementId)) {
                        // バナー広告インスタンスを作成します。
                        banner = AdizBanner.initialize(activity, bannerSize, adizListener);
                } else {
                        // placementIdを入力してバナー広告インスタンスを作成できます。
                        banner = AdizBanner.initializeWithPlacementId(activity, placementId, bannerSize, adizListener);
                }

                // requestLoadAd();
        }

        private void requestLoadAd() {
                // バナー広告を読み込みます。
                if(banner != null && banner.isInitialized()) banner.load();
        }

        private void  requestShowAd() {
                // バナー広告を表示します。
                if(banner != null && banner.isLoaded()) banner.show();

                // バナーの位置を設定
                // PositionType position = PositionType.TOP;
                // if(banner != null) banner.show(position);
        }

        private void  requestDestroyAd() {
                // バナー広告を削除します。
                if(banner != null) banner.destroy();
        }
}

ネイティブ広告 (Native)

特定のサイズのNativeテンプレートを表示するネイティブ広告です。ネイティブ広告は縦画面に最適化されているため、縦型ゲーム(縦画面ゲーム)での使用を推奨します。ネイティブ広告は onClose() コールバックを受け取りません。したがって、他の場所で destroy() を呼び出して広告を終了する必要があります。

 

現在のテンプレートはsmallまたはmediumサイズをサポートしています。

テンプレート 配置 BannerSize 定数
small サイズ Top / Bottom BannerSize.NORMAL
medium サイズ Center (固定) BannerSize.MEDIUM

 

small テンプレートでの PositionType は最上部または最下部であり、デフォルトは最下部です。

整列 説明 PositionType 定数
最上部整列 画面の最上部に整列指定 PositionType.TOP
最下部整列 (デフォルト) 画面の最下部に整列指定 PositionType.BOTTOM

 

medium テンプレートは整列を選択できず、デフォルトで中央揃えを使用します。

import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizNative
import com.hive.adiz.common.AdRevenueData
import com.hive.adiz.common.BannerSize

class NativeAdExampleKT : Activity() {

        var nativeAd: AdizNative? = null

        // バナーサイズを設定します。
        var bannerSize = BannerSize.NORMAL

        override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)

                // ...

                // requestInitAd(this)
        }

        val adizListener = object : AdizListener() {
                override fun onLoad() {
                        // requestShowAd()
                }

                override fun onFail(loadError: AdizError) {
                        var code = loadError.getCode() // エラーコード
                        var message = loadError.getMessage() // エラーメッセージ
                }

                override fun onShow() {
                        //
                }

                override fun onClick() {
                        //
                }

                override fun onPaidEvent(adRevenueData: AdRevenueData) {
                        var revenue = adRevenueData.revenue // 広告が表示されたときの収益
                        var currency = adRevenueData.currency // 広告が表示されたときの収益の通貨コード
                }
        }

        fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {

                if(hiveAdKey.isNullOrEmpty()) {
                        // ネイティブ広告インスタンスを作成します。
                        nativeAd = AdizNative.initialize(activity, bannerSize, adizListener)
                } else {
                        // hiveAdKeyを入力してネイティブ広告インスタンスを作成できます。
                        nativeAd = AdizNative.initialize(activity, hiveAdKey, bannerSize, adizListener)
                }

                // requestLoadAd()
        }

        fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {

                if(placementId.isNullOrEmpty()) {
                        // ネイティブ広告インスタンスを作成します。
                        nativeAd = AdizNative.initialize(activity, bannerSize, adizListener)
                } else {
                        // placementIdを入力してネイティブ広告インスタンスを作成できます。
                        nativeAd = AdizNative.initializeWithPlacementId(activity, placementId, bannerSize, adizListener)
                }

                // requestLoadAd()
        }

        fun requestLoadAd() {
                // ネイティブ広告を読み込む。
                nativeAd?.let { 
                        if(it.isInitialized()) it.load()
                }
        }

        fun requestShowAd() {
                // ネイティブ広告を公開します。
                nativeAd?.let { 
                        if(it.isLoaded()) it.show()
                }

                // バナーの位置を設定
                /* 
                var position = PositionType.TOP
                nativeAd?.let {
                        if(it.isLoaded()) it.show(position)
                } 
                */
        }

        fun requestDestroyAd() {
                // ネイティブ広告を削除します。
                nativeAd?.destroy()
        }
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizNative;
import com.hive.adiz.common.AdRevenueData;
import com.hive.adiz.common.BannerSize;
import com.hive.adiz.common.PositionType;

public class NativeAdExample extends Activity {

        // バナーサイズを設定します。
        BannerSize bannerSize = BannerSize.NORMAL;
        AdizNative nativeAd = null;

        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                //...

                // requestInitAd(this, null);
        }

        AdizListener adizListener = new AdizListener() {
                @Override
                public void onLoad() {
                        // requestShowAd();
                }

                @Override
                public void onFail(@NonNull AdizError loadError) {
                        int code = loadError.getCode(); // エラーコード
                        String message = loadError.getMessage(); // エラーメッセージ
                }

                @Override
                public void onShow() {

                }

                @Override
                public void onClick() {
                        //
                }

                @Override
                public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
                        double revenue = adRevenueData.getRevenue(); // 広告が表示されたときの収益
                        String currency = adRevenueData.getCurrency(); // 広告が表示されたときの収益の通貨コード
                }
        };

        public void requestInitAd(Activity activity, String hiveAdKey) {

                if(TextUtils.isEmpty(hiveAdKey)) {
                        // ネイティブ広告インスタンスを作成します。(HiveAdKeyが入力されていない場合、インスタンスはデフォルトキーがis_default=trueに設定されて作成されます。これはHive Adizの初期化中に受け取ったものです。)
                        nativeAd = AdizNative.initialize(activity, bannerSize, adizListener);
                } else {
                        // hiveAdKeyを入力することでネイティブ広告インスタンスを作成できます。
                        nativeAd = AdizNative.initialize(activity, hiveAdKey, bannerSize, adizListener);
                }

                // requestLoadAd();
        }

        public void requestInitAdWithPlacementId(Activity activity, String placementId) {

                if(TextUtils.isEmpty(placementId)) {
                        // ネイティブ広告インスタンスを作成します。(HiveAdKeyが入力されていない場合、インスタンスはデフォルトキーがis_default=trueに設定された状態で作成され、これはHive Adizの初期化中に受信されました。)
                        nativeAd = AdizNative.initialize(activity, bannerSize, adizListener);
                } else {
                        // placementIdを入力することでネイティブ広告インスタンスを作成できます。
                        nativeAd = AdizNative.initializeWithPlacementId(activity, placementId, bannerSize, adizListener);
                }

                // requestLoadAd();
        }

        private void requestLoadAd() {
                // ネイティブ広告を読み込みます。
                if(nativeAd != null && nativeAd.isInitialized()) nativeAd.load();
        }

        private void  requestShowAd() {
                // ネイティブ広告を表示します。
                if(nativeAd != null && nativeAd.isLoaded()) nativeAd.show();

                // バナーの位置を設定
                // PositionType position = PositionType.TOP;
                // if(nativeAd != null && nativeAd.isLoaded()) nativeAd.show(position);
        }

        private void  requestDestroyAd() {
                // ネイティブ広告を削除します。
                if(nativeAd != null) nativeAd.destroy();
        }
}

報酬型広告 (Rewarded)

ユーザーが広告を一定時間以上視聴すると報酬を受け取る報酬型広告です。報酬の支払いが完了すると、onRewarded() コールバックで報酬アイテムの情報を受け取ります。

import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizRewarded
import com.hive.adiz.common.AdRevenueData

class RewardedExample : Activity() {

        var rewardedAd: AdizRewarded? = null

        override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)

                // ...

                // requestInitAd(this)
        }

        val adizListener = object : AdizListener() {
                override fun onLoad() {
                        // requestShowAd()
                }

                override fun onFail(loadError: AdizError) {
                        var code = loadError.getCode() // エラーコード
                        var message = loadError.getMessage() // エラーメッセージ
                }

                override fun onShow() {
                        //
                }

                override fun onClick() {
                        //
                }

                override fun onPaidEvent(adRevenueData: AdRevenueData) {
                        var revenue = adRevenueData.revenue // 広告が表示されたときの収益
                        var currency = adRevenueData.currency // 広告が表示されたときの収益の通貨コード
                }

                override fun onClose() {
                        // requestDestroyAd()
                }

                override fun onRewarded(rewardItem: RewardItem) {
                        var itemType = rewardItem.itemType // 報酬アイテムの種類
                        var itemAmount = rewardItem.itemAmount // 報酬アイテムの数量
                }
        }

        fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {

                if(hiveAdKey.isNullOrEmpty()) {
                        // 報酬広告インスタンスを作成します。
                        rewardedAd = AdizRewarded.initialize(activity, adizListener)
                } else {
                        // hiveAdKeyを入力することで報酬広告インスタンスを作成できます。
                        rewardedAd = AdizRewarded.initialize(activity, hiveAdKey, adizListener)
                }

                // requestLoadAd()
        }

        fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {

                if(placementId.isNullOrEmpty()) {
                        // 報酬広告インスタンスを作成します。
                        rewardedAd = AdizRewarded.initialize(activity, adizListener)
                } else {
                        // placementIdを入力して報酬広告インスタンスを作成できます。
                        rewardedAd = AdizRewarded.initializeWithPlacementId(activity, placementId, adizListener)
                }

                // requestLoadAd()
        }

        fun requestLoadAd() {
                // 報酬広告を読み込みます。
                rewardedAd?.let {
                        if(it.isInitialized()) it.load()
                }
        }

        fun requestShowAd() {
                // 報酬広告を表示します。
                rewardedAd?.let {
                        if(it.isLoaded()) it.show()
                }
        }

        fun requestDestroyAd() {
                // 報酬広告を削除します。
                rewardedAd?.destroy()
        }
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizRewarded;
import com.hive.adiz.common.AdRevenueData;

public class RewardedExample extends Activity {

        AdizRewarded rewardedAd = null;

        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                //...

                // requestInitAd(this, null);
        }

        AdizListener adizListener = new AdizListener() {
                @Override
                public void onLoad() {
                        // requestShowAd();
                }

                @Override
                public void onFail(@NonNull AdizError loadError) {
                        int code = loadError.getCode(); // エラーコード
                        String message = loadError.getMessage(); // エラーメッセージ
                }

                @Override
                public void onShow() {
                        //
                }

                @Override
                public void onClick() {
                        //
                }

                @Override
                public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
                        double revenue = adRevenueData.getRevenue(); // 広告が表示されたときの収益
                        String currency = adRevenueData.getCurrency(); // 広告が表示されたときの収益の通貨コード
                }

                @Override
                public void onClose() {
                        // requestDestroyAd();
                }

                @Override
                public void onRewarded(@NonNull RewardItem rewardItem) {
                        String rewardType = rewardItem.getItemType(); // 報酬アイテムの種類
                        int rewardAmount = rewardItem.getItemAmount(); // 報酬アイテムの数量  
                }
        };

        public void requestInitAd(Activity activity, String hiveAdKey) {

                if(TextUtils.isEmpty(hiveAdKey)) {
                        // 報酬広告インスタンスを作成します。(HiveAdKeyが入力されていない場合、インスタンスはデフォルトキー(is_default=true)で作成され、Hive Adizの初期化中に受け取ったものです。)
                        rewardedAd = AdizRewarded.initialize(activity, adizListener);
                } else {
                        // hiveAdKeyを入力することで報酬広告インスタンスを作成できます。
                        rewardedAd = AdizRewarded.initialize(activity, hiveAdKey, adizListener);
                }

                // requestLoadAd();
        }

        public void requestInitAdWithPlacementId(Activity activity, String placementId) {

                if(TextUtils.isEmpty(placementId)) {
                        // 報酬広告インスタンスを作成します。(HiveAdKeyが入力されていない場合、インスタンスはデフォルトキー(is_default=true)で作成され、これはHive Adizの初期化中に受け取ったものです。)
                        rewardedAd = AdizRewarded.initialize(activity, adizListener);
                } else {
                        // placementIdを入力することで報酬広告インスタンスを作成できます。
                        rewardedAd = AdizRewarded.initializeWithPlacementId(activity, placementId, adizListener);
                }

                // requestLoadAd();
        }

        private void requestLoadAd() {
                // 報酬広告を読み込みます。
                if(rewardedAd != null && rewardedAd.isInitialized()) rewardedAd.load();
        }

        private void  requestShowAd() {
                // 報酬広告を表示します。
                if(rewardedAd != null && rewardedAd.isLoaded()) rewardedAd.show();
        }

        private void  requestDestroyAd() {
                // 報酬広告を削除します。
                if(rewardedAd != null) rewardedAd.destroy();
        }
}

報酬型インタースティシャル広告 (Rewarded Interstitial)

ユーザーが広告を一定時間以上視聴すると報酬を受け取る報酬型インタースティシャル広告です。報酬の支払いが完了すると、onRewarded() コールバックで報酬アイテムの情報を受け取ります。

import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizRewardedInterstitial
import com.hive.adiz.common.AdRevenueData
import com.hive.adiz.rewarded.RewardItem

class RewardedInterstitialExample : Activity() {

        var rewardedInterstitialAd: AdizRewardedInterstitial? = null

        override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)

                // ...

                // requestInitAd(this)
        }

        val adizListener = object : AdizListener() {
                override fun onLoad() {
                        // requestShowAd()
                }

                override fun onFail(loadError: AdizError) {
                        var code = loadError.getCode() // エラーコード
                        var message = loadError.getMessage() // エラーメッセージ
                }

                override fun onShow() {
                        //
                }

                override fun onClick() {
                        //
                }

                override fun onPaidEvent(adRevenueData: AdRevenueData) {
                        var revenue = adRevenueData.revenue // 広告が表示されたときに生成された収益
                        var currency = adRevenueData.currency // 広告が表示されたときの収益の通貨コード
                }

                override fun onClose() {
                        // requestDestroyAd()
                }

                override fun onRewarded(rewardItem: RewardItem) {
                        var itemType = rewardItem.itemType // 報酬アイテムの種類
                        var itemAmount = rewardItem.itemAmount // 報酬アイテムの数量
                }
        }

        fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {

                if(hiveAdKey.isNullOrEmpty()) {
                        // 報酬付きインタースティシャル広告のインスタンスを作成します。
                        rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener)
                } else {
                        // hiveAdKeyを入力することで報酬付きインタースティシャル広告のインスタンスを作成できます。
                        rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, hiveAdKey, adizListener)
                }

                // requestLoadAd()
        }

        fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {

                if(placementId.isNullOrEmpty()) {
                        // 報酬付きインタースティシャル広告のインスタンスを作成します。
                        rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener)
                } else {
                        // placementIdを入力することで報酬付きインタースティシャル広告のインスタンスを作成できます。
                        rewardedInterstitialAd = AdizRewardedInterstitial.initializeWithPlacementId(activity, placementId, adizListener)
                }

                // requestLoadAd()
        }

        fun requestLoadAd() {
                // 報酬付きインタースティシャル広告を読み込みます。
                rewardedInterstitialAd?.let {
                        if(it.isInitialized()) it.load()
                }
        }

        fun requestShowAd() {
                // 報酬付きインタースティシャル広告を表示します。
                rewardedInterstitialAd?.let {
                        if(it.isLoaded()) it.show()
                }
        }

        fun requestDestroyAd() {
                // 報酬付きインタースティシャル広告を削除します。
                rewardedInterstitialAd?.destroy()
        }
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizRewardedInterstitial;
import com.hive.adiz.common.AdRevenueData;
import com.hive.adiz.rewarded.RewardItem;

public class RewardedInterstitialExample extends Activity {

        AdizRewardedInterstitial rewardedInterstitialAd = null;

        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                //...

                // requestInitAd(this, null);
        }

        AdizListener adizListener = new AdizListener() {
                @Override
                public void onLoad() {
                        // requestShowAd();
                }

                @Override
                public void onFail(@NonNull AdizError loadError) {
                        int code = loadError.getCode(); // エラーコード
                        String message = loadError.getMessage(); // エラーメッセージ
                }

                @Override
                public void onShow() {
                        //
                }

                @Override
                public void onClick() {
                        //
                }

                @Override
                public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
                        double revenue = adRevenueData.getRevenue(); // 広告が表示されたときに生成された収益
                        String currency = adRevenueData.getCurrency(); // 広告が表示されたときの通貨コード
                }

                @Override
                public void onClose() {
                        // requestDestroyAd();
                }

                @Override
                public void onRewarded(@NonNull RewardItem rewardItem) {
                        String rewardType = rewardItem.getItemType(); // リワードアイテムのタイプ
                        int rewardAmount = rewardItem.getItemAmount(); // リワードアイテムの数量
                }
        };

        public void requestInitAd(Activity activity, String hiveAdKey) {

                if(TextUtils.isEmpty(hiveAdKey)) {
                        // 報酬型インタースティシャル広告のインスタンスを作成します(広告キー(HiveAdKey)が入力されていない場合、Hive Adizの初期化中にデフォルトキー(is_default=true)でインスタンスが作成されます。)
                        rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener);
                } else {
                        // hiveAdKeyを入力することで報酬型インタースティシャル広告のインスタンスを作成できます。
                        rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, hiveAdKey, adizListener);
                }

                // requestLoadAd();
        }

        public void requestInitAdWithPlacementId(Activity activity, String placementId) {

                if(TextUtils.isEmpty(placementId)) {
                        // 報酬付きインタースティシャル広告のインスタンスを作成します(広告キー(HiveAdKey)が入力されていない場合、Hive Adizの初期化中にデフォルトキー(is_default=true)でインスタンスが作成されます。)
                        rewardedInterstitialAd = AdizRewardedInterstitial.initialize(activity, adizListener);
                } else {
                    // placementIdを入力することで報酬付きインタースティシャル広告のインスタンスを作成できます。
                    rewardedInterstitialAd = AdizRewardedInterstitial.initializeWithPlacementId(activity, placementId, adizListener);
                }

                // requestLoadAd();
        }

        private void requestLoadAd() {
                // 報酬付きインタースティシャル広告を読み込みます。
                if(rewardedInterstitialAd != null && rewardedInterstitialAd.isInitialized()) rewardedInterstitialAd.load();
        }

        private void  requestShowAd() {
                // 報酬付きインタースティシャル広告を表示します。
                if(rewardedInterstitialAd != null && rewardedInterstitialAd.isLoaded()) rewardedInterstitialAd.show();
        }

        private void  requestDestroyAd() {
                // 報酬付きインタースティシャル広告を削除します。
                if(rewardedInterstitialAd != null) rewardedInterstitialAd.destroy();
        }
}

アプリオープニング広告 (AppOpen)

アプリの状態がバックグラウンドからフォアグラウンドに変更されるときに、事前にロードしておいた(load())広告を表示するアプリオープニング広告です。広告をロードしてから3時間が経過した後にshow()を呼び出すと、広告が自動的に再ロードされ、その後広告が表示されます。一度でも広告を表示した後は、広告は自動的にロードされません。

import android.app.Activity
import android.os.Bundle
import com.hive.adiz.AdizError
import com.hive.adiz.AdizListener
import com.hive.adiz.base.AdizAppOpen
import com.hive.adiz.common.AdRevenueData

class AppOpenExample : Activity() {

        var appOpen: AdizAppOpen? = null

        override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)

                // ...

                // requestInitAd(this)
        }

        val adizListener = object : AdizListener() {
                override fun onLoad() {
                        //
                }

                override fun onFail(loadError: AdizError) {
                        var code = loadError.getCode() // エラーコード
                        var message = loadError.getMessage() // エラーメッセージ
                }

                override fun onShow() {
                        //
                }

                override fun onClick() {
                        //
                }

                override fun onPaidEvent(adRevenueData: AdRevenueData) {
                        var revenue = adRevenueData.revenue // 広告が表示されたときの収益
                        var currency = adRevenueData.currency // 広告が表示されたときの収益の通貨コード
                }

                override fun onClose() {
                        // requestDestroyAd()
                }
        }

        fun requestInitAd(activity: Activity, hiveAdKey: String? = null) {

                if(hiveAdKey.isNullOrEmpty()) {
                        // アプリオープニング広告インスタンスを作成します。
                        appOpen = AdizAppOpen.initialize(activity, adizListener)
                } else {
                        // hiveAdKeyを入力することでアプリオープニング広告インスタンスを作成できます。
                        appOpen = AdizAppOpen.initialize(activity, hiveAdKey, adizListener)
                }

                // requestLoadAd()
        }

        fun requestInitAdWithPlacementId(activity: Activity, placementId: String? = null) {

                if(placementId.isNullOrEmpty()) {
                        // アプリオープニング広告インスタンスを作成します。
                        appOpen = AdizAppOpen.initialize(activity, adizListener)
                } else {
                        // placementIdを入力することでアプリオープニング広告インスタンスを作成できます。
                        appOpen = AdizAppOpen.initializeWithPlacementId(activity, placementId, adizListener)
                }

                // requestLoadAd()
        }

        fun requestLoadAd() {
                // アプリオープニング広告を読み込みます。読み込みが完了すると、アプリがバックグラウンドからフォアグラウンドに移動したときに広告が自動的に表示されます。
                // 広告が少なくとも一度表示されると、再表示されることはないため、広告を表示し続けたい場合は、onClose() コールバック内で再度 appOpen.load() を呼び出す必要があります。
                appOpen?.let {
                        if(it.isInitialized()) it.load()
                }
        }

        fun requestDestroyAd() {
                // アプリオープニング広告を削除します。
                appOpen?.destroy()
        }
}
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.hive.adiz.AdizError;
import com.hive.adiz.AdizListener;
import com.hive.adiz.base.AdizAppOpen;
import com.hive.adiz.common.AdRevenueData;

public class AppOpenExample extends Activity {

        AdizAppOpen appOpen = null;

        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                //...

                // requestInitAd(this, null);
        }

        AdizListener adizListener = new AdizListener() {
                @Override
                public void onLoad() {
                        //
                }

                @Override
                public void onFail(@NonNull AdizError loadError) {
                        int code = loadError.getCode(); // エラーコード
                        String message = loadError.getMessage(); // エラーメッセージ
                }

                @Override
                public void onShow() {
                        //
                }

                @Override
                public void onClick() {
                        //
                }

                @Override
                public void onPaidEvent(@NonNull AdRevenueData adRevenueData) {
                        double revenue = adRevenueData.getRevenue(); // 広告が表示されたときの収益
                        String currency = adRevenueData.getCurrency(); // 広告が表示されたときの収益の通貨コード
                }

                @Override
                public void onClose() {
                        // requestDestroyAd();
                }
        };

        public void requestInitAd(Activity activity, String hiveAdKey) {

                if(TextUtils.isEmpty(hiveAdKey)) {
                        // アプリオープニング広告インスタンスを作成します。(広告キー(HiveAdKey)が入力されていない場合、Hive Adizの初期化中にデフォルトキー(is_default=true)でインスタンスが作成されます。)
                        appOpen = AdizAppOpen.initialize(activity, adizListener);
                } else {
                        // hiveAdKeyを入力することでアプリオープニング広告インスタンスを作成できます。
                        appOpen = AdizAppOpen.initialize(activity, hiveAdKey, adizListener);
                }

                // requestLoadAd();
        }

        public void requestInitAdWithPlacementId(Activity activity, String placementId) {

                if(TextUtils.isEmpty(placementId)) {
                        // アプリオープニング広告インスタンスを作成します。(広告キー(HiveAdKey)が入力されていない場合、インスタンスはHive Adizの初期化中にデフォルトキー(is_default=true)で作成されます。)
                        appOpen = AdizAppOpen.initialize(activity, adizListener);
                } else {
                        // placementIdを入力することでアプリオープニング広告インスタンスを作成できます。
                        appOpen = AdizAppOpen.initializeWithPlacementId(activity, placementId, adizListener);
                }

                // requestLoadAd();
        }

        private void requestLoadAd() {
                // アプリオープニング広告を読み込みます。
                if(appOpen != null && appOpen.isInitialized()) appOpen.load();
        }

        private void  requestDestroyAd() {
                // アプリオープニング広告を削除します。
                if(appOpen != null) appOpen.destroy();
        }
}