Zucks Ad Network Android用SDK導入手順

ご利用要件

  • Android 4.1以上
  • Java 8以上
  • Android Jetpack (AndroidX)
  • Android Gradle Plugin 3.6.0以上
  • compileSdk 30以上
  • ExoPlayer
    • 2.15.1以上
    • 2.19.0以上をお使いの場合、破壊的変更が含まれる為、必ずZucks Ad Network SDK v6.0.1以上をご利用ください

更新履歴

2023/12/19 v6.0.1

  • ExoPlayer 2.19.0以上に対応
    • 最低要件に変更はありません

2023/03/29 v6.0.0

  • 開発環境の最低要件をcompileSdk 30以上に変更
  • 開発環境の最低要件をAndroid Gradle Plugin 3.6.0以上に変更

2022/12/20 v5.0.0

  • 開発環境の最低要件をJava 8以上に変更
  • 開発環境の要件にAndroid Jetpack (AndroidX) を追加
  • Android Support Libraryのサポートを廃止
  • ExoPlayerバージョンを2.18.1へ更新
  • ExoPlayerバージョンの最低要件を2.15.1へ更新

2021/05/14 v4.8.6

  • リワード広告読込時の処理速度を改善
  • リワード広告読込時、一部アプリにおいてアプリ描画領域上部または下部に空白が追加されてしまう問題を修正

2021/05/12 v4.8.5 リワード広告読込時、一部アプリにおいてアプリ描画領域下部に空白が追加されてしまう問題を修正

2021/02/16 v4.8.4 一部の動画を含む広告で、表示が乱れる問題を修正

2020/02/03 v4.8.3 内部処理の軽微な変更

2020/12/09 v4.8.2 Android版MoPubメディエーションアダプタ v4.8.3.0をサポート

2020/11/12 v4.8.1 リワード広告において一部クリエイティブ表示時にクラッシュする問題を修正

2020/10/29 v4.8.0

  • リワード広告に対応
  • 内部処理を複数モジュールによるライブラリ構成に変更

2020/07/30 v4.7.0

  • targetSdkVersionを28に変更
  • play-services-baseへの依存を削除
  • play-services-ads-identifier v16.0.0以上を内部的に利用するよう変更
  • Zucks Ad Network SDK向けProguard設定ファイルを同梱するよう変更
  • SDK配布方式をMaven経由でのaar形式ライブラリのみに変更

2018/03/28 v4.6.1 ビューアブル状態による動画広告の自動再生と一時停止に対応

2017/08/14 v4.6.0 ライブラリの更新

2017/06/28 v4.5.2 ライブラリの更新

2017/06/02 v4.5.1 不要なファイルの削除

2017/06/01 v4.5.0 ネイティブ広告の追加

2017/03/03 v4.4.2 MoPubメディエーション用アダプタに対応

2017/02/23 v4.4.1 全画面インライン広告のフォアグラウンド復帰時再ロード処理を廃止

2017/01/10 v4.4.0 全画面(縦)広告の追加

2016/12/07 v4.3.3 特定の環境でバナー広告がクラッシュする不具合修正

2016/11/11 v4.3.2 バナー広告の不具合修正

2016/09/12 v4.3.1 iマークタップ時のコールバック呼び出しを変更

2016/07/07 v4.3.0 Unity Plugin対応

2016/06/22 v4.2.2 バナー広告の不具合修正

2016/06/15 v4.2.1 バナー広告(AdMobメディエーション導入時)の不具合修正

2016/05/27 v4.2.0 AdMobメディエーション対応、バナーのコールバックを追加

2016/05/25 v4.1.1 インタースティシャル広告の不具合修正

2016/05/19 v4.1.0 バナー広告サイズアジャスト機能の追加

2016/02/16 v4.0.0 設計の見直し、インタースティシャル広告表示の高速化

SampleAppダウンロード

SDK組み込み済みの実装サンプルアプリをダウンロードできます。
下記導入手順と合わせて実装時の参考にお使いください。

SampleAppをダウンロード

1. プロジェクトへの導入

ⅰ. build.gradleの設定

プロジェクトでGradleを利用している場合、build.gradleに下記の設定を追加してください。

Zucks Ad Network Android用SDKはv4.7.0以降より、Maven経由での配布のみのサポートになりました。

ダウンロードが必要な場合(旧バージョン v4.6.1 のダウンロード)

