-
Notifications
You must be signed in to change notification settings - Fork 346
Open
Description
Describe the bug
The new changes in the canary branch for the analytics provider give this error:
To Reproduce
Steps to reproduce the behavior:
- Setup new analytics provider and connect to GA4
- Go to a PDP Page
- See error
Expected behavior
It should not show this error in the console and cause the app to have a server error.
Screenshots
I believe the static function that was previously in bodl, waitForBodlEvents solved this error.
I implemented something similar in my code called: waitForGtag:
static waitForGtag(callback: () => void, iteration = 0) {
if (typeof window !== 'undefined' && typeof window.gtag === 'function') {
callback();
return;
}
if (iteration >= 10) {
console.warn('gtag not initialized after waiting');
return;
}
setTimeout(() => {
GoogleAnalyticsProvider.waitForGtag(callback, iteration + 1);
}, 300);
I then just wrapped all my events in GoogleAnalyitcsProvider with this like so:
private getCartEvents() {
return {
cartViewed: (payload, metadata) => {
GoogleAnalyticsProvider.waitForGtag(() => {
gtag('event', 'view_cart', {
event_id: metadata.eventUuid,
channel_id: metadata.channelId,
currency: payload.currency,
value: payload.value,
items: payload.items.map((item) => {
return {
item_name: item.name,
item_id: item.sku ?? item.id,
price: item.price,
quantity: item.quantity,
currency: payload.currency,
item_brand: item.brand,
variant_id: item.variant_id,
item_category: item.categories?.at(0),
item_category2: item.categories?.at(1),
item_category3: item.categories?.at(2),
item_category4: item.categories?.at(3),
item_category5: item.categories?.at(4),
};
}),
});
});
},
etc ....
Additional context
@chanceaclark have been talking to you about analytics provider previously so just tagging you on this one :)
Metadata
Metadata
Assignees
Labels
No labels
