コンテンツにスキップ

iOS

Adiz iOS

Adiz iOSは、Hiveによって提供されるiOS用の広告モジュールで、AdMobが提供する広告露出機能をより簡単に使用できるようにします。Adiz iOSが提供する広告の種類は以下の通りです:

  • インタースティシャル広告
  • バナー広告
  • ネイティブ広告
  • リワード広告
  • リワードインタースティシャル広告
  • アプリオープニング広告

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

前提条件

Adiz iOS 開発環境を設定します。

インストール

XcodeプロジェクトのInfo.plistファイルにGADApplicationIdentifierキーを追加し、AdMobId値(ca-app-pub-XXXXX~YYYYY形式)をこのキーの値として追加します。

GADApplicationIdentifier
ca-app-pub-XXXXX~YYYYY

さらに、iOS 14以降では、<i>Info.plist</i>ファイルにSKAdNetworkリストを追加するために、info.plistを更新するガイドを参照してください。   

その後、プロジェクトのCocoaPods設定(Podfile)に以下を追加してください。

source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/Com2uSPlatformCorp/HiveAdiz-iOS.git'
platform :ios, '12.0'

target 'UnityFramework' do
  pod 'HiveAdizUnityPlugin', '2.0.1'
end

target 'Unity-iPhone' do
end

use_frameworks!

# fix for dyld issue in pods when using Project
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      # xcode 15 Toolchain Issue
      xcconfig_path = config.base_configuration_reference.real_path
      xcconfig = File.read(xcconfig_path)
      xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
      File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
      # end

      config.build_settings["BUILD_LIBRARY_FOR_DISTRIBUTION"] = "YES"
      if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 12.0
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
      end
    end
  end
end

$pod installを実行してCocoaPodの設定を適用します。

テスト広告の設定

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

  1. テストモードを有効にする: AdMobによって発行されたテスト広告のみを表示します。
  2. テストデバイスを登録し広告を表示する: テスト目的で実際の広告を表示します。テスト中に無効なトラフィックが発生しないように、テスト広告を表示するデバイスを登録してください。

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

開発段階では、テストモードを有効にして、テスト広告のクリックが広告主に料金を発生させないようにします。テストモードが有効になると、テスト広告のみが表示されます。テストモードでは、テスト広告を表示するためにHiveコンソールにAdMob広告キーを入力する必要はありません。商業配信のためにはテストモードを無効にしてください。

Note

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

import HiveAdiz

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

// Adizモジュールのログ記録を有効にします。ログ記録はテストモードでのみ使用するべきです。商業配布のためには以下の行をコメントアウトしてください。
Adiz.setLogEnable(true)
#import <HiveAdiz/HiveAdiz-Swift.h> 

// テストモードを有効にします。商業配布のためには以下の行をコメントアウトしてください。
[Adiz setTestMode: true];

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

広告表示のためのテストデバイスの設定

テスト広告を表示するためにテストデバイスを登録する必要がある状況は次のとおりです:

  • Hive コンソールに登録された AdMob 広告キーが正しく機能しているかテストする場合
  • GDPR メッセージを書いた後に GDPR 同意ポップアップが正しく機能していることを確認したい場合
  • 広告リクエストを分析しデバッグするために Ad Inspector を実行する必要がある場合

テストデバイスを登録せずに実際の広告でテストすることは、無効なトラフィックと見なされる可能性があり、その結果、あなたのAdMobアカウントがブロックされ、広告を表示できなくなることがあります。テストデバイスを登録すると、広告表示中に「テストモード」または「テスト広告」(ネイティブ広告用)が表示されます。テストデバイスは、本番環境へのデプロイ時には無効にする必要があります。


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


ネイティブ広告


テストデバイスを登録するには、まずテストデバイスIDを特定します。テストデバイスID(例: B74F6468-1516-467C-99AD-CC5973C5DB52)は、次の2つの方法を使用して見つけることができます:

  1. Adiz.Initialize()を呼び出した後にLogcatログを確認してください:
    このデバイスのデバッグモードを有効にするには、次のように設定します: UMPDebugSettings.testDeviceIdentifiers = @[B74F6468-1516-467C-99AD-CC5973C5DB52]
  2. Adiz.Initialize()を呼び出した後、広告の種類に関係なくinitialize()load()を呼び出した後にLogcatログを確認してください:
    GADMobileAds.sharedInstance().requestConfiguration.testDeviceIdentifiers = [ "B74F6468-1516-467C-99AD-CC5973C5DB52" ]


テストデバイスIDを特定した後、既存のAdiz初期化コードでAdiz.initializeを実行する前にAdiz.SetTestDevice(DEVICE_ID)の行を追加します。DEVICE_IDをコピーしたテストデバイスIDに置き換えます。

func setTestDevice(testId: String) {
        Adiz.setTestDevice(testId)
}
- (void)setTestDevice: (NSString *)testId {
        [Adiz setTestDevice: testId];
}


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

広告インスペクターは、テストデバイス上で実際の広告をリクエストして表示するプロセスをリアルタイムで分析するためのアプリ内オーバーレイツールです。広告の読み込みにかかった時間を通知し、表示に失敗した場合はその理由を提供します。さらに、特定の広告ネットワークを指定して、広告が正しく表示されているかどうかを確認でき、問題がある場合はコードレベルでデバッグできます。これらのすべてのプロセスは、広告インスペクターUIを使用して実行されます。これは、Google Mobile Ads SDKのiOSバージョン7.68.0以上に含まれており、AdizDeveloperTool.OpenAdInspectorを呼び出すことで使用できます。

Ad Inspectorを使用するには、次の2つの条件を満たす必要があります:

  • テストデバイスをAdiz.setTestDeviceで設定します こちら
  • Adiz.Initializeで初期化を完了します こちら
func openAdInspector(viewController: UIViewController) {
        AdizDeveloperTool.openAdInspector(viewController)
}
- (void)openAdInspector: (UIViewController *)viewController {
        [AdizDeveloperTool openAdInspector: viewController];
}

Adiz appIDの設定

Hive コンソール AppCenter に登録した Adiz AppID を設定してください。これが設定されていない場合、バンドル ID が使用されます。

Adiz.setAppId(appId)
[Adiz setAppId: appId];

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

使用したい Hive コンソールサーバーを設定します。デフォルトは real です。商用サーバーを使用しても、テストモードが有効になっている場合はテスト広告が表示されます。

  • Hive テストコンソールサーバー: AdizZoneType.test
  • Hive サンドボックスコンソールサーバー: AdizZoneType.sandbox
  • Hive 商用コンソールサーバー: AdizZoneType.real
