Configuration

Configure Entrolytics for your needs

Configuration

Customize Entrolytics to match your analytics requirements, privacy policies, and technical infrastructure. This guide covers everything from basic tracking script options to advanced custom event tracking.

Tracking Script Configuration

The tracking script supports various configuration options via HTML data attributes:

Standard configuration for most use cases

<script
  defer
  src="https://cloud.entrolytics.click/script.js"
  data-website-id="your-website-id"
  data-auto-track="true"
></script>

This configuration:

  • Automatically tracks page views
  • Uses default privacy settings
  • Works with all modern browsers

Maximum privacy compliance

<script
  defer
  src="https://cloud.entrolytics.click/script.js"
  data-website-id="your-website-id"
  data-do-not-track="true"
  data-respect-dnt="true"
  data-exclude-search="true"
  data-exclude-hash="true"
></script>

This configuration:

  • Respects Do Not Track browser setting
  • Strips query parameters from URLs
  • Removes hash fragments
  • Perfect for GDPR/CCPA compliance

Full configuration example

<script
  defer
  src="https://cloud.entrolytics.click/script.js"
  data-website-id="your-website-id"
  data-domains="example.com,www.example.com"
  data-auto-track="true"
  data-do-not-track="false"
  data-cache="true"
  data-tag="variant-a"
  data-exclude-search="false"
  data-exclude-hash="false"
></script>

This configuration:

  • Restricts tracking to specific domains
  • Enables localStorage caching
  • Sets A/B testing tag
  • Includes full URL details

Available Attributes

AttributeTypeDescriptionDefault
data-website-idstringYour website ID (required)-
data-host-urlstringCustom analytics host URLSame as script URL
data-auto-trackbooleanAutomatically track page viewstrue
data-do-not-trackbooleanRespect DNT browser settingtrue
data-cachebooleanEnable localStorage cachingfalse
data-domainsstringComma-separated valid domainsAll domains
data-tagstringA/B test variant tag-
data-exclude-searchbooleanStrip query params from URLsfalse
data-exclude-hashbooleanStrip hash fragments from URLsfalse
data-ignore-localhostbooleanDisable tracking on localhosttrue

SDK Configuration

If you're using one of our framework SDKs, configure via the provider props:

app/layout.tsx
import { EntrolyticsProvider } from '@entro314labs/entro-nextjs'

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        <EntrolyticsProvider
          websiteId={process.env.NEXT_PUBLIC_ENTROLYTICS_WEBSITE_ID!}
          host={process.env.NEXT_PUBLIC_ENTROLYTICS_HOST}
          autoTrack={true}
          respectDoNotTrack={false}
          excludeSearch={false}
          excludeHash={false}
          domains={['example.com', 'www.example.com']}
          tag="homepage"
          debug={process.env.NODE_ENV === 'development'}
        >
          {children}
        </EntrolyticsProvider>
      </body>
    </html>
  )
}
src/App.tsx
import { EntrolyticsProvider } from '@entro314labs/entro-react'

function App() {
  return (
    <EntrolyticsProvider
      websiteId={import.meta.env.VITE_ENTROLYTICS_WEBSITE_ID}
      host={import.meta.env.VITE_ENTROLYTICS_HOST}
      autoTrack={true}
      respectDoNotTrack={false}
    >
      <YourApp />
    </EntrolyticsProvider>
  )
}
src/App.vue
<script setup>
import { Entrolytics } from '@entro314labs/entro-vue'
</script>

<template>
  <Entrolytics
    :websiteId="import.meta.env.VITE_ENTROLYTICS_WEBSITE_ID"
    :host="import.meta.env.VITE_ENTROLYTICS_HOST"
    :autoTrack="true"
  />
  <RouterView />
</template>
src/routes/+layout.svelte
<script>
  import { Entrolytics } from '@entro314labs/entro-svelte'
  import { PUBLIC_ENTROLYTICS_WEBSITE_ID } from '$env/static/public'
</script>

<Entrolytics
  websiteId={PUBLIC_ENTROLYTICS_WEBSITE_ID}
  autoTrack={true}
