Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
gatsby-plugin-google-tagmanager
Advanced tools
Gatsby plugin to add google tagmanager onto a site
Easily add Google Tagmanager to your Gatsby site.
npm install gatsby-plugin-google-tagmanager
// In your gatsby-config.js
plugins: [
{
resolve: "gatsby-plugin-google-tagmanager",
options: {
id: "YOUR_GOOGLE_TAGMANAGER_ID",
// Include GTM in development.
//
// Defaults to false meaning GTM will only be loaded in production.
includeInDevelopment: false,
// datalayer to be set before GTM is loaded
// should be an object or a function that is executed in the browser
//
// Defaults to null
defaultDataLayer: { platform: "gatsby" },
// Specify optional GTM environment details.
gtmAuth: "YOUR_GOOGLE_TAGMANAGER_ENVIRONMENT_AUTH_STRING",
gtmPreview: "YOUR_GOOGLE_TAGMANAGER_ENVIRONMENT_PREVIEW_NAME",
dataLayerName: "YOUR_DATA_LAYER_NAME",
// Name of the event that is triggered
// on every Gatsby route change.
//
// Defaults to gatsby-route-change
routeChangeEventName: "YOUR_ROUTE_CHANGE_EVENT_NAME",
// Defaults to false
enableWebVitalsTracking: true,
// Defaults to https://www.googletagmanager.com
selfHostedOrigin: "YOUR_SELF_HOSTED_ORIGIN",
},
},
]
If you like to use data at runtime for your defaultDataLayer you can do that by defining it as a function.
// In your gatsby-config.js
plugins: [
{
resolve: "gatsby-plugin-google-tagmanager",
options: {
// datalayer to be set before GTM is loaded
// should be a stringified object or object
//
// Defaults to null
defaultDataLayer: function () {
return {
pageType: window.pageType,
}
},
},
},
]
This plugin only initiates the tag manager container. If you want to use Google Analytics, please also add gatsby-plugin-google-analytics
.
If you want to link analytics use with anything inside the container (for example, a cookie consent manager such as OneTrust), you will need to ensure that the tag manager script comes before the analytics script in your gatsby-config.js
.
This plugin will fire a new event called gatsby-route-change
(or as in the gatsby-config.js
configured routeChangeEventName
) whenever a route is changed in your Gatsby application. To record this in Google Tag Manager, we will need to add a trigger to the desired tag to listen for the event:
gatsby-route-change
(or as in the gatsby-config.js
configured routeChangeEventName
).This tag will now catch every route change in Gatsby, and you can add Google tag services as you wish to it.
Optimizing for the quality of user experience is key to the long-term success of any site on the web. Capturing Real user metrics (RUM) helps you understand the experience of your user/customer. By setting enableWebVitalsTracking
to true
, GTM will get "core-web-vitals" events with their values.
You can save this data in Google Analytics or any database of your choosing.
We send three metrics:
Out of the box this plugin will simply load Google Tag Manager on the initial page/app load. It's up to you to fire tags based on changes in your app. See the above "Tracking routes" section for an example.
FAQs
Gatsby plugin to add google tagmanager onto a site
The npm package gatsby-plugin-google-tagmanager receives a total of 58,625 weekly downloads. As such, gatsby-plugin-google-tagmanager popularity was classified as popular.
We found that gatsby-plugin-google-tagmanager demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.