ⅰ. SDKファイルのダウンロード

下記よりv4.6.1のSDK一式をダウンロードしてください。

SDK(v4.6.1)ダウンロード

ⅱ. jarファイルのプロジェクトへの追加

ZucksAdNetworkSDK-4.x.x.jarをプロジェクト内のlibsフォルダに配置します。

AndroidStudio

ⅲ. Gradleによるプロジェクト更新

build.gradleに下記の設定を追加します。※既に記載されている場合は不要です。

Sync Project with Gradle Files を押下し、プロジェクト設定を更新します。

AndroidStudio

マニフェストの設定

パーミッションの追加

AndroidManifest.xmlに、下記の<uses-permission>タグを記述してください。
既にアプリで設定済みの場合は、追加で記述する必要はありません。

  • INTERNET : ネットワーク経由で広告を取得するために利用します。
  • ACCESS_NETWORK_STATE : ネットワーク状態を取得するために利用します。

Android 12 (API 31) 以降を対象とする場合

targetSdk31 (Android 12) またはそれ以降のバージョンに設定する場合、広告IDを利用しより適切な広告配信が行えるよう、アプリに下記追加権限を設定してください。

詳細は広告 ID - Play Console ヘルプをご参照ください。

2. Google Play Servicesの導入

v4.7.0以降、この手順は不要になりました。

v4.7.0未満をお使いの場合

ⅰ. Google Play Servicesのインストール

1. Google Play Servicesのインストールをする場合、build.gradleに下記の設定を追加してください。

2. AndroidManifest.xml<application>タグ内に、下記の<meta-data>タグを記述してください。

3. 広告の表示設定

広告タイプの選択

下記より掲載する広告タイプを選択して、続きの実装方法をご確認ください。

ⅰ. バナー広告

アプリ内にバナー広告を表示します。

バナー広告のリフレッシュ間隔設定は管理画面より行います。

バナー広告表示例(320x50)

バナー広告表示例(320x50)

バナー広告の表示

広告表示を行いたい任意のレイアウトファイルにnet.zucks.view.AdBannerを追加してください。
その際、レイアウトパラメータにFrame IDを指定してください。

アプリケーション内で下記の手順でnet.zucks.view.AdBannerのインスタンスを生成し、レイアウトに追加してください。
その際、第二引数にFrame IDを指定してください。

以上でバナー広告の設置が完了しました。アプリを起動し広告の表示を確認してください。

広告コールバック

Javaコードで実装する場合、net.zucks.listener.AdBannerListenerを使用して、広告情報のロード時や広告タップ時のコールバックを受け取ることが可能です。

実装例は以下の通りです。

検知できるコールバック一覧は以下の通りです。

public void onReceiveAd(AdBanner adBanner) 広告情報のロード成功時に通知されます。
リフレッシュ間隔を設定している場合はリフレッシュ毎に通知されます。
public void onTapAd(AdBanner adBanner) 広告タップ時に通知されます。
public void onFailure(AdBanner adBanner, Exception e) 広告情報のロード失敗時に通知されます。
エラーの内容によって以下のExceptionが設定されます。
net.zucks.exception.NetworkNotFoundException
→ オフラインエラー
net.zucks.exception.FrameIdNotFoundException
→ Frame IDエラー
net.zucks.exception.DisplaySizeTooSmallException
→ 画面サイズエラー
net.zucks.exception.ParentNotFoundException
→ 親Viewが存在していないエラー net.zucks.exception.AdIllegalStateException
→ 広告ステータス異常エラー net.zucks.exception.AdNetworkApiException
→ 広告配信ネットワークAPIエラー
public void onBackApplication(AdBanner adBanner) 広告タップ後アプリケーションに戻った時に通知されます。

バナー広告を画面サイズにアジャストする

バナー広告を画面の横幅(画面の短辺)に合わせて拡大する機能です。広告の表示例は以下の通りです。

バナー広告サイズアジャスト表示例(portrait)

portraitモードの広告表示例

バナー広告サイズアジャスト表示例(landscape)

landscapeモードの広告表示例

実装例

Javaコードで実装する場合にはコンストラクタ引数boolean sizeAdjusttrueを設定してください。

layout.xmlで実装する場合にはパラメータにsize_adjust="true"を設定してください。

広告を一時的に非表示にする(Javaコードでの実装時)

ポップアップ表示時など、一時的に広告を非表示にしたい場合は下記のAPIをコールしてください。

