Skip to main content

概要

バナー広告は、画面の一部領域に表示される長方形の広告です。UIKitとSwiftUIの両方で使用できます。

主な特徴

  • 画面の上部、下部、または中央に固定配置可能
  • 画像および動画広告に対応
  • UIKitおよびSwiftUIの両方をサポート
  • デリゲートによる広告イベント処理
開発環境ではテストユニットIDを使用してください: PUBLIC_TEST_UNIT_ID_320_100

UIKit実装

UIKit環境ではAdropBannerクラスを使用してバナー広告を実装します。

基本実装

AdropBannerの初期化

String
必須
Adropコンソールで作成したユニットID

広告の読み込み

バナーを画面に追加した後、load()メソッドを呼び出して広告をリクエストします。
バナーが画面に表示されているタイミングでload()を呼び出してください。画面に表示されていない状態で読み込むと、インプレッションが正確に測定されない可能性があります。

Context IDの設定

コンテキストターゲティングのためにContext IDを設定できます。

SwiftUI実装

SwiftUI環境ではAdropBannerRepresentedを使用してバナー広告を実装します。

基本実装

デリゲート処理

デリゲートを通じて広告イベントを処理できます。

Context IDの設定


Objective-C実装

Objective-C環境でバナー広告を実装する方法です。

基本実装

Context IDの設定


デリゲートメソッド

AdropBannerDelegateプロトコルは広告のライフサイクルイベントを処理します。

onAdReceived (必須)

広告受信が成功したときに呼び出されます。

onAdFailedToReceive (必須)

広告受信が失敗したときに呼び出されます。
AdropErrorCode
エラータイプを示すコード。詳細はリファレンスを参照してください。

onAdImpression (オプション)

広告が画面に表示されたときに呼び出されます。

onAdClicked (オプション)

ユーザーが広告をクリックしたときに呼び出されます。

onAdVideoStart (オプション)

動画広告の再生が開始されたときに呼び出されます。

onAdVideoEnd (オプション)

動画広告の再生が完了したときに呼び出されます。

クロージャコールバック

デリゲートの代わりにクロージャベースのコールバックを使用できます。
デリゲートとクロージャの両方を設定すると、両方が呼び出されます。

ライフサイクル管理

destroy()

バナーを使用しなくなったら destroy() を呼び出してリソースを解放してください。WebView、トラッキング、動画再生などバナーが保持しているリソースを能動的にクリーンアップします。 destroy() は idempotent なので複数回呼び出しても安全ですが、呼び出し後は該当インスタンスを再利用できません。
ビューコントローラーの解放時に destroy() を呼び出さないと、WebView と関連リソースが解放されずメモリリークやパフォーマンス低下が発生する可能性があります。特に動画バナーで影響が大きいです。

広告サイズ

バナー広告は、ユニットに設定したサイズに合わせてビューのサイズを指定する必要があります。

一般的なバナーサイズ

UIKit

SwiftUI


ベストプラクティス

1. メモリ管理

ビューコントローラーが解放されるときに destroy() を呼び出してバナーリソースをクリーンアップしてください。

2. 画面の可視性

バナーが画面に表示されるときに広告を読み込んでください。

3. バナーインスタンスの再利用

AdropBanner インスタンスは1つだけ保持し、新しい広告が必要になるたびに load() を再度呼び出してください。広告更新のたびに新しい AdropBanner を作成しないでください。 バナーを毎回作り直すと、リクエストごとに新しい WKWebView と WebContent プロセスが割り当てられます。特にビデオバナーで頻繁に更新を繰り返すと、リソースが蓄積してレンダリングパフォーマンスに影響する可能性があります。
load() を再度呼び出すたびに onAdReceived が再度呼び出されるため、既存のデリゲートが新しい広告を自動的に処理します。

4. エラー処理

広告読み込み失敗時に適切なエラー処理を実装してください。

テストユニットID

開発およびテスト時には以下のテストユニットIDを使用してください。

使用例


動画再生制御

動画バナー広告の場合、play()pause()を使用してビデオ再生を手動で制御できます。

play()

動画の再生を再開します。ポップアップが閉じたり、アプリがバックグラウンドから復帰してバナーが再び表示されるときに呼び出してください。

pause()

動画の再生を一時停止します。バナーがポップアップで隠れたり、アプリがバックグラウンドに移行するときに呼び出してください。

例:バックグラウンド/フォアグラウンドの処理

play()pause()は動画バナー広告にのみ影響します。画像バナーには効果がありません。

カスタムクリック処理

useCustomClickを使用して、広告クリック動作を直接制御できます。有効にすると、SDKはクリック時に自動的にデスティネーションURLを開かず、自分で処理できます。

useCustomClick

useCustomClicktrueの場合、広告クリック時にSDKが自動的にデスティネーションURLを開きません。onAdClickedデリゲートコールバックは引き続き呼び出され、open()メソッドを使用するか、ナビゲーションを自分で処理できます。

open()

広告のデスティネーションURLを開きます。オプションでカスタムURLを渡すことができます。

一括ロード (loads)

AdropBanner.loads(...)を使用すると、1回の呼び出しで複数のバナー広告をまとめてリクエストできます。カルーセルやページネーション付きフィード、広告プールのプリフェッチなどに有用です。

シグネチャ

使用方法

デリゲートメソッド

単体onAdReceived(_:) / onAdFailedToReceive(_:_:)コールバックはloads経路では呼ばれません。バッチ結果は必ずonAdsReceived(_:) / onAdsFailedToReceive(_:)で受け取ってください。

定数

Int
デフォルト:"5"
1回のloads(...)呼び出しで返却される広告の最大数。

制約事項

  • 呼び出しあたり最大5個。 サーバーがそれ以上を返しても先頭の5個のみ配信されます。
  • バックフィルは適用されません。 ダイレクト広告が埋まらない場合、バックフィル設定に関わらずonAdsFailedToReceiveERROR_CODE_AD_NO_FILLで呼ばれます。
  • onAdsReceived の中で destroy() を呼び出さないでください。 まず各バナーをビュー階層に追加してから、ビューコントローラーが解放されるタイミングで destroy() を呼び出してください。
  • onAdsReceivedは広告データが適用され次第発火し、単体load()と同じ動作です — ビューに追加後にクリエイティブが描画されます。
  • 返却されたバナーへの強参照を保持してください(例: ビューコントローラーに保存)。ビュー階層に追加される前に解放されると黙って破棄されます。

バックフィル広告

バックフィル広告が有効な場合、ダイレクト広告がない時に自動的にバックフィル広告がロードされます。isBackfilledプロパティでバックフィル広告かどうかを確認できます。
バックフィル広告を使用するには、AdropAds-Backfill依存性を追加する必要があります。はじめにを参照してください。

次のステップ

ネイティブ広告

UIに合わせてカスタマイズ可能なネイティブ広告の実装

インタースティシャル広告

画面全体を覆うインタースティシャル広告の実装

ターゲティング設定

ユーザー属性とコンテキストターゲティングの設定

リファレンス

クラス、デリゲート、エラーコードの参照