Adiz.setZone(AdizZoneType.real)
[Adiz setZone: AdizZoneTypeReal];

ユーザー特有の広告の表示

iOS 14.5+でのATT(アプリ追跡透明性)の導入により、プライバシー保護が強化されました。その結果、ユーザー特有の広告は、ユーザーがATT同意ポップアップでアクティビティ追跡に同意した場合にのみ表示されます。ユーザー特有の広告を表示して広告収益を最大化するためには、IDFA(広告主の識別子)メッセージを作成する必要があります。

AdMob ダッシュボードのガイドに従って、IDFA メッセージを作成して公開します。

 

IDFAメッセージを作成して公開した後、ユーザートラッキングの権限を設定します。以下の手順に従って、Info.plistにキーを追加してください。

  1. Xcodeプロジェクトウィンドウのプロジェクトナビゲーターでプロジェクトを選択します。
  2. TARGETSリストでアプリを選択します。
  3. Infoタブをクリックします。
  4. InfoタブでCustom iOS Target Propertiesセクションをクリックします。
  5. Custom iOS Target Propertiesリスト内を右クリックします。
  6. Add Rowメニューをクリックします。
  7. KeyフィールドにNSUserTrackingUsageDescriptionを入力し、Localization file > Base.Iprojフォルダー > InfoPlist.stringsに指定された値を追加します。

 

次に、ローカリゼーションファイルに指定されたアプリユーザーからの許可承認を要求するメッセージを書いてください(一般設定 > 許可リクエスト設定)。許可リクエストポップアップメッセージを入力しない場合、ユーザーアクセス許可に関する追加説明ガイドが不足しているため、レビュー過程でアプリが拒否される可能性があります。

 

これが完了すると、ATT同意ポップアップが自動的に表示されます。ユーザーがATT同意ポップアップで「許可」をクリックすると、IDFAが有効になり、ユーザーにパーソナライズされた広告が表示されます。

あなたのゲームがヨーロッパとUKEEA & UK)を対象とする場合、GDPR(一般データ保護規則)同意ポップアップを表示する必要があります。GDPR同意ポップアップは、ユーザーのデバイスのIPアドレスがヨーロッパまたはUKEEA & UK)からの場合にのみ表示されます。 Adizは、GDPR同意ポップアップを表示するために、GoogleUMPユーザー メッセージング プラットフォーム)をサポートしています。

GDPRメッセージGDPR messageAdMobコンソールで作成した後、ユーザーがヨーロッパおよび英国からアクセスすると、GDPRポップアップが表示されます。Adizを初期化するとき。

Warning

たとえヨーロッパやイギリス以外の地域を対象にしていても、Adizの初期化が正しく実行されるためには、AdMobコンソールでGDPRメッセージを作成する必要があります。

GDPRメッセージの作成

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

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

GDPR同意/撤回のオプションを実装する

GDPR同意ポップアップは、ユーザーがいつでも同意を変更できるようにする必要があります。たとえば、最初にGDPRに同意しなかったユーザーがパーソナライズされた広告を受け取りたい場合、同意することを希望するかもしれませんし、その逆もあります。このようなシナリオに対応するために、開発者はユーザーが再度同意するか、以前の同意を撤回する機能を実装する必要があります。GDPR同意/撤回機能を実装するには、以下の手順に従ってください:

  1. アプリにボタンUIを実装して、GDPR同意ポップアップウィンドウを再読み込みします。
  2. Adizの初期化を実装する際、isPrivacyOptionsRequired()を呼び出して、ヨーロッパおよび英国からアクセスするユーザーに対して上記のボタンUIを表示し、それ以外の場合は表示しないようにします。ヨーロッパおよび英国のユーザーがボタンを押した場合、showPrivacyOptionsFormを呼び出してGDPR同意ポップアップを再読み込みし、ユーザーがアプリ内の「オプションを管理」ボタンや類似のものでGDPRの詳細に対する同意をいつでも変更できるようにします。以下に示すshowPrivacyOptionsFormメソッドは説明目的のみであり、開発者が望む任意の形式で実装できます。
import HiveAdiz

func initialize(_ appId: String) {
        // ...
        // isPrivacyOptionsRequired はデフォルトで false です
        targetViewController.showPrivacyFormButton.isEnabled = AdizConsentManager.isPrivacyOptionsRequired())

        // HiveAdiz 初期化
        Adiz.initialize(targetViewController) { error, json in
                // ...
                // showPrivacyOptionsForm ボタン有効チェック
                targetViewController.showPrivacyFormButton.isEnabled = AdizConsentManager.isPrivacyOptionsRequired()
                // ...
        }
} 

func showPrivacyOptionsForm(_ targetViewController: UIViewController) {
        // GDPRフォームを表示
        if AdizConsentManager.isPrivacyOptionsRequired() {
    AdizConsentManager.showPrivacyOptionsForm(targetViewController) { error in
                        // エラーハンドリングは必要ありません。
                }
        }
}
    #import <HiveAdiz/HiveAdiz-Swift.h>

    (void)initialize: (NSString *)appId {
   // ...
   // isPrivacyOptionsRequiredはデフォルトでfalseです
   targetViewController.showPrivacyFormButton.enabled = [AdizConsentManager isPrivacyOptionsRequired];

   // HiveAdiz 初期化    
   [Adiz initialize: targetViewController handler:^(AdizError * error, NSDictionary<NSString *,id> * json) {
       // ...
       // showPrivacyOptionsForm ボタンの有効チェック
       targetViewController.showPrivacyFormButton.enabled = [AdizConsentManager isPrivacyOptionsRequired];
       // ...
   }];
    } 

    (void)showPrivacyOptionsForm: (UIViewController*) targetViewController {
   // GDPRフォームを表示
   if ([AdizConsentManager isPrivacyOptionsRequired]) {
    [AdizConsentManager showPrivacyOptionsForm: targetViewController handler:^(AdizError *error) {
           // エラーハンドリングは必要ありません。
       }];
   }
    }

同意年齢未満のタグ設定する

同意年齢TFUA)のにいるユーザーに対して、広告リクエストを構成することができます。ヨーロッパ経済地域(EEA)、イギリス、スイスに居住するユーザーを限定データ処理の対象とします。子供向けのアプリの場合、AdizConsentManager.SetUserPrivacySettingsを使用して、ユーザーが同意年齢未満であることを設定できます。ヨーロッパの国々にはいくつかの違いがありますが、GDPRは親の同意が必要な年齢を16歳未満と定義しています。同意年齢の設定は、Adiz.initializeを実行する前に構成する必要があります。

