TCF CMP releases

Version 2.0.7

Added option to enable “Reject all” button to first layer of the CMP. Enable this by adding third label for first layer actions:

firstlayer: { actions: ["Settings", "Accept all", "Reject all"]... }

Version 2.0.6

Bug fixes, purposes overlapping with stacks caused the accordions to show data incorrectly.

Version 2.0.5

Bug fix release, updates the gravitoCMP.currentState behavior and reflects the stacks acceptance to purposes.

Version 2.0.4

Bug fix release, fixed a corner case bug which was showing “undefined” for vendors which did not request consent nor legitimate interest use.

Version 2.0.3

New configurable feature to enable special icon on 2nd layer to allow consumer to copy TCstring containing current CMP consent setting. This is to help with validation of CMP functions, copied TCstring can be validated and analyzed at independently.


Version also contains bug fixes to some translations being missing on vendor details listing.

Version 2.0.2

Removed usage of global scope cookie in TCF CMP(Now the customer cannot write cookie in global scope).

Removed usage of OOB in TCF CMP (now the customer cannot use OOB).

Fixed the issue with the vendor list. Previously if the vendor was removed from GVL and is present in the config file then CMP was throwing an error. Now CMP will only render the vendor if is present in config.

TCF policy changes to UI. CMP will now render additional flags for vendors such as (Uses Cookies, Uses non-cookie access, Cookie refresh). New translation terms are now added for these fields as fallback to avoid yet another major release and need to re-deploy, translations can be overridden by the customer by configuring the following terms (under commonTerms inside config):

cookieMaxAge: "Cookie max age",
disclouserDetails: "Details",
disclouserFetchingError: "Unable to get Json data",
disclouserHeaderIdentifier: "Identifier",
disclouserHeaderDomain: "Domain",
disclouserHeaderDomain: "Domain",
disclouserHeaderType: "Type",
disclosureHeaderMaxAge: "Max Age(s)",
disclosureHeaderPurpose: "Purposes",
cookieRefresh: "Cookie refresh",
usesCookies: "Uses cookies",
usesNonCookieAccess: "Uses non cookie access",
yes: "Yes",
no: "No",
seconds: "seconds",
days: "days"

Version 2.0.1

Added configuration option to enable/disable scrollbar for 2nd layer of CMP and the width of the scrollbar:


Version 2.0.0

New UI elements TCF 2.1 policy enables under vendor view (not all vendors are providing the details)

New major release to include TCF 2.1 changes. Since the new version of TCF policy covers few UI changes there is need to add few translation items to CMP deployment code (under commonTerm precisely):

cookieMaxAge: "Cookie max age (seconds)",
disclouserDetails: "Details",
disclouserFetchingError: "Unable to get Json data",
disclouserHeaderIdentifier: "Identifier",
disclouserHeaderDomain: "Domain",
disclouserHeaderType: "Type",
disclosureHeaderMaxAge: "Max Age(s)",
disclosureHeaderPurpose: "Purposes",

Finnish version of the same:

cookieMaxAge: "Evästeen enimmäisikä (sekuntia)",
disclouserDetails: "Yksityiskohdat",
disclouserFetchingError: "Virhe toimittajan lisätietojen noutamisessa",
disclouserHeaderIdentifier: "Tunniste",
disclouserHeaderDomain: "Verkkotunnus",
disclouserHeaderType: "Tyyppi",
disclosureHeaderMaxAge: "Korkein ikä (s)",
disclosureHeaderPurpose: "Tarkoitukset",

And Swedish:

cookieMaxAge: "Cookie max ålder (sekunder)",
disclouserDetails: "Detaljer",
disclouserFetchingError: "Json data inte tillgänglig",
disclouserHeaderIdentifier: "Identifierare",
disclouserHeaderDomain: "Domän",
disclouserHeaderType: "Typ",
disclosureHeaderMaxAge: "Max Ålder(s)",
disclosureHeaderPurpose: "Meningar"

As this is “breaking change” the deployment will require user action. If you are loading _latest builds with your deployment, you need to change the configuration as follows:

var ui_path= componentUrl + "/uibundle_latest_2.js"
var cmp_path=componentUrl + "/bundle_latest_2.js"

Alternatively if you are to stick to particular version you need to adjust the lines:

var ui_path= componentUrl + "/uibundle-2.0.0.js"
var cmp_path=componentUrl + "/uibundle-2.0.0.js"

We strongly suggest on hooking to _latest pipeline to load always up-to-date core libraries. Breaking changes are branched as separate major releases as all CMP customers are experiencing here.

Version 1.0.10

Fix to allow logo to be left blank.

Version 1.0.9

Default font was changed, to make use of it the font configuration needs to be changed on configurations or wrapper files to following:

fonts: [
   unicodeRange:"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;"
    unicodeRange:"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;"

Version 1.0.8

Another bugfix release, fixed issue with special characters not working on gravitoData cookie with Safari browsers. Additionally superwrapper was refactored to support IE11.

Version 1.0.7

Bugfix release, fixed mainly CSS bugs.

Version 1.0.6

Enables CMP connectivity with backend systems to store the consent string to CDP or similar. The configuration is made by default to support Gravito CDP but can be customized to support any other backend that has API endpoint(s) exposed for the CMP to GET/POST.

See separate chapter about enabling and configuring superwrapper.js

Version 1.0.5

Bug fix release, no new configuration options. The release fixes few localization defects.

Version 1.0.4

Publishers can remove the custom purposes, if they are not needed. CMP need to be resurfaced in order affect this change for existing deployments with custom purposes. Leave customPurposes as attribute to configuration even there would not be any under it.

CMP dialog can be resurfaced using an helper function gravitoCMP.openPreferences()

Version 1.0.3

We have enabled few UI options, those can be enabled by adding following configuration items:


Load the version from your config:

var ui_path= componentUrl + "/uibundle-1.0.3.js"var cmp_path=componentUrl + "/bundle-1.0.3.js"

Version 1.0.2

Added configuration option for cookie domain, allowing to configure if the CMP cookie is set on the current hostname domain the CMP operates on (e.g. subdomain.domain.xx) or to top level allowing the subdomains to share the CMP preferences (cookie is set to .domain.xx).


Load the version from your config:

var ui_path= componentUrl + "/uibundle-1.0.2.js"var cmp_path=componentUrl + "/bundle-1.0.2.js"

Version 1.0.1

Core libraries updated, publisher country code added to configuration.

var ui_path= componentUrl + "/uibundle-1.0.1.js"
var cmp_path=componentUrl + "/bundle-1.0.1.js"

New configuration items related to this release:


See deployment page for more details for using these.

Version 1.0.0

  • IAB TCF 2.0 support, validated as vendor id 302
  • Fully responsive, mobile optimized UI
  • Presentation, TCF core logic and configuration are separated to allow maximum customization flexibility and deployment strategies
  • Service or global scope
  • Non-TCF vendors consent management capability
  • Event-driven, user activity (consents, rejections etc.) emits events that can trigger ad/martech tags, data to analytics etc.
  • Localization through configuration file
  • Standard, tested deployment with tag management systems like Google Tag Manager, Tealium iQ and Ensighten
  • Webview support for React Native, Android and iOS


You can always load the latest version, no need to touch your setup when there are upgrades but you trust 100% on our QA and testing:

var ui_path= componentUrl + "/uibundle_latest.js"
var cmp_path=componentUrl + "/bundle_latest.js"

Direct links to files: