コンテンツにスキップ

Android

Adiz Android

Adiz Androidは、AdMobが提供する広告露出機能をより簡単に使用できるようにするために、Hiveが提供するAndroid用の広告モジュールです。Adiz Androidが提供する広告の種類は以下の通りです。

  • インタースティシャル広告
  • バナー広告
  • ネイティブ広告
  • 報酬型広告
  • 報酬型インタースティシャル広告
  • アプリオープン広告

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

インストール

アプリレベルのGradleファイル(app/build.gradle)にAdizライブラリのエントリを追加します。

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

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つあります。

  • Hiveコンソールにテストデバイスを登録した後、デモ広告で設定してください(推奨):
    コンソールガイドのテストデバイスの管理セクションを参照してください。
  • 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つあります。

  • テストデバイスをHiveコンソールに登録した後、広告ユニットIDを使用に設定してください(推奨):
    コンソールガイドのテストデバイスの管理セクションを参照してください。

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

Note

テストデバイスを登録せずに実際の広告を露出するテストを行うと、それは無効なトラフィックと見なされ、あなたのAdMobアカウントがブロックされ、さらなる広告露出が妨げられる可能性があります。テストデバイスを登録すると、広告露出中に「テストモード」または「テスト広告」(ネイティブ広告)が表示されます。商業配信中はテストデバイスを無効にする必要があります。


バナー、インタースティシャル広告、または報酬型広告


ネイティブ広告


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)の行を追加します。コピーしたテストデバイスIDをDEVICE_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?) {
                        // ... omitted
                }
        })
}
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()) {
                                // ... omitted
                        }
                }
        });
}


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()) {
                                // ... omitted
                        }
                }
        });
}


広告インスペクタの使用

広告インスペクタは、テストデバイス上で実際の広告をリクエストして表示するプロセスをリアルタイムで分析するアプリ内オーバーレイツールです。広告の読み込みにかかった時間を通知し、表示に失敗した場合はその理由を提供します。また、特定の広告ネットワークを指定して、広告が正しく表示されているか確認することもでき、問題がある場合はコードレベルでデバッグできます。これらすべては、広告インスペクタのUIとともに行われます。これはGoogle Mobile Ads SDKバージョン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)からの場合にのみ表示されます。Adizは、Google UMP(ユーザーメッセージングプラットフォーム)を通じてGDPR同意ポップアップの表示をサポートしています。AdMobコンソールでGDPRメッセージを作成した後、Adizを初期化して、ヨーロッパおよび英国からアクセスするユーザーにGDPRポップアップを表示します。

Warning

ヨーロッパおよび英国以外の地域を対象としている場合、たとえば、国内のみでサービスを提供する予定の場合は、GDPR同意ポップアップの表示(ヨーロッパ、英国)ステップをスキップし、Adiz.initializeForNonGDPR()メソッドを使用して初期化を進めることができます。
Adiz.initialize()メソッドを使用して初期化する場合、Adizの初期化が正常に進行するためには、AdMobコンソールにGDPRメッセージを書く必要があります。

GDPRメッセージの作成

1) Google AdMob ダッシュボードにアクセスして、GDPR メッセージを作成します。GDPR メッセージを作成する前に、GDPR メッセージ作成ガイドを参照してください。

GDPRメッセージを作成する際には、使用したいメディエーションを広告パートナーのリストに追加する必要があります。 メディエーションを追加する方法は次のとおりです。

1) Google AdMob ダッシュボードの プライバシーとメッセージング > 欧州規制 > 設定 タブに移動し、'広告パートナーのレビュー > カスタム広告パートナー' の編集アイコンをクリックします。 2) GDPR に基づいて Google に認定されたすべてのメディエーションパートナーを一括で追加するためにチェックするか、必要なメディエーションパートナーのみを選択して 追加 をクリックします。

GDPRメッセージを書いた場合、GDPR同意ポップアップは、Adizを初期化すると自動的に表示されます。

GDPR同意/撤回機能の実装

