sanity-plugin-analytics
v0.1.0
Published
Sanity Studio analytics plugin for GA4, Google Search Console, and Lighthouse/PageSpeed dashboards.
Maintainers
Readme
sanity-plugin-analytics
GA4, Google Search Console, and Lighthouse/PageSpeed dashboards inside Sanity Studio.
Install
npm install sanity-plugin-analyticsStudio Setup
import {defineConfig} from 'sanity'
import {sanityAnalyticsPlugin} from 'sanity-plugin-analytics'
export default defineConfig({
plugins: [
sanityAnalyticsPlugin({
analytics: {
apiUrl: '/api/analytics',
},
searchConsole: {
apiUrl: '/api/search-console',
},
lighthouse: {
apiUrl: '/api/pagespeed',
siteUrl: 'https://example.com',
documentTypes: [
{type: 'post', pathPrefix: '/blog', slugField: 'slug', titleField: 'title'},
],
},
}),
],
})The default export creates one Studio tool with tabs for Analytics, Search Console, and Lighthouse.
Individual tools are also available:
import {
googleAnalyticsPlugin,
searchConsolePlugin,
lighthousePlugin,
} from 'sanity-plugin-analytics'API Routes
The package ships server-side handlers that you can re-export from your app routes.
// app/api/analytics/route.ts
export {GET} from 'sanity-plugin-analytics/api/analytics'// app/api/search-console/route.ts
export {GET, POST} from 'sanity-plugin-analytics/api/search-console'// app/api/pagespeed/route.ts
export {GET} from 'sanity-plugin-analytics/api/pagespeed'Environment Variables
GA_PROPERTY_ID=123456789
GA_SERVICE_ACCOUNT_EMAIL=service-account@project.iam.gserviceaccount.com
GA_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
SEARCH_CONSOLE_SITE_URL=https://example.com
PAGESPEED_API_KEY=optional_google_api_keyGA_PROPERTY_ID and SEARCH_CONSOLE_SITE_URL can also be supplied from plugin config/query params. Credentials always stay server-side.
Lighthouse URL Mapping
Lighthouse discovers URLs from configured Sanity document mappings:
lighthouse: {
siteUrl: 'https://example.com',
documentTypes: [
{type: 'post', pathPrefix: '/blog'},
{type: 'page', pathPrefix: ''},
],
}For advanced routing, pass resolveUrl(document, {siteUrl}).
Exports
sanityAnalyticsPlugingoogleAnalyticsPluginsearchConsolePluginlighthousePluginanalyticsSchemaslighthouseReportsanity-plugin-analytics/api/analyticssanity-plugin-analytics/api/search-consolesanity-plugin-analytics/api/pagespeed
License
MIT
