Skip to main content

概要

ネイティブ広告は、アプリのデザインに合わせて広告UIを自由にカスタマイズできる広告フォーマットです。広告素材(画像、動画)、タイトル、説明、CTAボタンなどの要素を個別に配置して、自然なユーザー体験を提供できます。

主な機能

  • 完全なUIカスタマイズ:アプリのデザインシステムに合わせて広告レイアウトを自由に構成
  • 様々なメディアサポート:画像および動画広告素材サポート
  • 柔軟なクリック領域設定:全体クリックまたは個別要素別クリック処理可能
  • プロフィール情報表示:広告主プロフィールロゴ、名前、リンクサポート

クラスとインターフェース

AdropNativeAd

ネイティブ広告をロードして管理するメインクラスです。
String
必須
広告ユニットID(コンソールで発行)
String
コンテキストターゲティング用のID(オプション)
AdropNativeAdListener
広告イベントを処理するリスナー
Boolean
デフォルト:"false"
カスタムクリック処理の使用有無

主なプロパティ

AdropNativeAdView

ネイティブ広告を表示するコンテナビューです。
Boolean
デフォルト:"false"
全体領域クリックの有効化有無。trueに設定すると広告ビュー全体領域でクリックイベントが発生します。

主なメソッド

AdropMediaView

広告画像または動画を表示するメディアコンテナビューです。
動画クリエイティブの場合、必ずAdropNativeAdView.setMediaView(...)を通じてAdropMediaViewをバインドする必要があります。ad.asset URLを読み取り、独自プレイヤー(ExoPlayerMediaPlayerまたはサードパーティライブラリ)で直接再生すると、SDKの動画トラッキングパイプラインを経由しなくなり、VTRが計測されずonAdVideoStart / onAdVideoEndコールバックも呼び出されません。動画トラッキングとVTRセクションを参照してください。

AdropNativeAdListener

広告イベントを処理するインターフェースです。

AdropNativeAdProfile

広告主プロフィール情報を含むデータクラスです。

実装ガイド

1. XMLレイアウト設定

ネイティブ広告を表示するレイアウトを定義します。AdropNativeAdViewをルートとして、内部に広告要素を配置します。
res/layout/native_ad_layout.xml

2. 広告のロードと表示(Kotlin)

3. 広告のロードと表示(Java)

Java

高度な機能

全体クリック領域設定

広告ビュー全体領域でクリックイベントが発生するよう設定できます。
isEntireClicktrueに設定すると広告ビュー全体がクリック可能な領域になります。個別要素のクリックリスナーは動作しません。

個別要素クリックリスナー

特定の広告要素にカスタムクリックリスナーを設定できます。

コンテキストターゲティング

特定のコンテキストに合った広告をリクエストできます。

RecyclerViewでの使用

RecyclerViewのアイテムとしてネイティブ広告を表示できます。
RecyclerView Adapter

テストユニットID

開発およびテスト時に以下のテストユニットIDを使用してください。
本番リリース前に必ず実際のユニットIDに置き換えてください。

ライフサイクル管理

Activity/Fragmentでのリソース解放

ネイティブ広告はメモリリークを防ぐために使用終了後に必ず解放する必要があります。

RecyclerViewでのリソース解放

RecyclerView Adapterで広告を使用する場合、ActivityやFragmentが終了する時にすべての広告を解放する必要があります。

動画トラッキングとVTR

Adropはネイティブ広告の動画指標 — VTR(動画完了率)、onAdVideoStartonAdVideoEnd — を、SDKメディアコンテナ(AdropNativeAdView.setMediaView(...)でバインドされたAdropMediaView)内で動画がレンダリングされる場合にのみ収集します。 AdropNativeAd.assetプロパティは元の画像または動画ファイルのURLを返します。これはサムネイル表示や媒体社独自分析などの補助メタデータとして公開されており、再生を直接行うためのものではありません。
動画ネイティブ広告のasset URLを独自の動画プレイヤー(ExoPlayerMediaPlayerまたはサードパーティプレイヤー)に直接渡さないでください。SDKメディアコンテナを経由しないと以下の現象が発生します。
  • 該当面でVTR(動画完了率)が収集されません。
  • onAdVideoStart / onAdVideoEndコールバックが呼び出されません。
  • 該当ユニットの動画パフォーマンス集計が欠落または0として報告されます。
