【Xcode9】AdMobネイティブアドバンス(GADNativeAppInstallAdView)の実装方法【iOS11】【Objective-C】

2018年2月13日

AdMobから新しいネイティブ広告であるネイティブアドバンスが公開されました。既存のネイティブ広告と違い、今回の広告ではiOS特有のxibファイルに対応した広告となっています。

今まではCSSを使用したレイアウト方法だったのですが、これがxibファイルの編集で可能というiOSライクな作りに変更になりました。iOS開発者としてはありがたいですね!

それでは早速実装方法をご紹介していきたいと思います。

 

AdMob ネイティブアドバンスの実装方法

1.cocoaPodsでAdMobを使えるようにする

まず初めにAdMobをcocoaPodsでインストールします。

次にコードを記述していきます。

 

2.GoogleMobileAdsのインポート

次にcocoaPodsでインストールしたGoogleMobileAdsをimportします。

 

3.GADLoaderによる広告の取得とデリゲートの準備

デリゲート使えるようにするため宣言をしておきます。

 

次に広告を取得するためGADLoaderを使用してGoogleに広告取得リクエストを投げます。
リクエストから返却されるデータはデリゲートに流れる仕組みになっています。

 

広告の取得情報などが取れるデリゲートを実装しておきます。

 

4.広告を表示するためのXibファイルの作成

次に広告データが受け取れるようになったら、広告データから広告を表示するためのxibファイルを作成します。

NewFile → iOS → View を選択してください。

ファイル名は何でも大丈夫ですが今回はわかりやすく「GADNativeAppInstallAdView」としています。

 

次にCustom Classを「GADNativeAppInstallAdView」に変更します。

GADNativeAppInstallAdViewに変更しておかないと紐付けができなくなるので注意してください。

 

次にアプリアイコン、アプリタイトル、アプリの説明文を表示するためのUIImageViewやUILabelを用意します。

 

次に作成したUIImageViewやUILabelをGADNativeAppInstallAdViewにあるViewと紐づけていきます。

 

今回はUIImageViewをIconView、上のUILabelをheadlineView、下のUILabelをbodyViewと紐付けました。

xibファイルの編集は以上です。

 

5.受け取った広告データを作成したxibファイルのviewに流し込む

最後に広告データを受け取るたびにxibファイルからviewを生成して、生成したviewの各項目に合わせて受け取った広告データを設定するだけです。

adCountというのを独自に追加していますが、広告が被らないように広告データを取得するごとに広告数をカウントして、広告表示位置をずらしています。

ちなみに最終的にはこのようなコードになりました。

 

これで実装は以上です。

うまく実装できていればこのように表示されるはずです!
最初はとっつきづらいですが、わかってしまえば簡単ですね。

ちなみにネイティブアドバンスにはGADAdLoaderAdTypeNativeAppInstallとGADAdLoaderAdTypeNativeContentの2種類の広告があります。

GADAdLoaderAdTypeNativeContentの広告を取得したい場合はadTypesにkGADAdLoaderAdTypeNativeContentを追加してあげましょう。

そしてそれ用のxibファイルとデリゲートの用意も必要です。
xibファイルはGADAdLoaderAdTypeNativeAppInstallと同じ用に作ってください。
デリゲートは以下のように用意してください。

これでどちらの広告も出るようになります。