#import #import /// SDK version string, of a form "major.minor.patch". extern NSString *_Nonnull const UMPVersionString; /// Consent status values. typedef NS_ENUM(NSInteger, UMPConsentStatus) { UMPConsentStatusUnknown = 0, ///< Unknown consent status. UMPConsentStatusRequired = 1, ///< User consent required but not yet obtained. UMPConsentStatusNotRequired = 2, ///< Consent not required. UMPConsentStatusObtained = 3, ///< User consent obtained, personalized vs non-personalized undefined. }; /// State values for whether the user has a consent form available to them. To check whether form /// status has changed, an update can be requested through /// requestConsentInfoUpdateWithParameters:completionHandler. typedef NS_ENUM(NSInteger, UMPFormStatus) { /// Whether a consent form is available is unknown. An update should be requested using /// requestConsentInfoUpdateWithParameters:completionHandler. UMPFormStatusUnknown = 0, /// Consent forms are available and can be loaded using [UMPConsentForm /// loadWithCompletionHandler:] UMPFormStatusAvailable = 1, /// Consent forms are unavailable. Showing a consent form is not required. UMPFormStatusUnavailable = 2, }; /// State values for whether the user needs to be provided a way to modify their privacy options. typedef NS_ENUM(NSInteger, UMPPrivacyOptionsRequirementStatus) { /// Requirement unknown. UMPPrivacyOptionsRequirementStatusUnknown = 0, /// A way must be provided for the user to modify their privacy options. UMPPrivacyOptionsRequirementStatusRequired = 1, /// User does not need to modify their privacy options. Either consent is not required, or the /// consent type does not require modification. UMPPrivacyOptionsRequirementStatusNotRequired = 2, }; /// Called when the consent info request completes. Error is nil on success, and non-nil if the /// update failed. typedef void (^UMPConsentInformationUpdateCompletionHandler)(NSError *_Nullable error); /// Consent information. All methods must be called on the main thread. @interface UMPConsentInformation : NSObject /// The shared consent information instance. @property(class, nonatomic, readonly, nonnull) UMPConsentInformation *sharedInstance; /// The user's consent status. This value defaults to UMPConsentStatusUnknown until /// requestConsentInfoUpdateWithParameters:completionHandler: is called, and defaults to the /// previous session's value until |completionHandler| from /// requestConsentInfoUpdateWithParameters:completionHandler: is called. @property(nonatomic, readonly) UMPConsentStatus consentStatus; /// Indicates whether the app has completed the necessary steps for gathering updated user consent. /// Returns NO until requestConsentInfoUpdateWithParameters:completionHandler: is called. Returns /// YES once requestConsentInfoUpdateWithParameters:completionHandler: is called and when /// consentStatus is UMPConsentStatusNotRequired or UMPConsentStatusObtained. @property(nonatomic, readonly) BOOL canRequestAds; /// Consent form status. This value defaults to UMPFormStatusUnknown and requires a call to /// requestConsentInfoUpdateWithParameters:completionHandler: to update. @property(nonatomic, readonly) UMPFormStatus formStatus; /// Privacy options requirement status. This value defaults to /// UMPPrivacyOptionsRequirementStatusUnknown until /// requestConsentInfoUpdateWithParameters:completionHandler: is called, and defaults to the /// previous session's value until |completionHandler| from /// requestConsentInfoUpdateWithParameters:completionHandler: is called. @property(nonatomic, readonly) UMPPrivacyOptionsRequirementStatus privacyOptionsRequirementStatus; /// Requests consent information update. Must be called in every app session before checking the /// user's consentStatus or loading a consent form. After calling this method, consentStatus will be /// updated synchronously to hold the consent state from the previous app session, if one exists. /// consentStatus may be updated again immediately before the completion handler is called. - (void)requestConsentInfoUpdateWithParameters:(nullable UMPRequestParameters *)parameters completionHandler: (nonnull UMPConsentInformationUpdateCompletionHandler)handler; /// Clears all consent state from persistent storage. - (void)reset; @end