[iOS 2.0] 共通設定項目

共通設定項目の実装を通し、BuzzAd Benefit iOS SDKを利用し、アプリ内の任意の位置にリワードが付与される広告を表示させます。これによりアプリ内での自然なUXを担保しつつ、広告による収益を得ることができるようになります。

このページではSDKのインストールおよび初期化を行い、ユーザー情報の管理および連携に関する項目を設定する方法を解説します。広告枠の種類/数に関係なく適用が必要な共通設定項目ですので、タイプごとの実装を行う前にまずはこのページの内容を参照して設定を行ってください。

Index

次に進む前に、下記の内容を確認してください。

App Id の発行を受けたかどうか
実装しようとするバージョンの確認をしたかどうか

App Idの発行がまだ行われていない場合はBuzzvil担当者までお問い合わせください。


1. SDKのインストール

CocoaPodsまたはManual importを通じてインストールを行います。(CocoaPodsの使用を推奨)

githubにてサンプルコードを公開しているので、実装の際の参考資料としてご活用ください。

CocoaPodsの使用 (推奨)

Podfileに下記コードを適用します。

pod 'BuzzAdBenefit', '~> 2.1.x'

Deployment Targetに応じて導入するバージョンを選択してください

  • 2.1.9 : Deployment Target 9.0の場合に選択

  • 2.1.10 : Deployment Target 10.0の場合に選択

Manual Import(非推奨)

CocoaPodsでのインストールが難しい場合にのみこちらの方法をご利用ください。また、Manual Importを利用する場合にはBuzzvil担当者まで事前にお問い合わせください。

 

CocoaPodsを使用しない場合は下記の方法でインストールすることができます。

[1] プロジェクトにframeworkを追加

[プロジェクトメニュー] -> [General] -> [Embedded Binaries] セクションに下記frameworkを追加します。

  • BuzzAdBenefit Framework

    • BuzzAdBenefit.framework

    • BuzzAdBenefitNative.framework

    • BuzzAdBenefitInterstitial.framework (Interstitial typeを使用する場合)

    • BuzzAdBenefitFeed.framework (Feed typeを使用する場合)

  • 下記項目はDependenciesフォルダからダウンロードできます。

    • AFNetworking.framework

    • SDWebImage.framework

    • SDWebImageWebPCoder.framework

    • ReactiveObjC.framework

    • GoogleAds-IMA-iOS-SDK

[2] Run script を追加

[プロジェクトメニュー] -> [Build Phases] タブにて '+' ボタンをクリックし、New Run Script Phaseを追加して下記スクリプトを貼り付けます。このプロセスはuniversal frameworkにビルドされたバイナリにて不必要なarchitectureを取り除くために必要となります。

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}" find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK; do FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable) FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME" EXTRACTED_ARCHS=() for ARCH in $ARCHS; do echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME" lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH" EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH") done echo "Merging extracted architectures: ${ARCHS}" lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}" rm "${EXTRACTED_ARCHS[@]}" echo "Replacing original executable with thinned version" rm "$FRAMEWORK_EXECUTABLE_PATH" mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH" done

SDKの初期化

YOUR_APP_ID 部分に上記段階で準備したapp_idを挿入します。

// Objective-C BABConfig *config = [[BABConfig alloc] initWithAppId:YOUR_APP_ID]; [BuzzAdBenefit initializeWithConfig:config];

 AppDelegateの application:didFinishLaunchingWithOptionsに上記コードを追加することを推奨します。この位置にコードを追加することが難しい場合は他の位置でも可能ですが、必ず初回広告リクエストよりも前の段階に定める必要があります

2. ユーザー情報の管理

User profileの設定

ユーザーがパブリッシャーのアプリにログインした時点で下記の通りUserProfileを設定します。

User IDは必須項目で、ターゲティング情報(年齢・性別)は円滑なサービス運営および広告収益を最大化するための推奨項目です。該当の値を入力したsetUserProfile関数が呼び出されない場合、広告の割当が行われません。

 