引数visibilityにはView.VISIBLE, View.INVISIBLE, View.GONEのいずれかを設定してください。

参考:Android Developers | View.setVisibility(int visibility)

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

アプリ終了時や、画面遷移時などに表示するインタースティシャル広告を設置します。

インタースティシャル広告の表示率は、管理画面から設定することができます。
表示率を変更したい場合、管理画面より枠の設定を変更してください。

インタースティシャル広告表示例(300x250)

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

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

net.zucks.view.AdInterstitialは、load()メソッドで広告情報をロードし、 その後show()メソッドを実行することでインタースティシャル広告を表示します。

広告情報のロードには通常1秒程度必要となります。
show()のタイミングより前に、余裕を持って広告情報のロードが完了するように実装してください。

複数回show()を呼び出す場合、後述の「繰り返し表示を想定した実装方法」を参考に、広告情報の再ロード処理を記述してください。

以上でインタースティシャル広告の設置が完了しました。アプリを起動し広告の表示を確認してください。

繰り返し表示を想定した実装方法

show()を行った後、再度インタースティシャル広告を表示する場合はshow()の前にload()を完了するように実装してください。
再取得を行う場合net.zucks.listener.AdInterstitialListeneronCloseAd()メソッドが最適です。
また、表示時エラーを考慮してonShowFailure(Exception e)メソッドにも実装します。

バックキー押下で広告を閉じる場合の実装方法

表示されたインタースティシャル広告をバックキーを使って閉じたい場合は
Activity内で、以下の方法で行ってください。

広告コールバック

net.zucks.listener.AdInterstitialListenerを使用して、広告情報ロード時や広告タップ時のコールバックを受け取ることが可能です。
広告情報のロードが未完了状態でshow()を実行した場合、onShowFailure(Exception e)が呼び出されます。

実装例は以下の通りです。

検知できるコールバック一覧は以下の通りです。

public void onReceiveAd() 広告情報のロード成功時に通知されます。
public void onShowAd() 広告表示時に通知されます。
public void onCancelDisplayRate() 表示率によるキャンセル時に通知されます。
public void onTapAd() 広告タップ時に通知されます。
public void onCloseAd() 広告クローズ時に通知されます。
public void onLoadFailure(Exception e) 広告情報のロード失敗時に通知されます。
エラーの内容によって以下のExceptionが設定されます。
net.zucks.exception.NetworkNotFoundException
→ オフラインエラー
net.zucks.exception.FrameIdNotFoundException
→ Frame IDエラー
net.zucks.exception.DisplaySizeTooSmallException
→ 画面サイズエラー
net.zucks.exception.AdIllegalStateException
→ 広告ステータス異常エラー net.zucks.exception.AdNetworkApiException
→ 広告配信ネットワークAPIエラー
public void onShowFailure(Exception e) 広告表示失敗時に通知されます。
エラーの内容によって以下のExceptionが設定されます。
net.zucks.exception.NetworkNotFoundException
→ オフラインエラー
net.zucks.exception.FrameIdNotFoundException
→ Frame IDエラー
net.zucks.exception.DisplaySizeTooSmallException
→ 画面サイズエラー
net.zucks.exception.AdIllegalStateException
→ 広告ステータス異常エラー net.zucks.exception.AdNetworkApiException
→ 広告配信ネットワークAPIエラー

ⅲ. 全画面(縦)インライン広告

アプリ内に全画面インライン広告を表示します。

全画面インライン広告表示例(400x600)

全画面インライン広告表示例

全画面インライン広告の表示

広告表示を行いたい任意のレイアウトファイルにnet.zucks.view.AdFullscreenBannerを追加してください。
その際、レイアウトパラメータにFrame IDを指定してください。

アプリケーション内で下記の手順でnet.zucks.view.AdFullscreenBannerのインスタンスを生成し、レイアウトに追加してください。
その際、第二引数にFrame IDを指定してください。

以上で全画面インライン広告の設置が完了しました。アプリを起動し広告の表示を確認してください。

広告コールバック

Javaコードで実装する場合、net.zucks.listener.AdFullscreenBannerListenerを使用して、広告情報のロード時や広告タップ時のコールバックを受け取ることが可能です。

実装例は以下の通りです。

検知できるコールバック一覧は以下の通りです。

