菜单

客户端竞价

客户端竞价详细说明

1. 获取价格

请遵循集成每种广告类型的说明。然后您可以按照以下方法获取广告填充时的价格:

广告加载成功后,您可以在回调接口中获取ATAdInfo,然后通过ATAdInfo的getEcpm()获取该广告的Ecpm 。

getEcpm()返回货币单位与后台账号下的货币单位一致,通常为元(CNY)或美元(USD),具体可以通过adInfo.getCurrency();判断。

示例代码如下:

java 复制代码
 // Native Ad
        ATAdxNative atNative = new ATAdxNative(context, "Your Placement Id", new ATAdxNativeListener() {
            @Override
            public void onNativeAdLoaded(ATAdInfo adInfo, ATAdxNativeAd atAdxNativeAd) {
              
                String currency = adInfo.getCurrency();
                double ecpm = adInfo.getEcpm();
            }
        });

        // Rewarded Video
        ATAdxRewardVideoAd rewardVideoAd = new ATAdxRewardVideoAd(context, "Your Placement Id");
        rewardVideoAd.setListener(new ATAdxRewardVideoListener() {
            @Override
            public void onRewardedVideoAdLoaded(ATAdInfo adInfo) {
               
                String currency = adInfo.getCurrency();
                double ecpm = adInfo.getEcpm();

            }

        });

        // Interstitial
        ATAdxInterstitial interstitial = new ATAdxInterstitial(context, "Your Placement Id");
        interstitial.setListener(new ATAdxInterstitialListener() {
            @Override
            public void onInterstitialAdLoaded(ATAdInfo adInfo) {
               
                String currency = adInfo.getCurrency();
                double ecpm = adInfo.getEcpm();

            }

        });

        // App Open Ad
        ATAdxSplashAd splashAd = new ATAdxSplashAd(context, "Your Placement Id", new ATAdxSplashListener() {
            @Override
            public void onAdLoaded(boolean isTimeout, ATAdInfo adInfo) {
               
                String currency = adInfo.getCurrency();
                double ecpm = adInfo.getEcpm();

            }

        });


        // Banner Ad
        ATAdxBannerView bannerView = new ATAdxBannerView(context);
        bannerView.setPlacementId("Your Placement Id");
        bannerView.setListener(new ATAdxBannerListener() {
            @Override
            public void onBannerLoaded(ATAdInfo adInfo) {
                
                String currency = adInfo.getCurrency();
                double ecpm = adInfo.getEcpm();

            }

        });

2. 客户端竞价

2.1 Taku Adx 竞胜

如果 Taku 比价胜出,您应该在展示广告之前将第二个出价者的最高价格传递给 Taku。这一步将帮助我们优化收益。

注意:SECOND_PRICE传入的价格货币单位必须为美元

java 复制代码
//以激励视频为例,其他广告样式传入对应广告样式对象即可
public void sendAdxWin(ATAdxRewardVideoAd rewardVideoAd, double secondPrice, String secondPriceBidderName) {
  
    // 如果获取到二价价格货币种类为人民币,可通过我们的工具方法获取当前汇率,再去转成美元传入
    //secondPrice = getRmbToUsdPrice(secondPrice);
    if (rewardVideoAd != null) {
        Map winExtraMap = new HashMap<>();
        winExtraMap.put(IATAdxHandler.SECOND_PRICE, secondPrice);//: double,Currency required USD
        //Loss Network Name
        winExtraMap.put(IATAdxHandler.BIDDER_NAME, secondPriceBidderName);//: String
        rewardVideoAd.notifyWin(winExtraMap);
    }
}

// 人民币元转美元
public double getRmbToUsdPrice(double rmbPrice) {
    double rate = ATSDKUtils.getUsdChangeToRmbRate();
    if (rate > 0) {
        return rmbPrice / rate;
    }
    return rmbPrice;
}

2.2 Taku Adx 竞败

如果 Taku 竞价失败,您应该在展示广告之前将最高价出价者的价格传递给 Taku。这一步将帮助我们优化收益。

注意:winEcpm传入的价格货币单位必须为美元

java 复制代码
public void sendAdxLose(ATAdxRewardVideoAd rewardVideoAd, IATAdxHandler.LOSS_REASON lossReason, double winnerEcpm, String bidderName) {
   
    if (rewardVideoAd != null) {
        Map lossExtraMap = new HashMap<>();
        //Win Network Name
        lossExtraMap.put(IATAdxHandler.BIDDER_NAME, bidderName);//: String

        // 如果获取到竞胜价格货币种类为人民币,可通过我们的工具方法获取当前汇率,再去转成美元传入
        //winnerEcpm = getRmbToUsdPrice(winnerEcpm);
        /**
         * @param lossReason // loss reason
         * @param winnerEcpm // win price,Currency required USD
         * @param lossExtraMap // loss extra info
         */
        rewardVideoAd.notifyLose(lossReason, winnerEcpm, lossExtraMap);
        //如果该缓存在竞败后没有展示机会可以主动释放掉
        //例如激励,当不需要再使用该缓存时可以主动调用API释放掉该缓存
		//if (rewardVideoAd != null) {
    	//	rewardVideoAd.destroy();
		//}
    }
}

// 人民币元转美元
public double getRmbToUsdPrice(double rmbPrice) {
    double rate = ATSDKUtils.getUsdChangeToRmbRate();
    if (rate > 0) {
        return rmbPrice / rate;
    }
    return rmbPrice;
}

3. 释放资源

java 复制代码
//例如激励,当不需要再使用该缓存时可以主动调用API释放掉该缓存
if (rewardVideoAd != null) {
    rewardVideoAd.destroy();
}

4.获取广告缓存有效期

java 复制代码
//例如激励,返回广告缓存过期时间戳,单位ms
if (rewardVideoAd != null) {
    long expirationTimestamp = rewardVideoAd.getExpirationTimestamp();
}
上一个
新 Taku Adx 客户端出价集成
下一个
激励视频广告
最近修改: 2025-06-20Powered by