概要:AppsFlyer広告収益計測SDKを使用することで、MoPub SDKでインプレッションレベルの粒度で広告収益を計測できます。
SDKによるインプレッションレベルの広告収益レポート
広告収益レポーティングオプション
広告収益は、集計レベルの粒度またはインプレッションレベルの粒度のいずれかでMoPubからAppsFlyerにレポートされます。収益がより正確にデバイスレベルで集計され、その後、元のユーザー獲得(UA)メディアソースにアトリビューションするため、集計レベルよりインプレッションレベルの粒度の方が優れています。 これにより、プラットフォーム上でのLTV/ROIデータの精度が向上します。
AdmobはSDKによってインプレッションレベルのデータをAppsFlyerに提供することができます。このドキュメントでは、アプリ内でAdmobが提供するインプレッションレベルの広告収益をAppsFlyerに送信する方法について詳しく説明しています。
SDKを使用した広告収益の送信
SDKの動作原則
Admob SDKは、インプレッション収益データをAppsFlyer SDKに送信します。広告収益イベント - af_ad_revenue がプラットフォーム内で生成されます。イベントは記録され、収益は流入元の獲得ソースにアトリビューションされます。
プラットフォームでは、バッチ処理でデバイスごとにアトリビューションを抽出し、収益計測を行います。
データの表示
af_ad_revenue イベントは、広告収益を特定するために使用されます。このイベントは、ダッシュボードやデータレポーティングツールなど、プラットフォーム全体で使用されます。
APIからSDKに移行する際の考慮事項
現在、Admobを使用して「連携済みパートナー」画面からAPIで広告収益を受信(計測)している場合は、AdmobマネタイズSDKを導入する際に、これらのパートナーとの連携を無効にする必要があります。無効にしない場合、広告収益の計測が重複することがあります。
現在広告収益を、アプリ内イベント(収益無しの状態)として送信している場合、これらを引き続き計測しても、無効にしても問題ありません。いずれにしても、管理画面上でインプレッションレベルでの収益配分には影響しません。
注 :広告収益SDKを含むアプリバージョンをアプリストアにリリースしてからアプリユーザーが更新バージョンをダウンロードするまで、いくらか時間が経過する可能性があります。そのため、SDKモジュールは休止状態のままにして、ほとんどのユーザーがアプリを更新したあとにアクティベートしてください。モジュールをアクティベートする際は、次を実行してください。
- Admobが仲介するパートナーの広告収益計測連携を同時に無効にする
- AppsFlyerのAdmob広告収益タブでインプレッションレベルを選択します。
AppsFlyer広告収益SDKの実装
Admobによる広告収益SDKの実装
Step | 必要なアクション |
---|---|
1 |
AdmobのアカウントマネージャーにAdmobインプレッションレベルLTV(iLTV)の有効化を依頼してください。 |
2 | Admob SDK 8.12.0以上を使用しており、そのバージョンがiLTVをサポートしていることを確認してください。 |
3 | AppsFlyerでインプレッションレベルの広告収益を有効にします。注意:これは各アプリごとに個別に行う必要があります。 |
4 | AppsFlyerの広告収益計測SDKを次のセクションの手順で統合します。iOSとAndroidの連携は若干異なりますので、それぞれの手順に従ってください。 |
5 |
APIでの広告収益計測をSDKの広告収益計測に切り替える(移行する)には、本記事の APIからSDKに移行する際の考慮事項 を参照してください。 |
ディベロッパー向け広告収益SDKモジュール
注記
現在、広告収益SDKは、AdmobとMopubとの統合のみをサポートしています。
前提条件
- AdmobアカウントでiLTVを有効にする
- AppsFlyer SDK v 6.4.2以上を使用してください。最新バージョンはこちらを参照してください。
- Admob SDK v 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 afRevnueBuilder = new AppsFlyerAdRevenue.Builder(Application: this); adRevenueBuilder.addNetworks(AppsFlyerAdRevenueWrapperType.Admob); //Optional afRevnueBuilder.adEventListener(new Consumer() { @Override public void accept(AppsFlyerAdEvent appsFlyerAdEvent) { appsFlyerAdEvent.getAdNetworkEventType(); appsFlyerAdEvent.getAdNetworkActionName(); appsFlyerAdEvent.getAdNetworkPayload(); appsFlyerAdEvent.getAdNetworkActionName(); } }); AppsFlyerAdRevenue.initialize(afRevnueBuilder.build()); AppsFlyerAdRevenue.AdmobWrapper().recordImpressionData(); //additional code... }
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 }