展现级收入数据

开始之前

  • 确保已集成 OpenMediation SDK v2.1.0 或更高版本。

 

展现级收入数据

展现级收入数据作为 ImpressionData 对象的一部分返回。这是相关数据字段的列表,包括说明和类型。

Field Name Datatype Description
impression_id String 广告展现 id
instance_id String 聚合系统内分配给 instance 的唯一 id
instance_name String 在聚合前台设置的 instance 名称
instance_priority Integer Instance 在当前 mediation rule 下的优先级顺序
ad_network_name String Instance 所属的ad network的名称
ad_network_unit_id String Instance中填写的ad network的unit/placement/zone的id (Rewarded Video/Interstitial/Banner/Native/Splash/Cross Promote)
mediation_rule_id String 聚合系统内分配给mediation rule的唯一id
mediation_rule_name String mediation rule的名称
mediation_rule_type String mediation rule的优化类型,Manual(手动排序)或者Auto(自动排序)
mediation_rule_priority Integer mediation rule在聚合前台的排序顺序
placement_id String 聚合系统内分配给广告位的唯一id
placement_name String 广告位名称
placement_ad_type String 广告位类型:
Banner/Native/Rewarded Video/Interstitial/Splash/CrossPromote
scene_name String 场景名称,Banner/Native/Splash 则为空
currency String 货币单位,固定值,“USD”
revenue Double 本次展现带来的收益
precision String 收益精度:
undisclosed - 非公开数据,例如FAN要求不得存储收益数据
exact - 精准值,一般是in-app bidding类型的instance带来的收益
estimated - 预估值,由普通instance历史收益数据预估得出
ab_group String 平台使用了A / B测试
lifetime_value Double 当前用户生命周期内已经产生的广告收益

 

实现回调接口

OpenMediation SDK v2.1.0 及更高版本增加了公共接口 ImpressionDataListener。当任何格式的广告内容触发一次展示时,将通知此 Listener。

请注意,您需要先在 OpenMediation 前台启用了 ILRD 功能,否则 onImpression() 回调中的 ImpressionData 参数将会是空数据。

1. 实现 ImpressionDataListener 接口,并调用 OmAds.addImpressionDataListener(listener) 订阅事件以接收详细的展现数据。 我们建议您在应用程序启动时就订阅事件。

import com.openmediation.sdk.OmAds;
import com.openmediation.sdk.ImpressionData;
import com.openmediation.sdk.ImpressionDataListener;
import com.openmediation.sdk.utils.error.Error;

ImpressionDataListener listener = new ImpressionDataListener() {
    @Override
    public void onImpression(Error error, ImpressionData impressionData) {
        if (impressionData != null) {
            // To make it easy to use, you can refer to each field separately, 
            // or get all information using the allData method:
            impressionData.getAllData();
        } else {
            // impression data not available
        }
    }
});

2. 调用 OmAds.addImpressionDataListener(listener) 以开始监听展现级别的收入数据事件。

3. 调用 OmAds.removeImpressionDataListener(listener) 以取消订阅展现级别的收入数据事件。

OmAds.addImpressionDataListener(listener);
OmAds.removeImpressionDataListener(listener);

确保 ImpressionDataListener 不会产生内存泄漏。如果您的 Listener 与 Activity 生命周期相关联,请确保在销毁 Activity 时移除 Listener。

 

示例

import com.openmediation.sdk.OmAds;
import com.openmediation.sdk.ImpressionData;
import com.openmediation.sdk.ImpressionDataListener;

    private ImpressionDataListener mImpressionListener;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mImpressionListener = new ImpressionDataListener() {
            @Override
            public void onImpression(Error error, ImpressionData impressionData) {
            }
        };
        // subscribe to start listening for impression data
        OmAds.addImpressionDataListener(mImpressionListener);
    }

    @Override
    protected void onDestroy() {
        // Remove the listener to unsubscribe
        OmAds.removeImpressionDataListener(mImpressionListener);
        super.onDestroy();
    }

 

将数据发送到其他工具或供应商

收到展示数据后,您可以将其提供给内部商务智能(BI)工具,或将其发送给第三方归因和分析提供商以进行进一步分析。

 

示例

以下示例显示了如何将ILRD发送到 Google Analytics for Firebase。 您可以进行一些必要的更改,以便与第三方报告工具或您自己专有的优化工具和数据库集成。

@Override
public void onImpression(Error error, ImpressionData impressionData) {
    if (impressionData != null) {
        // Feed impression data into internal tools or send to third-party analytics
        FirebaseAnalytics firebaseAnalytics = FirebaseAnalytics.getInstance(context);
        Bundle params = new Bundle();
        params.putString(FirebaseAnalytics.Param.AD_PLATFORM, "OpenMediation");
        params.putString(FirebaseAnalytics.Param.AD_SOURCE, impressionData.getAdNetworkName());
        params.putString(FirebaseAnalytics.Param.AD_FORMAT, impressionData.getPlacementAdType());
        params.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, impressionData.getPlacementName());
        params.putDouble(FirebaseAnalytics.Param.VALUE, impressionData.getRevenue());
        params.putString(FirebaseAnalytics.Param.CURRENCY, impressionData.getCurrency());
        params.putString("precision", impressionData.getPrecision());
        firebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, params);
    }
}

 

 

这篇文章有帮助吗?
2 人中有 2 人觉得有帮助

评论

0 条评论

文章评论已关闭。