public void onReceiveAd(AdFullscreenBanner banner) 広告情報のロード成功時に通知されます。
public void onTapAd(AdFullscreenBanner banner) 広告タップ時に通知されます。
public void onFailure(AdFullscreenBanner banner, Exception e) 広告情報のロード失敗時に通知されます。
エラーの内容によって以下のExceptionが設定されます。
net.zucks.exception.NetworkNotFoundException
→ オフラインエラー
net.zucks.exception.FrameIdNotFoundException
→ Frame IDエラー
net.zucks.exception.DisplaySizeTooSmallException
→ 画面サイズエラー
net.zucks.exception.ParentNotFoundException
→ 親Viewが存在していないエラー net.zucks.exception.AdIllegalStateException
→ 広告ステータス異常エラー net.zucks.exception.AdNetworkApiException
→ 広告配信ネットワークAPIエラー net.zucks.exception.AdOutOfStockException
→ 広告在庫なし

ⅳ. 全画面(縦)インタースティシャル広告

アプリ終了時や、画面遷移時などに表示する全画面インタースティシャル広告を設置します。

全画面インタースティシャル広告の表示率は、管理画面から設定することができます。
表示率を変更したい場合、管理画面より枠の設定を変更してください。

全画面インタースティシャル広告表示例(400x600)

全画面インタースティシャル広告表示例

全画面インタースティシャル広告の表示

net.zucks.view.AdFullscreenInterstitialは、load()メソッドで広告情報をロードし、 その後show()メソッドを実行することで全画面インタースティシャル広告を表示します。

広告情報のロードには通常1秒程度必要となります。
show()のタイミングより前に、余裕を持って広告情報のロードが完了するように実装してください。

以上で全画面インタースティシャル広告の設置が完了しました。アプリを起動し広告の表示を確認してください。

広告コールバック

net.zucks.listener.AdFullscreenInterstitialListenerを使用して、広告情報ロード時や広告タップ時のコールバックを受け取ることが可能です。
広告情報のロードが未完了状態でshow()を実行した場合、onShowFailure(Exception e)が呼び出されます。

実装例は以下の通りです。

検知できるコールバック一覧は以下の通りです。

public void onReceiveAd() 広告情報のロード成功時に通知されます。
public void onShowAd() 広告表示時に通知されます。
public void onCancelDisplayRate() 表示率によるキャンセル時に通知されます。
public void onTapAd() 広告タップ時に通知されます。
public void onCloseAd() 広告クローズ時に通知されます。
public void onLoadFailure(Exception e) 広告情報のロード失敗時に通知されます。
エラーの内容によって以下のExceptionが設定されます。
net.zucks.exception.NetworkNotFoundException
→ オフラインエラー
net.zucks.exception.FrameIdNotFoundException
→ Frame IDエラー
net.zucks.exception.DisplaySizeTooSmallException
→ 画面サイズエラー
net.zucks.exception.AdIllegalStateException
→ 広告ステータス異常エラー net.zucks.exception.AdNetworkApiException
→ 広告配信ネットワークAPIエラー net.zucks.exception.AdOutOfStockException
→ 広告在庫なし
public void onShowFailure(Exception e) 広告表示失敗時に通知されます。
エラーの内容によって以下のExceptionが設定されます。
net.zucks.exception.NetworkNotFoundException
→ オフラインエラー
net.zucks.exception.FrameIdNotFoundException
→ Frame IDエラー
net.zucks.exception.DisplaySizeTooSmallException
→ 画面サイズエラー
net.zucks.exception.AdIllegalStateException
→ 広告ステータス異常エラー net.zucks.exception.AdNetworkApiException
→ 広告配信ネットワークAPIエラー net.zucks.exception.AdOutOfStockException
→ 広告在庫なし

ⅴ. ネイティブ広告

アプリ内にネイティブ広告を設置します。

広告画像やテキストを自由にレイアウトし、コンテンツに馴染んだ広告表示が可能です。

ネイティブ広告表示例

ネイティブ広告表示例

基本的な表示方法

net.zucks.nativead.NativeAdClientは、load()メソッドで広告情報をロードし、 ロード完了コールバックにてNativeAdオブジェクトを取得、 広告画像やテキストをアプリ上の任意場所に設置しネイティブ広告を表示します。

ネイティブ広告を設置する箇所に以下のコードサンプルを参考に実装を行ってください。

以上で実装は完了です。
アプリをビルドして広告が表示されることを確認してください。

