アプリで広告の実装を試してみようとする(2)

アプリで広告の実装を試してみようとする(1)

アプリで広告の実装を試してみようとする(1)
アプリでの広告の実装方法を調べる 上で書いたのをやってみる まずこれを見ながら ※CocoaPodsを使います。インストールしている前提 遠い記憶でCocoaPodsは聞いたことあるけどなんだっけ (と...

準備できたーと思ったけど

広告の方の準備をしてなかった。

そうかそうだよな・・・と、

AdMobでアプリを登録して

広告ユニットを追加しようとして

あれ「インタースティシャル」と「リワード」がある

あれ、どっちだっけ

どう違うんだっけ、と検索

【Android開発】Admobでインタースティシャル広告を実装するときに気を付けること。
Androidアプリ開発に関するsadakのブログ。

トピック: 動画インタースティシャル広告とリワード動画広告の違い | インディゲームクリエイター

えーと、報酬型にしたいんだから、

「リワード」なのね?

ん、あれ、でも、テストできるのかな?

できるよね?

ていうか前回参照してた内容って

「Admobのインタースティシャル広告実装方法 -Swift4.0」だね・・・

えーと、、、どうしましょ

とりあえず、インタースティシャルも、練習してみる?かな。。。

というわけでAdMobでインタースティシャル広告を追加して

「インタースティシャル導入ガイド」

インタースティシャル広告  |  iOS  |  Google Developers

インタースティシャル広告は、ユーザーが閉じるまでアプリのインターフェースをカバーするフルスクリーン広告です。それらは通常、アクティビティ間やゲーム内のレベル間の休止中など、アプリのフロー内の自然な移行ポイントに表示されます。アプリでインタースティシャル広告が表示されると、広告をタップして目的地まで移動するか、閉じるとアプリに戻ることができます。

このガイドでは、インタースティシャル広告をiOSアプリに統合する方法について説明します。

前提条件
Google Mobile Ads SDK を単独で、 またはFirebaseの一部としてインポートします。

スタートガイド  |  iOS  |  Google Developers
iOS アプリを開発している AdMob パブリッシャー向けのモバイル広告用 SDK です。

このガイドは、AdMobでiOSアプリから収益を得たい、Firebaseを使用していないサイト運営者様向けのガイドです。アプリにFirebaseを含める予定がある場合、またはFirebaseを検討している場合は、 代わりにこのガイドのAdMob with Firebase版を参照してください 。

アプリにGoogle Mobile Ads SDKを統合することは、広告を表示して収益を得るための第一歩です。SDKを統合したら、サポートされている1つ以上の広告フォーマットの実装に進むことができ ます。

あとでFirebaseも試してみるつもりだけど

とりあえず、単独で使ってみよう。

モバイル広告SDKをインポートする
ココアポッド(推奨)
SDKをiOSプロジェクトにインポートする最も簡単な方法は、CocoaPodを使用すること です。プロジェクトのPodfileを開き、次の行をアプリのターゲットに追加します:

pod ‘Google-Mobile-Ads-SDK’
コマンドラインから次のコマンドを実行します。

pod install  –repo-update

モバイル広告を初期化する
広告を読み込む前に、アプリはでのconfigureWithApplicationID: クラスメソッドを 呼び出しGADMobileAdsて、AdMob App IDを渡してモバイル広告SDKを初期化する必要があります 。これは一度だけ、つまりアプリの起動に理想的です。アプリのアプリIDはAdMobのユーザーインターフェースで確認できます。

次にconfigureWithApplicationID:、あなたのメソッドを呼び出す方法の例を示しますAppDelegate:

例AppDelegate.m(抜粋)

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?

func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions
: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
 
// Initialize the Google Mobile Ads SDK.
// Sample AdMob app ID: ca-app-pub-3940256099942544~1458002511

GADMobileAds.configure(withApplicationID: YOUR_ADMOB_APP_ID)

return true
}

}

注:まだAdMobアカウントを作成していないまたはアプリを登録していない場合は、今すぐに登録することをおすすめします。あなただけのHello WorldアプリにSDKを試すために探している場合は、しかし、あなたは、SDKを初期化するために、このアプリケーションIDを使用することができます ca-app-pub-3940256099942544~1458002511

えーと

Admobのインタースティシャル広告実装方法 -Swift4.0

こっちの

「Xcode実装するサンプルコード」から下をやってみよう

ラベルとボタンを用意して

シュミレータで実行

ボタンを押す

ダイアログが出る

はいを押す

「広告の準備がない」

・・・動いては、いる。

けど広告でないなー

テスト用の

ca-app-pub-3940256099942544~1458002511」

じゃダメなのかなー

[iPhone] アプリにAdMob広告を貼る(Firebase)
iOSでもGoogleのAdMobは選択肢の1つです。更にGoogleではFirebaseを使って詳細な解析ができるサービスを提供しています。  

アプリIDをここで設定します。
“ca-app-pub-3940256099942544~1458002511” はテスト用のアプリIDです。
テスト用の広告ユニットIDとは異なります(とても似ていますが〜と/の違いが目印です)

ふぁ

iOS AdMobのインタースティシャル広告の実装方法