クリック(onAdClicked)とインプレッション(onAdImpression)トラッキングはコンテナビューに接続されているため引き続き動作しますが、動画関連シグナルは失われます。

推奨パターン

動画ネイティブ広告には必ずSDKメディアコンテナをバインドしてください。
特定の面がどうしても独自プレイヤーを使う必要があり、VTRが計測されないことを許容する場合、広告をAdropNativeAdViewにバインドしたままにすることで、クリックとインプレッションのアトリビューションは引き続き確保できます。ただしその面を社内レポートで非VTRインベントリとして分類し、SDKが計測した動画パフォーマンスと混在させないでください。

ベストプラクティス

1. 必要な要素のみ表示

すべての広告要素を表示する必要はありません。アプリのデザインに合わせて必要な要素のみ選択的に使用してください。

2. 画像ロードライブラリの使用

アイコン、カバー、プロフィール画像を表示する際はGlide、Coilなどの画像ロードライブラリを使用してください。

3. 広告ビューの再利用

RecyclerViewで広告を表示する際は広告インスタンスをキャッシュして再利用してください。

4. 適切な広告配置

ユーザー体験を損なわない範囲で自然に広告を配置してください。
  • コンテンツフィード:5〜10アイテムごとに1つの広告
  • 詳細画面:コンテンツ下部に配置
  • スクロールビュー:自然なコンテンツフローに合わせて配置

5. エラー処理

広告ロード失敗に備えて適切なフォールバック処理を実装してください。

完全な例


一括ロード (loads)

AdropNativeAd.loads()を使用すると、1回の呼び出しで複数のネイティブ広告をまとめてリクエストできます。フィード・カルーセル・ページネーションリストへ挿入する広告プールのプリフェッチに有用です。

シグネチャ

使用方法

リスナーコールバック

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

制約事項

  • 呼び出しあたり最大5個。 サーバーがそれ以上を返しても先頭の5個のみ配信されます。
  • バックフィルは適用されません。 ダイレクト広告が埋まらない場合、バックフィル設定に関わらずonAdsFailedToReceiveERROR_CODE_AD_NO_FILLで呼ばれます。
  • onAdsReceived内でdestroy()を呼ばないでください。 各広告をAdropNativeAdView.setNativeAd(...)でバインドするか、ライフサイクル用に保持し、親Activity.onDestroy()(または同等のタイミング)でdestroy()してください。
  • AdropBanner.loads()と異なり、ネイティブバッチはすべての広告のレンダリングが完了するまで待機してからonAdsReceivedを呼びます。配信時点で各インスタンスは完全にレンダリングされています。

バックフィル広告

バックフィル広告が有効な場合、ダイレクト広告がない時に自動的にバックフィル広告がロードされます。isBackfilledプロパティでバックフィル広告かどうかを確認できます。

AdChoicesの位置調整

バックフィルネイティブ広告で、AdChoicesマークを表示するコーナーを指定できます。load()呼び出し前にAdropNativeAdインスタンスのpreferredAdChoicesPositionを設定してください。
この設定はバックフィルネットワークに渡される希望位置のヒントで、バックフィルネイティブ広告にのみ適用されます — ダイレクト広告には影響しません。必ずload()呼び出し前に設定する必要があり、バックフィルネットワークがポリシー上別の位置に表示する場合があります。
バックフィル広告を使用するには、io.adrop:adrop-ads-backfill依存関係を追加する必要があります。はじめにを参照してください。

次のステップ

バナー広告

バナー広告を実装

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

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

ターゲティング設定

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

リファレンス

クラス、リスナー、エラーコード