GDPR同意ポップアップ内の項目は、ユーザーがいつでも同意状況を変更できるようにする必要があります。たとえば、ユーザーは最初はGDPRに同意しないかもしれませんが、後でパーソナライズされた広告を表示するために再度同意したいと思うことがあります。逆に、ユーザーは最初はGDPRに同意していたが、個人情報を提供したくなくなったために同意を撤回したいと思うこともあります。これらの状況に対処するために、アプリ開発者はユーザーが各項目に再度同意するか、既存の同意を撤回できる機能を実装する必要があります。GDPR同意/撤回機能を実装するには、次の手順に従ってください。

  1. アプリにGDPR同意ポップアップを再表示できるボタンUIを実装します。
  2. Adizの初期化を実装する際、isPrivacyOptionsRequired()を呼び出して、ヨーロッパおよび英国からアクセスしているユーザーに上記のボタンUIを表示し、それ以外の場合は表示しないでください。ヨーロッパまたは英国からアクセスしているユーザーがボタンをクリックした場合、showPrivacyOptionsFormを呼び出してGDPR同意ポップアップを再表示します。これにより、ユーザーはアプリ内の「オプションを管理」などのボタンを押すことで、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) {
                                    // ... omitted
                                    // 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) {
            // Call GDPR consent options form
            if(AdizConsentManager.isPrivacyOptionsRequired()) {
                    AdizConsentManager.showPrivacyOptionsForm(activity, new AdizConsentManager.ConsentListener() {
                            @Override
                            public void onResult(@NonNull AdizError error) {
                                    // No need to do any error handling.
                            }
                    });
            }
    }

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

同意年齢未満のタグ(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 で設定された同意年齢は、その年齢未満のユーザーに自動的に適用されます。

ただし、ユーザーがAdiz.initializeを実行する前にAdizConsentManager.setUserPrivacySettings APIを直接呼び出すと、Hive SDKによって設定された同意年齢設定は適用されず、AdizConsentManager.setUserPrivacySettings API呼び出し中に設定された値が優先されます。

 

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?) {
                        // ... omitted
                }
        })
}
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()) {
                                // ... omitted
                        }
                }
        });
}

GDPRテストデバイスのセットアップ

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

  1. Adizを初期化して初期化します。これはテストデバイスIDを確認するための初期化であり、GDPR同意メッセージを書く必要はありません。
  2. デバイスIDを確認するメッセージがあるかどうか、logcatの出力を確認してください。以下は例のメッセージです。

    Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
    
  3. メッセージ内のデバイスIDを確認してください(例:33BE2250B43518CCDA7DE426D04EE231)。
  4. デバイスIDをコピーします。
  5. 既存のAdiz初期化コード内でAdizGDPRManager.setTestDevice(DEVICE_ID)Adiz.initializeを実行する前に追加します。
  6. GDPR同意メッセージを書くを行い、GDPR同意ポップアップが正しく表示されるようにAdizを再初期化します。
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?) {
                        // ... omitted
                }
        })
}
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()) {
                                // ... omitted
                        }
                }
        });
}

COPPA子供ターゲティングタグ設定

子供のオンラインプライバシー保護法(COPPA)に従い、アプリ開発者は広告リクエストを行う際に、Googleがコンテンツを子供向けとして扱うべきかどうかを子供ターゲティングタグ(tagForChildDirectedTreatment, TFCD)を設定することで指定できます。子供向けとして扱われるようにするには、AdizConsentManager.setUserPrivacySettingsを呼び出してからAdiz.initializeを実行する必要があります。Hive SDKを使用してAdizを利用する場合、子供ターゲティングタグは自動的に適用されるため、追加の設定は必要ありません。

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?) {
                        // ... omitted
                }
        })
}
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()) {
                                // ... omitted
                        }
                }
        });
}

広告仲介を追加

AdizはAdMob仲介を使用して広告を表示できます。AdMob仲介を追加するには、以下の手順に従ってください。

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

AdMobコンソールで広告ソースの統合を進めます。続行するには、以下の表に従ってください。

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

Adizアダプターの追加

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

dependencies {
    // ... (생략)

    implementation 'com.com2us.android.adiz:hive-adiz:2.1.3' // 공통 (필수 추가)

    implementation 'com.com2us.android.adiz:hive-adiz-adapter-applovin:2.1.3'   // AppLovin 연동시 추가
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-liftoff:2.1.3'    // Liftoff Monetize 연동시 추가
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-meta:2.1.3'       // Meta Audience Network 연동시 추가
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-pangle:2.1.3'     // Pangle 연동시 추가
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-unityads:2.1.3'   // Unity Ads 연동시 추가
    implementation 'com.com2us.android.adiz:hive-adiz-adapter-ironsource:2.1.3' // ironSource 연동시 추가
}

 