[1] userId(必須)

  • パブリッシャーのサービスにおいてユーザーを特定するための固有の値を指します。パブリッシャーで使用しているユーザーのIDをそのまま入力する必要はありません。しかし、1つのIDで1ユーザーが特定できるような値でなければなりません。

1ユーザーに対し複数のuserId値が紐付いていたり、変わる可能性がある場合は事前にBuzzvil担当者にご相談ください。(例:ユーザーがアンインストール後にアプリを再インストールするとuserIdが変わる場合など)

[2] 広告ターゲティング情報(推奨)

  • gender

    • BABUserGenderMale: 男性

    • BABUserGenderFemale: 女性

  • birthYear: 生まれ年

(iOS14対応)App Tracking Transparencyの権限を許可する

iOS 14以上においてユーザーにApp Tracking Transparency権限の許可を求めるポップアップを表示させる場合、下記の設定を適用します。このポップアップは権限を許可するかどうかを選択していないユーザーに対して、1回のみ表示されます。App Tracking Transparencyについての詳細はAppleが提供する公式ドキュメントを確認してください。

[1] 前の段階のsetUserProfileの引数としてshouldShowAppTrackingTransparencyDialog 値をtrueに設定して呼び出します。

[2] アプリのinfo.plist ファイルに NSUserTrackingUsageDescription 値を追加し、権限の許可を求めるポップアップ上でユーザーに表示する文言を設定することができます。

[3] Feedを利用する場合App Tracking Trasparency権限許可のための追加機能を使用することができます。詳しくはこちらでご確認ください。

(iOS14対応) SKAdNetworkの設定

iOS 14 以上でアプリインストール型広告のコンバージョンをトラッキングするためにはAppleの SKAdNetworkに対応する必要があります。 BuzzAd SDKはSKAdNetworkをサポートしています。 info.plistにBuzzvilのSKAdNetwork識別子(67369282zy.skadnetwork)を追加するとコンバージョンの追跡機能を使用できます。SKAdNetworkについての詳細はAppleの公式ドキュメントを確認してください。

NotificationCenterの設定

UserProfileが設定され、セッションキーの登録が完了するとBABSessionRegisteredNotification notificationが呼び出されます。セッションキーはSDKが広告をリクエストし、それを受信するために必要なサーバーAPI Keyとして機能するため、セッションキーがないと広告の読み込みを行うことができません。

UserProfile 設定と広告リクエスト時点間の間隔が短い場合はnotificationをobserveしてセッションキー登録を確認後に広告リクエストを行うことができます。

 

User preferenceの設定(動画広告の再生設定)

続いて、ユーザーがログインに成功した時点で次の設定を行います。

autoplayTypeは動画広告の再生オプションに関する設定です。デフォルトではWi-fi環境でのみ自動再生が行われるよう設定されています。設定値は下記の3つから選択できます。

  • BABVideoAutoPlayOnWifi: Wi-Fiに接続している場合に限り自動再生を行う(デフォルト)

    • 外部ポイント連携が完了していない場合、自動再生は行われません。

  • BABVideoAutoPlayEnabled: 常に自動再生を行う

  • BABVideoAutoPlayDisabled: 自動再生を行わない

ユーザー情報の削除

外部認証を通してログインが満了した時点、もしくはアプリの使用終了による設定値の削除が必要な場合、次の通り設定を行います。


3. (オプション) アクション型広告の配信

次に進む前に、下記の内容を確認してください。

 [1. SDKのインストール], [2. ユーザー情報の管理] がすべて完了しているかどうか

本項目は任意で行う内容です。アクション型広告を配信しない場合、下記の内容は適用しなくてもかまいません。アクション型広告を配信するためには下記の内容を必ず適用する必要があります。

 

アクション型広告を配信する場合に行う設定

下記の内容を適用します

広告ステータスに応じたCTAボタンの変化(広告領域をカスタマイズしていない場合は自動で適用済みとなっています)
ユーザー問い合わせページの使用
カスタムランチャーの使用時、カスタムアプリ内ブラウザを適用(該当する場合にのみ適用)

