欢迎使用 Unity Ads iOS 开发者集成指南 Unity Ads iOS SDK API 参考 Access the Unity Ads SDK public API reference to view available classes, methods, and properties you can use in Objective-C or Swift to integrate and control ad behavior in your iOS app.
使用 库可以实现基本广告内容,例如奖励或非奖励视频广告, 插页式广告或横幅广告。
本文包含以下 API 文档:
类
枚举
委托
类
UnityAds
# import < UnityAds / UnityAds . h >
使用此命名空间可以实现基本广告内容,例如奖励或非奖励视频广告, 插页式广告或横幅广告。
initialize
+ ( void ) initialize : ( NSString * ) gameId
testMode : ( BOOL ) testMode
initializationDelegate : ( nullable id < UnityAdsInitializationDelegate > ) initializationDelegate ;
}
使用指定的 Game ID(游戏 ID) , 测试模式 状态和初始化委托来初始化广告服务。
参数
描述
使用测试模式可以在不投放真实广告的情况下测试集成情况。使用 在测试模式下进行初始化。
load
+ ( void ) load : ( NSString * ) placementId options : ( UADSLoadOptions * ) options loadDelegate : ( nullable id < UnityAdsLoadDelegate > ) loadDelegate {
[ UADSLoadModule . sharedInstance loadForPlacementID : placementId
options : options
loadDelegate : loadDelegate ] ;
}
加载指定广告单元的广告内容。必须在调用 之前先调用 。
参数
描述
要加载广告内容的广告单元的标识符。 (可选)使用 回调加载广告内容(3.7.0 和更高版本)。
isReady
+ ( BOOL ) isReady : ( NSString * ) adUnitId {
return [ UnityServices isSupported ] && [ UnityServices isInitialized ] && [ UADSPlacement isReady : adUnitId ] ;
}
如果指定的广告单元已准备好展示广告,返回 。如果在启用 的情况下初始化了 SDK,则必须在调用 之前先调用 。
注意
如果在未指定 Ad Unit ID(广告单元 ID)的情况下调用 ,则该方法会返回 Unity 标准广告位 的结果。
.
show
+ ( void ) show : ( UIViewController * ) viewController placementId : ( NSString * ) placementId showDelegate : ( nullable id < UnityAdsShowDelegate > ) showDelegate {
[ self show : viewController
adUnitId : placementId
options : [ UADSShowOptions new ]
showDelegate : showDelegate ] ;
}
显示指定广告单元中加载的广告内容。
参数
描述
要展示的广告单元的标识符。 一组用于修改广告展示行为的选项。 (可选)使用 回调展示广告内容(3.7.0 和更高版本)。
注意
如果在未指定 Ad Unit ID(广告单元 ID)的情况下调用 ,则该方法会展示 Unity 标准广告位中加载的内容。在 SDK 4.0 及更高版本中,必须使用 Ad Unit ID(广告单元 ID)调用此方法。
addDelegate
+ ( void ) addDelegate : ( __nullable id < UnityAdsDelegate > ) delegate {
[ UADSProperties addDelegate : delegate ] ;
}
添加一个用于接收 Unity Ads 回调的监听器委托。在 3.1.0 及更高版本中,您可以注册多个监听器。这对于聚合 客户特别有用。
removeDelegate
+ ( void ) removeDelegate : ( id < UnityAdsDelegate > ) delegate {
[ UADSProperties removeDelegate : delegate ] ;
}
移除活动的 监听器。
setDebugMode
+ ( BOOL ) getDebugMode {
return [ UnityServices getDebugMode ] ;
}
控制 SDK 的日志输出量。设置为 可获得更详细完整的日志记录。
getDebugMode
+ ( void ) getDebugMode : ( BOOL ) enableDebugMode {
[ UnityServices setDebugMode : enableDebugMode ] ;
}
如果 SDK 处于调试模式,返回 ,否则返回 。
getVersion
+ ( NSString * ) getVersion {
return [ UnityServices getVersion ] ;
}
返回 Unity Ads SDK 的当前版本。
isInitialized
+ ( BOOL ) isInitialized {
return [ USRVSdkProperties isInitialized ] ;
}
如果 SDK 已成功初始化,返回 ,否则返回 。
UADSLoadOptions
# import < UnityAds / UADSBaseOptions . h >
@interface UADSLoadOptions : UADSBaseOptions
@ property ( nonatomic , readwrite ) NSString * adMarkup ;
@end
此类包含要使用 方法添加的可选元数据。在第三方聚合中使用头部竞价的客户应在 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)和横幅大小实现横幅广告视图。调用 以初始化对象,然后调用 以加载广告内容。请注意,横幅对象通过其 监听器访问生命周期事件。
参数
描述
横幅 Ad Unit ID(广告单元 ID)。 横幅对象的 。支持的最小大小为 320 像素 x 50 像素。
注意
使用 调用横幅广告会尝试加载一次内容,不会刷新。如果横幅返回无填充内容,则可以将其销毁并创建一个新的以重试。Unity 为聚合 客户推荐此方法。
load
用于请求横幅广告的基本方法。
枚举
UnityAdsPlacementState
typedef NS_ENUM ( NSInteger , UnityAdsPlacementState )
广告单元的状态枚举。
值
描述
kUnityAdsPlacementStateReady
广告单元已准备好展示广告。 kUnityAdsPlacementStateNotAvailable
广告单元不可用。 kUnityAdsPlacementStateDisabled
已禁用广告单元。 kUnityAdsPlacementStateWaiting
广告单元正在等待准备就绪。 kUnityAdsPlacementStateNoFill
广告单元没有可展示的广告。
UnityAdsFinishState
typedef NS_ENUM ( NSInteger , UnityAdsFinishState )
用户与广告互动的状态枚举。广告播放完成时,SDK 会将此值传递给 回调方法。
值
描述
kUnityAdsFinishStateError
表示由于 Unity 错误而未能播放完广告。 kUnityAdsFinishStateSkipped
表示用户跳过了广告。 kUnityAdsFinishStateCompleted
表示广告已完成播放。
UnityAdsInitializationError
typedef NS_ENUM ( NSInteger , UnityAdsInitializationError )
SDK 初始化失败的原因枚举。
值
描述
kUnityInitializationErrorInternalError
由于环境或内部服务而发生错误。 kUnityInitializationErrorInvalidArgument
由于 Initialize 方法中的参数无效而发生错误。 kUnityInitializationErrorAdBlockerDetected
由于 URL 被阻止而发生错误。
UnityAdsLoadError
typedef NS_ENUM ( NSInteger , UnityAdsLoadError )
广告单元加载失败的原因枚举。
值
描述
kUnityAdsLoadErrorInitializeFailed
由于 SDK 未初始化而导致广告加载失败。 kUnityAdsLoadErrorInternal
由于内部 Unity Ads 服务错误而导致广告加载失败。 kUnityAdsLoadErrorInvalidArgument
由于广告平台上没有可用的内容而导致广告加载失败。 kUnityAdsLoadErrorTimeout
广告未能在指定的时间范围内加载。
UnityAdsShowCompletionState
typedef NS_ENUM ( NSInteger , UnityAdsShowCompletionState )
广告已结束的原因枚举。
值
描述
kUnityShowCompletionStateSkipped
表示用户跳过了广告。 kUnityShowCompletionStateCompleted
表示广告已完整播放。这通常表明用户可以因观看完整的广告而获得奖励。
UnityAdsShowError
typedef NS_ENUM ( NSInteger , UnityAdsShowError )
广告单元展示失败的原因枚举。
值
描述
kUnityShowErrorNotInitialized
由于 SDK 未初始化而导致广告展示失败。 由于广告单元尚未准备就绪而导致广告展示失败。 kUnityShowErrorVideoPlayerError
由于媒体播放器错误而导致广告展示失败。 kUnityShowErrorInvalidArgument
kUnityShowErrorNoConnection
由于互联网连接错误而导致广告展示失败。 kUnityShowErrorAlreadyShowing
由于广告已在展示而导致广告展示失败。 kUnityShowErrorInternalError
由于内部 Unity Ads 服务错误而导致广告展示失败。
UnityAdsError
typedef NS_ENUM ( NSInteger , UnityAdsError )
通过 回调发出的 Unity Ads 错误的原因枚举。
值
描述
kUnityAdsErrorNotInitialized = 0
Unity Ads 服务当前未初始化。 kUnityAdsErrorInitializedFailed
初始化过程中发生错误。 kUnityAdsErrorInvalidArgument
由于参数无效,Unity Ads 初始化失败。 kUnityAdsErrorVideoPlayerError
由于视频播放器失败而发生错误。 kUnityAdsErrorInitSanityCheckFail
由于环境无效而导致 Unity Ads 服务初始化失败。 kUnityAdsErrorAdBlockerDetected
由于广告拦截而产生的错误。 kUnityAdsErrorFileIoError
由于无法读取或写入文件而发生错误。 kUnityAdsErrorDeviceIdError
由于设备标识符错误而产生的错误。 尝试展示广告时出错。 kUnityAdsErrorInternalError
Unity Ads 内部服务错误。
UnityAdsBannerPosition
可设置为横幅广告锚点的位置枚举。
值
描述
kUnityAdsBannerPositionTopLeft
将横幅广告锚定在屏幕的左上角。 kUnityAdsBannerPositionTopCenter
将横幅广告锚定在屏幕的顶部中央位置。 kUnityAdsBannerPositionTopRight
将横幅广告锚定在屏幕的右上角。 kUnityAdsBannerPositionBottomLeft
将横幅广告锚定在屏幕的左下角。 kUnityAdsBannerPositionBottomCenter
将横幅广告锚定在屏幕的底部中央位置。 kUnityAdsBannerPositionBottomRight
将横幅广告锚定在屏幕的右下角。 kUnityAdsBannerPositionCenter
将横幅广告锚定在屏幕的中央位置。 kUnityAdsBannerPositionNone
不锚定横幅广告。
委托
UnityAdsInitializationDelegate
@protocol UnityAdsInitializationDelegate < NSObject >
- ( void ) initializationComplete ;
- ( void ) initializationFailed : ( UnityAdsInitializationError ) error withMessage : ( NSString * ) message ;
@end
实现此委托可以处理 结果。
initializationComplete
此回调方法处理 SDK 成功初始化的逻辑。
initializationFailed
此回调方法处理 SDK 初始化失败的逻辑。
UnityAdsLoadDelegate
@protocol UnityAdsLoadDelegate < NSObject >
- ( void ) unityAdsAdLoaded : ( NSString * ) placementId ;
- ( void ) unityAdsAdFailedToLoad : ( NSString * ) placementId
withError : ( UnityAdsLoadError ) error
withMessage : ( NSString * ) message ;
@end
实现此委托可以处理 结果。
unityAdsAdLoaded
此回调方法处理广告单元成功加载的逻辑。
unityAdsAdFailedToLoad
此回调方法处理广告单元加载失败的逻辑。
参数
描述
内容加载失败的广告单元的标识符。 与错误相关的消息。
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
实现此委托可以处理 结果。
unityAdsShowComplete
此回调方法处理广告完成的逻辑。
参数
描述
展示内容的广告单元的标识符。 表示广告已跳过或完成。
unityAdsShowStart
此回调方法处理广告开始播放的逻辑。
unityAdsShowClick
此回调方法处理用户点击广告的逻辑。
unityAdsShowFailed
此回调方法处理广告单元展示内容失败的逻辑。
参数
描述
展示内容失败的广告单元的标识符。 message 与错误相关的消息。
UnityAdsDelegate
@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
指定已准备好通过指定广告单元展示的广告内容的逻辑。
unityAdsDidError
指定由于错误而导致广告内容展示失败的逻辑。
unityAdsDidStart
指定玩家触发广告展示的逻辑。
unityAdsDidFinish
指定玩家完整观看广告的逻辑。
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
当 遇到错误时调用。