Interstitial Ad
1. 基本要求
ADX Android SDK添加到项目中。
请使用为Interstitial Ad专用的 Ad Unit ID。
在请求广告之前先对SDK进行初始化。
SDK 初始化请在应用运行时只调用一次,并且 广告请求必须在初始化完成后进行。
2. 实现
实例化
InterstitialAd并添加InterstitialListener。呼叫 loadAd() 加载广告。
广告加载已完成并
onAdLoaded()回调收到后show()或,isLoaded()在确认是否有要显示的广告后,show()用于展示广告。广告播放结束后在
onDestroy()中呼叫InterstitialAd的destroy(),移除InterstitialAd。
public class InterstitialActivity extends AppCompatActivity {
private com.adxcorp.ads.InterstitialAd interstitialAd;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
interstitialAd = new InterstitialAd(this, "<INTERSTITIAL_AD_UNIT_ID>");
interstitialAd.setInterstitialListener(new InterstitialAd.InterstitialListener() {
@Override
public void onAdLoaded() {
}
@Override
public void onAdError(int errorCode) {
}
@Override
public void onAdClicked() {
}
@Override
public void onAdImpression() {
}
@Override
public void onAdClosed() {
}
@Override
public void onAdFailedToShow() {
}
});
interstitialAd.loadAd();
}
void show() {
if (interstitialAd != null && interstitialAd.isLoaded()) {
interstitialAd.show();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (interstitialAd != null) {
interstitialAd.destroy();
interstitialAd = null;
}
}
}class InterstitialActivity : AppCompatActivity() {
private var interstitialAd: InterstitialAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_fullscreen)
interstitialAd = InterstitialAd(this, "<INTERSTITIAL_AD_UNIT_ID>"))
interstitialAd?.setInterstitialListener(object : InterstitialAd.InterstitialListener {
override fun onAdLoaded() {
}
override fun onAdError(errorCode: Int) {
}
override fun onAdClicked() {
}
override fun onAdImpression() {
}
override fun onAdClosed() {
}
override fun onAdFailedToShow() {
}
})
interstitialAd?.loadAd()
}
fun show() {
if (interstitialAd?.isLoaded == true) {
interstitialAd!!.show()
}
}
override fun onDestroy() {
super.onDestroy()
interstitialAd?.destroy()
interstitialAd = null
}
}3. Callback
可通过设置InterstitialAd的 InterstitialListener来接收特定事件。
interstitialAd.setInterstitialListener(new InterstitialAd.InterstitialListener() {
@Override
public void onAdLoaded() {
}
@Override
public void onAdError(int errorCode) {
}
@Override
public void onAdClicked() {
}
@Override
public void onAdImpression() {
}
@Override
public void onAdClosed() {
}
@Override
public void onAdFailedToShow() {
}
});interstitialAd?.setInterstitialListener(object : InterstitialAd.InterstitialListener {
override fun onAdLoaded() {
}
override fun onAdError(errorCode: Int) {
}
override fun onAdClicked() {
}
override fun onAdImpression() {
}
override fun onAdClosed() {
}
override fun onAdFailedToShow() {
}
})4. Ad Revenue (OnPaidEvent)
您可以收到广告展示期间预期的广告收益。
由于该值可能混合了在中介设置过程中手动设置的值,建议作为预估值使用。
ecpm 的货币为 USD。
按照下面的示例回调
OnPaidEvent后使用即可。可以将广告收入数据与 MMP 对接。详细信息请参阅下面的 SDK 对接指南。
interstitialAd.setOnPaidEventListener(new OnPaidEventListener() {
@Override
public void onPaidEvent(double ecpm) {
double revenue = ecpm / 1000;
// Firebase Analytics 示例
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
Bundle params = new Bundle();
params.putString(FirebaseAnalytics.Param.AD_PLATFORM, "AD(X)");
params.putString(FirebaseAnalytics.Param.AD_FORMAT, "InterstitialAd");
params.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, "ADX Interstitial Ad");
params.putDouble(FirebaseAnalytics.Param.VALUE, revenue);
params.putString(FirebaseAnalytics.Param.CURRENCY, "USD");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, params);
// AppsFlyer 示例
Map<String, String> customParams = new HashMap<>();
customParams.put(Scheme.AD_TYPE, "InterstitialAd");
customParams.put("ad_unit_name", "ADX Interstitial Ad");
AppsFlyerAdRevenue.logAdRevenue(
"AD(X)",
MediationNetwork.customMediation,
Currency.getInstance(Locale.US),
revenue,
customParams
);
}
});interstitialAd.setOnPaidEventListener(object : OnPaidEventListener() {
fun onPaidEvent(ecpm: Double) {
val revenue: Double = ecpm / 1000
// Firebase Analytics 示例
firebaseAnalytics = Firebase.analytics
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION) {
param(FirebaseAnalytics.Param.AD_PLATFORM, "AD(X)")
param(FirebaseAnalytics.Param.AD_UNIT_NAME, "ADX Interstitial Ad")
param(FirebaseAnalytics.Param.AD_FORMAT, "InterstitialAd")
param(FirebaseAnalytics.Param.VALUE, revenue)
param(FirebaseAnalytics.Param.CURRENCY, "USD")
}
// AppsFlyer 示例
val customParams: MutableMap<String, String> = HashMap()
customParams[Scheme.AD_TYPE] = "IntersitialAd"
customParams["ad_unit_name"] = "ADX Interstitial Ad"
AppsFlyerAdRevenue.logAdRevenue(
"AD(X)",
MediationNetwork.customMediation,
Currency.getInstance(Locale.US),
revenue,
customParams
)
}
})最后更新于
这有帮助吗?