Language specification used for localization. |Language| must be formatted as
a canonicalized IETF BCP 47 language identifier such as would be returned by
[NSLocale preferredLanguages]. Setting this property after it has been sent
to the IMAAdsLoader will be ignored and a warning will be logged.
Specifies maximum number of redirects after which subsequent redirects will
be denied, and the ad load aborted. The number of redirects directly affects
latency and thus user experience. This applies to all VAST wrapper ads. If
the number of redirects exceeds |maxRedirects|, the ad request will fail with
error code 302. The default value is 4.
Specifies whether to update the MPNowPlayingInfoCenter content with the
title “Advertisement”. If disabled, MPNowPlayingInfoCenter is untouched.
The default value is NO.
Toggles debug mode which will output detailed log information to the console.
Debug mode should be disabled in Release and will display a watermark when
enabled. The default value is NO.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-20 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eIMASettings\u003c/code\u003e class manages SDK-wide settings for ad requests and playback behavior, including publisher identification (PPID), language localization, and redirect limits.\u003c/p\u003e\n"],["\u003cp\u003eIt allows customization of features like background playback, autoplay for ad breaks, Now Playing info updates, and debug mode for detailed logging.\u003c/p\u003e\n"],["\u003cp\u003ePartners can specify their player type and version for integration purposes, and manage user sessions through session IDs for frequency capping.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eIMASettings\u003c/code\u003e class provides options for controlling experimental features via feature flags and enabling/disabling the Same App Key for ad requests.\u003c/p\u003e\n"]]],[],null,["# GoogleInteractiveMediaAds Framework Reference\n\nIMASettings\n===========\n\n @interface IMASettings : NSObject \u003cNSCopying\u003e\n\nThe IMASettings class stores SDK wide settings.\n- `\n ``\n ``\n `\n\n ### [ppid](#/c:objc(cs)IMASettings(py)ppid)\n\n `\n ` \n Publisher Provided Identification (PPID) sent with ads request. \n\n #### Declaration\n\n Swift \n\n var ppid: String? { get set }\n\n Objective-C \n\n @property (nonatomic, copy, nullable) NSString *ppid;\n\n- `\n ``\n ``\n `\n\n ### [language](#/c:objc(cs)IMASettings(py)language)\n\n `\n ` \n Language specification used for localization. \\|Language\\| must be formatted as\n a canonicalized IETF BCP 47 language identifier such as would be returned by\n \\[NSLocale preferredLanguages\\]. Setting this property after it has been sent\n to the IMAAdsLoader will be ignored and a warning will be logged. \n\n #### Declaration\n\n Swift \n\n var language: String { get set }\n\n Objective-C \n\n @property (nonatomic, copy) NSString *_Nonnull language;\n\n- `\n ``\n ``\n `\n\n ### [maxRedirects](#/c:objc(cs)IMASettings(py)maxRedirects)\n\n `\n ` \n Specifies maximum number of redirects after which subsequent redirects will\n be denied, and the ad load aborted. The number of redirects directly affects\n latency and thus user experience. This applies to all VAST wrapper ads. If\n the number of redirects exceeds \\|maxRedirects\\|, the ad request will fail with\n error code 302. The default value is 4. \n\n #### Declaration\n\n Swift \n\n var maxRedirects: UInt { get set }\n\n Objective-C \n\n @property (nonatomic) NSUInteger maxRedirects;\n\n- `\n ``\n ``\n `\n\n ### [featureFlags](#/c:objc(cs)IMASettings(py)featureFlags)\n\n `\n ` \n Feature flags and their states. Used to control experimental features. \n\n #### Declaration\n\n Swift \n\n var featureFlags: [String : String] { get set }\n\n Objective-C \n\n @property (nonatomic, copy) NSDictionary\u003cNSString *, NSString *\u003e *_Nonnull featureFlags;\n\n- `\n ``\n ``\n `\n\n ### [enableBackgroundPlayback](#/c:objc(cs)IMASettings(py)enableBackgroundPlayback)\n\n `\n ` \n Enable background audio playback for the SDK. The default value is NO. \n\n #### Declaration\n\n Swift \n\n var enableBackgroundPlayback: Bool { get set }\n\n Objective-C \n\n @property (nonatomic) BOOL enableBackgroundPlayback;\n\n- `\n ``\n ``\n `\n\n ### [autoPlayAdBreaks](#/c:objc(cs)IMASettings(py)autoPlayAdBreaks)\n\n `\n ` \n Specifies whether to automatically play VMAP and ad rules ad breaks. The\n default value is YES. \n\n #### Declaration\n\n Swift \n\n var autoPlayAdBreaks: Bool { get set }\n\n Objective-C \n\n @property (nonatomic) BOOL autoPlayAdBreaks;\n\n- `\n ``\n ``\n `\n\n ### [disableNowPlayingInfo](#/c:objc(cs)IMASettings(py)disableNowPlayingInfo)\n\n `\n ` \n Specifies whether to update the MPNowPlayingInfoCenter content with the\n title \"Advertisement\". If disabled, MPNowPlayingInfoCenter is untouched.\n The default value is NO. \n\n #### Declaration\n\n Swift \n\n var disableNowPlayingInfo: Bool { get set }\n\n Objective-C \n\n @property (nonatomic) BOOL disableNowPlayingInfo;\n\n- `\n ``\n ``\n `\n\n ### [playerType](#/c:objc(cs)IMASettings(py)playerType)\n\n `\n ` \n The partner specified video player that is integrating with the SDK. \n\n #### Declaration\n\n Swift \n\n var playerType: String? { get set }\n\n Objective-C \n\n @property (nonatomic, copy, nullable) NSString *playerType;\n\n- `\n ``\n ``\n `\n\n ### [playerVersion](#/c:objc(cs)IMASettings(py)playerVersion)\n\n `\n ` \n The partner specified player version that is integrating with the SDK. \n\n #### Declaration\n\n Swift \n\n var playerVersion: String? { get set }\n\n Objective-C \n\n @property (nonatomic, copy, nullable) NSString *playerVersion;\n\n- `\n ``\n ``\n `\n\n ### [sessionID](#/c:objc(cs)IMASettings(py)sessionID)\n\n `\n ` \n The session ID to identify a single user session. This should be a UUID. It\n is used exclusively for frequency capping across the user session. \n\n #### Declaration\n\n Swift \n\n var sessionID: String? { get set }\n\n Objective-C \n\n @property (nonatomic, copy, nullable) NSString *sessionID;\n\n- `\n ``\n ``\n `\n\n ### [sameAppKeyEnabled](#/c:objc(cs)IMASettings(py)sameAppKeyEnabled)\n\n `\n ` \n Controls whether Same App Key is enabled. The value set persists across app sessions. The key is\n enabled by default. \n\n #### Declaration\n\n Swift \n\n var sameAppKeyEnabled: Bool { get set }\n\n Objective-C \n\n @property (nonatomic) BOOL sameAppKeyEnabled;\n\n- `\n ``\n ``\n `\n\n ### [enableDebugMode](#/c:objc(cs)IMASettings(py)enableDebugMode)\n\n `\n ` \n Toggles debug mode which will output detailed log information to the console.\n Debug mode should be disabled in Release and will display a watermark when\n enabled. The default value is NO. \n\n #### Declaration\n\n Swift \n\n var enableDebugMode: Bool { get set }\n\n Objective-C \n\n @property (nonatomic) BOOL enableDebugMode;"]]