iPhoneアプリのSwiftUIでアプリ内に広告を入れて収益の機会を増やしたいんだ。AppleのiAdは終了しているみたいだから、何か別の手段がないか調べたいんだ。開発費を確保し続けないとやっていけないから、無料でiPhoneアプリを提供したいんだけど懐事情もあるから厳しいんだ。
それなら、iPhoneアプリが無料でも収益が取れるGoogleのAdMobを使うといいわ。最近、ゲームアプリの中で、広告を見るとアイテムをもらえたり、ゲームライフをもらえたり、広告を見ることと引き換えに、有利になる機能があるわよね。
店舗アプリにも広告を入れることで、一度きりの売り切りのアプリにならないようにできるわ。無課金アプリなんて勿体無いわね。せっかく時間をかけてリリースをしたんだから、それに見合った報酬も得られるようにして欲しいわ。
そうだよね。一度iPhoneアプリをインストールしてもらって終わりではなく、その後も開発を続けないといけないから、その費用とかも稼げると良いね。タダで使ってもらうというよりも、サービスに対してお金を払ってくれる優良なお客さんに出会えるといいんだけど。
もちろん課金することも需要だけれど、コンテンツが一番重要よ。このページでは、AdMobに用意されているアプリ起動広告、バナー広告、リワード広告、インタースティシャル広告、リワードインタースティシャル広告と網羅したから、ぜひみなさんも使えるようになってみてくださいね。
モバイル広告の歴史を知ろう。
スマホアプリの収益化の一つとして広告掲載があります。この手段は絶対に持っておきたい手段です。
この記事では、iPhoneアプリを無料で提供しながら、広告収入を得られるように、iPhoneアプリに広告を導入したいと思われている方向けにアプリに広告機能を実装する方法を紹介したいと思います。
現在、Apple社はモバイル広告から撤退し、サブスクリプション(定額制)モデルに活路を見出しています。
「広告のあるネット」と世界を切り離し、「お金はかかるが広告フリーなネット」に向かうためです。
Apple社はアプリ内に広告を入れることを是としない判断をしたのです。
このApple社の決断は、モバイルアプリの将来を二分する可能性があります。
え?この記事では、モバイル広告についてまとめていくんじゃないの?と思われた方もいるかもしれません。
安心してください。Apple社の代わりにGoogle社のAdMob広告を導入する方法をまとめています。
Appleはモバイル広告を入れないで、サービスを使ってもらうということでユーザのエクスペリエンスを挙げて、満足してもらうという戦略で、そのためにも、アプリ内で課金するって方法をとっているんです。
SwiftUIでアプリを開発する際には、課金と広告は切っても切り離せないと思っています。アプリ開発しても全く儲からない。そんな状況にならないようにしていきたいものです。
サービスを終了したApple社のiAdサービス
過去には、Apple社の広告はiAdと呼ばれていました。
結果アプリ内の課金に集約され、広告をつけない方式を推奨するようになってきました。
Apple社が提供していたiAdサービスの提供は2016年6月30日で終了しています。
iAd(アイアド)とはAppleが開発したiPhone、iPod Touch、iPad系列の携帯機器に対応したモバイル広告プラットフォームです。
2016年6月30日をもってサービスを終了しました。
iAdモバイルアプリの概要
iAdは、Apple社がiOSに組み込んで提供しているモバイル向けのアドネットワークであり、サードパーティーの開発者が自身のアプリケーションに広告を直接組み込むことができました。
Apple社自身による運営・販売で、iAdプラットフォームはグーグル社のモバイル広告サービスAdMobとの競争が期待されていた。
AdMobと同様、iAdもApp Storeで販売されているアプリケーションに広告を統合することを容易にしており、もしユーザーがiAdのバナーをタップした場合、アプリケーション内に全画面の広告が表示される形式でSafariを立ち上げる他の広告と異なっていました。
iPhoneアプリの広告は他の広告サービスよりもよりインタラクティブになることを約束し、ユーザーは広告をいつでも閉じてアプリケーションに戻ることができる。
当時のApple社のCEOのスティーブ・ジョブズは当初、広告収入からのAppleの取り分は「業界標準」のラインとされる40%であり、残る60%が開発者のものになるとしていましたが、後に開発者の取り分を70%に引き上げています。
iAdは無料アプリケーションと共に利益を上げることが期待されていましたが、終了しています。
頭角を表したGoogle社のAdMobサービス
Googleのアドセンスは、今やブログやYouTubeなど欠かすことができないサービスになってきました。
今回、iPhoneアプリについても同じように、Google社の広告を導入できないか考えてみたいと思います。
AppleのiPhoneアプリとしてXcodeでSwiftUIで開発し、Goolge AdMobの導入する方法を皆さんに共有したいと思います。
iPhoneアプリにAdMobを使って、広告を表示する方法(準備編)
さて、早速アプリ開発に入っていきましょう。Xcodeでの開発については、いろいろな環境から対応できる方法があるので、皆さんの環境に合わせた手段をしっかりと設計してから開発を進めていきましょう。
このブログでは、基本的にはSwiftUIのみを使った環境をベースにしたいと思っています。
SwiftUIは常に進化をしているため、レガシーコード(古い構造のコード)を導入すると使えなくなるリスクがあるため、なるべく最新の方法をとるようにしています。
iPhoneアプリで課金できるアプリ販売するのは障壁が高いため、無料提供からスタートできるように、広告を入れたいと考えています。
広告の中でもGoogleが提供している広告「Google AdMob」は単価が高く、アプリを開発したら是非利用したいサービスの1つです。やっぱり訳のわからない広告よりも、Googleの広告が良いと思います。
iPhoneアプリは作ったけれど、でも、「どうやって広告を貼れば良いのかわからない・・・」。
そんな人もいるはず。大丈夫です。一つ一つ手順を踏めば導入することが出来ます。
今回は、Google AdMobの「バナー広告」、「インタースティシャル広告」、「ネイティブ広告」、「リワード広告」をアプリに掲載する方法について解説します。
Google社のAdMobは、アプリ内広告を通じてモバイルアプリを収益化することを支援します。
さまざまなフォーマット オプションで広告を表示でき、プラットフォームでネイティブの UI コンポーネントにシームレスに追加されます。
Android ではさらに、アプリ内購入広告も表示できます。
これは、広告された商品をアプリ内から購入できるようにするものです。
(Androidはこのブログでは取り扱いません。SwiftUIしか取り扱っていないので。すみません。)
アプリにバナー、インタースティシャル、ネイティブ、リワードの4つの広告をSwiftUIで開発したアプリに織り込む。この仕組みを使って、収益を得られるようにします。
まずは、AdMobを使えるようにしましょう。以下のような広告をアプリに入れる方法を説明します。
事前準備1:Google AdMob広告のアカウント作成します。
早速XcodeでSwiftUIを使って広告機能を開発をしたいところですが、まずは、GoogleのAdMobアカウントを取得する必要がありますので、準備を進めましょう。
事前準備2:Google Ad広告、Adsense、AdMobの3つのサービスを使えるようにしてください。
AdMobの3つのサービスを使うためには、Google Ad広告、Adsenseとの紐付けが必要になります。
AdMobを使うためには、GoogleのAd広告との連携が必要となります。
Ad広告側のアカウントを有効化することで、AdMobのアカウントを作ることができます。
アプリの連携は後述しますので、まずは、Google社のサービスを使えることに専念してください。
Google AdMob連携時にエラーが発生する場合の対応方法
Google AdMobアカウント作成時に色々とエラーが発生する原因があるようです。皆さんの状況に合わせて解決してみてください。
私自身も、昔、ホームページ作成に興味を持った時に、Google Ad広告アカウントだけ作っておりましたが、如何せんずっと使わず放置したアカウントになっていました。
(広告を配信せずに中止していた状況。)確か、Adwordsという別の名前だった気がします。
このGoogle Ad広告のアカウントが停止状況になっていたため、Ad広告の制限状態だっため、AdMob側からアカウント作成がうまくできませんでした。
その他にも導入時にエラーも多く発生するようです。
皆さんのGoogleアカウントの状況次第でエラーの内容が異なると思いますので、エラーが起きている場合は、ひとつずつ確認してみてください。
事前準備3:デベロッパー ドキュメントを確認する。
Google Ad広告、Adsense、AdMobのアカウントが無事に使えるようになったら、早速開発をしてみたいところですが、どの方法でスタートしたら良いのかGoogle社の公式ドキュメントを確認しましょう。
昔に比べ iPhoneアプリの収益化がより簡単になりました。
AdMob にアプリを登録し、広告を表示するための広告ユニットをいくつか作成して、アプリのコードに組み込むだけで、収益化を開始できます。
詳しくは iOS または Android 向けのデベロッパー ドキュメントをご覧ください。
参考情報として以下を載せておきます。
オプション:アプリを Firebaseと繋げる
Firebaseを使っている場合、アプリを Firebase とつなげれば、収益の増加やアプリの機能改善に役立つ新しいインサイトを得ることができます。
Firebase でオーディエンスを構築してユーザーを属性別に分割すれば、収益性が特に高いオーディエンスをレポートで確認することもできます。
Firebase参考サイト
iPhone アプリに広告を入れるためのXcodeの設定方法(開発編)
さて、ここまで読んでいただいたという事は、Google AdMobの設定と公式ドキュメントの読み込み、組み込み方法を決定したところまでうまく行った方という事です。
ついにiPhoneアプリにAdMobを導入ということになりますので、Xcodeを起動して開発の準備をしましょう。
私自身これから、iPhoneアプリ開発を行い、アプリのリリースまで持っていく必要があるので、ドキュメントを読みながら進めていきたいと思います。
開発手順1-1:Google Admobのインストール(cocoapods利用時)
標準でGoogleで紹介されている方法としては、cocoapodsを使った方法でした。
基本的に、この方法を使わず、新規にサポートされている、Package Managerを使った方法で対応することにします。
iPhoneアプリには、GoogleのAdmobを導入すると良いとわかっていただけたかと思います。そのため、アプリをうまく作って、Admobを導入してみてください。
この方法は、SwiftUIでは旧構造になりますので、次に挙げる方法を利用することをお勧めします。
開発手順1-2 推奨方法:Google Admobのインストール(Package Manager Swift.orgを使ってXcodeにインストールする)
では早速、SwiftUIのみを使ってXcodeでGoogle AdMobを導入する方法を紹介します。
操作方法としては、XcodeからGoogle AdMobのプログラムを探して設定するだけになります。
Google AdMobのソフトウェアがXcodeにインストールされることで利用されることになります。
Xcodeを使ったSwift Package Managerは、Swiftコードの配布を管理するためのツールです。
Swiftビルドシステムと統合されており、依存関係のダウンロード、コンパイル、リンクのプロセスを自動化します。
パッケージマネージャーはSwift3.0以降に含まれています。
パッケージは、Swiftソースファイルとマニフェストファイルで構成されています。
マニフェストファイルはPackage.swiftと呼ばれる
、モジュールを使用してパッケージの名前とその内容を定義しPackageDescription
ます。
パッケージには1つ以上のターゲットがあります。各ターゲットは製品を指定し、1つ以上の依存関係を宣言できます。
- Xcode で File > Add Packages… を開き、Google Mobile Ads の Swift パッケージをインストールします。
- 表示されたプロンプトで、Google Mobile Ads の Swift パッケージの GitHub リポジトリ(下記)を検索します。
- 表示された画面の右上の検索窓に以下のURLを入力します。
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
- 使用する Google Mobile Ads の Swift パッケージのバージョンを選択します。新しいプロジェクトの場合は [Up to Next Major Version] を選択することをおすすめします。
メニューに合わせて対応するだけですので、この対応は簡単でした。
cocoapodsを使わない方法です。簡単に対応できましたので、この方法をお勧めしています。
完了すると、Xcode はパッケージの依存関係の解決とバックグラウンドでのダウンロードを開始します。パッケージの依存関係の追加について詳しくは、Apple の記事を参照してください。
開発手順2:XcodeでのAdMobの設定を行う。
Google AdMobのパッケージがインストールできたら、次は、Xcode上での設定を始めましょう。
Info.plist を更新する。
Info.plist Fileにパスを設定する。
アプリの Info.plist
ファイルを更新し、次の 2 つのキーを追加します。
1.AdMob アプリ ID(AdMob の UI で確認)の文字列値を含む GADApplicationIdentifier
キー。
AdMobアプリを開き、アプリを仮登録して、アプリIDを取得します。
行を1行追加し、キーの追加とアプリIDを入力します。
2.Google の SKAdNetworkIdentifier
値(cstr6suwn9.skadnetwork
)を含む SKAdNetworkItems
キー。
これらの値を Google に提供したその他の購入者を選択します。
SKAdNetworkIdentifierとSKAdNetwork Itemsを入力の方法は、info.plist Fileをソースコード表示して、そのままリストをコピーして貼り付けましょう。
以下のクイックスタートに表示されている内容をコピーしましょう。
アプリ ID を確認する
- https://apps.admob.com から AdMob アカウントにログインします。
- サイドバーで [アプリ] をクリックします。
- [すべてのアプリ] をクリックします。
- [App ID] 列の アイコンをクリックして、アプリの ID をコピーします。
広告ユニット ID を確認する
- https://apps.admob.com から AdMob アカウントにログインします。
- サイドバーで [アプリ] をクリックします。
- 広告ユニットに関連付けられているアプリの名前をクリックします。注: 目的のアプリが最近使ったアプリの一覧にない場合は、[すべてのアプリ] をクリックして、アプリ名をクリックしてください。
- サイドバーで [広告ユニット] をクリックします。
- [広告ユニット ID] 列の アイコンをクリックして、広告ユニットの ID をコピーします。
開発手順3:Mobile Ads SDK を初期化する
さて、ようやくXcodeのSwiftUIでコードを組み込む段階にきました。
Mobile Ads SDKを実行前に初期化が必要になります。
まず、Xcode 12 / iOS 14から使えるようになったSwiftUI Appライフサイクルの場合、AppDelegate.swift
が存在しません。
そのため、プロジェクト作成時に作られるxxxApp.swift
を修正します。
注:プロジェクトのビルド設定で、 [Other Linker Flags] に -ObjC
リンカーフラグを追加します。
広告を読み込む前に、
GADMobileAds.sharedInstance
でstartWithCompletionHandler:
メソッドを呼び出します。このメソッドは SDK を初期化し、初期化が完了(または 30 秒間のタイムアウトが経過)した時点で完了ハンドラをコールバックします。この処理が必要なのは 1 回のみで、アプリの起動時に行うのが理想的です。できるだけ早くstartWithCompletionHandler:
を呼び出してください。
開発手順3:AdMobでアプリをセットアップする。
Xcode側でアプリを設定が終わると、再度Google AdMobのサイトにiPhoneアプリの情報を設定します。
これでXcodeとAdMobサイトにアプリ開発の情報が設定されましたので、いよいよ実装に入ります。
設定お疲れ様でした。
AdMob広告をXcodeのSwiftUIで実装する。(広告を好きな場所に設定する実装方法)
いよいよ、Google AdMobの広告を、iPhoneアプリの実装ができるようになりました。
リリースの本番前までは、テスト環境設定で対応することを覚えておきましょう。
Google AdMobアプリ起動時広告を実装する方法
Google AdMobバナー広告
Google AdMobリワード広告(Reward)
Google AdMobインタースティシャル広告(Interstitial)
Google AdMobリワードインタースティシャル広告(RewardInterstitial)
AdMobを更新して iOS 14 以降の最新のiPhoneアプリバージョンに対応させる
Google AdMobのiOS14以降に備える。
このガイドでは、iPhoneアプリを iOS 14 に対応させるために必要な変更の概要を説明します。
Apple が 2020 年 6 月に発表した iOS 14 の更新に伴い、アプリが Apple の広告配信用の識別子(IDFA)にアクセスする際はユーザーに許可を求めることが必須となりました。これには、App Tracking Transparency(ATT)フレームワークと呼ばれるプロンプトを利用します。iOS 14 以降に対応するようアプリを更新して、広告収入に影響が及ばないようにする方法についての推奨事項をご紹介いたします。
今後もiOSのバージョンが変わっていきますので最新のiOSに対応する手段を身につけておきましょう。
Google Mobile Ads(GMA)SDK を最新バージョンに保つ
新しい機能をご利用になれるよう、GMA SDK を常に最新に保つことをおすすめします。パフォーマンス向上のために、定期的に新しいアップデートおよび機能がリリースされています。iOS 14 に対応できるよう、iOS 向け Google Mobile Ads SDK の最新バージョン(7.64 以降)をインストールしましょう。
Apple社のSKAdNetworkを設定する
広告主は、広告キャンペーンの成果とお客様のアプリへの広告掲載によって得られる価値を、Apple の SKAdNetwork API を使って測定します。お客様のアプリが広告トラフィックにつながる価値の高いソースであると認識してもらうには、SKAdNetwork で Google のネットワーク キーを設定する必要があります。SKAdNetwork の設定の詳細
Apple社のATT プロンプトがアプリに適しているかどうか検討する
iOS 14 対応の一環として新しい ATT フレームワークを導入する場合、説明文の内容をよく検討してテストを行い、アプリに最適な表現を使用してください。
ATT プロンプトの直前に「説明メッセージ」をユーザーに表示することもできます。このメッセージには、ユーザーデータの用途と、ユーザーがパーソナライズド広告を有効化する方法を記載します。説明メッセージを表示する場合、ファンディング チョイスを使って、ATT 許可プロセスの管理と、プロンプトの直前に表示する説明メッセージおよび EU ユーザーの同意確認メッセージの作成を行うことができます。IDFA メッセージについて詳しくは、ファンディング チョイスのヘルプセンターをご覧ください。
なお、欧州経済領域ならびに英国のユーザーについては、Google の EU ユーザーの同意ポリシーも引き続き適用されるため、ATT アラートの前に表示されるメッセージの設計にも同ポリシーを反映する必要があります。
Google AdMob iOS 広告キャンペーンの安全対策
Google アプリ キャンペーンでも広告を掲載している場合は、ATT 導入に向けた対応方法について、こちらの詳細をご覧ください。
Google AdMob SDK インスタンス ID について
最新バージョンの GMA SDK と IMA SDK では、ローテーションされる SDK インスタンス ID がアプリごとに自動生成されます。これは、広告の効果的な配信と表示、整合性を実現するための仕組みです。SDK インスタンス ID はアプリ固有の ID で、これにより、アプリの広告の掲載結果を最大限に高められます。
Google AdMob 同一アプリキーについて
GMA SDK のバージョン 8.3.0 では、同一アプリキーが導入されます。これは、アプリ内の各ユーザーを識別する暗号化されたキーです。同一アプリキーを使用すると、アプリから収集したデータを使って、配信する広告の関連性とパーソナライズのレベルを高めることができます。ただし、同一アプリキーを使って、アプリのユーザーのアクティビティをサードパーティ製アプリに結び付けることはできません。
同一アプリキーはデフォルトで有効になっていますが、いつでも SDK で無効にできます。
アプリのユーザーは、広告内のコントロールで、同一アプリキーに基づく広告のパーソナライズを無効にできます。同一アプリキーを使った広告のパーソナライズでは、既存のプライバシー設定(NPA、RDP、TFCD/TFUA など)が守られます。
Google AdMob IDFA 使用の有無に基づいてメディエーション グループを設定する
このたび、iOS アプリで、広告主識別子(IDFA)の有無にかかわらず広告リクエスト用にメディエーション グループを個別に作成できるようになりました。
新しいメディエーション グループの作成時と既存のメディエーション グループの編集時に、IDFA の有無に基づいて、IDFA 可用性パラメータを使って広告リクエストのターゲティングが可能になっています。個々の広告ごとにウォーターフォールを使うと、IDFA 使用ありと使用なしの両方の広告リクエストについてパフォーマンスのテストと最適化を行うことができます。
注: すべてのメディエーション グループについて、広告ネットワークの最適化を使用して、掲載結果に基づいてウォーターフォールを動的に調整することをおすすめします。
入札のベータ版プログラムに参加している方は、入札を引き続きご利用になることをおすすめします。入札を使用すると、別々のウォーターフォールを別途管理しなくても、トラフィックの両セグメント(IDFA 使用がある場合とない場合)のインプレッションで最大限の収益を得られるようになります。
Google により最適化された Floor を使用する
第三者メディエーション プラットフォームを使用している場合は、Google により最適化された eCPM Floor を広告ユニットに設定できます。ユーザーの地域、広告ユニットのトラフィック、過去のデータに基づいて、Google がお客様の eCPM Floor を動的に設定します。
iOS 14 に関する変更に伴い、eCPM が変動する可能性があります。eCPM Floor の管理が自動化されるため、eCPM Floor を手動で調整する時間を節約できます。
Google AdMob SKAdNetworkの新機能
Google AdMob SKAdNetworkは、広告主がユーザーのプライバシーを維持しながら広告キャンペーンの成功を測定するのに役立ちます。
階層的なソースID、階層的なコンバージョン値、複数のコンバージョン、ウェブ広告のSKAdNetworkアトリビューションなど、広告アトリビューションの最新の更新について説明します。
また、群集の匿名性の重要性と、Xcode13でのテストを通じてSKAdNetworkのインプレッションを検証する方法についても説明します。
コメント