Version 3 (Latest)

First party API / Microprofile

As discussed in the previous version 2, most common use for first party microprofile is to store CMP consents and other metadata on it. In version 3 we have added a whole new set of features to manage observations, consents and key rings with in the microprofile.

New features:

  • Supports Key Rings, Consents and events
  • Data compression enabled by default
  • Third-party to First-party ID fusion
  • More options to get the audit trail.

The data properties of the Version 3 of the api looks like below.

  "i": "<microprofileid>",
  "r": "<originDomain>",
  "v": "v3",
  "e": {
    "key1": "value1",
    "key2": "value2"
  "k": [ //key value pairs
      "i": "keyId",
      "k": "KeyName",
      "v": "keyValue",
      "t": <timestamp>
      "i": "keyId",
      "k": "KeyName",
      "v": "keyValue",
      "t": <timestamp>
  "c": [
      "i": "consentId",
      "c": "consentName",
      "s": true,
      "t": <timestamp>
      "i": "consentId",
      "c": "consentName",
      "s": true,
      "t": <timestamp>

The property values in the V3 are mainly short forms to reduce space in the requests. You can refer the full form here.

Timestamp for each entity is auto-generated by Gravito 1st party end point itself to help you keep track of different values when merging data across domains.

  • k : Key Rings
    • i: Key Id
    • k: Key Name
    • v: Key Value
    • t: Timestamp
  • c: Consents
    • i: Consent Id
    • k: Consent Name
    • v: Consent Value
    • t: Timestamp
  • e: Events
  • i: Id
  • r: Referrer
  • v: version

If there would be other needs to use microprofile to act as keyring store, store context analytics results (e.g. segments) or something similar, the calls to first party API microprofile would look something like this:

(function gtoFirstPartyV3() {
    var xhr = new XMLHttpRequest(); 
    var params = { 
    "e": {}, 
    "k": [], 
    "c": [] 
    };"POST", "https://gto.<<domain>>/api/v3/firstparty", true); 
    xhr.withCredentials = true; 
    xhr.onreadystatechange = function(response) { 
        if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) { 
            console.log("1P Echo : " +; 

Please get in touch with is for a detailed Postman collection to get details of different use cases of this API. We will be happy to help. We can help you get started with sample GTM tag samples which enables simple profiling to complex cases which can enable Thirdparty to FirstParty Id fusion.

Connect cookies across domains

Under the Key value pair (“e”), similar to the version 2 you can still use the matchOnId to connect profiles to different domains. This for example can be done using a users Id when they login. (e.g. logged in user has UID known) 

matchOnID is the only reserved key value pair, it allows retrieving the cookie set for particular ID (e.g. logged in user has UID known) from other domain. A user with a matchOnId can be dealt with in 3 different ways to change the particular Id associated in 3 different ways.

  • reset
    • Reset value for the matchOnId can be used to clear all the values from the events key value pair temporarily.
  • disconnect
    • Disconnect value for the matchOnId can be used to remove the matchOnId from the events key value pair.
  • delete
    • Delete keyword for the matchOnId can be used to delete the whole events and the existing microProfileId provided.
    • This operation will reset the microProfileId and give you a new one.

Note: In all these cases passing the matchOnId value for a particular ID (e.g. logged in user has UID known) can resurface the whole profile again for your convenience.


Getting started

Frequently Asked Questions

Frequently Asked Questions (FAQ) - Gravito Intelligent CMP and TCF 2.2 CMP Banner. 1. What is Gravito? Gravito is a Consent Banner provider for websites. It offers both TCF (Transparency & Consent Framework 2.2 ) certified Consent Management Platforms (CMPs) for...


Before you can start using Gravito features you will need to register yourself in the Gravito portal. Head to and enter your email you want to use with Gravito: After submission you will receive an email with PIN code, enter that to...


All support cases and issues are handled by the support team of Gravito or by technology partners. In case you need support please send us email at support<at> Be part of our community? Join us on our Discord Channel here

Gravito Intelligent CMP

Getting Started

Gravito Intelligent CMP is a consent management solution that helps to collect consent for data collection, analytics, targeting, personalization and whatever your business needs to fulfil legal or regulatory terms. 💡 NoteHave you registered with Gravito yet? Please...

Setup and Design

Gravito Intelligent CMP Setup can be done using Gravito CMP Configurator on Gravito's Admin Portal. Go to CMP>>Gravito CMP configurator. You can choose the language of your choice when creating your own CMP Config Do you want to try out how our configuration is? You...

GTM Template

Gravito CMP now can be deployed using GTM Template. In order to use this feature, while creating the configuration for Gravito CMP you will have to check the "Is GTM?" flag in the basic section of the configuration wizard. If the config is created using the "is GTM? "...

Release Notes

Gravito Intelligent CMP release notes. Version 4.0.0 New major release SDK v2 compatibility. Feature to capture CMP events such as Accept-All, and Reject-All, and have a report generated on the Admin portal. Prebid.js user Id support with Light CMP. Version 3.0.0 New...

Advanced Features

Here are the links to the advanced features supported by Gravito Intelligent CMP Customization Advanced Customization Options Latest Gravito Configuration example (json) Headless CMP using Gravito Integrations How to integrate events emitted by the Gravito Intelligent...

Gravito TCF 2.2 CMP

Getting Started

Gravito CMP provides a TCF 2.2 compliant consent management platform. With Gravito you can customize the look and feel of your CMP so that it blends good with your website. Gravito TCF 2.2 CMP is also listed as one of the Google Certified TCF CMP's To get started you...

Setup and Design

Gravito TCF 2.2 CMP Setup can be done using TCF CMP Configurator on Gravito’s Admin Portal. Go to CMP>>TCF configurator.

Mobile apps

TCF CMP implementation on mobile apps can take two different strategies: You have TCF CMP already configured and set up for your website or you are planning to have such AND your application is made with webviews (= content is displayed on webviews and 3rd party...

Release Notes

Version 4.0.0New Major Release : Compatible with Gravito's TCF 2.2 CMP Enhancements: Disclosure Details Toggle: We've upgraded the functionality of the "Disclosure Details" button under each vendor. It now serves as a toggle button, allowing you to easily show or hide...

Advanced features

Here are few of the advanced features of Gravito TCF 2.2 CMP Integration How to integrate with events emitted by Gravito TCF 2.2 CMP? Customization Latest Gravito TCF 2.2 CMP Configuraton example (json)

Gravito SDK

Getting Started

The Gravito SDK ( Latest Version 2) is a tool that allows developers to communicate with the Gravito APIs and deploy both light CMP and TCF CMP. It includes functions for interacting with the Gravito first party backend solution and is used by all major services...

Release Notes

Release Notes ( V2 ) Gravito SDK Version 2 now uses a modular approach to avoid unnecessary imports of files into your website. You can configure which modules you want to use at the time of initialization process. Currently, it supports four modules: LightCMP,...

Version 2 (Latest)

Using SDK V2 To use Gravito's SDK you should have the Gravito config added to your site. Make sure you also have settings section added inside your config. You can get the config from the Gravito Admin Portal 👉Looking for an older version of Gravito SDK? You can find...

Gravito API

Getting Started

Gravito API is a powerful tool when it comes to collecting consent statistics while allowing you to connect multiple ids that you use in your setup and give it more persistence. One of the key features of the Gravito API, the Gravito ID Connector is enabled using the...

Setup and Validation

First Party domain means the domain your website operates. e.g. To avoid third party cookies being blocked (occurs already on many browsers) you can configure the CMP to set the cookies under first party domain or you can use Gravito's first party API to...

Version 2

First party API / Microprofile Most common use for first party microprofile is to store CMP consents and other metadata on it. That configuration is automatically generated by CMP configurator, just select “with backend” option when generating the deployment script...


Microprofile which relies on Gravito Firstparty API v3 is in Beta testing Gravito Microprofile is sort of a synonym to first party API. First party API was initially developed as simple microservice to help with setting first party cookie to hold CMP settings and...

Other  Features

Cookie Scanner

Cookie Scanner Gravito allows you to scan your web pages for cookies dropped. Gravito classifies cookies on your webpage as ones dropped before accepting the consent and ones after accepting the consent. This way there is a clear understanding of what is happening on...

GVL Comparison

Gravito allows you to compare global vendor list versions. You can get specific details like which vendors were updated, added as well as deleted from the comparison tool You can find the GVL comparison tool under the Features -> GVL Updates menu You can choose the...

Prebid User Id Module

Gravito has a user module in prebid js, customers now can use Gravito's first party service and prebid js usermodule to use a persistent first party id in prebid's bit stream. More details in the each section below. Getting Started Setup and Validation Version 1...

Try it out


Quick guides to get started with various deployment scenarios. Deploy basic consent management banner and wire the tags on it Register/login to Navigate to CMP > Gravito CMP configurator > New Configuration Create configuration, you...