HubSpot TCF v2.0 compatibility

Hello,

We have a TCF v2.0 API (via Quantcast CMP) installed on our site. Does the HubSpot WordPress plugin have a mode whereby it accesses the TCF v2.0 API for user consent?

Hi, @CFaherty :waving_hand: The plugin doesn’t offer that level of customization — to add or allow the ability to interact with external APIs via the plugin. Our source of truth for what is possible is the official documentation — HubSpot WordPress plugin.

You can also create an Ideas post. This allows other users to comment and add their upvotes to your suggestion.

Best,

Jaycee

Thank you for the reply. I just wanted to be certain that TCF v2.0 was not supported before I went into the issues I am having with tieing it into our Quantcast CMP install.

The main issue I am having is that setConsent() appears to be called at page load by default with full consent. And this occurs as a race condition with our own calls to grant or deny consent.

For example, I have:

// Grant
function grant() {
 // HubSpot
 window._hsq = window._hsq || [];
 window._hsq.push(['doNotTrack', { track: true }]);
}

// Deny
function deny() {
 // HubSpot
 window._hsp = window._hsp || [];
 window._hsq = window._hsq || [];
 window._hsq.push(['doNotTrack']);
 window._hsp.push(['revokeCookieConsent']);
}

And at page load, based on what the Quantcast CMP indicates as the recorded user’s consent, I call either grant() or deny().

However, I put a listener at page load and I see an initial setConsent() call where user consent is granted.

window._hsp = window._hsp || [];
window._hsp.push(['addPrivacyConsentListener', a => {
 console.log('HubSpot', a)
}]);

Looking at the banner.js sources I see that run() executes, and in our case does not find a this.matchedSetting and thus calls setConsent() with full consent.

It’s unclear to me how to stop full consent from being temporarily granted at page load.

My current questions are:

1) banner.js -- We do not have GDPR enabled. We don’t really want a consent banner since our CMP handles that UI, but banner.js appears to have a lot of API in it. Is it necessary?

2) Is there a way to default banner.js to not assume full consent at page load, so that we may set it based on our CMP?