Description
Operating System
Windows 11 23H2
Browser Version
Edge 124.0.2478.51
Firebase SDK Version
10.11.0
Firebase SDK Product:
Analytics, AppCheck, Auth, Firestore, Functions, Storage
Describe your project's tooling
Vue.js app.
Describe the problem
I'm trying to get analytics to work with consent banner and sending advanced consent information with the setConsent
method.
Steps and code to reproduce issue
In the projet, initialize Firebase first. I consider app
to be a constant containing the firebase application instance in the following snippet:
import { setAnalyticsCollectionEnabled, setConsent } from 'firebase/analytics'
const analytics = app.analytics()
// Add some delay to wait for gtag loading
setTimeout(() => {
console.log('Called')
setAnalyticsCollectionEnabled(this._analytics, consent)
setConsent({
ad_personalization: 'denied',
ad_storage: 'denied',
ad_user_data: 'denied',
analytics_storage: 'granted',
functionality_storage: 'granted',
personalization_storage: 'denied',
security_storage: 'granted',
})}, 5000)
Using Tag Assitant, I can see the tag events. However, I get this result:
The granted value is missing and there is strange numbered items.
Doing a some step-by-step debugging, I found the call to gtag. The third parameter which should be the ConsentSettings
(see Set up consent mode on websites is set to the second parameter update
instead of the third.
The setConsent
method code is here packages/analytics/src/api.ts#L768.
It trigger the call to the gtagWrapper function with this line:
wrappedGtagFunction(GtagCommand.CONSENT, 'update', consentSettings);
The wrappedGtagFunction
is an instance of the gtagWrapper
function found in packages/analytics/src/helpers.ts#L279.
When the method is called before initialization of gtag
, the call is made correctly. setContent
sends the settings to _setConsentDefaultForInit
and the packages/analytics/src/initialize-analytics.t:_initializeAnalytics
s#L129 function use these settings correctly.
I see two possible fixes:
- Removing the
'update'
parameter insetConsent
, thus the diff:@@ -766,5 +766,5 @@ // Check if reference to existing gtag function on window object exists if (wrappedGtagFunction) { - wrappedGtagFunction(GtagCommand.CONSENT, 'update', consentSettings); + wrappedGtagFunction(GtagCommand.CONSENT, consentSettings); } else { _setConsentDefaultForInit(consentSettings);
- Retrieves the second argument from the args array.
I recommend the first option.
Original commits:
- Feature introduction
- Where the bug was introduced
Some checks failed for this commit but where not fixed. This test packages/analytics/src/api.test.ts#L143 should have detected the issue.
Metadata
Metadata
Assignees
Type
Projects
Milestone
Relationships
Development
- Fix analytics consent updating (#8210)firebase/firebase-js-sdk
- Fix setConsent to properly use the `update` gtag commandfirebase/firebase-js-sdk
- [Snyk] Upgrade firebase from 10.12.0 to 10.12.1sswietoniowski/learning-html-css-javascript
- [Snyk] Upgrade firebase from 10.0.0 to 10.12.1Abellache-Rabah/backend-hawasli
- [Snyk] Upgrade firebase from 10.12.0 to 10.12.1leoo1992/next-tailwind-firebase
- [Snyk] Upgrade firebase from 10.1.0 to 10.12.1surajit03/accounting
- [Snyk] Upgrade firebase from 10.12.0 to 10.12.1aswanthchandran0/User-Management
- [Snyk] Upgrade firebase from 10.1.0 to 10.12.1surajit03/accounting
- [Snyk] Upgrade firebase from 10.10.0 to 10.12.1nejidevelops/kanban-app-tutorial
- [Snyk] Upgrade firebase from 10.12.0 to 10.12.1mongodb/docs-realm
Activity
google-oss-bot commentedon Apr 27, 2024
I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
[-]Analytics Consent not sent[/-][+]Analytics Consent not sent on update[/+]Fix analytics consent updating (firebase#8210)
jbalidiong commentedon May 1, 2024
@megamisan, thanks for reaching out to us. I was able to replicate the behavior you've mentioned. Also, thanks for sending a PR for a possible fix. I'll raise this to our engineering team or bring someone here that can provide more context about it. I’ll update this thread if I have any information to share.
update
gtag command #8243vytautas-vitkus-tg commentedon May 14, 2024
Can confirm the same issue on our site:

25 remaining items