Warning

同意年齢未満のユーザーのためのGDPRタグsetTagForUnderAgeOfConsentと、子供向けのCOPPAタグsetTagForChildDirectedTreatmentの両方がtrueに設定されている場合、COPPAタグが優先されます。したがって、両方をtrueに設定して同時に使用しないでください。

Note

Hive SDK v4 24.2.0 以上を Adiz 2.0.1 以上と一緒に使用する場合、Hive SDK はユーザーの年齢に応じて同意年齢未満のユーザーに自動的にタグを適用します。したがって、AdizConsentManager.SetUserPrivacySettings を呼び出す必要はありません。

func initialize(_ appId: String) {
bool isTagForUnderAgeOfConsent = false // change this to true if the user is a child

let privacySet = PrivacySettings.Builder()
            .setTagForUnderAgeOfConsent(isTagForUnderAgeOfConsent)

AdizConsentManager.setUserPrivacySettings(privacySet.build())

// HiveAdiz 初期化
Adiz.initialize(targetViewController) { error, json in
        // ...
    }
}
(void)initialize: (NSString *)appId {
bool isTagForUnderAgeOfConsent = false; // change this to true if the user is a child

PrivacySettingsBuilder* privacySet = [[PrivacySettingsBuilder alloc] init];
privacySet = [builder setTagForUnderAgeOfConsent: isTagForUnderAgeOfConsent];

[AdizConsentManager setUserPrivacySettings: [privacySet build]];

// HiveAdiz 初期化
[Adiz initialize: targetViewController handler:^(AdizError * error, NSDictionary<NSString *,id> * json) {
        // ...
}];
}

GDPRテストデバイスの設定

GDPR同意ポップアップは、デバイスのIPアドレスがヨーロッパまたは英国からの場合にのみ表示されます。開発中は、GDPRテストデバイスを設定することで、デバイスのIPアドレスに関係なくGDPR同意ポップアップを強制的に表示させることができます。以下の手順に従ってGDPRテストデバイスを設定してください。以下の内容は、テストデバイスでの広告表示と同じです。

  1. 初期化 Adiz。この初期化の目的はテストデバイスIDを確認することであり、事前にGDPR同意メッセージを作成する必要はありません。
  2. Logcatのログ出力でデバイスIDを見つけます。以下はメッセージの例です: このデバイスのデバッグモードを有効にするには、次のように設定します: UMPDebugSettings.testDeviceIdentifiers = @[B74F6468-1516-467C-99AD-CC5973C5DB52]

デバイスIDを取得します(例: B74F6468-1516-467C-99AD-CC5973C5DB52)。

  1. デバイスIDをコピーします。
  2. 既存のAdiz初期化コードでAdiz.initializeを実行する前にAdiz.setTestDevice(DEVICE_ID)を追加します。
  3. GDPR同意メッセージを作成し、GDPR同意ポップアップが正しく表示されるようにAdizを再初期化します。
func initialize(_ appId: String) {
// ...
// Adiz.initializeの前にTestDeviceを設定します。例 @"B74F6468-1516-467C-99AD-CC5973C5DB52"
Adiz.setTestDevice("B74F6468-1516-467C-99AD-CC5973C5DB52")

// HiveAdiz 初期化
Adiz.initialize(targetViewController) { error, json in
    // ...
}
}
(void)initialize: (NSString *)appId {
// ...
// Adiz.initializeの前にTestDeviceを設定します。例 @"B74F6468-1516-467C-99AD-CC5973C5DB52"
[Adiz setTestDevice: @"B74F6468-1516-467C-99AD-CC5973C5DB52"];

// HiveAdiz 初期化
[Adiz initialize: targetViewController handler:^(AdizError * error, NSDictionary<NSString *,id> * json) {
    // ...
}];
}

COPPA子供向け処理タグ設定

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

func initialize(_ appId: String) {
        bool isTagForChildDirectedTreatment = false // 子供向けの処理をする場合はtrueに変更してください

        let privacySet = PrivacySettings.Builder()
                .setTagForChildDirectedTreatment(isTagForUnderAgeOfConsent)

        AdizConsentManager.setUserPrivacySettings(privacySet.build())

        // HiveAdiz 初期化
        Adiz.initialize(targetViewController) { error, json in
                // ...
        }
}
- (void)initialize: (NSString *)appId {
        bool isTagForChildDirectedTreatment = false; // 子供向けの処理を行うにはtrueに変更してください

        PrivacySettingsBuilder* privacySet = [[PrivacySettingsBuilder alloc] init];
        privacySet = [builder setTagForChildDirectedTreatment: isTagForChildDirectedTreatment];

        [AdizConsentManager setUserPrivacySettings: [privacySet build]];

        // HiveAdiz 初期化
        [Adiz initialize: targetViewController handler:^(AdizError * error, NSDictionary<NSString *,id> * json) {
                // ...
        }];
}

ad メディエーションを追加

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 アダプター

あなたのCocoaPods Podfileに依存関係を追加します。

# ...

$HIVE_ADIZ_VERSION = '2.0.1'

def adiz
  pod 'HiveAdiz', $HIVE_ADIZ_VERSION
end

def adizAdapter
  pod 'HiveAdizAdapterAppLovin', $HIVE_ADIZ_VERSION
  pod 'HiveAdizAdapterPangle', $HIVE_ADIZ_VERSION
  pod 'HiveAdizAdapterUnityAds', $HIVE_ADIZ_VERSION
  pod 'HiveAdizAdapterMeta', $HIVE_ADIZ_VERSION
end

target 'MyGame-mobile' do
  adiz
  adizAdapter
end

# ...

 

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

Adizの初期化

Adizの初期化は、あらゆる種類の広告を公開する前の重要なステップです。Adizを初期化すると、広告を表示するために必要な広告キーを受け取ることができます。テストモードが有効になっている場合、テストキーを受け取ります。Hive SDKを使用している場合は、AuthV4.setupを呼び出した後にAdizの初期化を進めてください。

Note

あなたのゲームがヨーロッパおよび英国(EEA & UK)地域を対象としていて、Hive SDKを使用していない場合、Adizの初期化を進める前にGDPRの同意が必要です。GDPRの同意を取得する方法の詳細については、Google AdMobガイドを確認してください。

