概要:AppsFlyer広告収益SDKコネクタはGoogle Mobile Ads (GMA) SDKと連携して、インプレッションレベルの粒度で広告収益をレポートします。注意!この SDKコネクタは AppsFlyer SDK V6.9+ で非推奨となり、 汎用広告収益 SDK コネクタに置き換えられました。このバージョンは、以前のバージョンの SDK でも引き続き機能しますが、更新または変更は行われません。
SDKによるインプレッションレベルの広告収益レポート
広告収益レポーティングオプション
広告収益は、集計レベルの粒度(API経由)またはインプレッションレベルの粒度(SDK経由)のいずれかでMoPubからAppsFlyerにレポートされます。SDK経由のインプレッションレベルデータは次のような特徴があります:
- データの更新頻度がより頻繁で、AppsFlyerでより早く利用可能になります。
- SKANをサポートしています。
このドキュメントでは、アプリ内でAdMobが提供するインプレッションレベルの広告収益をAppsFlyerに送信する方法について詳しく説明しています。
GMA SDKを使用して広告収益をレポートする
SDKの動作原則
AdMob用のAppsFlyer広告収益SDKコネクタは、GMA SDKから提供されるインプレッションレベルの収益データを自動的に収集します。af_ad_revenue という広告収益イベントがプラットフォーム内で生成され、元のUA媒体に収益が紐づいているイベントが記録されます。
プラットフォームでは、バッチ処理でデバイスごとにアトリビューションを抽出し、収益計測を行います。
データの表示
af_ad_revenue イベントは、広告収益を特定するために使用されます。このイベントは、ダッシュボードやデータレポーティングツールなど、プラットフォーム全体で使用されます。
APIからSDKに移行する際の考慮事項
AdMobがメディエーションしている連携パートナーからAPI経由で広告収益を受信している場合は、引き続き受信することができます。ただし、GMA収益SDKを実装する場合は、AppsFlyerプラットフォームでこれらのパートナーとの連携を無効にする必要がありますのでご注意ください。無効にしない場合、広告収益の計測が重複することがあります。
現在、計測の目的のみで収益なしで広告収益アプリ内イベントとして送信している場合、これらを引き続き計測しても、無効にしても問題ありません。いずれにしても、管理画面上でインプレッションレベルでの収益配分には影響しません。
注 :広告収益SDKを含むアプリバージョンをアプリストアにリリースしてからアプリユーザーが更新バージョンをダウンロードするまで、いくらか時間が経過する可能性があります。そのため、SDKモジュールは休止状態のままにして、ほとんどのユーザーがアプリを更新したあとにアクティベートしてください。モジュールをアクティベートする際は、次を実行してください。
- AdMobが仲介するパートナーの広告収益計測連携を同時に無効にする
- AppsFlyerのAdMob広告収益タブでインプレッションレベルを選択する
AppsFlyer広告収益SDKの実装
AdMobによる広告収益SDKの実装
Step | 必要なアクション |
---|---|
1 |
AdMobのアカウントマネージャーにAdMobインプレッションレベルのLTV (iLTV) を有効にするように依頼してください。 |
2 | Android または iOS でGMA SDK 8.12.0 以上を使用しており、そのバージョンが iLTV をサポートしていることを確認してください。 |
3 | AppsFlyerでSDKレベルの広告収益を有効にしてください。注:これは各アプリごとに個別に行う必要があります。 |
4 | AppsFlyerの広告収益計測SDKを次のセクションの手順で統合します。iOSとAndroidの連携は若干異なりますので、それぞれの手順に従ってください。 |
5 |
APIでの広告収益計測をSDKの広告収益計測に切り替える(移行する)には、本記事の APIからSDKに移行する際の考慮事項 を参照してください。 |
ディベロッパー向け広告収益SDKモジュール
注記
現在、広告収益SDKは、AdMobとMoPubとの連携のみをサポートしています。
前提条件
- AdMobアカウントで iLTV を有効にしてください。
- AppsFlyer SDK v 6.4.2以上を使用してください。最新バージョンはこちらを参照してください。
- GMA SDKバージョン 8.12.0以降をアプリに実装してください。
Android広告収益SDKをインポートします
- dependenciesの前にモジュールレベル
/app/build.gradle
に次のコードを追加します。repositories { mavenCentral() }
- com.appsflyer:adrevenue:6.4.2 を dependency として追加します。
dependencies { implementation 'com.appsflyer:adrevenue:6.4.2' }
- プロジェクトを同期して、dependenciesを取得します。
Android広告収益SDKを初期化します
次の手順は、app global application class 内で行われます。
- アプリグローバルクラスにて、
onCreate
メソッド内に、次のコードを配置します:
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); AppsFlyerAdRevenue.Builder afRevenueBuilder = new AppsFlyerAdRevenue.Builder(Application: this); afRevenueBuilder.addNetworks(AppsFlyerAdRevenueWrapperType.GOOGLE_ADMOB); //Optional afRevenueBuilder.adEventListener(newConsumer() { @Override public void accept(AppsFlyerAdEvent appsFlyerAdEvent) { appsFlyerAdEvent.getAdNetworkEventType(); appsFlyerAdEvent.getAdNetworkActionName(); appsFlyerAdEvent.getAdNetworkPayload(); appsFlyerAdEvent.getAdNetworkName(); } }); AppsFlyerAdRevenue.initialize(afRevenueBuilder.build()); AppsFlyerAdMobWrapper afAdRevenueGoogle = AppsFlyerAdRevenue.adMobWrapper(); … // Per each ad object (i.e Banner, Interstitial, Native, AppOpen etc) ad.setAdListener(new AdListener() { @Override public void onAdLoaded() { ad.setOnPaidEventListener(adValue -> afAdRevenueGoogle.recordImpression(adView, adValue)); }
CocoaPodsを使用してiOS広告収益SDKをインポートします
- Podfile内で以下を指定します:
use_frameworks! pod 'AppsFlyer-AdRevenue-Admob'
重要!
Podfileに
pod 'AppsFlyerFramework'
がある場合、衝突を避けるために削除してください。 - pod updateを実行します。
iOS広告収益SDKを初期化します
- AppDelegate.m(または AppDelegate.swift)に次のコードを追加します:
@import AppsFlyerLib; @import AppsFlyerAdRevenue; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Setup AppsFlyer [[AppsFlyerLib shared] setAppsFlyerDevKey:@"{dev-key}"]; [[AppsFlyerLib shared] setAppleAppID:@"{apple-id}"]; [[AppsFlyerLib shared] setIsDebug:YES]; // Setup AppsFlyerAdRevenue [AppsFlyerAdRevenue start]; //... } - (void)applicationDidBecomeActive:(UIApplication *)application { [[AppsFlyerLib shared] start]; }
import AppsFlyerAdRevenue import AppsFlyerLib func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Setup AppsFlyer AppsFlyerLib.shared().appsFlyerDevKey = "{dev-key}" AppsFlyerLib.shared().appleAppID = "{apple-id}" AppsFlyerLib.shared().isDebug = true // Setup AppsFlyerAdRevenue AppsFlyerAdRevenue.start() } func applicationDidBecomeActive(_ application: UIApplication) { AppsFlyerLib.shared().start() }
- AdMob Adを使用する UIViewController に、広告収益SDKをインポートしてください。
@import AppsFlyerAdRevenueAdMob;
import AppsFlyerAdRevenueAdMob
- UIViewControlle で、setPaidEventHandler メソッドをAppsFlyerのイベントハンドラーに置き換えます。
+ (void)setPaidEventHandlerForTarget:(id)target // The ad itself, meaning the banner, interstitial, native, rewarded, app open adUnitId:(NSString *)adUnitId eventHandler:(AdMobEventHandler)eventHandler; // The completion handler. If you want to do something with the GADAdValue object after we process it. // Change this in accordance with the ad type. The example that follows is for a banner: self.bannerView = [[GADBannerView alloc] initWithAdSize:GADAdSizeBanner; // // ...Banner configurations // [AppsFlyerAdRevenueAdMob setPaidEventHandlerForTarget:self.bannerView adUnitId:@"ca-app-pub-id" eventHandler:^(GADAdValue * _Nonnull value) { // do more actions with GADAdValue }];
bannerView = GADBannerView(adSize: kGADAdSizeBanner) bannerView.adUnitID = "ca-app-pub-id" AppsFlyerAdRevenueAdMob.setPaidEventHandlerForTarget(bannerView, adUnitId: "ca-app-pub-id") { GADAdValue in // more code }
特性と制限
特性 | 備考 |
---|---|
広告収益値 | 収益値が $10 (および他の通貨での同等額) を超えるインプレッションイベントは、SDKコネクタでは処理されません。 |