概要:AppsFlyer広告収益SDKを使用することで、MoPub SDKでインプレッションレベルの粒度で広告収益をレポートできます。
SDKによるインプレッションレベルの広告収益レポート
広告収益レポーティングオプション
広告収益は、集計レベルの粒度またはインプレッションレベルの粒度のいずれかでMoPubからAppsFlyerにレポートされます。インプレッションレベルの粒度は、収益が元々のユーザー獲得(UA)経路に紐づく点でより優れています。これにより、プラットフォーム上でのLTV/ROIデータの精度が向上します。
MoPubはインプレッションレベルのデータをSDK経由でAppsFlyerに提供することができます。この記事では、インプレッションレベルの広告収益をMoPubからAppsFlyerに送信するための方法を説明します。SDKはUnityをサポートしています。
SDKを使用した広告収益の送信
SDKの動作原則
MoPub SDKはインプレッション収益データをAppsFlyer SDKに送信します。広告収益イベントである af_ad_revenue が生成され、プラットフォームに送信されます。イベントが記録され収益が元々のUAメディアソースに紐づきます。
プラットフォーム上で、毎日の処理で各デバイスの計測結果を抽出し、収益計測が実行されます。データの鮮度(収益SDKイベント)は、ここで説明する他の広告収益方法で報告されるイベントと同じです。
データの表示
広告収益を識別するためには、af_ad_revenue イベントが利用されます。このイベントは、管理画面とデータ配信ツールを含むプラットフォーム全体で使用されます。
データ更新頻度
広告が表示された時点で、SDKが収益データをプラットフォームに送信します。このデータは、後にプラットフォーム上で確認できるようになります。例えば、1日目に広告が表示されSDKがプラットフォームにデータを送信します。データ処理は2日目のUTC時刻の深夜に開始されます。このデータは2日目のUTC時刻16:00に管理画面で利用可能になります。データは1日目の下に表示されます。
広告収益表示タイムライン
APIからSDKに移行する際の考慮事項
現在、MoPubを使用して仲介する連携済みパートナーから、API経由で広告収益を受け取っている場合は、MoPub収益化SDKを実装する際に、これらのパートナー連携を無効にする必要があります。無効にしない場合、広告収益の計測が重複することがあります。
現在広告収益をアプリ内イベント(収益なし)として送信している場合、これらを引き続き計測しても、無効にしても問題ありません。いずれにしても、管理画面上でインプレッションレベルでの収益配分には影響しません。
注 : 広告収益SDKを含むアプリバージョンをアプリストアにリリースしてからアプリユーザーが更新バージョンをダウンロードするまで、いくらか時間が経過する可能性があります。そのため、SDKモジュールは休止状態のままにして、ほとんどのユーザーがアプリを更新したあとにアクティベートしてください。モジュールをアクティベートする際は、次を実行してください。
- MoPubを通じて仲介するパートナーの広告収益統合を同時に無効にします。
- AppsFlyerにて、MoPubの広告収益タブにてインプレッションレベルを選択します。
AppsFlyer広告収益SDKの実装
MoPubでの広告収益SDKの実装
Step | 必要なアクション |
---|---|
1 | |
2 | MoPub SDK V5.7 以上を使用していること、およびそのバージョンがILRDをサポートしていることを確認してください |
3 | AppsFlyerでインプレッションレベルの広告収益を有効にします。注:これは各アプリごとに個別に行う必要があります。 |
4 | ここでの手順に従って、AppsFlyer広告収益SDKを連携します。iOSとAndroidの連携は若干ことなりますので、それぞれの手順に従ってください。 |
5 |
API経由での広告収益からSDK経由での広告収益レポーティングに切り替え(移行)します。このページ内にあるAPIからSDKに移行する際の考慮事項を参照してください。 |
ディベロッパー向け広告収益SDKモジュール
注意
現在、広告収益SDKはMoPub SDKとの連携のみをサポートしています。
前提条件
- MoPubアカウントのIRLDを有効にします
- AppsFlyer SDKバージョン5.1.0以上。最新バージョンはこちらを参照してください。
- MoPub SDK バージョン 5.7以上をアプリに実装します。
Android広告収益SDKをインポートします
- dependenciesの前にモジュールレベル
/app/build.gradle
に次のコードを追加します。repositories { mavenCentral() }
- com.appsflyer:adrevenue:5.1.0 をdependencyとして追加します。
dependencies { implementation 'com.appsflyer:adrevenue:5.1.0' }
- プロジェクトを同期して、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.MOPUB); //Optional afRevnueBuilder.adEventListener(newConsumer<AppsFlyerAdEvent>() { @Override public void accept(AppsFlyerAdEvent appsFlyerAdEvent) { appsFlyerAdEvent.getAdNetworkEventType(); appsFlyerAdEvent.getAdNetworkActionName(); appsFlyerAdEvent.getAdNetworkPayload(); appsFlyerAdEvent.getAdNetworkActionName(); } }); AppsFlyerAdRevenue.initialize(afRevnueBuilder.build()); AppsFlyerAdRevenue.moPubWrapper().recordImpressionData(); //additional code... }
CocoaPodsを使用してiOS広告収益SDKをインポートします
- Podfile内で以下を指定します:
use_frameworks! pod 'AppsFlyer-AdRevenue-MoPub'
重要!
Podfileに
pod 'AppsFlyerFramework'
がある場合、衝突を避けるために削除してください。 - pod updateを実行します。
iOS広告収益SDKを初期化します
- AppDelegate.m に次のコードを追加します:
@import AppsFlyerLib; @import AppsFlyerAdRevenue; ... - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Setup AppsFlyer [[AppsFlyerTracker sharedTracker] setAppsFlyerDevKey:@"{dev-key}"]; [[AppsFlyerTracker sharedTracker] setAppleAppID:@"{apple-id}"]; [[AppsFlyerTracker sharedTracker] setIsDebug:YES]; // Setup AppsFlyerAdRevenue [AppsFlyerAdRevenue start];
//... } - (void)applicationDidBecomeActive:(UIApplication *)application { [[AppsFlyerTracker sharedTracker] trackAppLaunch]; } - MoPub Adを使用する UIViewController に、広告収益SDKをインポートします:
@import AppsFlyerAdRevenue;
- UIViewController で、以下の部分を:
以下に置き換えます:self.nativeAd.delegate = self;
self.nativeAd.delegate = [[AppsFlyerAdRevenue shared] delegate:self forProtocol:@protocol(MPNativeAdDelegate)]; // you may need to change the protocol based on the ad type