import HiveAdiz

// Adizを初期化中
Adiz.initialize(targetViewController) { error, json in
        if error.isSuccess,
                let responseList = json?["keys"] as? [[String:Any]] {

                var interstitialKeyList = [String]()
                var bannerKeyList = [String]()
                var nativeKeyList = [String]()
                var rewardedKeyList = [String]()
                var rewardedInterstitialKeyList = [String]()
                var appOpenKeyList = [String]()

                for response in responseList {
                        if let isDefault = response["is_default"] as? Bool,
                                isDefault == false {
                                let hiveAdKey = response["key"] as? String ?? ""
                                let hiveForm = response["form"] as? String ?? ""

                                switch hiveForm {
                                case "interstitial": interstitialKeyList.append(hiveAdKey)
                                case "banner": bannerKeyList.append(hiveAdKey)
                                case "native": nativeKeyList.append(hiveAdKey)
                                case "rewarded": rewardedKeyList.append(hiveAdKey)
                                case "rewarded_interstitial": rewardedInterstitialKeyList.append(hiveAdKey)
                                case "app_open": appOpenKeyList.append(hiveAdKey)
                                default: break
                                }
                        }
                }

                print("interstitialKeyList \(interstitialKeyList)");
                print("bannerKeyList \(bannerKeyList)");
                print("nativeKeyList \(nativeKeyList)");
                print("rewardedKeyList \(rewardedKeyList)");
                print("rewardedInterstitialKeyList \(rewardedInterstitialKeyList)");
                print("appOpenKeyList \(appOpenKeyList)");
        }
}
#import <HiveAdiz/HiveAdiz-Swift.h> 

// Adizを初期化中
[Adiz initialize: targetViewController handler:^(AdizError * error, NSDictionary<NSString *,id> * json) {
        if([error isSuccess] && json[@"keys"] != nil) {
                NSArray* responseList = json[@"keys"];

                NSMutableArray<NSString*> *interstitialKeyList = [[NSMutableArray alloc] init];
                NSMutableArray<NSString*> *bannerKeyList = [[NSMutableArray alloc] init];
                NSMutableArray<NSString*> *nativeKeyList = [[NSMutableArray alloc] init];
                NSMutableArray<NSString*> *rewardedKeyList = [[NSMutableArray alloc] init];
                NSMutableArray<NSString*> *rewardedInterstitialKeyList = [[NSMutableArray alloc] init];
                NSMutableArray<NSString*> *appOpenKeyList = [[NSMutableArray alloc] init];

                for (NSDictionary* response in responseList) {
                        // これは、広告キーのリストを設定する例です(is_default = false)広告キーを直接設定したい場合。
                        if (response[@"is_default"] != nil && [response[@"is_default"] boolValue] == false) {
                                NSString* hiveAdKey = response[@"key"];
                                NSString* hiveForm = response[@"form"];
                                if ([hiveForm isEqualToString: @"interstitial"]) {
                                        [interstitialKeyList addObject: hiveAdKey];
                                } else if ([hiveForm isEqualToString: @"banner"]) {
                                        [bannerKeyList addObject: hiveAdKey];
                                } else if ([hiveForm isEqualToString: @"native"]) {
                                        [nativeKeyList addObject: hiveAdKey];
                                } else if ([hiveForm isEqualToString: @"rewarded"]) {
                                        [rewardedKeyList addObject: hiveAdKey];
                                } else if ([hiveForm isEqualToString: @"rewarded_interstitial"]) {
                                        [rewardedInterstitialKeyList addObject: hiveAdKey];
                                } else if ([hiveForm isEqualToString: @"app_open"]) {
                                        [appOpenKeyList addObject: hiveAdKey];
                                }
                        }
                }

                NSLog(@"interstitialKeyList %@", interstitialKeyList);
                NSLog(@"bannerKeyList %@", bannerKeyList);
                NSLog(@"nativeKeyList %@", nativeKeyList);
                NSLog(@"rewardedKeyList %@", rewardedKeyList);
                NSLog(@"rewardedInterstitialKeyList %@", rewardedInterstitialKeyList);
                NSLog(@"appOpenKeyList %@", appOpenKeyList);
        }
}];

コールバックとして受信したJSONファイルには、広告キーのリストが含まれています。広告キーリストの形式は次のとおりです:

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

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

各広告フォーマットには、デフォルト広告として1つの広告があります("is_default":trueの広告)。最初に登録された広告が、その広告フォーマットのデフォルト広告になります。デフォルト広告のインスタンスを作成する際(initialize())、広告キー(hiveAdKey)を入力する必要はありません。デフォルト広告を変更するには、Hive コンソールで既存のデフォルト広告を削除し、広告を再登録する必要があります。

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

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

名前 説明 必須
onLoad() 広告の読み込み成功 O
onFail(error: AdizError) 失敗(error.getCode()およびerror.getMessage()を通じて失敗の理由を理解できます) O
onShow() 広告の表示成功 O
onClick() 広告がクリックされました O
onPaidEvent(_ revenueData: AdRevenueData) 広告が表示された後に有料イベントが受信されるポイントです。この時点で、広告収益情報が提供されます。 O
onClose() 広告が閉じられました
* 広告が閉じられた後、同じ広告インスタンスを再度表示するには、load()を呼び出してからshow()を呼び出す必要があります。
* もはや広告を表示したくない場合は、destroy()を呼び出して広告インスタンスを削除します。
X
onRewarded(_ rewardItem: RewardItem) 報酬付き広告(rewardedrewarded interstitial)の表示後にユーザーが報酬を受け取るポイント X
import HiveAdiz

