Skip to content

AdMobAdapter_iOS_Manual

AdGeneration edited this page Apr 19, 2022 · 20 revisions

カスタムSDK連携 AdMob iOS

はじめに

Ad Generationの「カスタムタグ」設定にて、Ad Generation SDKからAdMobのSDKを呼び出し、AdMobの広告を表示することができます。

前提条件

  • Xcode 12系(※Ad Generation SDK 〜v2.20.1 までのバージョンをご利用の方はXcode 13へのアップデートを行わないでください)
  • iOS 9.0以降
  • GoogleMobileAds.framework v8.5.0で検証しています。

実装の流れ

  1. Ad Generation SDKをプロジェクトに追加します。
  2. AdMob SDKをプロジェクトに追加します。
  3. Info.plistの設定を行います。
  4. Ad Generationの広告表示の実装をします。
  5. SDK連携にあたっての共通作業を行います。

1. Ad Generation SDKをプロジェクトに追加する

2. AdMob SDKをプロジェクトに追加する

AdMob SDK (GoogleMobileAds.framework) をプロジェクトに追加してください。 Google Mobile Ads SDKのv7.42.0以降は下記もあわせて追加が必要となります。

  • GoogleAppMeasurement.framework
  • GoogleUtilities.framework
  • nanopb.framework

追加方法は、AdMobドキュメントをご参照ください。

手動で追加する場合は、以下のframeworkの参照追加が必要になります。

  • AudioToolbox
  • AVFoundation
  • MessageUI
  • StoreKit
  • SafariServices
  • GLKit
  • OpenGLES
  • CoreMotion
  • CoreVideo

3. Info.plistの設定を行う

Google Mobile Ads SDKのv7.42.0以降はInfo.plistに以下を追加してください。 この手順はv7.42.0以降必須になります。 下記をInfo.plistに記述していない場合、アプリ起動時にクラッシュが発生いたしますのでご注意ください。

  • GADApplicationIdentifier
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-3940256099942544~1458002511</string>

※上記の例に表示されているAdMobアプリIDではなく、実際のAdMobアプリIDを使用してください。

  • GADIsAdManagerApp
<key>GADIsAdManagerApp</key>
<true/>

詳細はこちらを確認してください。

4. Ad Generationの広告表示の実装をする

5. SDK連携にあたっての共通作業を行う

アドネットワークのSDKと連携するための注意事項や共通して行って頂く必要がある作業がございます。各アドネットワークのSDKを導入する前に以下をご確認ください。

アドネットワークのSDKと連携する際の注意事項及び共通手順

AdMob SDK version 7.69.0以前のフォーマット

ネイティブ広告(アドバンス)について

AdMobの公式リファレンスは以下になります。 AdMob iOS ネイティブ アドバンス広告

ADGManagerViewControllerReceiveAd:mediationNativeAd:のDelegateのメソッドのmediationNativeAdから3パターンのネイティブ広告オブジェクトが取得できます。

  • コンテンツ広告(GADNativeContentAd) ※v7.46.0以降は廃止されております
  • アプリインストール広告(GADNativeAppInstallAd) ※v7.46.0以降は廃止されております
  • 統合広告(GADUnifiedNativeAd)

ネイティブ広告オブジェクトはGADNativeContentAd GADNativeAppInstallAd GADUnifiedNativeAd クラスです。 参照するために、該当クラスに GoogleMobileAds のimportを追加してください。

ネイティブ広告オブジェクト取得後、お客様側でレイアウトを構築していただき、 Ad Generation SDKに対して構築したネイティブ広告のViewを登録するために [ADGManagerViewController getNativeMediationView:] を実行してください。

その後、画面へのaddなど表示処理を適宜おこなってください。

実装例

