菜单

客户端竞价

客户端竞价详细说明

1. 获取价格

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

广告加载成功后,您可以在加载成功回调接口中调用对应广告对象拿到缓存信息"currentAdOfferInfo",通过”currentAdOfferInfo“字典信息key取“ adsource_price ”的值,就能获取该广告的Ecpm 。

adsource_price ”返回货币单位与后台账号下的货币单位一致,通常为元(CNY)或美元(USD),具体可以通过adOfferInfo[@"currency"]判断。更多key值具体可以参考官网文档:回调信息说明

示例代码如下:

c 复制代码
// RewardedVideo && Banner && Splash && Interstitial && Native
- (void)didFinishLoadingADXItem:(ATADXBaseAd *)item {
    // code ...
    NSDictionary *dict = [item currentAdOfferInfo];
    NSString *ecpm = dict[@"adsource_price"];
    NSString *currency = dict[@"currency"];
    // code ...
}

2. 客户端竞价

2.1 Taku Adx 竞胜

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

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

objective-c 复制代码
//以激励视频为例,其他广告样式传入对应广告样式对象即可
- (void)sendWinNotification:(ATADXBaseAd *)ad {
    // RewardedVideo
    NSDictionary *adOfferInfo = [ad currentAdOfferInfo];
    ATADXObject *adxObject = adOfferInfo[@"adx_object"];
    // 发送win
    NSString *secondLossPrice = @"二价价格,货币种类为美元";
    // 如果获取到二价价格货币种类为人民币,可通过我们的工具方法获取当前汇率,再去转成美元传入
    // NSString *secondLossPrice = [self getExchRateC2UWithRMBPrice:@"人民币元的价格" placementID:@"Your PlacementID"];
    
    [adxObject sendWinNotificationWithInfo:@{
        kATADXObjectNetwokName: @"二价广告源名字",
        kATADXObjectSecondLossPrice: secondLossPrice
    }];
}

// 人民币元转美元
- (NSString *)getExchRateC2UWithRMBPrice:(NSString *)price placementID:(NSString *)placementID {
    NSString *tempPriceStr = price;
    NSDecimalNumber *priceDecimal = [NSDecimalNumber decimalNumberWithString:price];
    NSDecimalNumber *rateDecimal = [NSDecimalNumber decimalNumberWithString:[ATBidInfo getExchRateC2U:placementID]];
    
    if (![priceDecimal isEqualToNumber:NSDecimalNumber.notANumber] && ![rateDecimal isEqualToNumber:NSDecimalNumber.notANumber]) {
        tempPriceStr = [[priceDecimal decimalNumberByMultiplyingBy:rateDecimal] stringValue];
    }
    return tempPriceStr;
}

2.2 Taku Adx 竞败

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

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

java 复制代码
- (void)sendLossNotification:(ATADXBaseAd *)ad {
    NSDictionary *adOfferInfo = [ad currentAdOfferInfo];
    ATADXObject *adxObject = adOfferInfo[@"adx_object"];
    NSString *winPrice = @"竞胜价格,货币种类为美元";
    // 如果获取到竞胜价格货币种类为人民币,可通过我们的工具方法获取当前汇率,再去转成美元传入
//    NSString *winPrice = [self getExchRateC2UWithRMBPrice:@"人民币元的价格" placementID:@"Your PlacementID"];
    // 发送loss
    [adxObject sendLossNotificationWithInfo:@{
        kATADXObjectNetwokName: @"竞胜广告源名字",
        kATADXObjectWinPrice: winPrice,
        kATADXObjectLossReason: kATADXObjectLossReasonBidLowPrice,//假如是价格低于其他竞价广告源
    }];
}

// 人民币元转美元
- (NSString *)getExchRateC2UWithRMBPrice:(NSString *)price placementID:(NSString *)placementID {
    NSString *tempPriceStr = price;
    NSDecimalNumber *priceDecimal = [NSDecimalNumber decimalNumberWithString:price];
    NSDecimalNumber *rateDecimal = [NSDecimalNumber decimalNumberWithString:[ATBidInfo getExchRateC2U:placementID]];
    
    if (![priceDecimal isEqualToNumber:NSDecimalNumber.notANumber] && ![rateDecimal isEqualToNumber:NSDecimalNumber.notANumber]) {
        tempPriceStr = [[priceDecimal decimalNumberByMultiplyingBy:rateDecimal] stringValue];
    }
    return tempPriceStr;
}

竞败原因:

代码 描述
kATADXObjectLossReasonBidLowPrice Topon adx 出价低于价格较高的竞价广告源
kATADXObjectLossReasonLowPrice adx 的价格低于价格较高的固定价格广告源(非竞价广告)

3. 释放资源

objective-c 复制代码
// 例如激励,当不需要再使用该缓存时可以主动调用API释放掉该缓存
if (!baseAd) {
    [baseAd destroy];
}

4.获取广告缓存有效期

objective-c 复制代码
// 例如激励,返回广告缓存过期时间戳,单位ms
if (!baseAd) {
    NSDate *date = [baseAd getExpirationTimestamp];
}
最近修改: 2025-12-03Powered by