検知できるコールバック一覧は以下の通りです。

public void onLoadAd(NativeAd nativeAd) 広告情報のロード成功時に通知されます。
public void onNotExistAd() 広告情報が存在しない場合に通知されます。
public void onFailure(Exception e) 広告情報のロード失敗時に通知されます。
エラーの内容によって以下のExceptionが設定されます。
net.zucks.exception.NetworkNotFoundException
→ オフラインエラー
net.zucks.exception.FrameIdNotFoundException
→ Frame IDエラー
net.zucks.exception.AdNetworkApiException
→ 広告配信ネットワークAPIエラー
java.lang.IllegalStateException
→ NativeAdClientオブジェクトのステータスに異常がある場合

禁止事項

  • PR/AD表記を行なっていない
  • 誤タップを誘発させるタップ領域を設定している(広告表示領域外のタップ領域設定)
  • アイコン/ウォール広告に酷似した広告表示をしている

4. 広告が表示されない場合

導入手順に従って実装されているにも関わらず広告が表示されない等の問題が発生した場合は以下をご確認ください。

SDK導入に関するFAQ

5. 取得情報

SDKで取得している情報

Android版Zucks Ad Network SDKでは下記情報を取得し、アプリ利用者に適切な広告を表示する目的で使用しています。

  • 広告識別子(Advertising ID)
  • 行動ターゲティング広告の可否の設定状態に関する情報
  • 端末種別/端末言語設定
  • User-Agent
  • IPアドレス
  • Mobile Country Code(MCC)
  • Mobile Network Code(MNC)
  • ネットワーク種別
  • SDKのバージョン
  • アプリケーションのバージョン

オプトアウト方法など詳細に関しては、下記ページをご確認ください。

6. Google Play データ セーフティ セクションについて

Android版Zucks Ad Network SDKをご利用の際に、Google Play データ セーフティ セクションのフォームに以下の項目を選択していただく必要がございます。

アプリや他SDK等においてもデータの収集や共有を行っている場合、それらも考慮した選択をお願いいたします。

Google Play データ セーフティ セクションの詳細に関しては、下記ページをご確認ください。

データの収集とセキュリティ

質問 回答
アプリは対象になる種類のユーザーデータを収集または共有しますか? はい
アプリで収集するユーザーデータはすべて、転送時に暗号化されますか? はい
自分のデータの削除をリクエストする方法をユーザーに提供していますか? いいえ

データの種類

下記テーブル一覧に記載されているものを選択していただく必要がございます。

カテゴリ 回答
場所 おおよその現在地
アプリのアクティビティ ページビュー、アプリ内のタップ
デバイスまたはその他の識別子 デバイスまたはその他の識別子

データの使用と処理

選択したデータの種類の元に下記テーブル一覧に記載されているものをさらに選択していただく必要がございます。

選択されたデータの種類 質問 回答
おおよその現在地 このデータを収集しますか、共有しますか、それとも両方ですか? 共有と収集の両方を選択してください。
このデータを一時的に処理しますか? いいえ
このデータはアプリに必要ですか、またユーザーはデータ収集の有無を選択できますか? データ収集は必須である
このユーザーデータを収集するのはどうしてですか?あてはまるものをすべてお選びください。 広告、マーケティング
このユーザーデータを共有するのはどうしてですか?あてはまるものをすべてお選びください。 広告、マーケティング
ページビュー、アプリ内のタップ。 このデータを収集しますか、共有しますか、それとも両方ですか? 共有と収集の両方を選択してください。
このデータを一時的に処理しますか? いいえ
このデータはアプリに必要ですか、またユーザーはデータ収集の有無を選択できますか? データ収集は必須である
このユーザーデータを収集するのはどうしてですか?あてはまるものをすべてお選びください。 広告、マーケティング
このユーザーデータを共有するのはどうしてですか?あてはまるものをすべてお選びください。 広告、マーケティング
デバイスまたはその他の識別子 このデータを収集しますか、共有しますか、それとも両方ですか? 共有と収集の両方を選択してください。
このデータを一時的に処理しますか? いいえ
このデータはアプリに必要ですか、またユーザーはデータ収集の有無を選択できますか? データ収集は必須である
このユーザーデータを収集するのはどうしてですか?あてはまるものをすべてお選びください。 広告、マーケティング
このユーザーデータを共有するのはどうしてですか?あてはまるものをすべてお選びください。 広告、マーケティング