AdMobメディエーションを利用した実装方法

AdMobメディエーションを利用してアドフリくんの広告を表示することができます。
実装手順に従い、各広告を導入してください。
追加情報については、AdMob公式ガイドを参照してください。

AdMobメディエーション作成

① メニューからメディエーションを選択して「メディエーショングループを作成」を行います。
② 広告フォーマットとプラットフォームを選択します。 AdMob_Custom

広告種類によるAdMobの広告フォーマット

広告種類 AdMobの広告フォーマット
動画リワード リワード
インタースティシャル インタースティシャル
ネイティブ ネイティブアドバンス
レクタングル バナー
モバイルバナー バナー

③ 広告のソースから「カスタムイベントを追加」を行います。
AdMob_Custom

④ カスタムイベントの「ラベル」と「eCPM」を設定します。
AdMob_Custom

⑤ 広告ユニットのマッピングから「Class name」と「Parameter」を設定します。
AdMob_Custom

広告種類によるClass nameとParameter

広告種類 Class name Parameter
動画リワード AdfurikunAdMobReward アドフリくんの広告ID
インタースティシャル AdfurikunAdMobInterstitial アドフリくんの広告ID
ネイティブ AdfurikunAdMobNativeAd アドフリくんの広告ID
レクタングル AdfurikunAdMobRectangle アドフリくんの広告ID
モバイルバナー AdfurikunAdMobBanner アドフリくんの広告ID

AdMobMediationAdapterフォルダをプロジェクトに追加

① adnetworkフォルダにある「AdMobMediationAdapter」をXcodeプロジェクトに追加します。
AdMob-Custom

各広告の実装例

① 動画リワード

class ViewController: UIViewController {
  var rewardedAd: GADRewardedAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    //動画リワードインスタンスを生成
    rewardedAd = GADRewardedAd(adUnitID: "AdMob管理画面で設定したUnitID")
    //広告を読み込む
    rewardedAd?.load(GADRequest()) { error in
      self.adRequestInProgress = false
      if let error = error {
        //広告読み込み失敗
      } else {
        //広告読み込み成功
      }
    }
  }
  //広告再生ボタン
  @IBAction func playRewardedAd(sender: UIButton) {
    if rewardedAd?.isReady == true {
       rewardedAd?.present(fromRootViewController: self, delegate:self)
    }
  }
}

extension ViewController: GADRewardedAdDelegate {
  func rewardedAdDidPresent(_ rewardedAd: GADRewardedAd) {
    //広告再生開始時に呼ばれます
  }

  func rewardedAdDidDismiss(_ rewardedAd: GADRewardedAd) {
    //広告を閉じた時に呼ばれます
  }

  func rewardedAd(_ rewardedAd: GADRewardedAd, didFailToPresentWithError error: Error) {
    //広告表示失敗時に呼ばれます
  }
}


② インタースティシャル

class ViewController: UIViewController {
  var interstitial: GADInterstitial!

  override func viewDidLoad() {
    super.viewDidLoad()
    //インタースティシャル広告インスタンスを生成
    interstitial = GADInterstitial(adUnitID: "AdMob管理画面で設定したUnitID")
    interstitial.delegate = self
    //広告をロード
    interstitial.load(GADRequest())
  }
  //広告再生ボタン
  @IBAction func playInterstitial(_ sender: AnyObject) {
    if interstitial.isReady {
      interstitial.present(fromRootViewController: self)
    }
  }
}

extension ViewController: GADInterstitialDelegate{
  func interstitialDidReceiveAd(_ ad: GADInterstitial) {
    //広告ロード成功時に呼ばれます
  }

  func interstitial(_ ad: GADInterstitial, didFailToReceiveAdWithError error: GADRequestError) {
    //広告ロード失敗時に呼ばれます
  }

  func interstitialWillPresentScreen(_ ad: GADInterstitial) {
    //広告再生時に呼ばれます
  }

  func interstitialDidDismissScreen(_ ad: GADInterstitial) {
    //広告を閉じる時に呼ばれます
  }
}


③ ネイティブ

class ViewController: UIViewController {
  IBOutlet weak var mediaView: GADMediaView!
  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()
    //広告のロード
    adLoader = GADAdLoader(adUnitID: YOUR_AD_UNIT_ID, rootViewController: self,
                           adTypes: [GADAdLoaderAdType.unifiedNative],
                           options: [])
    adLoader.delegate = self
    adLoader.load(GADRequest())
  }
}

extension ViewController: GADUnifiedNativeAdLoaderDelegate {
  //広告ロード成功時に呼ばれます
  func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADUnifiedNativeAd) {
    //広告を表示します
    mediaView.mediaContent = nativeAd.mediaContent
  }

  func adLoader(_ adLoader: GADAdLoader, didFailToReceiveAdWithError error: GADRequestError) {
    //広告ロード失敗時に呼ばれます
  }
}

④ レクタングル・バナー

class ViewController: UIViewController {
  //BannerViewインスタンスを定義、レイアウトを設定
  var bannerView: GADBannerView!

  override func viewDidLoad() {
    super.viewDidLoad()

    //広告のサイズを設定
    // バナー:kGADAdSizeBanner  レクタングル:kGADAdSizeMediumRectangle
    bannerView = GADBannerView(adSize: kGADAdSizeBanner)
    addBannerViewToView(bannerView)

    bannerView.adUnitID = "AdMob管理画面で設定したUnitID"
    bannerView.rootViewController = self
    bannerView.delegate = self
    //広告を読み込む
    bannerView.load(GADRequest())
  }

  func addBannerViewToView(_ bannerView: GADBannerView) {
    bannerView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(bannerView)
    view.addConstraints(
      [NSLayoutConstraint(item: bannerView,
                          attribute: .bottom,
                          relatedBy: .equal,
                          toItem: bottomLayoutGuide,
                          attribute: .top,
                          multiplier: 1,
                          constant: 0),
       NSLayoutConstraint(item: bannerView,
                          attribute: .centerX,
                          relatedBy: .equal,
                          toItem: view,
                          attribute: .centerX,
                          multiplier: 1,
                          constant: 0)
     ])
  }
}

extension ViewController: GADBannerViewDelegate {
  func adViewDidReceiveAd(_ bannerView: GADBannerView) {
    //広告の読み込み成功時に呼ばれます
  }

  func adView(_ bannerView: GADBannerView,
      didFailToReceiveAdWithError error: GADRequestError) {
    //広告の読み込み失敗時に呼ばれます
  }
}

results matching ""

    No results matching ""