インタースティシャル広告のテストユニットIDは以下になります。

ca-app-pub-3940256099942544/4411468910

これ入れたら動いた!(シュミレータ)

f:id:marimoko3:20180916135712p:plain

import UIKit

import GoogleMobileAds

class ViewController: UIViewController,GADInterstitialDelegate {

    var interstitial: GADInterstitial! // 広告をnullで宣言

    var timer = Timer()

    var timer2 = Timer()

    var count:Int = 3

    var adunitID = “ca-app-pub-3940256099942544/4411468910”

    @IBOutlet weak var myLabel: UILabel!

    

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

    interstitial = createAndLoadInterstitial()

    }

    @IBAction func tappedButton(_ sender: Any) {

        self.timer = Timer.scheduledTimer(timeInterval: 1.0, target:self, selector: #selector(self.countDown), userInfo:nil, repeats:true)

        

    }

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    //タイマーから呼び出されるメソッド

    @objc func countDown(){

        

        //カウントを減してラベル文字を更新

        count -= 1

        myLabel.text = “残り:\(count)”

        

        //1以上

        if(count > 0) {

            

            //カウントが0になったら

        } else if (count == 0) {

            self.alertDisplay()

            timer.invalidate()

            

            //カウントを元の状態に戻す

            count = 3

            myLabel.text = “残り:3”

        }

    }

    

    //アラート(ポップアップ)表示

    func alertDisplay() {

        

        //ポップアップを実装

        let alertController = UIAlertController(title: “広告”, message: “広告を表示しますか?”, preferredStyle: UIAlertControllerStyle.alert)

        

        //はいボタンの実装

        let okAction = UIAlertAction(title: “はい”, style: UIAlertActionStyle.default){ (action: UIAlertAction) in

            //「はい」がクリックされた時の処理

            print(“はいをクリック”)

            

            //広告を表示する関数の呼び出し

            self.dispalyAd()

            

        }

        

        //いいえボタンの実装

        let cancelButton = UIAlertAction(title: “いいえ”, style: UIAlertActionStyle.cancel, handler: nil)

        

        //はいボタンをポップアップのビューに追加

        alertController.addAction(okAction)

        

        //いいえボタンをポップアップのビューに追加

        alertController.addAction(cancelButton)

        

        //アラートの表示

        present(alertController,animated: true,completion: nil)

    }

    

    

    /*

     ここから下が広告設定

     */

    

    //広告が表示用の関数。広告の準備があれば表示する処理を入れている。

    @objc func dispalyAd() {

        if self.interstitial.isReady{

            print(“広告準備あり”)

            self.interstitial.present(fromRootViewController: self)

        } else {

            print(“広告の準備がない”)

        }

    }

    

    // override func viewDidLoad()で呼び出したメソッドの中身を実装するイメージ。

    // adUnitIDはAdmobで作成たいものを使用(現状はテスト用のID)

    func createAndLoadInterstitial() -> GADInterstitial {

        let interstitial = GADInterstitial(adUnitID: adunitID)

        interstitial.delegate = self

        interstitial.load(GADRequest())

        return interstitial

    }

    

    // デリゲートメソッド。インタースティシャル広告が閉じられた時にもう一度createAndLoadInterstitialメソッドを呼び出し、

    // 新しい広告をロードしています。これを実装しないと、インタースティシャル広告は一度しか表示されなくなる。

    func interstitialDidDismissScreen(_ ad: GADInterstitial) {

        interstitial = createAndLoadInterstitial()

    }

    

    //デリゲートメソッドです。広告を受け取った時や、エラーで広告が受け取れなかった場合などの処理をここに書けます。

    /// Tells the delegate an ad request succeeded.

    func interstitialDidReceiveAd(_ ad: GADInterstitial) {

        print(“interstitialDidReceiveAd”)

    }

    

    /// Tells the delegate an ad request failed.

    func interstitial(_ ad: GADInterstitial, didFailToReceiveAdWithError error: GADRequestError) {

        print(“interstitial:didFailToReceiveAdWithError: \(error.localizedDescription)”)

    }

    

    /// Tells the delegate that an interstitial will be presented.

    func interstitialWillPresentScreen(_ ad: GADInterstitial) {

        print(“interstitialWillPresentScreen”)

    }

    

    /// Tells the delegate the interstitial is to be animated off the screen.

    func interstitialWillDismissScreen(_ ad: GADInterstitial) {

        print(“interstitialWillDismissScreen”)

    }

    

    /// Tells the delegate that a user click will open another app

    /// (such as the App Store), backgrounding the current app.

    func interstitialWillLeaveApplication(_ ad: GADInterstitial) {

        print(“interstitialWillLeaveApplication”)

    }

}

↓ここのソースコードです(リンク先見た方が見やすいです)

Admobのインタースティシャル広告実装方法 -Swift4.0
Google Admobでの広告実装方法です。 アプリを使っているとめちゃくちゃうざいと思うことも多いですが、…

あっちへぶつかり、こっちへぶつかり、ヨロヨロしながら

インタースティシャル(インターステシャルじゃないのね・・・)広告は出せた!

かな・・・

で、本題のリワードはまた次回・・・。