PangleまたはironSourceを統合する際に使用されるGradleバージョンに応じて、設定コードを追加してください。

  • Gradle 7.0 以上を使用している場合は、プロジェクトレベルの settings.gradledependencyResolutionManagement セクションに repository 設定を追加してください。

    // Gradle 7.0以上を使用する場合、settings.gradleを設定します
    
    dependencyResolutionManagement {
            repositories {
                    maven { url 'https://artifact.bytedance.com/repository/pangle/' }   // Pangleを統合する際に追加
            maven { url 'https://android-sdk.is.com/' }                         // ironSourceを統合する際に追加
            }
    }
    
  • Gradleのバージョンが7.0未満の場合、プロジェクトレベルのbuild.gradleallprojectsセクションにrepository設定を追加してください。

    // Gradleバージョン7.0未満を使用する場合のbuild.gradleの設定
    
    allprojects {
            repositories {
                    maven {
                            url 'https://artifact.bytedance.com/repository/pangle'  // Pangleを統合する際に追加
                url 'https://android-sdk.is.com/'                       // ironSourceを統合する際に追加
                    }
    
            }
    }
    

 

Adizアダプタの設定が正しく適用されているか確認するには、アプリを実行し、Ad Inspector画面の設定リストを確認してください。

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>();

                試してみてください {
                    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() {
    // If not responding to 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"
            }
        ]
    }

 

テストモードで初期化すると、Hive コンソールにAdMob広告キーを登録していなくても、テスト広告キーのリストが受け取れます。プロダクションモードで初期化すると、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) 広告表示後に有料イベントを受け取る時点、広告収益情報が提供されます O
onClose() 広告終了
  • 広告が終了した後、同じ広告インスタンスを再度表示するには、load()を再度呼び出し、その後show()を呼び出す必要があります。
  • 広告の表示を停止するには、destroy()を呼び出して広告インスタンスを削除します。
X
onRewarded(rewardItem: RewardItem) 報酬型広告(rewardedrewarded interstitial)で広告表示後にユーザーが報酬を受け取る時点 X
var adizListener = object : AdizListener() {
    override fun onLoad() {
        // 広告が読み込まれたときに呼び出されます。
        // 広告の読み込みが成功した場合、広告インスタンスの.show()を希望のタイミングで呼び出して広告を表示する必要があります。
    }

    override fun onFail(loadError: AdizError) {
        // Called if the ad load failed or the ad display failed for some other reason.
    }

    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() {
        // Called when the ad is clicked.
    }

    @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) {
        // Called when a reward occurs for watching the ad in rewarded, rewarded interstitial ads.
        String rewardType = rewardItem.getItemType(); // Reward item type
        int rewardAmount = rewardItem.getItemAmount(); // Reward item quantity
    }
};

エラーコード

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 無効なユニットID
-107 MediationNoFill 仲介アダプタが広告リクエストを処理できませんでした
-108 AlreadyLoaded すでに読み込まれた状態です
-109 CannotRequestAds 広告をリクエストできません
-201 GdprConsentError GDPR同意エラー
-202 IsNotPrivacyOptionsRequired GDPR同意ポップアップを表示できないか、表示する必要がありません

広告の表示と広告の終了

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

  1. 表示したい広告のタイプごとに広告クラスで広告インスタンスを作成します。表示したい広告がデフォルト広告でない場合は、初期化から取得した広告キーまたはプレースメントIDを入力する必要があります。
    広告キー(hiveAdKey)またはプレースメントID(placementId)を入力しない場合、デフォルト広告インスタンスが作成されます。プレースメントIDはHiveコンソールで設定でき、詳細についてはコンソールガイドの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() // error code
            var message = loadError.getMessage() // error message
        }

        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() // error code
            var message = loadError.getMessage() // error message
        }

        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()) {
            // バナー広告インスタンスを作成します。
            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();
        }
}

ネイティブ広告 (ネイティブ)

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

 

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

テンプレート アライメント バナーサイズ定数
小サイズ 上 / 下 BannerSize.NORMAL
中サイズ 中央(固定) 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();
        }
}

報酬広告

これは、ユーザーが一定の時間広告を視聴することで報酬を受け取る報酬広告です。報酬が付与されると、報酬アイテムの情報が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();
        }
}

報酬付きインタースティシャル

これは、ユーザーが一定の時間広告を視聴することで報酬を受け取る報酬付きインタースティシャル広告です。報酬が付与されると、報酬アイテムの情報が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()) {
                        // Creates an app opening ad instance.
                        appOpen = AdizAppOpen.initialize(activity, adizListener)
                } else {
                        // You can create an app opening ad instance by entering the 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();
        }
}