### Full Configuration Example Source: https://context7.com/yeskunall/astro-umami/llms.txt A comprehensive setup demonstrating all available configuration options in a production environment. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import partytown from "@astrojs/partytown"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ partytown({ forward: ["umami.track"], // Forward umami.track to Partytown }), umami({ // Required id: "94db1cb1-74f4-4a40-ad6c-962362670409", // Custom Umami instance endpointUrl: "https://analytics.mycompany.com", hostUrl: "https://analytics.mycompany.com", trackerScriptName: "u.js", // Tracking behavior autotrack: true, doNotTrack: true, domains: ["mycompany.com", "www.mycompany.com"], // Privacy settings excludeHash: true, excludeSearch: true, // Organization tag: "production", // Performance withPartytown: true, // Data manipulation beforeSendHandler: "filterSensitiveData", }), ], }); ``` -------------------------------- ### Installation Source: https://context7.com/yeskunall/astro-umami/llms.txt Instructions for installing the Astro Umami integration using either the Astro CLI or manual package installation. ```APIDOC ## Installation ### Automatic Installation via Astro CLI The easiest way to add Umami Analytics to your Astro project using the built-in Astro CLI. ```bash # Using pnpm pnpm astro add @yeskunall/astro-umami # Using npm npx astro add @yeskunall/astro-umami # Using yarn yarn astro add @yeskunall/astro-umami ``` ### Manual Installation Install the package manually when you need more control over the installation process. ```bash # Using pnpm pnpm add @yeskunall/astro-umami # Using npm npm install @yeskunall/astro-umami # Using yarn yarn add @yeskunall/astro-umami ``` ``` -------------------------------- ### Basic Integration Setup Source: https://context7.com/yeskunall/astro-umami/llms.txt Demonstrates the basic setup of the Astro Umami integration in your `astro.config.ts` file with the required `id` configuration. ```APIDOC ## umami() Integration Function The main export is a function that creates an Astro integration. It accepts a configuration object with `id` as the only required option. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409", // Required: Your Umami website ID }), ], }); ``` ``` -------------------------------- ### Install astro-umami automatically Source: https://github.com/yeskunall/astro-umami/blob/main/packages/astro-umami/readme.md Use the Astro CLI to install the package and automatically update your configuration. ```sh pnpm astro add @yeskunall/astro-umami@0.0.7 ``` -------------------------------- ### Install Astro Umami Manually Source: https://context7.com/yeskunall/astro-umami/llms.txt Install the package manually using your preferred package manager. ```bash # Using pnpm pnpm add @yeskunall/astro-umami # Using npm npm install @yeskunall/astro-umami # Using yarn yarn add @yeskunall/astro-umami ``` -------------------------------- ### Install Astro Umami via CLI Source: https://context7.com/yeskunall/astro-umami/llms.txt Use the Astro CLI to automatically add the integration to your project. ```bash # Using pnpm pnpm astro add @yeskunall/astro-umami # Using npm npx astro add @yeskunall/astro-umami # Using yarn yarn astro add @yeskunall/astro-umami ``` -------------------------------- ### Install astro-umami manually Source: https://github.com/yeskunall/astro-umami/blob/main/packages/astro-umami/readme.md Install the package via package manager and manually register the integration in your Astro configuration file. ```sh pnpm add @yeskunall/astro-umami@0.0.7 ``` ```diff + import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ + umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409" }), ], }); ``` -------------------------------- ### Configuration Options Source: https://context7.com/yeskunall/astro-umami/llms.txt Details on the available configuration options for the `umami()` integration function. ```APIDOC ## Configuration Options ### id (Required) The unique identifier for your website from your Umami dashboard. This is the only required configuration option. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409", }), ], }); ``` ### endpointUrl Specify the URL of your Umami instance. Defaults to `https://cloud.umami.is` for Umami Cloud users. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409", endpointUrl: "https://umami.example.com", // Self-hosted Umami instance }), ], }); ``` ### autotrack Controls automatic tracking of pageviews and events. Set to `false` if you want to manually track using Umami tracker functions. Defaults to `true`. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409", autotrack: false, // Disable automatic tracking for manual control }), ], }); // Then in your client-side JavaScript, use Umami tracker functions: // umami.track('custom-event', { category: 'button', action: 'click' }); ``` ### domains Restrict tracking to specific domains. Useful for preventing tracking on staging or development environments. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409", domains: ["mywebsite.com", "www.mywebsite.com"], // Only track on these domains }), ], }); ``` ### doNotTrack Respect the visitor's Do Not Track browser setting. When enabled, visitors with DNT enabled won't be tracked. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409", doNotTrack: true, // Respect browser's Do Not Track setting }), ], }); ``` ### hostUrl Override the location where analytics data is sent. Useful for proxy setups or custom analytics endpoints. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409", hostUrl: "https://analytics.eu.umami.is", // EU-specific endpoint }), ], }); ``` ``` -------------------------------- ### Configure Umami Integration Source: https://context7.com/yeskunall/astro-umami/llms.txt Register the integration in your astro.config.ts file with your unique website ID. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409", // Required: Your Umami website ID }), ], }); ``` -------------------------------- ### Enable Do Not Track Support Source: https://context7.com/yeskunall/astro-umami/llms.txt Configure the integration to respect browser-level Do Not Track settings. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409", doNotTrack: true, // Respect browser's Do Not Track setting }), ], }); ``` -------------------------------- ### Configure Umami Endpoint URL Source: https://context7.com/yeskunall/astro-umami/llms.txt Specify a custom endpoint URL for self-hosted Umami instances. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409", endpointUrl: "https://umami.example.com", // Self-hosted Umami instance }), ], }); ``` -------------------------------- ### Enable Partytown Integration Source: https://context7.com/yeskunall/astro-umami/llms.txt Offloads the tracking script to a web worker using Partytown for better performance. Requires the Astro Partytown integration. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import partytown from "@astrojs/partytown"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ partytown(), // Required when using withPartytown umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409", withPartytown: true, // Run tracking script in a web worker }), ], }); ``` -------------------------------- ### Configure Before Send Handler Source: https://context7.com/yeskunall/astro-umami/llms.txt Specifies a global function name to modify or filter tracking data before it is sent to Umami. ```typescript // astro.config.ts import { defineConfig } from "astro/config"; import umami from "@yeskunall/astro-umami"; export default defineConfig({ integrations: [ umami({ id: "94db1cb1-74f4-4a40-ad6c-962362670409", beforeSendHandler: "myBeforeSendHandler", // Function name (must be defined globally) }), ], }); // In your client-side JavaScript (e.g., in a