Unity Ads iOS SDK API reference - Swift
Access the Unity Ads SDK public API reference to view available classes, methods, and properties you can use in Swift to integrate and control ad behavior in your iOS app.
Read time 14 minutesLast updated 2 months ago
Use this reference for the Unity Ads Android SDK API in Swift as you integrate Unity Ads into your iOS applications.
Before using this API, ensure that you've imported the library to enable monetization in your app. Refer to Import the UnityAds library for more information.
UnityAdsClasses
UADSBannerAd
The class manages the loading and showing of banner ads.
UADSBannerAdload(_:completion)
public class UADSBannerAd: NSObject { public static func load(_ configuration: UADSBannerLoadConfiguration, completion: @escaping (UADSBannerAd?, UnityAdsError?) -> Void)}
Loads a banner ad with the specified configuration.
Parameters | Description |
|---|---|
| configuration | The options for loading the banner ad. |
| completion | A callback that gets called when the banner is loaded. Returns the loaded UADSBannerAd instance if successful, or an UnityAdsError if loading fails. |
onAdExpired
public var onAdExpired: ((UADSBannerAd) -> Void)?
A callback that gets triggered when the ad expires. Set this property to be notified when a loaded banner ad expires and is no longer valid.
view
public class UADSBannerAd: UIView { public var view: UIView}
A view property that provides access to the banner ad instance. Use this property to insert the banner ad within your app's existing view hierarchy at the desired location.
UADSBannerView
UADSBannerViewUADSBannerViewDelegate
UADSBannerViewDelegateUADSBannerLoadConfiguration
The class encapsulates the options needed to load banner ads. This includes specifying the placement ID, banner size, optional ad markup, optional delegate, and any additional parameters.
UADSBannerLoadConfigurationpublic class UADSBannerLoadConfiguration: NSObject { @objc public private(set) var placementId: String @objc public private(set) var adMarkup: String? @objc public private(set) var bannerSize: CGSize @objc public private(set) var delegate: UADSBannerAdDelegate @objc public private(set) var mediationAdUnitId: String? @objc public private(set) var mediationInfo: UADSMediationInfo? @objc public private(set) var extras: [String: String]}
Property | Description | Required |
|---|---|---|
| The placement ID defined in the Unity Monetization Dashboard. | Yes |
| Ad markup data that's used when loading an ad through bidding. | No |
| The size of the banner ad. | Yes |
| Delegate to handle banner ad events. | Yes |
| The ad unit or placement ID defined in your mediation partner's dashboard. | No |
| Specifies details about your mediation integration. | No |
| Additional custom key–value pairs. | No |
UADSBannerLoadConfigurationBuilder
Use to create and return an instance of the class.
UADSBannerLoadConfigurationBuilderUADSBannerLoadConfigurationinit(placementId, bannerSize, delegate)
public init(placementId: String, bannerSize: CGSize, delegate: UADSBannerAdDelegate)
Creates a new instance of .
UADSBannerLoadConfigurationBuilderProperty | Description | Required |
|---|---|---|
| The placement ID defined in the Unity Monetization Dashboard. | Yes |
| The size of the banner ad. | Yes |
| Delegate to handle banner ad events. | Yes |
Returns: An instance of .
UADSBannerLoadConfigurationBuilderwith(adMarkup:)_
public func with(adMarkup: String) -> Self
Adds an adMarkup to the .
UADSBannerLoadConfigurationBuilderParameter | Description |
|---|---|
| adMarkup | Ad markup data that's used when loading an ad through bidding. |
Returns: The updated instance.
UADSBannerLoadConfigurationBuilderwith(mediationAdUnitId:)_
public func with(mediationAdUnitId: String) -> Self
Adds a mediation ad unit ID to the .
UADSBannerLoadConfigurationBuilderParameter | Description |
|---|---|
| mediationAdUnitId | The ad unit or placement ID defined in your mediation partner's dashboard. |
Returns: The updated instance.
UADSBannerLoadConfigurationBuilderwith(mediationInfo:)_
public func with(mediationInfo: UADSMediationInfo) -> Self
Adds mediation information to the .
UADSBannerLoadConfigurationBuilderParameter | Description |
|---|---|
| mediationInfo | Details about the mediation integration (name, version, adapter version). |
Returns: The updated instance.
UADSBannerLoadConfigurationBuilderwith(extras:)_
public func with(extras: [String: String]) -> Self
Adds extra key–value parameters to the .
UADSBannerLoadConfigurationBuilderParameter | Description |
|---|---|
| extras | Custom parameters for banner loading. |
Returns: The updated UADSBannerLoadConfigurationBuilder instance.
build()_
public func build() -> UADSBannerLoadConfiguration
Builds and returns a instance.
UADSBannerLoadConfigurationReturns: An instance of .
UADSBannerLoadConfigurationUADSBannerLoadOptions
UADSBannerLoadOptionsUADSInitializationConfiguration
public class UADSInitializationConfiguration: NSObject { @objc public private(set) var gameId: String @objc public private(set) var isTestModeEnabled: Bool @objc public private(set) var logLevel: UADSLogLevel @objc public private(set) var mediationInfo: UADSMediationInfo? @objc public private(set) var extras: [String: String]}
The class creates an object consisting of essential information about your app required to initialize the Unity Ads SDK.
UADSInitializationConfigurationProperty | Description | Required |
|---|---|---|
| Your unique game identifier from the Unity Ads Monetization dashboard. | Yes |
| A boolean that enables test mode. When true, only test ads are shown. Defaults to false. | No |
| Specifies the level of detail for log output. Defaults to INFO. | No |
| An object that contains information about your mediation integration. | No |
| A map of additional key–value parameters for custom configuration. | No |
UADSInitializationConfigurationBuilder
Use to create and return an instance of the class.
UADSInitializationConfigurationBuilderUADSInitializationConfigurationInitialize
public static func initialize(_ configuration: UADSInitializationConfiguration, completion: @escaping (UnityAdsError?) -> Void)
Initializes the Unity Ads SDK with a specified configuration. The completion handler is called when initialization completes with either success or failure.
Parameter | Description |
|---|---|
| configuration | The UADSInitializationConfiguration object that contains the necessary settings to initialize the SDK. |
| completion | The completion callback is called upon completion, indicating success or detailing the reason for failure with an error message and an error code. |
init(gameId:)_
public init(gameId: String)
Creates a new instance of .
UADSInitializationConfigurationBuilderParameter | Description |
|---|---|
| gameId | Unique identifier for a game, given by Unity Ads admin tools or Unity editor. |
Returns: An instance of .
UADSInitializationConfigurationBuilderwith(testMode:)_
public func with(testMode: Bool) -> Self
Sets the test mode.
Parameter | Description |
|---|---|
| testMode | Set this flag to |
Returns: The updated instance.
UADSInitializationConfigurationBuilderwith(logLevel:)_
public func with(logLevel: UADSLogLevel) -> Self
Sets the log level, which defines the amount of detail included in logs, from none to full debug information.
Parameter | Description |
|---|---|
| logLevel | Specifies the detail level of log output. |
Returns: The updated instance.
UADSInitializationConfigurationBuilderwith(mediationInfo:)_
public func with(mediationInfo: UADSMediationInfo) -> Self
Sets the mediation information, which provides details about your app's mediation integration, including mediation name, version, and adapter version.
Parameter | Description |
|---|---|
| mediationInfo | Specifies details about your mediation integration. |
Returns: The updated instance.
UADSInitializationConfigurationBuilderwith(extras:)_
public func with(extras: [String: String]) -> Self
Sets additional parameters.
Parameter | Description |
|---|---|
| extras | Additional key–value pairs for custom configuration. |
Returns: The updated instance.
UADSInitializationConfigurationBuilderbuild()
public func build() -> UADSInitializationConfiguration
Builds and returns a instance.
UADSInitializationConfigurationReturns: An instance of .
UADSInitializationConfigurationUADSInterstitialAd
The class manages the loading and showing of full-screen interstitial ads.
UADSInterstitialAdload(_:completion)
public class UADSInterstitialAd: NSObject { public static func load(_ configuration: UADSLoadConfiguration, completion: @escaping (UADSInterstitialAd?, UnityAdsError?) -> Void)}
Loads an interstitial ad with the specified configuration.
Parameters | Description |
|---|---|
| configuration | An instance of UADSLoadConfiguration containing the ad loading options. |
| completion | A callback that gets called when the loading process is finished. Returns a UADSInterstitialAd instance if successful, or an UnityAdsError if loading fails. |
show(_:delegate:)
public class UADSInterstitialAd: NSObject { public func show(_ configuration: UADSShowConfiguration? = nil, delegate: UADSInterstitialShowDelegate)}
Displays the loaded interstitial ad.
Parameter | Description |
|---|---|
| configuration | Optional configuration for showing the ad. |
| delegate | A delegate conforming to UADSInterstitialShowDelegate to handle ad events. |
onAdExpired
Register a callback that gets triggered when the ad expires.
public class UADSInterstitialAd: NSObject { public var onAdExpired: ((UnityAd) -> Void)?}
UADSLoadConfiguration
The class encapsulates the options needed to load Unity ads. This includes specifying the placement ID, optional ad markup, and any additional parameters.
UADSLoadConfigurationpublic class UADSLoadConfiguration: NSObject { @objc public private(set) var placementId: String @objc public private(set) var adMarkup: String? @objc public private(set) var mediationAdUnitId: String? @objc public private(set) var mediationInfo: UADSMediationInfo? @objc public private(set) var extras: [String: String]}
Creates a new instance of .
UADSLoadConfigurationProperty | Description | Required |
|---|---|---|
| The placement ID defined in the Unity Monetization Dashboard. | Yes |
| Ad markup data that's used when loading an ad through bidding. If it's nil, it's waterfall. | No |
| The placement ID used in your mediation partner's dashboard. | No |
| Specifies details about your mediation integration. | No |
| Additional custom key–value pairs for configuration. | No |
Note: The adMarkup property is required for all bidding implementations. For waterfall implementations, you can set adMarkup to nil. |
UADSLoadConfigurationBuilder
Use to create and return an instance of the class.
UADSLoadConfigurationBuilderUADSLoadConfigurationinit(placementId:)
public init(placementId: String)
Creates a new instance of .
UADSLoadConfigurationBuilderParameter | Description |
|---|---|
| The placement ID defined in the Unity Monetization Dashboard. |
Returns: An instance of .
UADSLoadConfigurationBuilderwith(adMarkup:)_
public func with(adMarkup: String) -> Self
Adds an adMarkup to the .
UADSLoadConfigurationBuilderParameter | Description |
|---|---|
| adMarkup | Ad markup data that's used when loading an ad through bidding. If nil, the ad request uses waterfall. |
Returns: The updated instance.
UADSLoadConfigurationBuilderwith(mediationAdUnitId:)_
public func with(mediationAdUnitId: String) -> Self
Adds the mediation ad unit ID to the .
UADSLoadConfigurationBuilderProperty | Description |
|---|---|
| The placement ID used in your mediation partner's dashboard. |
Returns: The updated instance.
UADSLoadConfigurationBuilderwith(mediationInfo:)_
public func with(mediationInfo: UADSMediationInfo) -> Self
Adds mediation information to the .
UADSLoadConfigurationBuilderParameter | Description |
|---|---|
| mediationInfo | Specifies details about your mediation integration (name, version, adapter version). |
Returns: The updated instance.
UADSLoadConfigurationBuilderwith(extras:)_
public func with(extras: [String: String]) -> Self
Adds extra configuration key–value pairs to the .
UADSLoadConfigurationBuilderParameter | Description |
|---|---|
| extras | A dictionary of custom parameters for ad loading. |
Returns: The updated instance.
UADSLoadConfigurationBuilderbuild()
public func build() -> UADSLoadConfiguration
Builds and returns a instance.
UADSLoadConfigurationReturns: An instance of .
UADSLoadConfigurationUADSLoadOptions
UADSLoadOptionsUADSMediationInfo
Specifies details about your mediation integration.
public class UADSMediationInfo: NSObject { public init(name: String, version: String, adapterVersion: String)}
Parameters | Description |
|---|---|
| name | The name of the mediation platform integrated in your app. |
| version | The version of the mediation SDK integrated in your app. |
| adapterVersion | The version of the Unity Ads adapter for your mediation partner. |
Returns: An instance of .
UADSMediationInfoUADSMediationMetaData
UADSMediationMetaDataPrivacy
Privacy is a set of enums and a class offering APIs to manage privacy settings and user consents for Unity Ads. This enables developers to handle various privacy settings and consents that comply with GDPR, PIPL, and other regulations.
public class Privacy: NSObject { public static func set(privacy: PrivacyFlag, value: PrivacyValue) {} public static func set(consent: PrivacyConsent, value: PrivacyConsentValue) {} // to set new flags, throws an exception if writing an existing flag public static func setPrivacy(_ flag: String, consent: PrivacyConsentValue) throws {} public static func setPrivacy(_ flag: String, value: PrivacyValue) throws {}}
UADSMetaData
UADSMetaDataUADSRewardedAd
The class manages the loading and showing of rewarded ads.
UADSRewardedAdload(_:completion)_
public class UADSRewardedAd: NSObject { public static func load(_ configuration: UADSLoadConfiguration, completion: @escaping (UADSRewardedAd?, UnityAdsError?) -> Void)}
Loads a rewarded ad with the specified options.
Parameters | Description |
|---|---|
| configuration | An instance of UADSLoadConfiguration containing the ad loading options. |
| completion | A callback that gets called when ad loading finishes. Returns a UADSRewardedAd instance if successful, or an Error if loading fails. |
show(_:delegate:)
public class UADSRewardedAd: NSObject { public func show(_ configuration: UADSShowConfiguration? = nil, delegate: UADSRewardedShowDelegate)}
Displays the loaded rewarded ad.
Parameter | Description |
|---|---|
| configuration | Optional settings for showing the ad. |
| delegate | An optional delegate that handles rewarded ad events. |
onAdExpired
Register a callback that gets triggered when the ad expires.
public class UADSRewardedAd: NSObject { public var onAdExpired: ((UnityAd) -> Void)?}
UADSShowConfiguration
The class specifies additional parameters that you want to pass in the form of key-value pairs when showing Unity Ads.
UADSShowConfigurationpublic class UADSShowConfiguration: NSObject { @objc public private(set) var viewController: UIViewController? @objc public private(set) var customRewardString: String? @objc public private(set) var extras: [String: String]}
Creates a new instance of with optional additional parameters.
UADSShowConfigurationProperty | Description | Required |
|---|---|---|
| The view controller used to present the ad. | No |
| A custom reward identifier for the ad impression. | No |
| Additional key–value parameters to include when showing the ad. Defaults to an empty dictionary. | No |
UADSShowConfigurationBuilder
Use to create and return an instance of the class.
UADSShowConfigurationBuilderUADSShowConfiguration*init()
public init()
Creates a new instance of UADSShowConfigurationBuilder.
with(viewController:)
public func with(viewController: UIViewController) -> Self
Sets the view controller to present the ad from.
Parameter | Description |
|---|---|
| The view controller presenting the ad. |
Returns: The updated UADSShowConfigurationBuilder instance.
with(customRewardString:)
public func with(customRewardString: String) -> Self
Sets a custom reward identifier for the ad impression.
Parameter | Description |
|---|---|
| A unique reward ID for the ad impression. |
Returns: The updated instance.
UADSShowConfigurationBuilderwith(extras:)
public func with(extras: [String: String]) -> Self
Adds extra key–value parameters when showing the ad.
Parameter | Description |
|---|---|
| Custom parameters for ad display. |
Returns: The updated instance.
UADSShowConfigurationBuilderbuild()
public func build() -> UADSShowConfiguration
Builds and returns a instance.
UADSShowConfigurationReturns: An instance of .
UADSShowConfigurationUADSShowOptions
UADSShowOptionsUADSTokenConfiguration
public class UADSTokenConfiguration: NSObject { @objc public private(set) var adFormat: UADSAdFormat @objc public private(set) var mediationInfo: UADSMediationInfo? @objc public private(set) var mediationAdUnitId: String? @objc public private(set) var placementId: String? @objc public private(set) var bannerSize: CGSize? @objc public private(set) var extras: [String: String] = [:]}
The class creates an object consisting of essential information required to get a bidding token.
UADSTokenConfigurationProperty | Description | Required |
|---|---|---|
| The type of ad format for which to generate a token. | Yes |
| Specifies details about your mediation integration. | No |
| The placement ID used in your mediation partner's dashboard. | No |
| The placement ID defined in the Unity Monetization Dashboard. | No |
| The size of the banner ad if a token requested a banner ad. | No |
| Additional key–value pairs for custom configuration. | No |
UADSTokenConfigurationBuilder
Use to create and return an instance of the class.
UADSTokenConfigurationBuilderUADSTokenConfigurationinit(adFormat:)
public init(adFormat: UADSAdFormat)
Creates a new instance of .
UADSTokenConfigurationBuilderParameter | Description |
|---|---|
| adFormat | An instance of UADSAdFormat that specifies the type of ad (interstitial, rewarded, banner). |
Returns: An instance of .
UADSTokenConfigurationBuilderwith(mediationInfo:)
public func with(mediationInfo: UADSMediationInfo) -> Self
Specifies details about your mediation integration.
Parameter | Description |
|---|---|
| mediationInfo | Specifies details about your mediation integration. |
Returns: The updated instance.
UADSTokenConfigurationBuilderwithMediationAdUnitId:_
public func with(mediationAdUnitId: String) -> Self
Adds the mediation ad unit ID to the .
UADSTokenConfigurationProperty | Description |
|---|---|
| The placement ID used in your mediation partner's dashboard. |
Returns: The updated instance.
UADSUADSTokenConfigurationBuilderwithPlacementId:_
public func with(placementId: String) -> Self
Specifies the placement ID defined in the Unity Monetization Dashboard.
Parameter | Description |
|---|---|
| placementId | The placement ID defined in the Unity Monetization Dashboard. |
Returns: The updated instance.
UADSUADSTokenConfigurationBuilderwithBannerSize:_
public func with(bannerSize: CGSize) -> Self
Specifies the size of the banner ad if a token requested a banner ad.
Parameter | Description |
|---|---|
| bannerSize | The size of the banner ad if a token requested a banner ad. |
Returns: The updated instance.
UADSUADSTokenConfigurationBuilderwith(extras:)
public func with(extras: [String: String]) -> Self
Specifies additional key–value pairs for custom configuration.
Parameter | Description |
|---|---|
| extras | Additional key–value pairs for custom configuration. |
Returns: The updated instance.
UADSTokenConfigurationBuilderbuild()
public func build() -> UADSTokenConfiguration
Builds and returns a instance.
UADSTokenConfigurationReturns: An instance of .
UADSTokenConfigurationUnityAds
The class is a static class that serves as the primary entry point for the SDK. It handles initialization, token retrieval, and provides access to global SDK properties.
UnityAdsInitialization
initialize(_, completion:)
Initializes the Unity Ads SDK with a specified configuration. The completion block is called when initialization completes with either success or failure.
public static func initialize(_ configuration: UADSInitializationConfiguration, completion: @escaping (UnityAdsError?) -> Void)
Parameter | Description |
|---|---|
| configuration | The UADSInitializationConfiguration object that contains the required settings to initialize the SDK. |
| completion | A callback that gets called when the SDK initialization finishes. Returns a UnityAdsError if initialization fails. |
GetToken
getToken(_, completion:)
Fetches a bidding token based on the provided and passes it to the completion block.
UADSTokenConfigurationpublic static func getToken(_ configuration: UADSTokenConfiguration, completion: @escaping (String?) -> Void)
Parameter | Description |
|---|---|
| configuration | A |
| completion | A completion block that is called with the token if it's successfully fetched, or null if an error occurs. |
Static variables
IsInitialized
A boolean property that determines if the Unity Ads SDK is initialized successfully.
@objc public static func isInitialized() -> Bool
Returns: If , Unity Ads has been successfully initialized.
truegetVersion
A string property that determines the current Unity Ads SDK version in use.
public static func getVersion() -> String
Returns: The current installed version of Unity Ads SDK.
userIdentifier
Sets a unique ID for each user of your app.
public static var userIdentifier: String
Privacy
setUserConsent()
Displays the user's opt-in choices for personalized ads.
public static func setUserConsent(_ consentGranted: Bool)
setUserOptOut()
Offers users the option to opt out of data collection and personalized ads.
public static func setUserOptOut(_ optOut: Bool)
setNonBehavioral()
Enables the display of contextual (non-personalized) ads.
public static func setNonBehavioral(_ nonBehavioral: Bool)
UnityAdsInitializationDelegate
UnityAdsInitializationDelegateUnityAdsLoadDelegate
UnityAdsLoadDelegateUnityAdsShowDelegate
UnityAdsShowDelegateEnums
UADSAdFormat
Defines the different types of ad formats supported by Unity Ads.
public enum UADSAdFormat: Int { case unspecified = 0, interstitial, rewarded, banner}
Parameter | Description |
|---|---|
| unspecified | No specified ad format. |
| interstitial | Full-screen ads shown at natural pauses in the app. |
| rewarded | Ads that grant users a reward after completion. |
| banner | Rectangular ads displayed within the app's layout, typically anchored to the top or bottom of the screen. |
UnityAdsAdFormat
UnityAdsAdFormatUADSLogLevel
Defines the logging levels for Unity Ads.
public enum UADSLogLevel: Int { case disabled, error, info, debug}
Parameter | Description |
|---|---|
| disabled | No logs output. |
| error | Logs only critical errors and failures in init/load/show operations. |
| info | Logs key operational events (such as initialization started/completed, load started/completed, show started/finished, and token generation). |
| debug | Logs all info plus detailed internal operations like network requests and internal errors. |
UADSShowFinishState
Represents the finish state of an ad after it has been shown.
public enum UADSShowFinishState: Int { case skipped = 0, completed}
Parameter | Description |
|---|---|
| skipped | The user closed or skipped the ad before it finished. |
| completed | The ad played until the end. |
Protocols
UADSBannerAdDelegate
public protocol UADSBannerAdDelegate: NSObjectProtocol { func bannerImpression(_ banner: UADSBannerAd) func bannerDidClick(_ banner: UADSBannerAd) func bannerDidFailShow(_ banner: UADSBannerAd, error: UnityAdsError)}
Method | Description |
|---|---|
| Called when a banner ad is successfully displayed (impression recorded). |
| Called when the user clicks the banner ad. |
| Called if the banner fails to display, with an |
UADSInterstitialShowDelegate
public protocol UADSInterstitialShowDelegate: NSObjectProtocol { func showDidStart(_ unityAd: UADSInterstitialAd) func showDidClick(_ unityAd: UADSInterstitialAd) func showDidComplete(_ unityAd: UADSInterstitialAd, with state: UADSShowFinishState) func showDidFailed(_ unityAd: UADSInterstitialAd, error: UnityAdsError)}
Method | Description |
|---|---|
| Called when the interstitial ad starts showing. |
| Called when the interstitial ad is clicked. |
| Called when the ad finishes showing. Provides a |
| Called if the ad fails to show, with an |
UADSRewardedShowDelegate
public protocol UADSRewardedShowDelegate: NSObjectProtocol { func showDidStart(_ unityAd: UADSRewardedAd) func showDidClick(_ unityAd: UADSRewardedAd) func showDidComplete(_ unityAd: UADSRewardedAd, with state: UADSShowFinishState) func showDidFailed(_ unityAd: UADSRewardedAd, error: UnityAdsError) func showDidReceiveReward(_ unityAd: UADSRewardedAd)}
Method | Description |
|---|---|
| Called when the rewarded ad starts showing. |
| Called when the rewarded ad is clicked. |
| Called when the ad finishes showing. Provides a |
| Called if the ad fails to show, with an |
| Called when the user earns the reward from the ad. |
UnityAdsError
public protocol UnityAdsError { var code: Int { get } var message: String { get }}
Parameter | Description |
|---|---|
| code | A numeric error code that identifies the type of Unity Ads error. |
| message | An error message that provides additional details about the error. |
UADSBannerErrorCode
UADSBannerErrorCodeUnityAdsInitializationError
UnityAdsInitializationErrorUnityAdsLoadError
UnityAdsLoadErrorUnityAdsShowError
UnityAdsShowError