- (void)ADGManagerViewControllerReceiveAd:(ADGManagerViewController *)adgManagerViewController mediationNativeAd:(id)mediationNativeAd {
    UIView *nativeAdView;

    if ([mediationNativeAd isKindOfClass:[GADNativeContentAd class]]) {
        GADNativeContentAd *nativeContentAd = (GADNativeContentAd *)mediationNativeAd;
        // コンテンツ広告の処理
        nativeAdView = [self createGADNativeContentAd:nativeAppInstallAd];
    } else if ([mediationNativeAd isKindOfClass:[GADNativeAppInstallAd class]]) {
        GADNativeAppInstallAd *nativeAppInstallAd = (GADNativeAppInstallAd *)mediationNativeAd;
        // アプリインストール広告の処理
        nativeAdView = [self createGADNativeAppInstallAd:nativeAppInstallAd];
    } else if ([mediationNativeAd isKindOfClass:[GADUnifiedNativeAd class]]) {
        GADUnifiedNativeAd *nativeUnifiedNativeAd = (GADUnifiedNativeAd *)mediationNativeAd;
        // UnifiedNative広告の処理
        nativeAdView = [self createGADUnifiedNativeAd:nativeAppInstallAd];
    }

    if (nativeAdView) {
        // Ad Generation SDKにViewをセットして登録する
        nativeAdView = [self.adg getNativeMediationView:nativeAdView];
    }
}

※UnifiedNative広告をご利用の場合は、GADUnifiedNativeAdクラス以外の返却はございませんので、コンテンツ広告の処理、アプリインストール広告の処理は省略いただいてかまいません。

統合広告(GADUnifiedNativeAd)の実装方法

GADUnifiedNativeAdを受け取るために以下をご確認いただき、実装をしてください。

  • Google Mobile Ads SDK(GoogleMobileAds.framework)がv7.28.0以降であること
  • Ad Generation AdMob Adapter (ADGAdMob.framework)がv1.0.2以降であること
  • 広告リクエスト(loadRequest())コール前にsetIsUnifiedNativeAdフラグにYESを設定していること

スマートバナーについて

スマートバナーとは、AdMobで提供されているバナー広告の幅を端末幅まで自動で拡大する機能です。 Ad Generation SDKからスマートバナーを有効にするには以下のようにexpandframeYESに指定してください。 また、 広告を表示するadViewにしているViewは、水平方向が中央に配置されるよう実装してください。

self.adg.expandFrame = YES;

Google Mobile Ads SDK version 8.0.0以降のネイティブ広告について

ネイティブ広告オブジェクトはGADNativeAd クラスです。 参照するために、該当クラスに GoogleMobileAds のimportを追加してください。

ネイティブ広告オブジェクト取得後、お客様側でレイアウトを構築していただき、 Ad Generation SDKに対してネイティブ広告のViewを登録するために [ADGManagerViewController getNativeMediationView:] を実行してください。 [ADGManagerViewController getNativeMediationView:] にて返却されたViewを、画面へaddいただき、広告の表示をおこなってください。

実装例

弊社広告枠のカスタム配信設定にて、AdMobのネイティブ広告を設定済みの広告枠IDをセットしてリクエストしていることを前提とし、 AdMobのネイティブ広告が正常に受信した場合、下記デリゲートに通知されます。

- (void)ADGManagerViewControllerReceiveAd:(ADGManagerViewController *)adgManagerViewController mediationNativeAd:(id)mediationNativeAd {
    UIView *nativeAdView = nil;

    if ([mediationNativeAd isKindOfClass:[GADNativeAd class]]) {
        GADNativeAd *nativeAd = (GADNativeAd *)mediationNativeAd;
        // ネイティブ広告のレイアウト作成処理
        nativeAdView = [self createGADNativeAd:nativeAd];
    }

    if (nativeAdView) {
        // Ad Generation SDKにViewをセットして登録する
        nativeAdView = [self.adg getNativeMediationView:nativeAdView];
    }
}

広告View構築時のご注意

広告のレイアウト構築時につきまして、AdMobのレギュレーションがございます。 公式のネイティブ広告のポリシーとガイドラインにて、 広告レイアウトやタップ領域についての記述がございますので、ご確認ください。

コンテンツ マッピングの設定

コンテンツ マッピングを導入すると、コンテンツに基づくターゲティングを実施できます。 詳細はこちらを確認してください。

アプリ向けコンテンツ マッピング

Ad Generation SDKからコンテンツマッピングを有効にするには以下のように setContentUrlからURLを指定して下さい。

[self.adg setcontentUrl:@"URL"];

テスト用ID

テスト広告の表示に使用するAd Genrationの広告枠IDです。 このIDをセットしたままアプリをリリースしないようご注意ください。

サイズ テストID 配信広告1 配信広告2
バナー 43468 AdMob テスト広告
インタースティシャル 43249 AdMob テスト広告

Home

導入マニュアルのドキュメントはコチラに移行しました。

お手数ですがリンクから遷移してください。 https://docs.sdk.ad-generation.jp/

Clone this wiki locally