Rewarded Ad

1. 基本要求

  • ADX Android SDK添加到项目中。

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

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

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

2. 实现

  1. 实例化 RewardedAd 并添加 RewardedAdListener

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

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

  4. 广告播放结束后在onDestroy()中呼叫 RewardedAddestroy(),移除 RewardedAd

public class RewardedAdActivity extends AppCompatActivity {
    private com.adxcorp.ads.RewardedAd rewardedAd;
    
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        rewardedAd = new RewardedAd(this, "<REWARDED_AD_UNIT_ID>");
        rewardedAd.setRewardedAdListener(new RewardedAd.RewardedAdListener() {
            @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 onAdRewarded() {
            }

            @Override
            public void onAdFailedToShow() {
            }
        });

        rewardedAd.loadAd();
    }
    
    void show() {
        if (rewardedAd != null && rewardedAd.isLoaded()) {
            rewardedAd.show();
        }
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
    
        if (rewardedAd != null) {
            rewardedAd.destroy();
            rewardedAd = null;
        }
    }
}

3. Callback

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

rewardedAd.setRewardedAdListener(new RewardedAd.RewardedAdListener() {
    @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 onAdRewarded() {
    }
    
    @Override
    public void onAdFailedToShow() {
    }
});

4. Ad Revenue (OnPaidEvent)

  • 您可以收到广告展示期间预期的广告收益。

  • 由于该值可能混合了在中介设置过程中手动设置的值,建议作为预估值使用。

  • ecpm 的货币为 USD

  • 如下 OnPaidEvent 注册回调后使用即可。

  • 可以将广告收入数据与 MMP 对接。详细信息请参阅下面的 SDK 对接指南。

rewardedAd.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, "RewardedAd");
        params.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, "ADX Rewarded 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, "RewardedAd");
        customParams.put("ad_unit_name", "ADX Rewarded Ad");

        AppsFlyerAdRevenue.logAdRevenue(
              "AD(X)",
              MediationNetwork.customMediation,
              Currency.getInstance(Locale.US),
              revenue,
              customParams
        );
    }
});

5. SSV (Server-side verification) 设置

  • SSV 设置是 选择项,需要时设置并使用即可。

  • SSV 设置是在奖励事件发生时,用于以 Server to Server 方式调用开发商注册的 Callback URL 的设置。

  • 关于 SSV 设置的调用条件如下。

    • 通过仪表板 Rewarded Video 类型中 回调 URL 必须已注册。

    • 观看视频完成后必须发生奖励事件。

    • 如有需要,可在请求广告之前通过 SDK 设置 用户 ID自定义数据 信息。

  • 客户端设置的User ID自定义数据 信息如果存在, 回调 URL会包含在调用中发送。

    • (示例)https://callback_url?param=value&userid=<valule>&customdata=<value>

    • 该设置必须在广告请求之前调用,数据才会被正确 回调 URL包含。

// SSV 设置 (optional)
rewardedAd.setUserIdForSSV("<USER_ID>");
rewardedAd.setCustomDataForSSV("<CUSTOM_DATA>");

// 广告请求
rewardedAd.loadAd();

最后更新于

这有帮助吗?