/>

<slot />

Custom Events

Track any user interaction beyond page views:

Basic Event Tracking

// Simple event
entrolytics.track('button_click');

// Event with properties
entrolytics.track('signup_complete', {
  plan: 'pro',
  trial: false
});

// Event with revenue
entrolytics.track('purchase', {
  product: 'enterprise_plan',
  quantity: 1
}, 299.99);
interface SignupProperties {
  plan: 'free' | 'pro' | 'enterprise';
  trial: boolean;
  referrer?: string;
}

entrolytics.track<SignupProperties>('signup_complete', {
  plan: 'pro',
  trial: false,
  referrer: 'google'
});
import { useEntrolytics } from '@entro314labs/entro-react'

function SignupButton() {
  const { track } = useEntrolytics()

  const handleSignup = async () => {
    await track('signup_started', {
      source: 'landing_page'
    })

    // ... signup logic
  }

  return <button onClick={handleSignup}>Sign Up</button>
}

Common Event Patterns

User Identification

Track specific users across sessions:

// Identify user by ID
entrolytics.identify('user-12345');
// Identify with user properties
entrolytics.identify('user-12345', {
  email: 'user@example.com',
  plan: 'pro',
  signup_date: '2024-01-15'
});
// Generate enhanced identity with browser metadata
const { generateEnhancedIdentity } = useEntrolytics();

const identity = generateEnhancedIdentity({
  userId: 'user-12345',
  email: 'user@example.com',
  plan: 'pro'
});

// Includes: screen size, timezone, language, etc.
entrolytics.identify('user-12345', identity);

Privacy Configuration

GDPR Compliance

Domain Filtering

Restrict tracking to specific domains:

<script
  defer
  src="https://cloud.entrolytics.click/script.js"
  data-website-id="your-website-id"
  data-domains="example.com"
></script>

Only tracks on example.com (not www.example.com or subdomains).

<script
  defer
  src="https://cloud.entrolytics.click/script.js"
  data-website-id="your-website-id"
  data-domains="example.com,www.example.com,app.example.com"
></script>

Tracks on all specified domains.

<script
  defer
  src="https://cloud.entrolytics.click/script.js"
  data-website-id="your-website-id"
  data-domains="*.example.com"
></script>

Tracks on all subdomains of example.com.

Proxy Mode

Bypass ad blockers by proxying the tracking script and API calls through your domain:

Enable Proxy in SDK

app/layout.tsx
<EntrolyticsProvider
  websiteId="your-website-id"
  proxy={{
    enabled: true,
    scriptPath: '/analytics.js',
    collectPath: '/api/collect',
    mode: 'cloak'
  }}
>
  {children}
</EntrolyticsProvider>

Set Up Rewrite Rules

next.config.js
module.exports = {
  async rewrites() {
    return [
      {
        source: '/analytics.js',
        destination: 'https://cloud.entrolytics.click/script.js'
      },
      {
        source: '/api/collect',
        destination: 'https://cloud.entrolytics.click/api/send'
      }
    ];
  }
};
location /analytics.js {
    proxy_pass https://cloud.entrolytics.click/script.js;
}

location /api/collect {
    proxy_pass https://cloud.entrolytics.click/api/send;
}
vercel.json
{
  "rewrites": [
    {
      "source": "/analytics.js",
      "destination": "https://cloud.entrolytics.click/script.js"
    },
    {
      "source": "/api/collect",
      "destination": "https://cloud.entrolytics.click/api/send"
    }
  ]
}

Now tracking requests appear to come from your domain, bypassing most ad blockers.

Advanced Configuration

Content Security Policy

If your site uses CSP headers, add Entrolytics to the allowlist:

Content-Security-Policy:
  script-src 'self' https://cloud.entrolytics.click;
  connect-src 'self' https://cloud.entrolytics.click;

Or for self-hosted:

Content-Security-Policy:
  script-src 'self' https://analytics.yourdomain.com;
  connect-src 'self' https://analytics.yourdomain.com;

Next Steps