Versions
Last updated
Last updated
Features:
Update accessibility description for Preferences screens.
When a vendor is not associated with legitimate interest purposes but has special purposes, always include it in IAB TCF Consent String legitimate interest vendors section (IAB TCF update).
Additional focus customization option for tvOS.
Trigger SyncReady
event even when Cross-Device
feature is disabled.
Fixes:
HMTL lists were not displayed properly on iOS 18.x.
Fix didomi logo position from the bottom bar for devices without notch.
Fixes:
Replace checkboxes with switches for legitimate interest-based purposes on tvOS.
Features:
Add new features to CurrentUserStatus
returned by :
gppString
field (beta).
Utility method shouldUserStatusBeCollected()
.
Modify the layout of the bottom bar buttons on the Preferences screen.
Handle configuration parameter preferences.enableAllButtons
.
Features
Update GPP library version (beta).
Fixes:
Cross-device: Make sure remote consent expiration is checked before applying consent synchronization.
Features:
Fixes:
Scale custom logo loaded from URL with the screen density.
Ignore new line characters (\n
) around HTML line breaks (<br>
) in custom texts from the Notice and Preferences screens.
Features:
Fixes:
Optimize performance when updating the consent from the cross-device response.
Improved accessibility of the vendors screen in order to allow the user to access the details of a vendor when using a physical keyboard.
Features:
Add US regulation support for Utah: ucpa
.
Features:
Accessibility: Increase contrast in toggle buttons icons.
Stop displaying Sensitive Personal Information in a separate screen.
Fixes:
Add missing icon to indicate that the "Our Privacy Policy" link targets a page outside of the application.
Fixes:
Optimize the way in which the user choices are stored in UserDefaults to prevent crashes on tvOS.
Allow Legitimate Interest purposes and vendors to be enabled by default on tvOS.
In some cases when navigating using VoiceOver, buttons were not being enabled properly when scrolling the content of the notice.
IAB TCF tag was not part of the vendor element when navigating with VoiceOver enabled.
Features:
Update translations and embedded GVL version.
Fixes:
Apply improvements regarding thread safety.
Features:
Fixes:
Features:
Update translations and embedded GVL version.
Fixes:
Update translations and embedded GVL versions.
Fixes:
Handle purposes bulk action state when using First Party Vendors.
Remove unneeded field from Storage Disclosure
screen.
Features:
Support Serbian latin language script.
Rename IDPL
regulation to ICDPA
.
Fixes:
Trigger onError
callback when there's no Internet connection.
Add improvements around recollection.
Make sure sticky buttons behave correctly when scrolling the content of the notice.
Features:
Implement First Party Vendors support.
Support Publisher TC segment from the Consent String.
Fixes:
Merge duplicated Vendors declared from different sources (IAB, Didomi, Custom).
Features:
Add support for TCF v2.2 amendments (implement new Storage Disclosure
button and screen).
Fixes:
Applied various improvements to increase thread safety and improve memory management.
Features:
Add support for new regulations: dpdpa
, fdbr
, idpl
, mcdpa
, nhpa
, njdpa
, ocpa
and tdpsa
.
Set a minimum frequency for user synchronization process.
Only rely on SDK configuration obtained from Didomi to determine the user regulation
Mark obsolete methods as Deprecated
:
isConsentRequired
isUserConsentStatusPartial
isUserLegitimateInterestStatusPartial
getUserStatus
Fixes:
Allow the use of GVL v3 even if TCF is disabled in the SDK configuration.
Make sure purpose and vendor toggles behave properly when bulk action is activated on Mac Catalyst.
Make sure a fallback is provided in case a translation is missing for an IAB element.
Features:
Updated logic around setting the vendors' status based on purposes' status.
Fixes:
Disable sticky header for Sensitive Personal Information screen.
Multiple UI improvements when font scaling is enabled from the device accessibility settings.
Features:
Display an icon indicating when a link targets a page outside of the application.
Fixes:
Make sure onSyncReady
event is triggered each time the consent synchronization process occurs.
On tvOS, adapt the font size of notice text when required to make sure it is fully displayed.
On tvOS, distribute the notice buttons proportionally in order to display long privacy policy button.
On tvOS, enable scrolling when displaying purposes list from a category.
Features:
Add field isIAB
in Vendor
object to indicate if vendor is from the IAB Global Vendor List
Features:
Add new parameters to DidomiInitializeParameters
to override the user location determined by the SDK when getting the notice configuration:
countryCode
: Force the user country used to get the notice configuration.
regionCode
: Force the user region used to get the notice configuration.
Deprecate SyncDone
event.
Features:
Make sure that vendors removed from the GVL are not present in the notice or in the IAB Consent String when the IAB TCF framework is enabled.
Increase contrast for secondary texts to improve readability.
Fixes:
Do not display button to open Sensitive Personal Information screen, if there is no valid SPI purpose to display.
Features:
Sign XCFramework bundle based on latest requirements from Apple.
Deprecate CCPA regulation.
Set values for IABTCF_CmpSdkID
, IABTCF_CmpSdkVersion
, IABTCF_PolicyVersion
and IABTCF_gdprApplies
even when GDPR does not apply.
Features:
Added Apple Privacy Manifest file.
Display Purpose Categories for Apple TV.
Fixes:
Update the getCurrentUserStatus
method so it marks as enabled those purposes that are enabled by default on the UI when the regulation applied is opt-out or mixed (e.g.: CPRA) and the user hasn’t expressed any choices yet.
Features:
Fixes:
Expose the following methods to Objective-C: getVendor
, getPurpose
, getRequiredVendors
and getRequiredPurposes
.
Sort Device Storage Disclosure list by identifier
and type
in order to prevent random order from the Vendor details screen.
Fixes:
Make sure IAB Google Vendor details screen displays TCF 2.2 data such as localized Privacy Policy link, Data Declaration and Data Retention.
Major update of the SDK
This release will contain some breaking changes, described below.
Migration steps:
Update Didomi SDK to version 1.99.0
if it is not already the case.
Replace any deprecated usages that might appear with the alternatives suggested by Xcode. If Xcode does not suggest any updates, it means no deprecated methods are being used.
Update Didomi SDK to version 2.0.0
.
The Purpose
class returned by getPurpose
and getRequiredPurposes
, and the Vendor
class returned by getVendor
and getRequiredVendors
were modified. If you encounter an issue with these changes (such as a removed field), please reach out to support@didomi.io.
Important notes:
Vendor.id
is now the ID provided by Didomi, without prefix
Purpose.description
is not related to Didomi anymore, as it is a reserved iOS field. The correct field to use is Purpose.descriptionText
Features:
Set the minimum supported version to iOS 10
.
Remove deprecated functions below: Deprecated as of v1.60.2
getDisabledPurposeIds
getDisabledPurposes
getDisabledVendorIds
getDisabledVendors
getEnabledPurposeIds
getEnabledPurposes
getEnabledVendorIds
getEnabledVendors
initialize
(without DidomiInitializeParameters
)
Deprecated as of v1.58.0
setUser
(with authentication parameters instead of UserAuthParams
)
Deprecated as of v1.56.0
getUserConsentStatusForPurpose
getUserConsentStatusForVendor
getUserConsentStatusForVendorAndRequiredPurposes
getUserLegitimateInterestStatusForPurpose
getUserLegitimateInterestStatusForVendor
getUserLegitimateInterestStatusForVendorAndRequiredPurposes
getUserStatusForVendor
Update Didomi brand logo for AppleTV notices.
Modified Purpose
class returned by methods getPurpose
and getRequiredPurposes
. See details below:
id
(String) the Purpose ID.
name
(String) the Purpose name.
descriptionText
(String) the Purpose description. This property replaces the previous description
property.
Removed properties:
iabId
(String?)
descriptionLegal
(String?)
Modified Vendor
class returned by methods getVendor
and getRequiredVendors
. See details below:
id
(String) the Vendor ID provided by Didomi without any prefix.
name
(String) the Vendor name.
namespaces
(Namespaces?) the Namespaces of the vendor (IAB, num) and their corresponding ids.
policyUrl
(String) the privacy policy URL (replace privacyPolicyUrl
).
purposeIDs
(Set<String>) the Purpose list with legal basis "consent".
legIntPurposeIDs
(Set<String>) the Purpose list with legal basis "legitimate interest".
featureIDs
(Set<String>) the ID list that represent features.
flexiblePurposeIDs
(Set<String>) the ID list that represent flexible purposes.
specialFeatureIDs
(Set<String>) the ID list that represent Special Features.
specialPurposeIDs
(Set<String>) the ID list that represent Special Purposes.
urls
([Url]?) the localized Privacy policy and LI disclaimer urls introduced in TCF v2.2.
Removed properties:
namespace
(String?)
iabID
(String?)
Fixes:
Make sure IAB Consent String is not stored on the device when no regulation applies.
Filter vendors not having any purposes.
Features:
Hide Sensitive Personal Information
button from the Notice and Preferences screens if there is no such purpose to display.
Ensure that regulation NONE
will behave as expected (no consent required, notice and preferences screens can't be displayed and all vendors and purposes are enabled).
Fixes:
Prevent logo to be scaled up from the Notice screen.
Features:
Use default country code then default language when custom translations are missing for selected language.
Fixes:
Fix typo in TCF 2.2 notice for Spanish translation.
Features:
Update Didomi brand logo for preferences screens.
Fixes:
Serbian translation was containing some Latin labels instead of Cyrillic.
Features:
Set TCF version 2.2 as default version (current TCF 2.1 notices will be treated as TCF 2.2 notices).
Fixes:
Fix vendors’ privacy policy link.
Fix margins on Device Storage details screen.
Fix to ignore purposes and special features coming from Custom Vendors when creating the TCF Consent String.
Fixes:
Update Notice logo constraints. Maximum height is now set to 150px
(instead of 50px
).
Publisher restrictions now applies to Facebook
vendor.
Fix Polish translation for Partners count label on Notice screen.
Features:
Add support for new language regions: Arabic (Jordan), Dutch (Belgium), English (New Zealand), English (United Kingdom), French (Belgium), French (Canada), German (Austria), German (Switzerland).
Handle Regulation field (user.regs
) in synchronization requests and API events.
Specify "non-IAB partners" instead of just "partners" when presenting count of partners associated to a purpose.
Update list of purposes associated to Facebook vendor.
Handle notice.enableBulkActionOnPurpose
config parameter, to allow to hide the enable / disable all purposes
switch on preferences screen.
Fixes:
In some configs, color of the Refuse all
button on preferences screen was not correct.
Features:
Fixes:
Support IAB purpose 11 from TCF 2.2
Fixes:
Handle translation of TCF v2.2 purposes and GVL 3 even when there is no internet connection.
Features:
Full TCF v2.2 support for tvOS.
Change label of "View our partners" notice button to "Manage our partners" .
Fixes:
Improve loading time to display the list of vendors associated to a purpose.
Features:
TCF v2.2 support.
Revert the design and label of the partners button displayed on the notice (underlined / "View our partners").
Remove support of notice.content.viewOurPartners
configuration parameter from AppleTV Notice (the same default label as mobile will be used).
Fixes:
Fix popup
notice's height taking too much space.
Fix onHideNotice
event not triggered when Didomi notice is not enabled.
Features:
Better layouts (fonts, margins, etc...) for Additional Data Processing
, Purposes
and Vendors
detail screens.
Fixes:
Add missing IAB tag on Vendor
detail screen.
Manage empty privacy policy url from Custom Vendor
detail screen.
Fix onShowNotice
event not triggered when Didomi notice is not enabled.
Fix the bottom button bar from Preferences screens on iPad not using the expected width when only the Save
button is displayed.
Fix the Device Storage section description displayed in a single line on tvOS (from the Partner detail screen).
Features:
Change the "Learn More" link into button.
Fixes:
The Vendor button from the Notice will use the theme.color
parameter if no highlighted button theme is defined.
tvOS Vendor bulk action was displaying IAB tag after changing its status.
tvOS wasn't reverting Purpose and Vendor consent when closing and bringing back the Preferences without saving (UI issue only - consent was always accurate).
Features:
In notice, modify design of "Manage our partners" and "Learn more" links
In vendor details screen, move links to IAB and privacy policy outside of privacy policy disclaimer (improves accessibility)
Mark disableDidomiRemoteConfig
initialization parameter as deprecated.
Fixes:
GDPR was not correctly applied for additional countries set in console.
Fixes:
Handle 3-digit color codes and alpha component position
Improve handling of indented html lists in notice and preferences texts
Features:
Display message on Sensitive Personal Information screen when no Personal Data is present.
Display IAB TCF tag for IAB Vendors on tvOS vendors list.
Prevent warnings when using Swift 6.
Fixes:
Handle special features linked to custom vendors.
Better handle html line breaks in notice text.
Features:
Enable CPRA
regulation support.
Create new Sensitive Personal Information
screens.
Update Additional Data Processing
list from Purpose
screen in order to improve accessibility.
Replace a deprecated method used when encoding the consent string
Fixes:
Notch detection was not accurate for iPhone 14
Features:
Add a link to privacyPolicyURL
on preferences (Purpose) screen when the link is not present in text description.
Remove link to privacyPolicyURL
in embedded default preferences (Purpose) screen description.
Accessibility improvements for buttons in Notice screen.
Fixes:
Fix Purpose labels not using the same language as the rest of the Preferences screen when the language is set during the initialization.
Allow multiline buttons from the preferences screens footer.
Trigger warning log when clearUser()
is called before SDK initialization.
Remove extra bottom margin for Purpose list Description for iOS 13.0.
Features:
On preferences screen, display Agree to all / Disagree to all buttons only if regulation is GDPR.
Fixes:
When notice was not enabled from configuration, default notice was briefly displayed before the preferences screen.
Fix layout issues after device orientation changes.
Fixes:
Fix line break from Notice description, Purpose header description and Vendor header description.
Revert public methods getNoticeViewController()
and getPreferencesViewController()
.
Features:
Accessibility improvements in purposes and vendors screens.
Call onError
callback when invalid API key is submitted to Didomi.initialize
.
Fixes:
Incorrect rendering of <ul><li>
tags in preferences description.
Theme was not applied to purposes screen header.
Modify some constraints to remove warning logs.
Invalid consent string when publisher restrictions were duplicated.
Features:
Accessibility improvements in:
Partners button on main notice.
Purposes screen.
Purpose details buttons.
Vendors screen.
Vendor details buttons.
New User Information button from the Vendor screen.
Fixes:
Prevent Required Purpose detail screen to display the footer from the Purpose screen.
Features:
Accessibility improvements on Notice screen
Accessibility improvements on Purposes screen
Fixes:
When opening Partners screen from Notice, Purposes screen was briefly displayed just before
Some large title could overlap the Close button in Preferences screens (Purposes and Vendors)
Features:
Features:
Remove TCF v1 support.
Supporting url and resource name from logoUrl
configuration parameter.
Fixes:
Fix transparent background for fullscreen notices on older iOS version (below 14.0).
Features:
Optimize display of Purpose legal description.
Fixes:
Fix transparent Notice background for older iOS version (below 14.0).
Fix some text colors for darker background color.
Fix missing device disclosure url for some Vendors.
Features:
Disable location query from device GPS when the location permissions are granted (we now rely only on our API to get the user location and to provide the matching regulation).
Fixes:
Update link to IAB TCF v2 from the vendor detail page.
Features:
Add support for
Features:
Improve how texts scale based on the device settings.
Improved accessibility on buttons displayed on the notice.
Fixes:
Consent asked events was using all required purposes as both consent and legitimate interest.
Features:
Improve accessibility of close buttons and headings on Preferences screens.
Fixes:
Reduce tvOS SDK size by removing unnecessary classes.
Features:
Simplify Vendors button from Purpose list page.
Handle device storage disclosure as link (instead of json) from IAB vendor list.
Improve accessibility of Preferences screen.
Features:
Query purposes for current language in order to always provide up-to-date translations.
Add new events for language change (see Events for more details).
Fixes:
Disable neutral state when controlled value is legitimate interest.
setUserAgreeToAll
and setUserDisagreeToAll
methods were not thread safe which could have caused crashes if called concurrently from multiple threads.
Features:
Hide bulk action in purposes and vendors screens when there is only one item in the list.
Allow to call reset()
method while SDK is not initialized.
Features:
Bug fixes:
Improve device storage disclosure screens transitions
Features:
Bug fixes:
Fix wrong background for Vendors detail screens.
Features:
Update design for tablets.
Improve accessibility for Vendor detail and Purpose detail screen.
Add new languages support (Norwegian, Brazilian, Azerbaijani, Bengali, Filipino/Tagalog, Hebrew, Hindi, Indonesian, Macedonian, Swahili).
Bug fixes:
Disable neutral state for legitimate interest from the Vendor detail screen.
Improve accessibility of preferences screen and purpose and vendor details screens
Features:
tvOS: Display Disagree
button on TV notice only when it is requested in configuration.
Support removeEventListener
method.
Bug fixes:
Italic HTML tags not taken into account for notice and preferences text.
Fix "seconds" translation in device storage disclosure description in some languages.
Bug fixes:
Purpose Categories with custom icons have wrong alignment.
Purposes screen margin issue for iOS 15.4.
Wrong focus on tvOS Vendor Details screen after back navigation.
Some HTML tags not taken into account for Preferences (Purposes) text.
Features:
Improve accessibility of User Information screen
Add support for setUser method with authentication on Objective-C
Bug fixes:
In some configurations, the IAB TCF Consent String was storing publisher restrictions with too many vendors.
Features:
Improve accessibility for purposes and partners screens.
Bug fixes:
Ignore invalid Vendor IDs from Publisher Restrictions instead of invalidating the complete list.
Features:
Minor accessibility improvements on the Vendors screen.
Bug fixes:
A few API Events were not being sent on the tvOS SDK.
Features:
Bug fixes:
Long vendor names were being cut off.
Vendors were enabled after setting the switch to the neutral position and saving.
Features:
Improve accessibility for the notice and purposes screens
Bug fixes:
Button state in the purpose details screen was always disabled when purpose required LI only.
The status of some switches was not behaving properly on tvOS when the save button was pressed without making changes.
Focus was not working properly on tvOS 15 after selecting a vendor or purpose.
Features:
Update fallback data for IAB TCF global vendors list.
Features:
Implemented onShowPreferences
and onHidePreferences
events. These events are triggered when the preferences screens are opened and closed respectively.
Bug fixes:
preferences.content.save
custom text was not being used in the Vendors screen.
Bug fixes:
The XCFramework was not including dSYM
nor BCSymbolMap
files.
Features:
Added Legitimate Interest in TCF Consent String by default once the notice has been shown.
Features:
Handle deny option as a cross in notice.
Bug fixes:
Vendors with no consent or LI purposes were still in the UserStatus global disabled list after calling setUserAgreeToAll.
Features:
Apply publisher restrictions with "allow" type to non-IAB vendors as well.
Fixes:
Vendors with no associated consent or legitimate interest purpose are now always returned in UserStatus.vendors.global.enabled
list.
Features:
Display non-TCF purposes in disclosures
Add salesforce vendor to global configuration
Add a parameter to determine if user consent choice was set from Didomi UI or from a call to Didomi.setUserStatus
.
Bug fixes:
Hide blank device storage disclosure fields
Fix an issue for device storage disclosures when no cookie info is available
Features:
Change the default focus on CTV notice according to CNIL guidelines.
Bug fixes:
Removed unused Xcode 11 code.
Bug fixes:
French translation for required
was wrong.
getUserStatus().vendors.global
was not returning the right value.
Features:
Added new getUserStatus method.
Bug fixes:
Fixed purpose details button theme.
Ensure configuration is only loaded from Didomi on CTV SDK.
Bug fixes:
No event was being triggered when the user switched the toggles in the vendor or purpose details views.
Features:
Added getQueryStringForWebView
method.
Migrated framework to Swift 5.0.
Bug fixes:
getUserLegitimateInterestStatusForPurpose
and getUserLegitimateInterestStatusForVendor
: return .enabled
when status is not set (align status with Android).
Dismiss preferences sub-screens before dismissing preferences screen.
Features:
Applied optimizations around the parsing of vendors information that should reduce the initialization time.
Bug fixes:
Hide notice event was not being triggered when user gave/denied consent from the notice.
Bug fixes:
Manage languages with specific script code from device
Handle vendor with no consent or LI in getUserStatusForVendor
Features:
Add missing methods:
getUserLegitimateInterestStatusForPurpose
getUserLegitimateInterestStatusForVendor
getUserLegitimateInterestStatusForVendorAndRequiredPurposes
getUserStatusForVendor
Features:
Improved header's layout and made bulk action sticky on the Vendors view.
Handle setUserStatus with detailed purposes and vendors ids
Send dedicated CTV source type to the privacy center on sync request
Bug fixes:
Fix setUserConsentStatus result
Bug fixes:
Legitimate interest purposes were not staying as enabled when the user taps on Disagree to all
in the Preferences view on tvOS.
SDK was getting into a weird state when the IAB Config file was being removed by the OS.
Vendors Bulk Action didn't have the right state if there is vendors without consent
Features:
Added support for app.deploymentId
.
Bug Fixes:
Preferences screen title was ignoring text from preferences property.
SDK was getting into a weird state when cache directory was being removed by the OS.
This version requires Xcode 12.
Features:
Added support for tvOS.
Please note that this release replaces the IDFA provided by AdSupport for a random custom identifier.
Features:
Allow users to see and copy their information (Consent Token, User Id and SDK version)
Remove usage of IDFA
.
Added support for Denied Consent Duration (app.deniedConsentDuration
)
Bug fixes:
The Learn more
button was in the wrong position in the notice view.
Some HTML tags were being ignored in the notice view.
Features:
Added support for purpose categories.
Added support to sync user choices across devices.
Added a global toggle in the purposes screen that allows to toggle all purposes at once.
Bug fixes:
getUserConsentStatusForVendorAndRequiredPurposes
was returning false
when a vendor had only essential/required purposes.
Features:
Updated the behaviour of the Disagree to all
buttons in the preferences screen to align with other platforms.
Added support for the denyAppliesToLI
feature in notice and preferences screen.
Features:
Added support for specifying consent expiration.
Bug fixes:
Size of consent notice was wrong when displayed a second time.
There was an error in the API Events' sampling calculation.
Features:
Added support to include Publisher Country Code into Consent String.
Bug fixes:
UI event were being triggered before consent was saved.
Features:
Added ability to display "Disagree & Close" button on the notice (notice.type = "optin"
).
Added ability to display "Disagree & Close" button as primary (notice.denyAsPrimary = true
).
Added ability to display "Continue without agreeing" link on the notice (notice.denyAsLink = true
).
Added some UI updates on the notices.
Added new method to set user status for all purposes and vendors setUserStatus(purposesConsentStatus: Bool, purposesLIStatus: Bool, vendorsConsentStatus: Bool, vendorsLIStatus: Bool)
Features:
Indicate platform and SDK version when downloading notice configuration.
Added support for TCF v2.1.
Send TCF and Additional Consent information in API events.
Bug fixes:
In some cases consent was not being properly kept after an update of the GVL.
A translation in Croatian was not being displayed properly.
Features:
Added Device storage section in the vendor details view.
Updated some texts from vendors and purposes.
Bug fixes:
Custom initializer hexString:alpha:
was being publicly exposed through an extension of the UIColor
class which was causing conflicts for some clients that had the same implementation.
Features:
Essential/Required purposes section in the detailed view for each vendor.
Download the GVL (Global Vendor List).
Optimizations around Publisher Restrictions.
Fixes:
Long purpose names were being cut-off.
Features:
Detailed additional data processing information
Added onError
method.
Features:
GVL update
Remove TCFv1 storage keys when TCFv2 is enabled
Improved responsiveness when saving consent
Bug fixes:
Ensure that the legitimate interest status is correctly passed to Webviews in getJavaScriptForWebView
Features:
Support for Publisher Restrictions.
Bug fixes:
Fixed ratio issue with logo on popup notice.
Features:
Updated initialization process to stop requesting location when gdprAppliesGlobally
is set to true
.
Bug fixes:
App logo was not being displayed on the popup notice.
Detailed view of essential purposes contained toggles.
Features:
When user.ignoreConsentBefore
is set and if consent was collected from the user at a date earlier than user.ignoreConsentBefore, show the consent notice to recollect consent (irrespective of the consent status of the user).
Improved the UI of the popup notice to force users to see all the content of the view before selecting any action.
Bug fixes:
Close button was not very responsive on the purposes view.
Features:
Collect and send organization user ID in API events.
Bug fixes:
Vendors button was not responsive when text on popup notice was long enough to require scroll.
Features:
Disable TCF if it is disabled from the Console or if config file does not come from Didomi.
Features:
Updated IAB vendors list to 52.
Bug fixes:
Save button on purposes list view didn't have the right state when selections of Consent and Legitimate interest were opposite.
Features:
Added support for Google as a TCF vendor.
Bug fixes:
getUserConsentStatusForVendorAndRequiredPurposes
was not returning the right status for google
and other custom vendors.
Features:
Added Show our vendors
button to the notice which allows users to navigate directly to the Vendors list view.
Added Additional Data Processing
section on Purposes list and Vendor Details views.
Features:
Ensure that consent is recollected when switching TCF version
Bug fixes:
Ensure switch state is accurate on the list of vendors
Features:
Better support for dark mode in purpose and vendor detailed views
IAB TCF label on TCF vendors in the list of vendors
Notice configuration by ID
Bug fixes:
Minor fixes regarding TCFv2.
Fixed broken custom text on the Vendors view.
Features:
showPreferences
allows selecting which view should open (purposes or vendors)
Features:
IAB TCF v2 initial support
Features:
Use os_log
for logging on iOS 10+.
Allow setting minimum log level via setLogLevel
.
Changed the way Purpose details are displayed from expanding a cell to displaying a new view.
Bug fixes:
Banner notice was displaying the rounded top border without transparency.
Features:
Added support for XCFramework
which means there is no need to use a different Pod (or binary) for newer versions of Xcode (since Xcode >= 11). Using this Pod/binary should be enough: Didomi-XCFramework
.
Features:
Updated Global Vendor List to version 192.
Improved the way in which optionals are handled.
Bug fixes:
Calling the setupUI
method multiple times could have resulted in crashes.
UI constraints were breaking in some cases when views were displayed behind an interstitial ad.
Fixed a race condition when triggering API events which could have resulted in crashes.
Bug fixes:
UI improvements around the scroll bar and the scrolling animation on the Purposes screen when items are expanded/collapsed.
Features:
Added Didomi.notice.hide();
to the JavaScript code that gets returned by method getJavaScriptForWebView
. This means that the notice view on the web app that's loaded on the native app will be hidden automatically when injecting the JavaScript code returned by this method.
Features:
Added Xcode 11.3 support.
Features:
Created new method updateSelectedLanguage
method that allows app developers to change the language of the Didomi SDK.
Added the ability to pass a language code when calling the initialize
method. This language code will be used to set the selected language.
Existing apps using this implementation of the initialize
method in Objective-C:Didomi *didomi = [Didomi shared];
[didomi initializeWithApiKey:@"<Your API key>" localConfigurationPath:nil remoteConfigurationURL:nil providerId:nil disableDidomiRemoteConfig:NO];
will have to add the languageCode
parameter and set it to nil unless they want to set a language code:
Didomi *didomi = [Didomi shared];
[didomi initializeWithApiKey:@"<Your API key>" localConfigurationPath:nil remoteConfigurationURL:nil providerId:nil disableDidomiRemoteConfig:NO languageCode:nil];
Bugs:
The save
button in the purposes view was not being enabled property in some cases when the user had previously saved their preferences using an old list of purposes.
Features:
Added support for Xcode 11.2.
Updated the way API events are sampled to be based on user ID rather than on a random number.
Features:
Introduced ui.action
type for events sent to the API for tracking the interactions of the user with the consent UI. Actions added: preferences.shownpurposes
, preferences.shownvendors
, preferences.purposechanged
and preferences.vendorchanged
.
Bug fixes:
The IABConsent_SubjectToGDPR
key was not being set properly in the user defaults.
Bug fixes:
UI issue with the purpose switches keeping a stale state when the user toggled the switch and expanded the purpose description right after.
Features:
Added support for Xcode 11 and bitcode.
Bug fixes:
Build was being created using the Debug configuration.
Some views were not displaying correctly on iOS 13 when dark mode was enabled.
In some cases getting the device location could cause a long delay.
Objective-C projects were not compiling correctly under certain configurations.
Objective-C projects were not compiling correctly when running on simulator on Xcode 10.2 and 10.3.
Features:
Improved internal implementation of the SDK to ease the creation of custom views.
Bug fixes:
Some mapping keys related to the getText and getTranslatedText methods were not matching the JSON properties of the preferences and notice properties.
Features:
Updated IAB vendors list to 155.
Added the ability to provide translatable texts through the texts
property in the didomi_config.json
file that can be used when creating a custom notice.
Features:
Added the ability to block/disable the Agree to all
and Disable to all
buttons by providing the preferences.disableButtonsUntilScroll
flag and setting it to true
.
Bug fixes:
Event HideNoticeEvent
was not triggered as required in some cases.
Bug fixes:
The Console generates custom purpose IDs within [A-Za-z0-9-_]
and SDKs only allowed [a-z0-9-_]
Features:
Added logs to indicate app developers when methods that require the Didomi SDK to be ready are called before that.
Features:
Update IAB vendors list (version 146)
Features:
Features:
Add the possibility to get the configuration remotely from the Didomi console
Features:
Added pod Didomi-xcode10.2
which supports Xcode 10.2.
Bug fixes:
Exposed missing properties of Purpose
and Vendor
classes.
Features:
Features:
Exposed the following methods: getRequiredPurposes
, getRequiredVendors
, getEnabledPurposes
, getEnabledPurposeIds
, getDisabledPurposes
, getDisabledPurposeIds
, getEnabledVendors
, getEnabledVendorIds
, getDisabledVendors
, getDisabledVendorIds
, getPurpose
and getVendor
.
Add Russian and Ukrainian languages
Bug fixes:
Preferences popup was being displayed on each visit when notice.enable
was set to false
and preferences.showWhenConsentIsMissing
to true
.
Features:
Updated master config file adding countries, translations, purposes and partners.
Exposing shouldConsentBeCollected
method used to allow developers to check if consent should be collected or not.
Bug fixes:
Items on Purposes and Vendors list were not expanding when clicking right on the expand arrow.
SDK had to wait for the country code to get initialised which in some cases could result in the app having to wait for it before starting.
Fix translation for "View privacy policy" on the Vendors view
Bug fixes:
Purposes description was not being displayed on iPad running iOS 9.3.
Fixed strong reference cycles.
Breaking change
This release modifies how we treat the ID of your custom vendors. If you are getting the user consent status with an API function like getUserConsentStatusForVendorAndRequiredPurposes("vendor-id")
, you need to update your code to prefix the vendor ID with c:
. Your function call now becomes: getUserConsentStatusForVendorAndRequiredPurposes("c:vendor-id")
.
This change will also trigger consent re-collection for your users.
Features:
Details about purposes and vendors by expanding the list items.
Purposes are listed under each vendor item on the Vendors screen when they are expanded.
Remove "Number of Partners" on the Preferences view.
Update content translations.
Bug fixes:
The "Disagree to all" button did not use the same text and background color as the "Agree to all" button.
Inline style of HTML content was being overridden on the Preferences pop-in.
The "Save" button was present but disabled even though all purposes were set to unknown.
Purposes were not being properly updated when categories were being used.
The "c:" prefix was missing from custom vendors IDs. Important: this could be a breaking change since on the previous version the "c:" prefix was not required before each custom vendor ID.
Purposes were not sorted properly on the vendors and purposes views.
Supports the 24 European languages
Number of days before recollecting consent option in the configuration tag
Updates on helpers to ease testability
Features:
Added the ability to load a remote configuration file so app developers can customize how the SDK is displayed to users
Bug fixes:
Fixed potential issue around macros and the way they get replaced in the content
Bug fixes:
Fixed logic around showPreferences
and forceShowNotice
methods so app does not crash after consent has been given
Fixed the way notices display long content by enabling scroll when required
Correctly load purposes and vendors statuses in the Preferences popup after consent has been given
Show the Save button when the Preferences popup is open after consent has been given
Features:
Custom purposes
Map custom vendor to IAB ID
Expose getUserConsentStatusForPurpose
and getUserConsentStatusForVendorAndRequiredPurposes
in the public API
Ability to customize texts in the preferences popup
Bug fixes:
Minor UI fixes.
Updated default notice text.
Bug fixes:
Minor UI fixes.
Bug fixes:
Exposed additional methods.
Features:
Added support for Xcode 9
Added support for Objective-C
Initial version.
Create new setUser
function that accepts an instance of the new DidomiUserParameters
(more information ).
Deprecate the other setUser
functions (more information ).
Created new applicableRegulation public API that provides an enum value (.cpra
, .gdpr
, .none
, etc.) containing the regulation being applied (more information ).
Add support for onSyncUserChanged
callback. See reference for more information.
Add new organizationUserId
parameter for SyncReady
event (see ).
Get consent from server when setUser
is called. If the user is new, you will need to call setupUI
to get the notice. In order to display the notice automatically, you can call setUser
and provide the containerController
(see ).
From this version, local configuration fields gdprAppliesGlobally
and gdprAppliesWhenUnknown
are ignored. To adapt notice behavior to user country, it is now mandatory to use remote configuration. See for more information.
See the complete list of deprecated methods .
Support for IABTCF_EnabledAdvertiserConsentMode
for Google Consent Mode, through the configuration flag integrations.vendors.gcm.enableTCFAdvertiserConsentMode
. See the for more information.
Add support for new SyncReady
event. See the for more information.
Create new openCurrentUserStatusTransaction
method which returns an instance of CurrentUserStatusTransaction
. This class can be used to asynchronously enable and disable specific vendors and purposes. For more information, see the .
Create new addVendorStatusListener
and removeVendorStatusListener
methods to observe changes in the status of individual Vendors (For more information, see the ).
or should be used instead.
or should be used instead.
Prevent showPreferences
to display Sensitive Personal Information screen (see ) if there is no such purpose to display.
Create new public function setCurrentUserStatus()
(See for more information).
Create new public function getCurrentUserStatus()
(See for more information).
Check if SDK is ready before isConsentRequired()
(see for more information).
Create new public function isUserStatusPartial()
(See for more information).
Create new public function shouldUserStatusBeCollected()
(See for more information).
Update IAB policy links URLs to .
Add methods to get vendors count: , ,
Add support for new macros (numberOfPartners
, numberOfIABPartners
and numberOfNonIABPartners
) from the Preferences screens, see the full list .
Create new Internal events for Sensitive Personal Information
interactions (see ).
Allow font family to be applied to all UI elements on the screen (see for more details).
Cross-device: do not reset Didomi User ID by default, unless clearUser
is called (see for more details).
Added support for Swift Package Manager (see documentation).
Add ability to enable sticky buttons on the notice (see ).
CCPA support is still in beta, please contact if you are interested to participate
Add ability to enable fullscreen mode (see for more details).
Handle mutli-account for Cross-device feature (see for more details).
Allow to customize font family of title and description in notice and preferences screen (see for more details).
Add an optional title field in notice (see for more details)
Allow to customize font size, color and alignment of title and description in notice and preferences screen (see, for more details)
Handle custom background color (see for more detail).
For the moment, TV notice configurations generated by the console always display the Disagree
button. To remove it, it has to be specified using custom json, as described .
Support new IAB rules regarding timestamp: the timestamp stored in the GDPR consent string has now only day-level granularity. See
Added a new initialize
method with a DidomiInitializeParameters
parameters object. This is the recommended way to initialize the sdk, the previous methods are now deprecated. See the for more information.
Add new languages support, see
If you were passing the consent
and legitimateInterest
parameters to the setUserDisagreeToAll
method in your Swift code, it won't compile anymore. If you want to set the consent and legitimate interest status for all vendors and purposes you should use the setUserStatus
method instead .
If you were directly calling setUserDisagreeToAll
from Objective-C (setUserDisagreeToAllWithConsent:legitimateInterest:
) you would need to use setUserDisagreeToAll
instead which does not accept parameters. If you want to set the consent and legitimate interest status for all vendors and purposes you should use the setUserStatus method instead .
This release also makes private some views and view controllers classes. Currently this SDK is not designed to access these classes directly but only through the available methods which are documented in the references section .
Please notice that this release includes the ability to download the GVL (Global Vendor List) file. If you don't want the SDK initialization to wait for this step, set the app.vendors.iab.requireUpdatedGVL
to false as explained here
Updated getTranslatedText
method to get translated text from multiple sources
If you are coming from a previous version and want to enable the remote Didomi configuration created from the console, please add disableDidomiRemoteConfig: false
as a new parameter in your initialize
function. .
Customize buttons and links color .
Customize logo on the Purposes view .
Bypass notice and open Preferences pop-in directly .
Customize purposes order and icons by providing purpose categories .
Prevent the Preferences pop-in from being closed when consent is missing .