広告ステータスに応じたCTAボタンの変化

ディスプレイ広告の場合、広告表示 → 広告クリック → ポイント付与の順に進みます。広告クリック後にポイント付与が完了するため、付与完了コールバックを確認後、CTAボタンを【参加済み】に変更します。

しかし、アクション型広告(isActionType) の場合、

(既存)ポイント付与時点が広告クリックの直後ではなく ‘(広告主による)参加履歴の確認後' となります。この時点では付与がまだ行われていないため、ユーザーが広告に参加した後に広告画面に戻ってきても、CTAボタンの状態を【参加完了】にすることができません。 CTAボタンの状態は参加前 → '参加履歴を確認中(is clicked)’に区分される必要があります。

(変更) アクション型広告もディスプレイ型と同様、付与完了コールバックが適用されます。付与完了コールバックを確認後、CTAボタンを‘参加済み’ に変更しなければなりません。参加前 → 参加履歴を確認中(is clicked) → 参加完了(is participated) の段階に分けられます。

詳しくは広告参加ステータスに応じたCTAボタン表示の分岐処理を参照してください。

 

ユーザー問い合わせページの使用

BuzzAd Benefit SDKでは動画・アプリインストール・Facebookへのいいねなど多様なアクションに対してリワードを付与する広告を配信しています。このような広告の場合、ポイント未付与によるユーザーからの問い合わせが発生することがあります。このような問い合わせの受付および処理を自動化するため、SDKにて問い合わせページを提供しています。 

問い合わせページは枠(Unit)単位ではなく、アプリ単位で照会できます
問い合わせページの位置については自由に設定可能です。枠の内部/ アプリ内の適切な位置に配置してください

下記の手順で問い合わせページを使用することができます 。

[1] 問い合わせページを読み込むためのIcon/Tabをデザインします。

[2] [1]の Icon/Tabがクリックされたタイミングで [BuzzAdBenefit showInquiryPageOnViewController:viewController] を呼び出します。

[+] Type B - Feed, Type C - Interstitialの場合、問い合わせアイコンおよび機能がデフォルトで含まれています

カスタムランチャーの使用時、カスタムアプリ内ブラウザの適用

カスタムランチャーを使用している場合、下段のカスタムアプリ内ブラウザの使用法を参照してカスタムアプリ内ブラウザを実装する必要があります。(カスタムランチャーを使用しない場合はこの内容は適用する必要はありません)

カスタムランチャーを使用する予定がある場合は下記内容の設定は必須です

[1] カスタムアプリ内ブラウザの使用法

広告実行時に使用されるアプリ内ブラウザをカスタマイズすることができます。例えば、広告ランディングページ読み込みの際にパブリッシャーが指定するクラスで実装することができます。(詳しくは下記参照)

実装時の注意事項 :

  • BuzzAdBrowserにて提供されるViewControllerを使用してアプリ内ブラウザを実装する必要があります。これを使用しない場合、一部広告(アクション型広告・滞在リワード広告)が正常に動作しません。

[1] CustomBrowserViewControllerを実装します

 

[2] BABLauncherを継承したカスタムランチャーClassを生成します


[3] BuzzAdBenefitLauncherをセットします

 

[+] 広告またはコンテンツを事前に判断する方法

カスタムランチャーの仕様時、遷移先の内容が広告なのかコンテンツなのかを事前に判断し、動作を区分することができます (詳しくは下記参照)

[+] Article sourceUrl の使用法

パートナーのコンテンツを登録して配信する場合、 ArticleのsourceUrlを確認してブラウザ遷移ではなく直接アプリに移動するよう定義することができます。(詳しくは下記参照)

 


追加情報

広告読み込み失敗時のエラー情報確認

広告の読み込みエラー時に呼び出されるコールバックのパラメータとして渡される BABError オブジェクトの code プロパティを通じて該当エラーの情報を確認することができます。 

 


次のステップに進む

広告枠のタイプ別に必要な設定を行う

  • Native Type (Link)

  • Feed Type (Link)

  • Interstitial Type (Link