接入前创建好应用ID和广告位ID
pod 'LUYSDK'
1.下载获取[LUYSDK_Loc_版本号]文件后直接将【LUYSDK】(LUYSDK包含的内部文件夹LUYSDK,LUYRelyLib)整个文件夹拖入到工程即可。
*升级SDK的同学必须同时更新framework和bundle文件,否则可能出现部分页面无法展示的问题.
*拖入完请确保Copy Bundle Resources中有BUAdSDK.bundle否则可能出现icon图片加载不出来的情况。
2.导入系统依赖库
需要引入的系统库
找到Link Binary With Libraries,点击“+”,依次添加下列依赖库
系统库名称 |
---|
StoreKit.framework |
MobileCoreServices.framework |
WebKit.framework |
MediaPlayer.framework |
CoreMedia.framework |
CoreLocation.framework |
AVFoundation.framework |
CoreTelephony.framework |
SystemConfiguration.framework |
AdSupport.framework |
CoreMotion.framework |
Accelerate.framework |
libresolv.9.tbd |
libc++.tbd |
libz.tbd |
libsqlite3.tbd |
libbz2.tbd |
libxml2.tbd |
QuartzCore.framework |
Security.framework |
Security.framework |
libc++abi.tbd |
AppTrackingTransparency.framework |
DeviceCheck.framework |
3.Build设置
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
从iOS 14.5开始,只有在获得用户明确许可的前提下,应用才可以访问用户的IDFA数据并向用户投放定向广告。在应用程序调用 App Tracking Transparency 框架向最终用户提出应用程序跟踪授权请求之前,IDFA将不可用。如果某个应用未提出此请求,则读取到的IDFA将返回全为0的字符串。
1.获取 ATT 权限,请更新您的 Info.plist,添加 NSUserTrackingUsageDescription 字段和自定义文案描述。代码示例:
<key>NSUserTrackingUsageDescription</key>
<string>需要获取您设备的广告标识符,以为您提供更好的广告体验</string>
2.向用户申请权限时,请调用 requestTrackingAuthorizationWithCompletionHandler:方法。我们建议您申请权限后再请求广告,以便广告能准确的获得用户授权状态。
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/AdSupport.h>
- (void)requestIDFA {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
// [self loadAd];
}];
}
iOS 15.0 中,如果是在启动方法中调用授权,不会弹出授权提示框,可以参考:https://juejin.cn/post/7018126149553225741
支持了 Apple 官方的 SKAdNetwork 框架的渠道,会在获取不到IDFA的时候,正常获取转化。为了实现这个功能,需要在info.plist添加对应的SKAdNetworkItems。
部分常用 SKAdNetworkIdentifier:
SKAdNetworkIdentifier |
---|
238da6jt44.skadnetwork |
x2jnk7ly8j.skadnetwork |
22mmun2rn5.skadnetwor |
f7s53z58qe.skadnetwork |
r3y5dwb26t.skadnetwork |
58922nb4gd.skadnetwork |
f7s53z58qe.skadnetwork |
27a282f54n.skadnetwork |
kbd757ywx3.skadnetwork |
mls7yz5dvl.skadnetwork |
4fzdc2evr5.skadnetwork |
4pfyvq9l8r.skadnetwork |
ydx93a7ass.skadnetwork |
cg4yq2srnc.skadnetwork |
p78axxw29g.skadnetwork |
示例:
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>238da6jt44.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>x2jnk7ly8j.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>22mmun2rn5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f7s53z58qe.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>r3y5dwb26t.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>58922nb4gd.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>f7s53z58qe.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>27a282f54n.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>kbd757ywx3.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>mls7yz5dvl.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4fzdc2evr5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4pfyvq9l8r.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ydx93a7ass.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cg4yq2srnc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>p78axxw29g.skadnetwork</string>
</dict>
</array>
1.Objective-C
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[LUYSDKConfig registerAppId:@"sjm_ios123"];
return YES;
}
2.Swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
LUYSDKConfig.registerAppId("sjm_ios123")
return true
}
广告接入具体示范可以参照 LUYSDKAdDemo
/// 开屏广告加载成功
- (void)luy_splashAdDidLoad:(LUYSplashAd *)splashAd;
///开屏广告展示
- (void)luy_splashAdDidShow:(LUYSplashAd *)splashAd;
///开屏广告点击回调
- (void)luy_splashAdClicked:(LUYSplashAd *)splashAd;
///开屏广告关闭回调
- (void)luy_splashAdClosed:(LUYSplashAd *)splashAd;
///开屏广告倒记时结束
- (void)luy_splashAdCountdownToZero:(LUYSplashAd*)splashAd;
///开屏广告错误
- (void)luy_splashAdLoadFail:(LUYSplashAd *)splashAd error:(NSError *)error;
广告加载
-(void)loadAdWithAdId:(NSString *)adId{
_splashAd = [[LUYSplashAd alloc]initWithSlotID:adId];
_splashAd.delegate = self;
//广告超时时间设置
_splashAd.tolerateTimeout = 5;
//自定义底部视图,可以通过 customBottomView 赋值处理
UIView *bottomView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, ScreenWidth, 50)];
bottomView.backgroundColor = [UIColor redColor];
_splashAd.customBottomView = bottomView;
[_splashAd loadAd];
}
广告展示
// 展示广告需在广告加载成功后处理
- (void)luy_splashAdDidLoad:(LUYSplashAd *)splashAd {
[_splashAd showAdInWindow:[UIApplication sharedApplication].keyWindow];
}
///激励视频广告加载成功
- (void)luy_rewardVideoAdDidLoad:(LUYRewardVideoAd *)rewardedVideoAd;
///激励视频广告下载成功
- (void)luy_rewardVideoAdVideoDidLoad:(LUYRewardVideoAd *)rewardedVideoAd;
///激励视频广告展示
- (void)luy_rewardVideoAdDidShow:(LUYRewardVideoAd *)rewardedVideoAd;
///激励视频广告关闭
- (void)luy_rewardVideoAdClosed:(LUYRewardVideoAd *)rewardedVideoAd;
///激励视频广告点击
- (void)luy_rewardVideoAdDidClick:(LUYRewardVideoAd *)rewardedVideoAd;
///激励视频广告触发奖励
- (void)luy_rewardVideoAdDidRewardEffective:(LUYRewardVideoAd *)rewardedVideoAd;
///激励视频广告播放完成
- (void)luy_rewardVideoAdDidPlayFinish:(LUYRewardVideoAd *)rewardedVideoAd;
///激励视频广告错误
- (void)luy_rewardVideoAdFail:(LUYRewardVideoAd *)rewardedVideoAd
error:(NSError *)error;
广告加载
-(void)loadAdWithAdId:(NSString *)adId{
self.rewardVideoAd = [[LUYRewardVideoAd alloc] initWithSlotID:adId userId:@"userID"];
self.rewardVideoAd.delegate = self;
[self.rewardVideoAd loadAd];
}
广告展示
/**展示广告需在广告视频加载成功后的处理
* 注意:是 luy_rewardVideoAdVideoDidLoad: 回调中
*/
- (void)luy_rewardVideoAdVideoDidLoad:(nonnull LUYRewardVideoAd *)rewardedVideoAd {
[self addNormalLogWithText:[NSString stringWithFormat:@"%s",__func__]];
[self.rewardVideoAd showAdInViewController:self];
}
///插屏广告加载成功
- (void)luy_interstitialAdDidLoad:(LUYInterstitialAd *)interstitialAd;
///插屏广告加载失败
- (void)luy_interstitialAdLoadFail:(LUYInterstitialAd *)interstitialAd
error:(NSError * __nullable)error;
///插屏广告展示成功
- (void)luy_interstitialAdDidShow:(LUYInterstitialAd *)interstitialAd;
///插屏广告点击
- (void)luy_interstitialAdDidClick:(LUYInterstitialAd *)interstitialAd;
///插屏广告关闭
- (void)luy_interstitialAdClosed:(LUYInterstitialAd *)interstitialAd;
///插屏广告详情页即将打开
- (void)luy_interstitialAdWillPresentFullScreen:(LUYInterstitialAd *)interstitialAd;
///插屏广告详情页即将关闭
- (void)luy_interstitialAdWillDismissFullScreen:(LUYInterstitialAd *)interstitialAd;
///插屏广告错误
- (void)luy_interstitialAdFail:(LUYInterstitialAd *)interstitialAd
error:(NSError * __nullable)error;
广告加载
-(void)loadAdWithAdId:(NSString *)adId{
self.interstitialAd = [[LUYInterstitialAd alloc]initWithSlotID:adId];
self.interstitialAd.delegate = self;
[self.interstitialAd loadAd];
}
广告展示
//插屏广告加载成功后展示
- (void)luy_interstitialAdDidLoad:(LUYInterstitialAd *)interstitialAd {
[self.interstitialAd showAdInViewController:self];
}
信息流广告代理分两个部分,分别是广告管理和广告
广告管理 :LUYNativeExpressAdManager
//信息流广告加载成功
- (void)luy_nativeExpressAdDidLoad:(LUYNativeExpressAdManager *)nativeExpressAd
nativeExpressAds:(NSArray<LUYNativeExpressAd *> *_Nullable)nativeExpressAds;
///信息流广告加载失败
- (void)luy_nativeExpressAdLoadFail:(LUYNativeExpressAdManager *)nativeExpressAd
error:(NSError *_Nullable)error;
广告 :LUYNativeExpressAd
/// 广告渲染成功
- (void)luy_nativeExpressAdRenderSuccess:(LUYNativeExpressAd *)expressAd;
/// 广告渲染失败
- (void)luy_nativeExpressAdRenderFail:(LUYNativeExpressAd *)expressAd;
/// 广告即将展示
- (void)luy_nativeExpressAdWillShow:(LUYNativeExpressAd *)expressAd;
///广告点击
- (void)luy_nativeExpressAdDidClick:(LUYNativeExpressAd *)expressAd;
///关闭该广告
- (void)luy_nativeExpressAdDislike:(LUYNativeExpressAd *)expressAd;
///展示广告详情页
- (void)luy_nativeExpressAdDidPresentFullScreen:(LUYNativeExpressAd *)expressAd;
///关闭广告详情页
- (void)luy_nativeExpressAdDidDismissFullScreen:(LUYNativeExpressAd *)expressAd;
广告加载
//使用 LUYNativeExpressAdManager 获取要展示的广告视图
-(void)loadAd{
_feedAd = [[LUYNativeExpressAdManager alloc] initWithSlotID:self.slotID adSize:CGSizeMake(self.tableView.frame.size.width, 0)];
_feedAd.delegate = self;
[_feedAd loadAdWithCount:3];
}
//在广告请求成功后将广告处理后放入数组管理
- (void)luy_nativeExpressAdDidLoad:(LUYNativeExpressAdManager *)nativeExpressAd
nativeExpressAds:(NSArray<LUYNativeExpressAd *> *_Nullable)nativeExpressAds {
NSMutableArray *adArray = [NSMutableArray array];
for (int i = 0; i<nativeExpressAds.count; i++) {
LUYNativeExpressAd *feedAd = nativeExpressAds[i];
feedAd.delegate = self;
//处理广告的 ViewController
feedAd.rootViewController = self;
//广告渲染
[feedAd render];
[adArray addObject:feedAd];
}
self.adArray = adArray;
}
广告展示
//将广告视图添加到需要展示的广告容器中
- (void)refreshWithAd:(LUYNativeExpressAd *)expressAd {
//为了防止重复添加可以先移除下
[self.contentView removeAllSubViews];
//添加广告
[self.contentView addSubview:expressAd.nativeExpressAdView];
//处理约束
[expressAd.nativeExpressAdView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(@0);
}];
}
/// 在广告渲染成功的回调中添加广告
- (void)luy_nativeExpressAdRenderSuccess:(LUYNativeExpressAd *)expressAd {
//1.[self.tableView reloadData];//如:将广告放在tableView 的 cell 中
//2.[self refreshWithAd:expressAd]; //如:直接添加到视图中
}
///banner 广告加载成功
- (void)luy_bannerAdDidLoad:(LUYBannerView *)bannerView;
///banner 广告加载失败
- (void)luy_bannerAdLoadFail:(LUYBannerView *)bannerView
error:(NSError *_Nullable)error;
///banner 广告展示成功
- (void)luy_bannerAdWillExpose:(LUYBannerView *)bannerView;
///banner 广告关闭回调
- (void)luy_bannerAdWillClose:(LUYBannerView *)bannerView;
///banner 广告点击回调
- (void)luy_bannerAdDidClick:(LUYBannerView *)bannerView;
///banner广告即将关闭详情页
- (void)luy_bannerAdWillDismissFullScreen:(LUYBannerView *)bannerView;
广告加载
-(void)loadAdWithAdId:(NSString *)adId{
if (_bannerView) {
[_bannerView removeFromSuperview];
_bannerView = nil;
}
CGFloat width = self.view.frame.size.width;
self.bannerView = [[LUYBannerView alloc] initWithSlotID:adId viewController:self adSize:CGSizeMake(width, 200) autoInterval:0];
self.bannerView.delegate = self;
[self.bannerView loadAdAndShow];
}
广告展示
///banner 广告加载成功后展示处理
- (void)luy_bannerAdDidLoad:(LUYBannerView *)bannerView {
if(bannerView && ![self.view.subviews containsObject:bannerView]){
CGFloat y = self.view.frame.size.height -200-SafeBottomMargin-50;
CGRect frame = CGRectMake(0, y, self.view.frame.size.width, 200);
self.bannerView.frame = frame;
[self.view addSubview:self.bannerView];
}
}
///全屏视频广告加载成功
- (void)luy_fullScreenVideoAdDidLoad:(LUYFullScreenVideoAd *)fullScreenVideoAd;
///全屏视频广告加载失败
- (void)luy_fullScreenVideoAdLoadFail:(LUYFullScreenVideoAd *)fullScreenVideoAd
error:(NSError * __nullable)error;
///全屏视频广告展示成功
- (void)luy_fullScreenVideoAdDidShow:(LUYFullScreenVideoAd *)fullScreenVideoAd;
///全屏视频广告点击
- (void)luy_fullScreenVideoAdDidClick:(LUYFullScreenVideoAd *)fullScreenVideoAd;
///全屏视频广告关闭
- (void)luy_fullScreenVideoAdClosed:(LUYFullScreenVideoAd *)fullScreenVideoAd;
///全屏视频广告详情页即将打开
- (void)luy_fullScreenVideoAdWillPresentFullScreen:(LUYFullScreenVideoAd *)fullScreenVideoAd;
///全屏视频广告详情页即将关闭
- (void)luy_fullScreenVideoAdWillDismissFullScreen:(LUYFullScreenVideoAd *)fullScreenVideoAd;
///全屏视频广告错误
- (void)luy_fullScreenVideoAdFail:(LUYFullScreenVideoAd *)fullScreenVideoAd
error:(NSError * __nullable)error;
广告加载
-(void)loadAdWithAdId:(NSString *)adId{
self.fullScreenVideoAd = [[LUYFullScreenVideoAd alloc]initWithSlotID:adId];
self.fullScreenVideoAd.delegate = self;
[self.fullScreenVideoAd loadAd];
}
广告展示
///全屏视频广告加载成功
- (void)luy_fullScreenVideoAdDidLoad:(LUYFullScreenVideoAd *)fullScreenVideoAd {
[self.fullScreenVideoAd showAdInViewController:self];
}
/**
* 广告加载成功
*/
-(void)luy_feedVideoManagerLoadSuccess:(LUYFeedVideoManager *)manager
views:(NSArray<__kindof LUYFeedVideoAdView *> *)views;
/**
* 广告加载失败
*/
-(void)luy_feedVideoManagerLoadFail:(LUYFeedVideoManager *)manager
error:(NSError *_Nullable)error;
///广告渲染成功
-(void)luy_feedVideoAdViewRenderSuccess:(LUYFeedVideoAdView *)adView;
///广告渲染失败
-(void)luy_feedVideoAdViewRenderFail:(LUYFeedVideoAdView *)adView
error:(NSError *_Nullable)error;
///广告曝光回调
-(void)luy_feedVideoAdViewWillShow:(LUYFeedVideoAdView *)adView;
///视频广告播放状态更改回调
-(void)luy_feedVideoAdViewStateDidChanged:(LUYFeedVideoAdView *)adView
playerState:(LUYMediaPlayerStatus)playerState;
///视频广告播放完毕
-(void)luy_feedVideoAdViewPlayerDidPlayFinish:(LUYFeedVideoAdView *)adView;
/// 广告点击回调
-(void)luy_feedVideoAdViewDidClick:(LUYFeedVideoAdView *)adView;
///广告详情页面即将展示回调
-(void)luy_feedVideoAdViewDetailViewWillPresentScreen:(LUYFeedVideoAdView*)adView;
///广告详情页关闭回调
-(void)luy_feedVideoAdViewDetailViewClosed:(LUYFeedVideoAdView*)adView;
广告加载
- (void)loadAdData {
self.adProvider = [[LUYFeedVideoManager alloc] initWithSlotID:self.slotId];
self.adProvider.delegate = self;
self.adProvider.adSize = self.tableView.bounds.size;
[self.adProvider loadAdWithCount:4];
}
//在广告请求成功后将广告处理后放入数组管理
-(void)luy_feedVideoManagerLoadSuccess:(LUYFeedVideoManager *)manager
views:(NSArray<__kindof LUYFeedVideoAdView *> *)views {
if (views.count) {
NSMutableArray *adArray = [NSMutableArray array];
for (LUYFeedVideoAdView *adView in views) {
adView.rootViewController = self;
// important: 此处会进行WKWebview的渲染,建议一次最多预加载三个广告,如果超过3个会很大概率导致WKWebview渲染失败。
[adView render];
[adArray addObject:adView];
}
self.adArray = adArray;
}
}
广告展示
//将广告视图添加到需要展示的广告容器中
- (void)refreshWithAd:(LUYFeedVideoAdView *)adView {
//为了防止重复添加可以先移除下
[self.contentView removeAllSubViews];
//添加广告
[self.contentView addSubview:adView];
//处理约束
[adView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(@0);
}];
}
1.内容展示状态代理 - LUYContentStateDelegate
/**
* 内容展示状态代理
*/
@protocol LUYContentStateDelegate <NSObject>
/**
* 视频内容加载错误
* @param error 错误原因
*/
- (void)luy_contentLoadFailed:(LUYContentVideo *)content error:(NSError *)error;
///内容展示
- (void)luy_contentDidFullDisplay:(LUYContentVideo *)content;
/// 内容隐藏
- (void)luy_contentDidEndDisplay:(LUYContentVideo *)content;
///内容暂停显示,ViewController disappear或者Application resign active
- (void)luy_contentDidPause:(LUYContentVideo *)content;
///内容恢复显示,ViewController appear或者Application become active
- (void)luy_contentDidResume:(LUYContentVideo *)content;
@end
2.视频播放状态代理 - LUYVideoStateDelegate
/**
* 视频播放状态代理
*/
@protocol LUYVideoStateDelegate <NSObject>
///视频开始播放
- (void)luy_videoDidStartPlay:(LUYContentVideo *)videoContent;
///视频暂停播放
- (void)luy_videoDidPause:(LUYContentVideo *)videoContent;
/// 视频恢复播放
- (void)luy_videoDidResume:(LUYContentVideo *)videoContent;
/**
* 视频停止播放
* @param finished 是否播放完成
*/
- (void)luy_videoDidEndPlay:(LUYContentVideo *)videoContent
isFinished:(BOOL)finished;
/**
* 视频播放失败
* @param error 失败原因
*/
- (void)luy_videoDidFailedToPlay:(LUYContentVideo *)videoContent
withError:(NSError *)error;
@end
- (void)viewDidLoad {
[super viewDidLoad];
//创建视频内容对象
self.contentVideo = [[LUYContentVideo alloc]initWithSlotID:LUYContentVideoId];
self.contentVideo.stateDelegate = self;
self.contentVideo.videoStateDelegate = self;
//处理视频内容对象中的 viewController
[self addChildViewController:self.contentVideo.viewController];
[self.view addSubview:self.contentVideo.viewController.view];
}
优化广告填充及提升媒体收益,需要开发者根据如下说明文档配置 Scheme 白名单
LSApplicationQueriesSchemes Array
scheme | 名称 |
---|---|
tbopen | 淘宝 |
openapp.jdmobile | 京东 |
pddopen | 拼多多 |
imeituan | 美团 |
meituanwaimai | 美团外卖 |
sinaweibo | 微博 |
vipshop | 唯品会 |
kwai | 快手 |
ksnebula | 快手极速版 |
snssdk1128 | 抖音 |
dewuapp | 得物 |
ctrip | 携程旅行 |
iqiyi | 爱奇艺 |
freereader | 七猫 |
eleme | 饿了么 app |
tmall | 天猫商城 |
taobaoliveshare | 淘宝直播 |
youku | 优酷视频 |
iting | 喜马拉雅 |
quark | 夸克 |
snssdk141 | 今日头条 |
taobaotravel | 飞猪 |
alipays | 支付宝 |
ucbrowser | UC |
OneTravel | 滴滴 |
dianping | 大众点评 |
orpheuswidget | 网易云音乐 |
baiduboxapp | 百度 |
xhsdiscover | 小红书 |
bilibili | B 站 |
soul | soul |
zhihu | 知乎 |
lianjiabeike | 贝壳 |
fleamarket | 闲鱼 |
tctravel | 同程旅行 |
qunariphone | 去哪儿旅行 |
amapuri | 高德地图 |
txvideo | 腾讯视频 |
weixin | 微信 |
tianyancha | 天眼查 |
wbmain | 58 同城 |
bitauto.yicheapp | 易车 |
autohome | 汽车之家 |
sohuvideo | 搜狐视频 |
bosszp | Boss 直聘 |
openanjuke | 安居客 |
momochat | 陌陌 |
jdmobile | 京东金融 |
kaola | 考拉海购 |
yymobile | YY |
<key>LSApplicationQueriesSchemes</key>
<array>
<string>tbopen</string>
<string>openapp.jdmobile</string>
<string>pddopen</string>
<string>imeituan</string>
<string>meituanwaimai</string>
<string>sinaweibo</string>
<string>vipshop</string>
<string>kwai</string>
<string>ksnebula</string>
<string>snssdk1128</string>
<string>dewuapp</string>
<string>ctrip</string>
<string>iqiyi</string>
<string>freereader</string>
<string>eleme</string>
<string>tmall</string>
<string>taobaoliveshare</string>
<string>youku</string>
<string>iting</string>
<string>quark</string>
<string>snssdk141</string>
<string>taobaotravel</string>
<string>alipays</string>
<string>ucbrowser</string>
<string>OneTravel</string>
<string>dianping</string>
<string>orpheuswidget</string>
<string>baiduboxapp</string>
<string>xhsdiscover</string>
<string>bilibili</string>
<string>soul</string>
<string>zhihu</string>
<string>lianjiabeike</string>
<string>fleamarket</string>
<string>tctravel</string>
<string>qunariphone</string>
<string>amapuri</string>
<string>txvideo</string>
<string>weixin</string>
<string>tianyancha</string>
<string>wbmain</string>
<string>bitauto.yicheapp</string>
<string>autohome</string>
<string>sohuvideo</string>
<string>bosszp</string>
<string>openanjuke</string>
<string>momochat</string>
<string>jdmobile</string>
<string>kaola</string>
<string>yymobile</string>
</array>
*测试ID偶尔会存在填充不足的情况,可以尝试更换测试ID进行调试。
APPID:sjm_ios123
广告位 ID | ||
开屏 | SJM_S001 | |
SJM_S002 | ||
SJM_S003 | ||
激励视频 | SJM_R001 | |
SJM_R002 | ||
SJM_R003 | ||
插屏 | SJM_I101 | |
SJM_I001 | ||
Banner | SJM_B001 | |
SJM_B002 | ||
SJM_B003 | ||
信息流 | SJM_F001 | |
SJM_F002 | ||
SJM_F003 | ||
全屏视频 | SJM_FV001 | |
SJM_FV002 | ||
SJMKS_FV001 |