Interstitial Ad

1. 基本要求

  • ADX Android SDK添加到项目中。

  • 请使用为Interstitial Ad专用的 Ad Unit ID。

  • 在请求广告之前先对SDK进行初始化

    • SDK 初始化请在应用运行时只调用一次,并且 广告请求必须在初始化完成后进行。

2. 实现

  1. 实例化 InterstitialAd 并添加 InterstitialListener。

  2. 呼叫 loadAd() 加载广告。

  3. 广告加载已完成并 onAdLoaded() 回调收到后 show()或, isLoaded()在确认是否有要显示的广告后, show() 用于展示广告。

  4. 广告播放结束后在onDestroy()中呼叫 InterstitialAddestroy(),移除 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;
        }
    }
}

3. Callback

可通过设置InterstitialAdInterstitialListener来接收特定事件。

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() {
    }
});

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
        );
    }
});

最后更新于

这有帮助吗?