class TestAdizListener: AdizListener {
        func onLoad() {
                // 広告が読み込まれたときに呼び出されます。
                // 広告の読み込みが成功した場合、広告を表示するために、適切なタイミングで広告インスタンスの .show() を呼び出す必要があります。
                print("[\(delegateTypeName)] onLoad")
        }
        func onFail(_ error: AdizError) {
                // 広告の読み込みが失敗した場合、または他の理由で広告の表示が失敗した場合に呼び出されます。
                print("[\(delegateTypeName)] onFail: ")
                print("(\(error.getCode())) \(error.getMessage() ?? "")")
        }
        func onShow() {
                // 広告が表示されたときに呼び出されます。
                print("[\(delegateTypeName)] onShow")
        }
        func onClick() {
                // 広告がクリックされたときに呼び出されます。
                print("[\(delegateTypeName)] onClick")
        }
        func onPaidEvent(_ revenueData: AdRevenueData) {
                // 広告の収益が生成されたときに呼び出されます。
                print("[\(delegateTypeName)] onPaidEvent: \(revenueData.getCurrency()) \(revenueData.getRevenue().description)")
                var revenue = revenueData.getRevenue() // 広告が表示されたときの収益
                var currency = revenueData.getCurrency() // 広告が表示されたときの収益の通貨コード
        }
        func onClose() {
                // 広告が閉じられたときに呼び出されます。
                // バナー、ネイティブ広告には onClose コールバックはありません。
                print("[\(delegateTypeName)] onClose")
        }
        func onRewarded(_ rewardItem: RewardItem) {
                // 報酬付き広告や報酬付きインタースティシャル広告を視聴した際に報酬が発生したときに呼び出されます。
                print("[\(delegateTypeName)] onRewarded")
                print("amount: \(rewardItem.getItemAmount()) type: \(rewardItem.getItemType())")

                var itemType = rewardItem.getItemType() // 報酬アイテムの種類
                var itemAmount = rewardItem.getItemAmount() // 報酬アイテムの数量    }}
#import <HiveAdiz/HiveAdiz-Swift.h>

@interface TestAdizListener : NSObject<AdizListener>
@end

@implementation TestAdizListener

- (void) onLoad {
        // 広告が読み込まれたときに呼ばれます。
        // 広告の読み込みが成功した場合、広告を表示するために、必要なタイミングで広告インスタンスの.show()を呼び出す必要があります。
        NSLog(@"[TestAdizListener] onLoad");
}

- (void) onFail:(AdizError *)error {
        // 広告の読み込みに失敗した場合や、他の理由で広告の表示に失敗した場合に呼ばれます。
        NSLog(@"[TestAdizListener] onFail: ");
        NSLog(@"errorCode: %ld, errorMessage: %@", (long)[error getCode], [error getMessage]);
}

- (void) onShow {
        // 広告が表示されたときに呼ばれます。
        NSLog(@"[TestAdizListener] onShow");
}

- (void) onClick {
        // 広告がクリックされたときに呼び出されます。
        NSLog(@"[TestAdizListener] onClick");
}

- (void) onPaidEvent:(AdRevenueData *)revenueData {
        // 広告の収益が生成されたときに呼び出されます。
        NSLog(@"[TestAdizListener] onPaidEvent: %@ %f", [revenueData getCurrency], [revenueData getRevenue]);
        double revenue = [revenueData getRevenue]; // 広告が表示されたときの収益
        NSString* currency = [revenueData getCurrency]; // 広告が表示されたときの収益の通貨コード
}

- (void) onClose {
        // 広告が閉じられたときに呼び出されます。
        // バナー、ネイティブ広告にはonCloseコールバックがありません。
        NSLog(@"[TestAdizListener] onClose");
}

- (void) onRewarded:(RewardItem *)rewardItem {
        // 広告を視聴した際に報酬が発生したときに呼ばれます。
        NSLog(@"[TestAdizListener] onRewarded");
        NSLog(@"amount: %ld type: %@", (long)[rewardItem getItemAmount], [rewardItem getItemType]);

        NSString* itemType = [rewardItem getItemType]; // 報酬アイテムの種類
        NSInteger itemAmount = [rewardItem getItemAmount]; // 報酬アイテムの数量
}

@end

エラーコード

Adiz.Initialize および AdizListeneronFail() が受信されたときのエラーコードとエラーメッセージは次のとおりです:

一般的なコード

番号 ケース 説明
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. 公開したい広告の種類ごとに広告クラスから広告インスタンスを作成します。公開したい広告がデフォルト広告でない場合は、初期化から取得した広告キーを入力する必要があります。広告キー(hiveAdKey)を入力しない場合、デフォルトの広告インスタンスが作成されます。
  2. 公開したい広告をload()で読み込みます。
  3. 読み込んだ広告をshow()で公開します。広告を再公開するには、再度load()を呼び出し、その後にshow()を呼び出す必要があります。
  4. 広告を終了するには、destroy()を呼び出します。

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

インタースティシャル広告は、ゲームのインターフェースを覆うフルスクリーン広告です。

import UIKit
import HiveAdiz

class InitViewController: UIViewController {

        // インタースティシャル広告インスタンスを作成します。
        var interstitialAd: AdizInterstitial?

        func requestInitAd(hiveAdKey: String?) {
                if let adKey = hiveAdKey,
                        adKey.count > 0 {
                        // AdizInterstitialインスタンスを初期化します (ViewController, hiveAdKey, AdizListener)
                        self.interstitialAd = AdizInterstitial.initialize(self, hiveAdKey: adKey, adizListener: self)
                }
                else {
                        // デフォルトのAdizInterstitialインスタンスを初期化します (ViewController, AdizListener)
                        self.interstitialAd = AdizInterstitial.initialize(self, adizListener: self)
                }
        }

        func requestLoadAd() {
                // Load AdizInterstitial
                self.interstitialAd?.load()
        }

        func requestShowAd() {
                // AdizInterstitialを表示
                self.interstitialAd?.show()
        }

        func requestDestroyAd() {
                // Destroy AdizInterstitial
                self.interstitialAd?.destroy()
                self.interstitialAd = nil
        }
}

extension InitViewController: AdizListener {
        func onLoad() {
                // requestShowAd()
        }
        func onFail(_ error: AdizError) {
        }
        func onShow() {
        }
        func onClick() {
        }
        func onPaidEvent(_ revenueData: AdRevenueData) {
        }
        func onClose() {
                // requestDestroyAd()
        }
}
#import <UIKit/UIKit.h>
#import <HiveAdiz/HiveAdiz-Swift.h> 

@interface InitViewController : UIViewController<AdizListener>
@property (nonatomic, strong) AdizInterstitial* interstitialAd;
@end

@implementation InitViewController

- (void) requestInitAd: (NSString*)hiveAdKey {
        if (hiveAdKey != nil && ![hiveAdKey isEqualToString:@""]) {
                // AdizInterstitialインスタンスを初期化します (ViewController, hiveAdKey, AdizListener)
                // インタースティシャル広告インスタンスを作成します。
                self.interstitialAd = [AdizInterstitial initialize:self hiveAdKey:hiveAdKey adizListener:self];
        }
        else {
                // デフォルトのAdizInterstitialインスタンスを初期化します (ViewController, AdizListener)
                self.interstitialAd = [AdizInterstitial initialize:self adizListener:self];
        }
}

- (void) requestLoadAd {
        // Load AdizInterstitial
        if (self.interstitialAd != nil) {
                [self.interstitialAd load];
        }
}

- (void) requestShowAd {
        // AdizInterstitialを表示
        if (self.interstitialAd != nil) {
                [self.interstitialAd show];
        }
}

- (void) requestDestroyAd {
        // Destroy AdizInterstitial
        if (self.interstitialAd != nil) {
                [self.interstitialAd destroy];
                self.interstitialAd = nil;
        }
}

#pragma mark - AdizListener

- (void) onLoad {
        // [self requestShowAd];
}

- (void) onFail:(AdizError *)error {
}

- (void) onShow {
}

- (void) onClick {
}

- (void) onPaidEvent:(AdRevenueData *)revenueData {
}

- (void) onClose {
        // [self requestDestroyAd];
}

@end

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

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

サイズポイント (幅 x 高さ) 説明 対応デバイス バナーサイズ定数
320x50 バナー 携帯電話とタブレット BannerSize.normal
320x100 大バナー 携帯電話とタブレット BannerSize.medium
300x250 IABミディアムレクタングル 携帯電話とタブレット BannerSize.large
468x60 IABフルサイズバナー タブレット BannerSize.full

PositionType は上または下のいずれかです。デフォルトは下です。

アライメント 説明 PositionType 定数
上部アライメント SafeAreaに基づいて画面の上部に配置することを指定します PositionType.top
下部アライメント (デフォルト) SafeAreaに基づいて画面の下部に配置することを指定します PositionType.bottom
import UIKit
import HiveAdiz

class BannerViewController: UIViewController {

        // AdizBannerインスタンスを作成
        // バナー広告インスタンスを作成します。
        var bannerAd: AdizBanner?

        func requestInitAd(hiveAdKey: String?) {        // バナーサイズを設定
                var bannerSize: BannerSize = .normal

                if let adKey = hiveAdKey,
                        adKey.count > 0 {
                        // AdizBannerインスタンスを初期化します (ViewController, hiveAdKey, BannerSize, AdizListener)
                        self.bannerAd = AdizBanner.initialize(self, hiveAdKey: adKey, size: bannerSize, adizListener: self)
                }        else {
                        // デフォルトのAdizBannerインスタンスを初期化します (ViewController, BannerSize, AdizListener)
                        self.bannerAd = AdizBanner.initialize(self, size: bannerSize, adizListener: self)
                }    }     func requestLoadAd() {
                // AdizBannerをロードします
                self.bannerAd?.load()
        }     func requestShowAd() {
                // 位置タイプを設定します
                var position: PositionType = .top

                // AdizBannerを表示
                self.bannerAd?.show(position)
        }     func requestDestroyAd() {
                // AdizBannerを破棄
                self.bannerAd?.destroy()
                self.bannerAd = nil
        }} extension BannerViewController: AdizListener {
        func onLoad() {
                // requestShowAd()
        }    func onFail(_ error: AdizError) {
        }    func onShow() {
        }    func onClick() {
        }    func onPaidEvent(_ revenueData: AdRevenueData) {    }}
#import <UIKit/UIKit.h>
#import <HiveAdiz/HiveAdiz-Swift.h>

@interface BannerViewController : UIViewController<AdizListener>
@property (nonatomic, strong) AdizBanner* bannerAd;
@end

@implementation BannerViewController

- (void) requestInitAd: (NSString*)hiveAdKey {
        // バナーサイズを設定
        BannerSize bannerSize = BannerSizeNormal;

        if (hiveAdKey != nil && ![hiveAdKey isEqualToString:@""]) {
                // AdizBannerインスタンスを初期化します (ViewController, hiveAdKey, BannerSize, AdizListener)
                self.bannerAd = [AdizBanner initialize:self hiveAdKey:hiveAdKey size: bannerSize adizListener:self];
        }    else {
                // デフォルトのAdizBannerインスタンスを初期化します (ViewController, BannerSize, AdizListener)
                self.bannerAd = [AdizBanner initialize:self size:bannerSize adizListener:self];
        }} - (void) requestLoadAd {
        // AdizBannerをロードします
        if (self.bannerAd != nil) {
                [self.bannerAd load];
        }} - (void) requestShowAd {
        // 位置タイプを設定します
        PositionType position = PositionTypeTop;

        // AdizBannerを表示
        if (self.bannerAd != nil) {
                [self.bannerAd show: position];
        }} - (void) requestDestroyAd {
        // AdizBannerを破棄
        if (self.bannerAd != nil) {
                [self.bannerAd destroy];
                self.bannerAd = nil;
        }} #pragma mark - AdizListener

- (void) onLoad {
        // [self requestShowAd];
} - (void) onFail:(AdizError *)error {
} - (void) onShow {
} - (void) onClick {
} - (void) onPaidEvent:(AdRevenueData *)revenueData {
} @end

ネイティブ広告

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

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

サイズポイント (幅 x 高さ) テンプレート アライメント BannerSize 定数
355x91 (アスペクト比調整済み) 小サイズ 上 / 下 BannerSize.normal
355x370 (アスペクト比調整済み) 中サイズ 中央 (固定) BannerSize.medium, BannerSize.large, BannerSize.full

small テンプレートの場合、PositionType は上または下のいずれかで、デフォルトは下です。

アライメント 説明 PositionType 定数
上部アライメント 画面の上部でのアライメントを指定します PositionType.top
下部アライメント (デフォルト) 画面の下部でのアライメントを指定します PositionType.bottom

medium テンプレートは、配置の選択を許可せず、デフォルトで中央揃えを使用します。

import UIKit
import HiveAdiz

class NativeViewController: UIViewController {

        // AdizNativeインスタンスを作成する
        var nativeAd: AdizNative?

        func requestInitAd(hiveAdKey: String?) {
                // バナーサイズを設定
                var bannerSize: BannerSize = .normal

                if let adKey = hiveAdKey,
                        adKey.count > 0 {
                        // AdizNativeインスタンスを初期化します (ViewController, hiveAdKey, BannerSize, AdizListener)
                        self.nativeAd = AdizNative.initialize(self, hiveAdKey: adKey, size: bannerSize, adizListener: self)
                }
                else {
                        // デフォルトのAdizNativeインスタンスを初期化します (ViewController, BannerSize, AdizListener)
                        self.nativeAd = AdizNative.initialize(self, size: bannerSize, adizListener: self)
                }
        }

        func requestLoadAd() {
                // Load AdizNative
                self.nativeAd?.load()
        }

        func requestShowAd() {
                // 位置タイプを設定
                var position: PositionType = .top

                // AdizNativeを表示
                self.nativeAd?.show(position)
        }

        func requestDestroyAd() {
                // Destroy AdizNative
                self.nativeAd?.destroy()
                self.nativeAd = nil
        }
}

extension NativeViewController: AdizListener {
        func onLoad() {
                // requestShowAd()
        }
        func onFail(_ error: AdizError) {
        }
        func onShow() {
        }
        func onClick() {
        }
        func onPaidEvent(_ revenueData: AdRevenueData) {
        }
}
#import <UIKit/UIKit.h>
#import <HiveAdiz/HiveAdiz-Swift.h>

@interface NativeViewController : UIViewController<AdizListener>
@property (nonatomic, strong) AdizNative* nativeAd;
@end

@implementation NativeViewController

- (void) requestInitAd: (NSString*)hiveAdKey {
        // バナーサイズを設定
        BannerSize bannerSize = BannerSizeNormal;

        if (hiveAdKey != nil && ![hiveAdKey isEqualToString:@""]) {
                // AdizNativeインスタンスを初期化 (ViewController, hiveAdKey, BannerSize, AdizListener)
                self.nativeAd = [AdizNative initialize:self hiveAdKey:hiveAdKey size: bannerSize adizListener:self];
        }
        else {
                // デフォルトのAdizNativeインスタンスを初期化 (ViewController, BannerSize, AdizListener)
                self.nativeAd = [AdizNative initialize:self size:bannerSize adizListener:self];
        }
}

- (void) requestLoadAd {
        // AdizNativeを読み込む
        if (self.nativeAd != nil) {
                [self.nativeAd load];
        }
}

- (void) requestShowAd {
        // 位置タイプを設定
        PositionType position = PositionTypeTop;

        // AdizNativeを表示
        if (self.nativeAd != nil) {
                [self.nativeAd show: position];
        }
}

- (void) requestDestroyAd {
        // AdizNativeを破棄します
        if (self.nativeAd != nil) {
                [self.nativeAd destroy];
                self.nativeAd = nil;
        }
}

#pragma mark - AdizListener

- (void) onLoad {
        // [self requestShowAd];
}

- (void) onFail:(AdizError *)error {
}

- (void) onShow {
}

- (void) onClick {
}

- (void) onPaidEvent:(AdRevenueData *)revenueData {
}

@end

リワード広告 (リワード)

これらは、ユーザーが一定の時間広告を視聴することで報酬を受け取るリワード広告です。報酬が発行されると、onRewarded() コールバックを通じて報酬アイテムに関する情報を受け取ります。

import UIKit
import HiveAdiz  

class RewardViewController: UIViewController {

        // AdizRewardedインスタンスを作成する
        var rewardAd: AdizRewarded?

        func requestInitAd(hiveAdKey: String?) {
                if let adKey = hiveAdKey,
                        adKey.count > 0 {
                        // AdizRewardedインスタンスを初期化 (ViewController, hiveAdKey, AdizListener)
                        self.rewardAd = AdizRewarded.initialize(self, hiveAdKey: adKey, adizListener: self)
                }
                else {
                        // デフォルトのAdizRewardedインスタンスを初期化 (ViewController, AdizListener)
                        self.rewardAd = AdizRewarded.initialize(self, adizListener: self)
                }
        }

        func requestLoadAd() {
                // Load AdizRewarded
                self.rewardAd?.load()
        }

        func requestShowAd() {
                // Show AdizRewarded
                self.rewardAd?.show()
        }

        func requestDestroyAd() {
                // Destroy AdizRewarded
                self.rewardAd?.destroy()
                self.rewardAd = nil
        }
}

extension RewardViewController: AdizListener {
        func onLoad() {
                // requestShowAd()
        }
        func onFail(_ error: AdizError) {
        }
        func onShow() {
        }
        func onClick() {
        }
        func onPaidEvent(_ revenueData: AdRevenueData) {
        }
        func onClose() {
                // requestDestroyAd()
        }
        func onRewarded(_ rewardItem: RewardItem) {
        }
}
#import <UIKit/UIKit.h>
#import <HiveAdiz/HiveAdiz-Swift.h> 

@interface RewardedViewController : UIViewController<AdizListener>
@property (nonatomic, strong) AdizRewarded* rewardedAd;
@end

@implementation RewardedViewController

- (void) requestInitAd: (NSString*)hiveAdKey {
        if (hiveAdKey != nil && ![hiveAdKey isEqualToString:@""]) {
                // AdizRewardedインスタンスを初期化します (ViewController, hiveAdKey, AdizListener)
                self.rewardedAd = [AdizRewarded initialize:self hiveAdKey:hiveAdKey adizListener:self];
        }
        else {
                // デフォルトのAdizRewardedインスタンスを初期化します (ViewController, AdizListener)
                self.rewardedAd = [AdizRewarded initialize:self adizListener:self];
        }
}

- (void) requestLoadAd {
        // Load AdizRewarded
        if (self.rewardedAd != nil) {
                [self.rewardedAd load];
        }
}

- (void) requestShowAd {
        // AdizRewardedを表示
        if (self.rewardedAd != nil) {
                [self.rewardedAd show];
        }
}

- (void) requestDestroyAd {
        // Destroy AdizRewarded
        if (self.rewardedAd != nil) {
                [self.rewardedAd destroy];
                self.rewardedAd = nil;
        }
}

#pragma mark - AdizListener

- (void) onLoad {
        // [self requestShowAd];
}

- (void) onFail:(AdizError *)error {
}

- (void) onShow {
} - (void) onClick {
} - (void) onPaidEvent:(AdRevenueData *)revenueData {
}

- (void) onClose {
        // [self requestDestroyAd];
}

- (void) onRewarded:(RewardItem *)rewardItem {
}

@end

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

報酬型インタースティシャル広告は、ユーザーが一定の期間広告を視聴した後に報酬を受け取ることを可能にします。報酬が発行されると、onRewarded() コールバックを通じて報酬アイテムに関する情報を受け取ります。

import UIKit
import HiveAdiz  

class RewardInterstitialViewController: UIViewController {

        // AdizRewardedInterstitial インスタンスを作成
        var rewardInterstitialAd: AdizRewardedInterstitial?

        func requestInitAd(hiveAdKey: String?) {
                if let adKey = hiveAdKey,
                        adKey.count > 0 {
                        // Initialize AdizRewardedInterstitial Instance (ViewController, hiveAdKey, AdizListener)
                        self.rewardInterstitialAd = AdizRewardedInterstitial.initialize(self, hiveAdKey: adKey, adizListener: self)
                }
                else {
                        // Initialize Default AdizRewardedInterstitial Instance (ViewController, AdizListener)
                        self.rewardInterstitialAd = AdizRewardedInterstitial.initialize(self, adizListener: self)
                }    }     func requestLoadAd() {
                // Load AdizRewardedInterstitial
                self.rewardInterstitialAd?.load()
        }     func requestShowAd() {
                // Show AdizRewardedInterstitial
                self.rewardInterstitialAd?.show()
        }     func requestDestroyAd() {
                // Destroy AdizRewardedInterstitial
                self.rewardInterstitialAd?.destroy()
                self.rewardInterstitialAd = nil
        }
}

extension RewardInterstitialViewController: AdizListener {
        func onLoad() {
                // requestShowAd()
        }    func onFail(_ error: AdizError) {
        }    func onShow() {
        }    func onClick() {
        }
        func onPaidEvent(_ revenueData: AdRevenueData) {
        }
        func onClose() {
                // requestDestroyAd()
        }
        func onRewarded(_ rewardItem: RewardItem) {
        }
}
#import <UIKit/UIKit.h>
#import <HiveAdiz/HiveAdiz-Swift.h>

@interface RewardedInterstitialViewController : UIViewController<AdizListener>
@property (nonatomic, strong) AdizRewardedInterstitial* rewardedInterstitialAd;
@end

@implementation RewardedInterstitialViewController

- (void) requestInitAd: (NSString*)hiveAdKey {
        if (hiveAdKey != nil && ![hiveAdKey isEqualToString:@""]) {
                // AdizRewardedInterstitialインスタンスを初期化 (ViewController, hiveAdKey, AdizListener)
                self.rewardedInterstitialAd = [AdizRewardedInterstitial initialize:self hiveAdKey:hiveAdKey adizListener:self];
        }
        else {
                // デフォルトのAdizRewardedInterstitialインスタンスを初期化 (ViewController, AdizListener)
                self.rewardedInterstitialAd = [AdizRewardedInterstitial initialize:self adizListener:self];
        }} - (void) requestLoadAd {
        // AdizRewardedInterstitialをロード
        if (self.rewardedInterstitialAd != nil) {
                [self.rewardedInterstitialAd load];
        }} - (void) requestShowAd {
        // AdizRewardedInterstitialを表示
        if (self.rewardedInterstitialAd != nil) {
                [self.rewardedInterstitialAd show];
        }} - (void) requestDestroyAd {
        // AdizRewardedInterstitialを破棄
        if (self.rewardedInterstitialAd != nil) {
                [self.rewardedInterstitialAd destroy];
                self.rewardedInterstitialAd = nil;
        }} #pragma mark - AdizListener

- (void) onLoad {
        // [self requestShowAd];
} - (void) onFail:(AdizError *)error {
} - (void) onShow {
} - (void) onClick {
} - (void) onPaidEvent:(AdRevenueData *)revenueData {
}

- (void) onClose {
        // [self requestDestroyAd];
}

- (void) onRewarded:(RewardItem *)rewardItem {
}

@end

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

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

import UIKit
import HiveAdiz  

class AppOpenViewController: UIViewController {

        // AdizAppOpenインスタンスを作成する
        var appOpenAd: AdizAppOpen?

        func requestInitAd(hiveAdKey: String?) {
                if let adKey = hiveAdKey,
                        adKey.count > 0 {
                        // AdizAppOpenインスタンスを初期化します (ViewController, hiveAdKey, AdizListener)
                        self.appOpenAd = AdizAppOpen.initialize(self, hiveAdKey: adKey, adizListener: self)
                }
                else {
                        // デフォルトのAdizAppOpenインスタンスを初期化します (ViewController, AdizListener)
                        self.appOpenAd = AdizAppOpen.initialize(self, adizListener: self)
                }    }     func requestLoadAd() {
                // AdizAppOpenをロードします
                self.appOpenAd?.load()
        }     func requestShowAd() {
                print("[appOpenAd] appOpenAdは表示をリクエストしません")
        }     func requestDestroyAd() {
                // AdizAppOpenを破棄します
                self.appOpenAd?.destroy()
                self.appOpenAd = nil
        }
}

extension AppOpenViewController: AdizListener {
        func onLoad() {
        }    func onFail(_ error: AdizError) {
        }    func onShow() {
        }    func onClick() {
        }
        func onPaidEvent(_ revenueData: AdRevenueData) {
        }
        func onClose() {
                // requestDestroyAd()
        }
}
#import <UIKit/UIKit.h>
#import <HiveAdiz/HiveAdiz-Swift.h> 

@interface AppOpenViewController : UIViewController<AdizListener>
@property (nonatomic, strong) AdizAppOpen* appOpenAd;
@end

@implementation AppOpenViewController

- (void) requestInitAd: (NSString*)hiveAdKey {
        if (hiveAdKey != nil && ![hiveAdKey isEqualToString:@""]) {
                // AdizAppOpenインスタンスを初期化します (ViewController, hiveAdKey, AdizListener)
                self.appOpenAd = [AdizAppOpen initialize:self hiveAdKey:hiveAdKey adizListener:self];
        }    else {
                // デフォルトのAdizAppOpenインスタンスを初期化します (ViewController, AdizListener)
                self.appOpenAd = [AdizAppOpen initialize:self adizListener:self];
        }} - (void) requestLoadAd {
        // AdizAppOpenをロードします
        if (self.appOpenAd != nil) {
                [self.appOpenAd load];
        }} - (void) requestShowAd {
        NSLog(@"[appOpenAd] appOpenAdは表示をリクエストしません");
}

- (void) requestDestroyAd {
        // Destroy AdizAppOpen
        if (self.appOpenAd != nil) {
                [self.appOpenAd destroy];
                self.appOpenAd = nil;
        }} #pragma mark - AdizListener

- (void) onLoad {
} - (void) onFail:(AdizError *)error {
} - (void) onShow {
} - (void) onClick {
} - (void) onPaidEvent:(AdRevenueData *)revenueData {
}

- (void) onClose {
        // [self requestDestroyAd];
}

@end