Unity Ads iOS SDK API 参考
使用 UnityAds.h
库可以实现基本广告内容,例如奖励或非奖励视频广告、插页式广告或横幅广告。
#import "UnityAds.h"
本文包含以下 API 文档:
类
枚举
委托
UnityAdsInitializationDelegate
UnityAdsLoadDelegate
UnityAdsShowDelegate
UADSBannerDelegate
UADSBannerAdRefreshViewDelegate
类
UnityAds
#import <UnityAds/UnityAds.h>
使用此命名空间可以实现基本广告内容,例如奖励或非奖励视频广告、插页式广告或横幅广告。
initialize
+ (void) initialize: (NSString *)gameId
testMode: (BOOL)testMode
initializationDelegate: (nullable id<UnityAdsInitializationDelegate>)initializationDelegate;
}
使用指定的 Game ID(游戏 ID)、测试模式状态和初始化委托来初始化广告服务。
参数 | 描述 |
---|---|
| Monetization(变现)后台中项目的特定于平台的 Unity 游戏标识符。 |
| 使用测试模式可以在不投放真实广告的情况下测试集成情况。使用 |
| (可选)使用 |
load
+ (void)load: (NSString *)placementId options: (UADSLoadOptions *)options loadDelegate: (nullable id<UnityAdsLoadDelegate>)loadDelegate {
[UADSLoadModule.sharedInstance loadForPlacementID: placementId
options: options
loadDelegate: loadDelegate];
}
加载指定广告单元的广告内容。必须在调用 show
之前先调用 load
。
参数 | 描述 |
---|---|
| 要加载广告内容的广告单元的标识符。 |
| 一组用于修改广告加载行为的选项。 |
| (可选)使用 |
isReady
[!WARNING]已在 SDK 4.0 版本中移除。有关详细信息,请参阅已弃用的 API 类。
+ (BOOL)isReady: (NSString *)adUnitId {
return [UnityServices isSupported] && [UnityServices isInitialized] && [UADSPlacement isReady: adUnitId];
}
如果指定的广告单元已准备好展示广告,返回 YES
。如果在启用 enablePerPlacementLoad
的情况下初始化了 SDK,则必须在调用 show
之前先调用 load
。
参数 | 描述 |
---|---|
| 要查询的广告单元的标识符。 |
注意:如果在未指定 Ad Unit ID(广告单元 ID)的情况下调用 isReady
,则该方法会返回 Unity 标准广告位的结果。
.
show
+ (void)show: (UIViewController *)viewController placementId: (NSString *)placementId showDelegate: (nullable id<UnityAdsShowDelegate>)showDelegate {
[self show: viewController
adUnitId: placementId
options: [UADSShowOptions new]
showDelegate: showDelegate];
}
显示指定广告单元中加载的广告内容。
参数 | 描述 |
---|---|
| 要展示的广告单元的标识符。 |
| 一组用于修改广告展示行为的选项。 |
| (可选)使用 |
注意:如果在未指定 Ad Unit ID(广告单元 ID)的情况下调用 show
,则该方法会展示 Unity 标准广告位中加载的内容。在 SDK 4.0 及更高版本中,必须使用 Ad Unit ID(广告单元 ID)调用此方法。
addDelegate
[!WARNING]已在 SDK 4.0 版本中移除。有关详细信息,请参阅已弃用的 API 类。
+ (void)addDelegate: (__nullable id<UnityAdsDelegate>)delegate {
[UADSProperties addDelegate: delegate];
}
添加一个用于接收 Unity Ads 回调的监听器委托。在 3.1.0 及更高版本中,您可以注册多个监听器。这对于聚合客户特别有用。
参数 | 描述 |
---|---|
| 用于 Unity Ads 回调的监听器。 |
removeDelegate
[!WARNING]已在 SDK 4.0 版本中移除。有关详细信息,请参阅已弃用的 API 类。
+ (void)removeDelegate: (id<UnityAdsDelegate>)delegate {
[UADSProperties removeDelegate: delegate];
}
移除活动的 UnityAdsDelegate
监听器。
参数 | 描述 |
---|---|
| 用于 Unity Ads 回调的监听器。 |
setDebugMode
+ (BOOL)getDebugMode {
return [UnityServices getDebugMode];
}
控制 SDK 的日志输出量。设置为 YES
可获得更详细完整的日志记录。
getDebugMode
+ (void)getDebugMode: (BOOL)enableDebugMode {
[UnityServices setDebugMode: enableDebugMode];
}
如果 SDK 处于调试模式,返回 YES
,否则返回 NO
。
getVersion
+ (NSString *)getVersion {
return [UnityServices getVersion];
}
返回 Unity Ads SDK 的当前版本。
isInitialized
+ (BOOL)isInitialized {
return [USRVSdkProperties isInitialized];
}
如果 SDK 已成功初始化,返回 YES
,否则返回 NO
。
UADSLoadOptions
#import <UnityAds/UADSBaseOptions.h>
@interface UADSLoadOptions : UADSBaseOptions
@property (nonatomic, readwrite) NSString *adMarkup;
@end
此类包含要使用 load
方法添加的可选元数据。在第三方聚合中使用头部竞价的客户应在 Unity Ads 平台中的出价人赢得广告拍卖的情况下使用此类。
setAdMarkup
- (void)setAdMarkup: (NSString *)adMarkup
此方法采用从出价人服务返回的广告标记。当 Unity Ads 平台中的出价人赢得头部竞价拍卖时,Unity Ads SDK 会从聚合交易平台接收广告标记。广告标记字符串包含 Unity 加载和展示广告所需的信息。
UADSBannerView
@interface UADSBannerView : UIView
使用此类可实现横幅广告。Unity Ads 3.3 及更高版本通过单个 Ad Unit(广告单元)支持多个横幅广告实例。
initWithPlacementId
-(instancetype)initWithPlacementId:(NSString *)placementId size:(CGSize)size;
使用 Ad Unit ID(广告单元 ID)和横幅大小实现横幅广告视图。调用 initWithPlacementId
以初始化对象,然后调用 load
以加载广告内容。请注意,横幅对象通过其 UADSBannerViewDelegate
监听器访问生命周期事件。
参数 | 描述 |
---|---|
| 横幅 Ad Unit ID(广告单元 ID)。 |
| 横幅对象的 |
注意:使用 UADSBannerView
调用横幅广告会尝试加载一次内容,不会刷新。如果横幅返回无填充内容,则可以将其销毁并创建一个新的以重试。Unity 为聚合客户推荐此方法。
load
- (void)load;
用于请求横幅广告的基本方法。
枚举
UnityAdsPlacementState
[!WARNING]已在 SDK 4.0 版本中移除。有关详细信息,请参阅已弃用的 API 类。
typedef NS_ENUM(NSInteger, UnityAdsPlacementState)
广告单元的状态枚举。
值 | 描述 |
---|---|
| 广告单元已准备好展示广告。 |
| 广告单元不可用。 |
| 已禁用广告单元。 |
| 广告单元正在等待准备就绪。 |
| 广告单元没有可展示的广告。 |
UnityAdsFinishState
[!WARNING]已在 SDK 4.0 版本中移除。有关详细信息,请参阅已弃用的 API 类。
typedef NS_ENUM(NSInteger, UnityAdsFinishState)
用户与广告互动的状态枚举。广告播放完成时,SDK 会将此值传递给 unityAdsDidFinish
回调方法。
值 | 描述 |
---|---|
| 表示由于 Unity 错误而未能播放完广告。 |
| 表示用户跳过了广告。 |
| 表示广告已完成播放。 |
UnityAdsInitializationError
typedef NS_ENUM (NSInteger, UnityAdsInitializationError)
SDK 初始化失败的原因枚举。
值 | 描述 |
---|---|
| 由于环境或内部服务而发生错误。 |
| 由于 Initialize 方法中的参数无效而发生错误。 |
| 由于 URL 被阻止而发生错误。 |
UnityAdsLoadError
typedef NS_ENUM (NSInteger, UnityAdsLoadError)
广告单元加载失败的原因枚举。
值 | 描述 |
---|---|
| 由于 SDK 未初始化而导致广告加载失败。 |
| 由于内部 Unity Ads 服务错误而导致广告加载失败。 |
| 由于 |
| 由于广告平台上没有可用的内容而导致广告加载失败。 |
| 广告未能在指定的时间范围内加载。 |
UnityAdsShowCompletionState
typedef NS_ENUM (NSInteger, UnityAdsShowCompletionState)
广告已结束的原因枚举。
值 | 描述 |
---|---|
| 表示用户跳过了广告。 |
| 表示广告已完整播放。这通常表明用户可以因观看完整的广告而获得奖励。 |
UnityAdsShowError
typedef NS_ENUM (NSInteger, UnityAdsShowError)
广告单元展示失败的原因枚举。
值 | 描述 |
---|---|
| 由于 SDK 未初始化而导致广告展示失败。 |
| 由于广告单元尚未准备就绪而导致广告展示失败。 |
| 由于媒体播放器错误而导致广告展示失败。 |
| 由于 |
| 由于互联网连接错误而导致广告展示失败。 |
| 由于广告已在展示而导致广告展示失败。 |
| 由于内部 Unity Ads 服务错误而导致广告展示失败。 |
UnityAdsError
[!WARNING]已在 SDK 4.0 版本中移除。有关详细信息,请参阅已弃用的 API 类。
typedef NS_ENUM (NSInteger, UnityAdsError)
通过 unityAdsDidError
回调发出的 Unity Ads 错误的原因枚举。
值 | 描述 |
---|---|
| Unity Ads 服务当前未初始化。 |
| 初始化过程中发生错误。 |
| 由于参数无效,Unity Ads 初始化失败。 |
| 由于视频播放器失败而发生错误。 |
| 由于环境无效而导致 Unity Ads 服务初始化失败。 |
| 由于广告拦截而产生的错误。 |
| 由于无法读取或写入文件而发生错误。 |
| 由于设备标识符错误而产生的错误。 |
| 尝试展示广告时出错。 |
| Unity Ads 内部服务错误。 |
UnityAdsBannerPosition
可设置为横幅广告锚点的位置枚举。
值 | 描述 |
---|---|
| 将横幅广告锚定在屏幕的左上角。 |
| 将横幅广告锚定在屏幕的顶部中央位置。 |
| 将横幅广告锚定在屏幕的右上角。 |
| 将横幅广告锚定在屏幕的左下角。 |
| 将横幅广告锚定在屏幕的底部中央位置。 |
| 将横幅广告锚定在屏幕的右下角。 |
| 将横幅广告锚定在屏幕的中央位置。 |
| 不锚定横幅广告。 |
委托
UnityAdsInitializationDelegate
@protocol UnityAdsInitializationDelegate <NSObject>
- (void)initializationComplete;
- (void)initializationFailed: (UnityAdsInitializationError)error withMessage: (NSString *)message;
@end
实现此委托可以处理 initialize
结果。
initializationComplete
此回调方法处理 SDK 成功初始化的逻辑。
initializationFailed
此回调方法处理 SDK 初始化失败的逻辑。
参数 | 描述 |
---|---|
| 导致初始化失败的 |
| 与错误相关的消息。 |
UnityAdsLoadDelegate
@protocol UnityAdsLoadDelegate <NSObject>
- (void)unityAdsAdLoaded: (NSString *)placementId;
- (void)unityAdsAdFailedToLoad: (NSString *)placementId
withError: (UnityAdsLoadError)error
withMessage: (NSString *)message;
@end
实现此委托可以处理 load
结果。
unityAdsAdLoaded
此回调方法处理广告单元成功加载的逻辑。
参数 | 描述 |
---|---|
| 已加载内容的广告单元的标识符。 |
unityAdsAdFailedToLoad
此回调方法处理广告单元加载失败的逻辑。
参数 | 描述 |
---|---|
| 内容加载失败的广告单元的标识符。 |
| 导致加载失败的 UnityAdsLoadError。 |
| 与错误相关的消息。 |
UnityAdsShowDelegate
@protocol UnityAdsShowDelegate <NSObject>
- (void)unityAdsShowComplete: (NSString *)adUnitId withFinishState: (UnityAdsShowCompletionState)state;
- (void)unityAdsShowFailed: (NSString *)adUnitId withError: (UnityAdsShowError)error withMessage: (NSString *)message;
- (void)unityAdsShowStart: (NSString *)adUnitId;
- (void)unityAdsShowClick: (NSString *)adUnitId;
@end
实现此委托可以处理 show
结果。
unityAdsShowComplete
此回调方法处理广告完成的逻辑。
参数 | 描述 |
---|---|
| 展示内容的广告单元的标识符。 |
| 表示广告已跳过或完成。 |
unityAdsShowStart
此回调方法处理广告开始播放的逻辑。
参数 | 描述 |
---|---|
| 展示内容的广告单元的标识符。 |
unityAdsShowClick
此回调方法处理用户点击广告的逻辑。
参数 | 描述 |
---|---|
| 展示内容的广告单元的标识符。 |
unityAdsShowFailed
此回调方法处理广告单元展示内容失败的逻辑。
参数 | 描述 |
---|---|
| 展示内容失败的广告单元的标识符。 |
| 导致展示失败的 |
message | 与错误相关的消息。 |
UnityAdsDelegate
[!WARNING]已在 SDK 4.0 版本中移除。有关详细信息,请参阅已弃用的 API 类。
@protocol UnityAdsDelegate <NSObject>
- (void)unityAdsReady: (NSString *)placementId;
- (void)unityAdsDidError: (UnityAdsError)error withMessage: (NSString *)message;
- (void)unityAdsDidStart: (NSString *)placementId;
- (void)unityAdsDidFinish: (NSString *)placementId
withFinishState: (UnityAdsFinishState)state;
@end
实现此委托可以处理广告的各种状态。在脚本中实现此委托可以定义奖励广告的逻辑。
unityAdsReady
[!WARNING]已在 SDK 4.0 版本中移除。有关详细信息,请参阅已弃用的 API 类。
指定已准备好通过指定广告单元展示的广告内容的逻辑。
参数 | 描述 |
---|---|
| 已准备就绪的广告单元的标识符。 |
unityAdsDidError
[!WARNING]已在 SDK 4.0 版本中移除。有关详细信息,请参阅已弃用的 API 类。
指定由于错误而导致广告内容展示失败的逻辑。
参数 | 描述 |
---|---|
| 导致错误的 |
| 与错误相关的消息。 |
unityAdsDidStart
[!WARNING]已在 SDK 4.0 版本中移除。有关详细信息,请参阅已弃用的 API 类。
指定玩家触发广告展示的逻辑。
参数 | 描述 |
---|---|
| 正在展示广告的广告单元的标识符。 |
unityAdsDidFinish
[!WARNING]已在 SDK 4.0 版本中移除。有关详细信息,请参阅已弃用的 API 类。
指定玩家完整观看广告的逻辑。
参数 | 描述 |
---|---|
| 完成广告展示的广告单元的标识符。 |
| 广告展示的结果用户事件。 |
UADSBannerDelegate
@protocol UADSBannerViewDelegate <NSObject>
@optional
- (void)bannerViewDidLoad: (UADSBannerView *)bannerView;
- (void)bannerViewDidClick: (UADSBannerView *)bannerView;
- (void)bannerViewDidLeaveApplication: (UADSBannerView *)bannerView;
- (void)bannerViewDidError: (UADSBannerView *)bannerView error: (UADSBannerError *)error;
@end
此委托提供来自 Unity Ads 横幅广告事件的回调。
bannerViewDidLoad
横幅成功加载广告内容时触发此回调。
bannerViewDidClick
用户点击横幅广告时触发此回调。
bannerViewDidLeaveApplication
由于用户退出应用程序而导致横幅广告关闭时触发此回调。
bannerViewDidError
UnityAdsBanner 遇到错误时触发此回调。
参数 | 描述 |
---|---|
| 导致错误的 |
UADSBannerAdRefreshViewDelegate
注意:此委托已被弃用,并将从 Unity Ads SDK 未来发布的主要版本中删除。
@protocol UADSBannerAdRefreshViewDelegate <NSObject>
@optional
- (void)unityAdsRefreshBannerDidLoad: (UADSBannerAdRefreshView *)bannerAdRefreshView;
- (void)unityAdsRefreshBannerDidNoFill: (UADSBannerAdRefreshView *)bannerAdRefreshView;
- (void)unityAdsRefreshBannerDidShow: (UADSBannerAdRefreshView *)bannerAdRefreshView;
- (void)unityAdsRefreshBannerDidHide: (UADSBannerAdRefreshView *)bannerAdRefreshView;
- (void)unityAdsRefreshBannerDidClick: (UADSBannerAdRefreshView *)bannerAdRefreshView;
- (void)unityAdsRefreshBannerDidError: (UADSBannerAdRefreshView *)bannerAdRefreshView message: (NSString *)message;
@end
此委托提供来自 Unity Ads 刷新横幅广告事件的回调。
unityAdsRefreshBannerDidLoad
当横幅广告已加载并准备好放置在 View 层级视图中时调用。
unityAdsRefreshBannerDidNoFill
当横幅中无可用的广告内容时调用。
unityAdsRefreshBannerDidShow
横幅广告对用户可见时调用。
unityAdsRefreshBannerDidHide
横幅广告对用户隐藏时调用。
unityAdsRefreshBannerDidClick
用户点击了横幅广告时调用。
unityAdsRefreshBannerDidError
当 UnityAdsBanner
遇到错误时调用。
参数 | 描述 |
---|---|
| 与错误相关的消息。 |