31 lines
837 B
JavaScript
31 lines
837 B
JavaScript
import gtmConfig from '../gtm'
|
|
|
|
export default defineNuxtPlugin(() => {
|
|
const route = useRoute()
|
|
const isIframe = useIsIframe()
|
|
const isPublicFormPage = route.name === 'forms-slug'
|
|
|
|
// Only enable GTM if not in a form page (for respondents) and not in an iframe
|
|
if (!isPublicFormPage && !isIframe && process.env.NUXT_PUBLIC_GTM_CODE) {
|
|
// Initialize GTM manually only when needed
|
|
const gtm = useGtm()
|
|
|
|
// Override the enabled setting to true for this session
|
|
gtmConfig.enabled = true
|
|
|
|
// Watch for route changes to track page views
|
|
watch(() => route.fullPath, () => {
|
|
if (!route.name || route.name !== 'forms-slug') {
|
|
gtm.trackView(route.name, route.fullPath)
|
|
}
|
|
}, { immediate: true })
|
|
|
|
return {
|
|
provide: {
|
|
gtm
|
|
}
|
|
}
|
|
}
|
|
|
|
return {}
|
|
})
|