1.使用此文档内接口,需要先接入MID iOSSDK(详情查看MID iOSSDK文档,当前支持ACE官网最新版本)。
2.接入MID iOSSDK后,需要配置ApplovinSDK需要的依赖库。
注:本文为Applovin iOS终端SDK接入教程,只涉及SDK的使用方法。
AppLovinSdkKey:媒体 ID,是您在Applovin开发者平台创建媒体时获得的ID,这个ID是我们在广告网络中识别您应用的唯一ID。
AD_UNIT_ID:广告位 ID,是您在Applovin开发者平台为您的应用所创建的某种类型(Banner、开屏、插屏、原生)的广告位置的ID。
GADApplicationIdentifier:您的AdMob应用ID的 字符串值,具体参数由运营提供。
下载对应demo
pod需要引入的三方库
Podfile配置,需注意与MID SDK 有一致内容需要筛选
source 'https://gitee.com/jerryshuo/WPMIDPods.git'
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
platform :ios, '11.0'
use_frameworks!
project 'UnityIOS/Unity-iPhone.xcodeproj'
target 'UnityFramework' do
pod 'WPMIDSDKAppLovin','1.0.5.1'
end
需要在info.plist中添加AppLovinSdkKey
<key>AppLovinSdkKey</key>
<string>后台申请的key</string>
需要在info.plist中添加对应渠道的SKAdNetworkID,具体参数需要去AppLovin获取.
1.点击地址https://developers.applovin.com/en/ios/overview/skadnetwork/?skadnetworks=913%2C969%2C752 需和运营确认接入哪几家广告平台然后在页面上勾选(下图是目前SDK支持的全部广告渠道)。
2.根据勾选会自动生成所需内容,然后根据苹果规则(https://developer.apple.com/documentation/storekit/skadnetwork/configuring_a_source_app) 添加到info.plist;
格式类似以下示例(仅需替换 < array >和“< /array>之间的内容):
注意:根据广告方文档反馈SKAdNetworkIdentifier的值可能会变动,不会一直保持不变,所以每次接入都要在文档重新获取。
<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>
</array>
接入MID BaseSDK初始化即可
/**
* 启动接口
*/
- (BOOL)MIDApplication:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
[[MIDAppLovinAds sharedInstance] MIDApplication:application didFinishLaunchingWithOptions:launchOptions];
接口说明
/**
* 缓存广告
* @param adid 广告id
*/
- (void)LoadRewardedAd:( NSString * _Nonnull )adid;
接入方法
[[MIDAppLovinAds sharedInstance] LoadRewardedAd:@"广告ID"];
接口说明
/**
* 播放广告
* @param placement 事件参数
*/
-(void)ShowRewardedAd:(NSString *)placement;
接入方法
[[MIDAppLovinAds sharedInstance] ShowRewardedAd:@"传入参数"];
接口说明
/**
* 缓存并播放广告
* @param adid 广告id
* @param placement 事件参数
*/
-(void)LoadShowRewardedAd:( NSString * _Nonnull )adid placement:(NSString *)placement;
接入方法
[[MIDAppLovinAds sharedInstance] LoadShowRewardedAd:@"广告ID" placement:@"传入参数"];
您可以实现全部或部分代理,以跟踪点击成功或者激励视频广告请求失败等广告生命周期事件。
接口说明
// 当广告加载完成时,将调用此方法
- (void)didLoadAd:(NSString *)adid;
// 广告加载错误 当无法检索广告时,将调用此方法。
// 常见错误代码:204 - 无广告 5xx - 内部服务器错误负数 - 内部错误
- (void)didFailToLoadAdForAdUnitIdentifier:(NSString *)adid withErrorCode:(NSInteger)errorCode;
// 当广告即将要显示时,会调用此方法。
// 在主UI线程上调用此方法。
- (void)didDisplayAd:(NSString *)adid;
// 广告被点击时调用此方法。
// 在主UI线程上调用此方法。
- (void)didClickAd:(NSString *)adid;
// 当广告隐藏时,会调用此方法。
// 在主UI线程上调用此方法。
- (void)didHideAd:(NSString *)adid;
// 当广告显示失败时,将调用此方法。
// 指示显示失败的错误。常见错误代码在MAErrorCode.h中定义。
- (void)didFailToDisplayAd:(NSString *)adid withErrorCode:(NSInteger)errorCode;
/**
* 视频开始启动
*/
- (void) didStartRewardedVideoForAd:(NSString *)adid;
/**
* 此方法将在视频完成时调用
*/
- (void) didCompleteRewardedVideoForAd:(NSString *)adid;
/**
* 当应该授予用户奖励时,将调用此方法
*
* @param adid Ad for which reward ad was rewarded for.
*/
- (void) didRewardUserForAd:(NSString *)adid ;
接入方法
// 当广告加载完成时,将调用此方法
- (void)didLoadAd:(NSString *)adid{
NSLog(@" GDTRewardAdVC didLoadAd adid:%@",adid);
isLoaded = YES;
}
// 广告加载错误 当无法检索广告时,将调用此方法。
// 常见错误代码:204 - 无广告 5xx - 内部服务器错误负数 - 内部错误
- (void)didFailToLoadAdForAdUnitIdentifier:(NSString *)adid withErrorCode:(NSInteger)errorCode{
NSLog(@" GDTRewardAdVC didFailToLoadAdForAdUnitIdentifier 未加载完成 adid:%@ errorCode:%zd",adid,errorCode);
}
// 当广告即将要显示时,会调用此方法。
// 在主UI线程上调用此方法。
- (void)didDisplayAd:(NSString *)adid{
NSLog(@" GDTRewardAdVC didDisplayAd adid:%@",adid);
}
// 广告被点击时调用此方法。
// 在主UI线程上调用此方法。
- (void)didClickAd:(NSString *)adid{
NSLog(@" GDTRewardAdVC didClickAd adid:%@",adid);
}
// 当广告隐藏时,会调用此方法。
// 在主UI线程上调用此方法。
- (void)didHideAd:(NSString *)adid{
NSLog(@" GDTRewardAdVC didHideAd adid:%@",adid);
}
// 当广告显示失败时,将调用此方法。
// 指示显示失败的错误。常见错误代码在MAErrorCode.h中定义。
- (void)didFailToDisplayAd:(NSString *)adid withErrorCode:(NSInteger)errorCode{
NSLog(@" GDTRewardAdVC didFailToDisplayAd adid:%@ withErrorCode:%zd",adid,errorCode);
}
/**
* 视频开始启动
*/
- (void) didStartRewardedVideoForAd:(NSString *)adid{
NSLog(@" GDTRewardAdVC didStartRewardedVideoForAd adid:%@",adid);
}
/**
* 此方法将在视频完成时调用
*/
- (void) didCompleteRewardedVideoForAd:(NSString *)adid{
NSLog(@" GDTRewardAdVC didCompleteRewardedVideoForAd adid:%@",adid);
}
/**
* 当应该授予用户奖励时,将调用此方法
*
* @param ad Ad for which reward ad was rewarded for.
*/
- (void) didRewardUserForAd:(NSString *)adid {
NSLog(@" GDTRewardAdVC didRewardUserForAd adid:%@",adid);
}
接口说明
/// 加载插页广告
/// - Parameter adid: 广告ID
- (void)interstitialCreateInterstitialAd:(NSString *_Nonnull)adid;
接入方法
[MIDAppLovinAds.sharedInstance interstitialCreateInterstitialAd:@"广告ID"];
接口说明
/// 播放广告
- (void)interstitialShowAd;
接入方法
[MIDAppLovinAds.sharedInstance interstitialShowAd];
接口说明
/// 广告是否加载完成
- (BOOL)interstitialIsReady;
接入方法
if([MIDAppLovinAds.sharedInstance interstitialIsReady]){
[MIDAppLovinAds.sharedInstance interstitialShowAd];
}
您可以实现全部或部分代理,以跟踪点击成功或者激励视频广告请求失败等广告生命周期事件。
接口说明
/// 广告被点击
/// - Parameter ad: 广告位ID
- (void)interstitialAdDidClickAd:(NSString *)ad;
/// 广告已打开展示
/// - Parameter ad: 广告位ID
- (void)interstitialAdDidDisplayAd:(NSString *)ad;
/// 广告展示失败
/// - Parameters:
/// - ad: 广告位ID
/// - error: 错误描述
- (void)interstitialAdDidFailToDisplayAd:(NSString *)ad withError:(MIDAppLovinError *)error;
/// 广告加载失败
/// - Parameters:
/// - adUnitIdentifier: 广告位ID
/// - error: 错误描述(204:没有广告;5xx:内部服务器错误;负数:内部错误)
- (void)interstitialAdDidFailToLoadAdForAdUnitIdentifier:(nonnull NSString *)adUnitIdentifier withError:(MIDAppLovinError *_Nullable)error;
/// 广告关闭
/// - Parameter ad: 广告位ID
- (void)interstitialAdDidHideAd:(NSString *_Nullable)ad;
/// 广告加载完成
/// - Parameter ad: 广告位ID
- (void)interstitialAdDidLoadAd:(NSString *_Nullable)ad;
/// 收入事件
/// - Parameters:
/// - ad: 广告位ID
/// - amount: 收入数量
- (void)interstitialAdDidPayRevenueForAd:(NSString *_Nullable)ad withRewardAmount:(NSInteger )amount;
接入方法
/// 广告被点击
/// - Parameter ad: 广告位ID
- (void)interstitialAdDidClickAd:(NSString *)ad {
NSLog(@" GDTRewardAdVC interstitialAdDidClickAd adUnitId:%@",ad);
}
/// 广告已打开展示
/// - Parameter ad: 广告位ID
- (void)interstitialAdDidDisplayAd:(NSString *)ad {
NSLog(@" GDTRewardAdVC interstitialAdDidDisplayAd adUnitId:%@",ad);
}
/// 广告展示失败
/// - Parameters:
/// - ad: 广告位ID
/// - error: 错误描述
- (void)interstitialAdDidFailToDisplayAd:(NSString *)ad withError:(MIDAppLovinError *)error {
NSLog(@" GDTRewardAdVC interstitialAdDidFailToDisplayAd adUnitId:%@,error:%@",ad,error.message);
}
/// 广告加载失败
/// - Parameters:
/// - adUnitIdentifier: 广告位ID
/// - error: 错误描述(204:没有广告;5xx:内部服务器错误;负数:内部错误)
- (void)interstitialAdDidFailToLoadAdForAdUnitIdentifier:(nonnull NSString *)adUnitIdentifier withError:(MIDAppLovinError * _Nullable)error {
NSLog(@" GDTRewardAdVC interstitialAdDidFailToDisplayAd adUnitId:%@,error:%@",adUnitIdentifier,error.message);
}
/// 广告关闭
/// - Parameter ad: 广告位ID
- (void)interstitialAdDidHideAd:(NSString * _Nullable)ad {
NSLog(@" GDTRewardAdVC interstitialAdDidHideAd adUnitId:%@",ad);
}
/// 广告加载完成
/// - Parameter ad: 广告位ID
- (void)interstitialAdDidLoadAd:(NSString * _Nullable)ad {
NSLog(@" GDTRewardAdVC interstitialAdDidLoadAd adUnitId:%@",ad);
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"demo" message:@"插页广告加载完成" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *show = [UIAlertAction actionWithTitle:@"播放" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
[self showInterButtonClick];
}];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
}];
[alert addAction:show];
[alert addAction:cancel];
[self presentViewController:alert animated:YES completion:nil];
}
/// 收入事件
/// - Parameters:
/// - ad: 广告位ID
/// - amount: 收入数量
- (void)interstitialAdDidPayRevenueForAd:(NSString * _Nullable)ad withRewardAmount:(NSInteger)amount {
NSLog(@" GDTRewardAdVC interstitialAdDidPayRevenueForAd adUnitId:%@",ad);
}
接口说明
/// 加载并展示banner
/// - Parameters:
/// - adid: 广告ID
/// - adController: 播放的控制器
/// - isTop: 展示位置(true:最上方,false:最底部)
/// - backgroundColor: banner背景颜色
- (void)bannerCreateBannerAd:(NSString *_Nonnull)adid adController:(UIViewController *_Nonnull)adController Position:(BOOL)isTop backgroundColor:(UIColor *_Nonnull)backgroundColor;
接入方法
[MIDAppLovinAds.sharedInstance bannerCreateBannerAd:广告位ID adController:当前控制器 Position:位置(顶部/底部) backgroundColor:背景颜色];
接口说明
/// 加载并展示banner
/// - Parameters:
/// - adid: 广告ID
/// - adController: 播放的控制器
/// - x: 横幅广告X点位置
/// - y: 横幅广告Y点位置
/// - w: 横幅广告宽度
/// - h: 横幅广告高度
/// - backgroundColor: banner背景颜色
- (void)bannerCreateBannerAd:(NSString *_Nonnull)adid adController:(UIViewController *_Nonnull)adController PositionX:(float)x PositionY:(float)y PositionW:(float)w PositionH:(float)h backgroundColor:(UIColor *_Nonnull)backgroundColor;
接入方法
[MIDAppLovinAds.sharedInstance bannerCreateBannerAd:广告位ID adController:当前控制器 PositionX:x点 PositionY:y点 PositionW:宽 PositionH:高 backgroundColor:背景颜色];
接口说明
需要保证当前控制器仅展示一个banner,同时存在多个时仅会关闭最后打开的banner
/// 移除banner
- (void)bannerDissmissADView;
接入方法
[MIDAppLovinAds.sharedInstance bannerDissmissADView];
接口说明
/// 停止自动刷新
- (void)bannerStopAutoRefresh;
接入方法
[MIDAppLovinAds.sharedInstance bannerStopAutoRefresh];
接口说明
/// 开始自动刷新
- (void)bannerStartAutoRefresh;
接入方法
[MIDAppLovinAds.sharedInstance bannerStartAutoRefresh];
接口说明
/// 手动刷新(启用后会关闭自动刷新)
- (void)bannerLoadAd;
接入方法
[MIDAppLovinAds.sharedInstance bannerLoadAd];
您可以实现全部或部分代理,以跟踪点击成功或者激励视频广告请求失败等广告生命周期事件。
接口说明
/// 广告被点击
/// - Parameter ad: 广告位ID
- (void)bannerDidClickAd:(NSString *_Nullable)ad;
/// 广告已打开展示(已废弃)
/// - Parameter ad: 广告位ID
- (void)bannerDidDisplayAd:(NSString *_Nullable)ad;
/// 广告展示失败
/// - Parameters:
/// - ad: 广告位ID
/// - error: 错误描述
- (void)bannerDidFailToDisplayAd:(NSString *_Nullable)ad withError:(MIDAppLovinError *_Nullable)error;
/// 广告加载失败
/// - Parameters:
/// - adUnitIdentifier: 广告位ID
/// - error: 错误描述(204:没有广告;5xx:内部服务器错误;负数:内部错误)
- (void)bannerDidFailToLoadAdForAdUnitIdentifier:(NSString *_Nullable)adUnitIdentifier withError:(MIDAppLovinError *_Nullable)error;
/// 广告关闭(已废弃)
/// - Parameter ad: 广告位ID
- (void)bannerDidHideAd:(NSString *_Nullable)ad;
/// 广告加载完成
/// - Parameter ad: 广告位ID
- (void)bannerDidLoadAd:(NSString *_Nullable)ad;
/// 广告返回展示原始大小
/// - Parameter ad: 广告位ID
- (void)bannerDidCollapseAd:(NSString *_Nullable)ad;
/// 广告扩展到全屏显示
/// - Parameter ad: 广告位ID
- (void)bannerDidExpandAd:(NSString *_Nullable)ad;
/// 收入事件
/// - Parameters:
/// - ad: 广告位ID
/// - amount: 收入数量
- (void)bannerDidPayRevenueForAd:(NSString *_Nullable)ad withRewardAmount:(NSInteger )amount;
接入方法
/// 广告被点击
/// - Parameter ad: 广告位ID
- (void)bannerDidClickAd:(NSString * _Nullable)ad {
NSLog(@" GDTRewardAdVC bannerDidClickAd adUnitId:%@",ad);
}
/// 广告返回展示原始大小
/// - Parameter ad: 广告位ID
- (void)bannerDidCollapseAd:(NSString * _Nullable)ad {
NSLog(@" GDTRewardAdVC bannerDidCollapseAd adUnitId:%@",ad);
}
/// 广告已打开展示(已废弃)
/// - Parameter ad: 广告位ID
- (void)bannerDidDisplayAd:(NSString * _Nullable)ad {
NSLog(@" GDTRewardAdVC bannerDidDisplayAd adUnitId:%@",ad);
}
/// 广告扩展到全屏显示
/// - Parameter ad: 广告位ID
- (void)bannerDidExpandAd:(NSString * _Nullable)ad {
NSLog(@" GDTRewardAdVC bannerDidExpandAd adUnitId:%@",ad);
}
/// 广告展示失败
/// - Parameters:
/// - ad: 广告位ID
/// - error: 错误描述
- (void)bannerDidFailToDisplayAd:(NSString * _Nullable)ad withError:(MIDAppLovinError * _Nullable)error {
NSLog(@" GDTRewardAdVC bannerDidFailToDisplayAd adUnitId:%@,error:%@",ad,error.message);
}
/// 广告加载失败
/// - Parameters:
/// - adUnitIdentifier: 广告位ID
/// - error: 错误描述(204:没有广告;5xx:内部服务器错误;负数:内部错误)
- (void)bannerDidFailToLoadAdForAdUnitIdentifier:(NSString * _Nullable)adUnitIdentifier withError:(MIDAppLovinError * _Nullable)error {
NSLog(@" GDTRewardAdVC bannerDidFailToLoadAdForAdUnitIdentifier adUnitId:%@,error:%@",adUnitIdentifier,error.message);
}
/// 广告关闭(已废弃)
/// - Parameter ad: 广告位ID
- (void)bannerDidHideAd:(NSString * _Nullable)ad {
NSLog(@" GDTRewardAdVC bannerDidHideAd adUnitId:%@",ad);
}
/// 广告加载完成
/// - Parameter ad: 广告位ID
- (void)bannerDidLoadAd:(NSString * _Nullable)ad {
NSLog(@" GDTRewardAdVC bannerDidLoadAd adUnitId:%@",ad);
}
/// 收入事件
/// - Parameters:
/// - ad: 广告位ID
/// - amount: 收入数量
- (void)bannerDidPayRevenueForAd:(NSString * _Nullable)ad withRewardAmount:(NSInteger)amount{
NSLog(@" GDTRewardAdVC bannerDidPayRevenueForAd adUnitId:%@",ad);
}