> ## Documentation Index
> Fetch the complete documentation index at: https://docs.taginsight.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Setting Up Audits

> Configure automated audits to monitor your tracking implementation

## Overview

Audits are the heart of Tag Insight's monitoring capabilities. They continuously compare your live tracking implementation against your tracking plan, alerting you to any discrepancies or issues.

## How audits work

<Note>
  Unlike traditional tools that use robots, Tag Insight audits analyze real user traffic, providing comprehensive coverage of all user journeys.
</Note>

### The audit process

<Steps>
  <Step title="Traffic Collection">
    The Tag Insight pixel captures data layer events from real user traffic
  </Step>

  <Step title="Validation">
    Each event is validated against your tracking plan rules
  </Step>

  <Step title="Issue Detection">
    Any discrepancies are identified and categorized
  </Step>

  <Step title="Alert Generation">
    Notifications are sent based on your alert configuration
  </Step>

  <Step title="Reporting">
    Detailed reports show all issues found during the audit period
  </Step>
</Steps>

## Creating your first audit

### Quick setup

<Steps>
  <Step title="Navigate to Audits">
    From your project, go to **Monitoring > Audits**
  </Step>

  <Step title="Click New Audit">
    Select **+ New Audit** to configure your audit
  </Step>

  <Step title="Basic Configuration">
    * **Name**: "Daily Production Audit"
    * **Tracking Plan**: Select your active tracking plan
    * **Schedule**: Daily at 9:00 AM
  </Step>

  <Step title="Save and Activate">
    Review settings and activate your audit
  </Step>
</Steps>

## Audit configuration options

### Schedule types

<img src="https://mintcdn.com/taginsight/poFMsZzsIjoQTyP7/images/schedule_audit.png?fit=max&auto=format&n=poFMsZzsIjoQTyP7&q=85&s=e17b6780d29a64f12947bd915037bb0b" alt="Schedule Audit" style={{borderRadius: "8px", margin: "20px 0"}} width="2862" height="1688" data-path="images/schedule_audit.png" />

<Tabs>
  <Tab title="Continuous">
    **Real-time monitoring of all traffic**

    Best for:

    * Production environments
    * Critical tracking
    * Immediate issue detection

    ```javascript theme={null}
    {
      type: "continuous",
      sampling: "100%",
      alertDelay: "5 minutes"
    }
    ```
  </Tab>

  <Tab title="Scheduled">
    **Run at specific times**

    Best for:

    * Regular health checks
    * Staging environments
    * Cost optimization

    ```javascript theme={null}
    {
      type: "scheduled",
      frequency: "daily",
      time: "09:00",
      duration: "1 hour"
    }
    ```
  </Tab>

  <Tab title="On-Demand">
    **Manual trigger only**

    Best for:

    * Pre-release testing
    * Debugging specific issues
    * Ad-hoc validation

    ```javascript theme={null}
    {
      type: "manual",
      defaultDuration: "30 minutes"
    }
    ```
  </Tab>
</Tabs>

### Frequency options

For scheduled audits, choose:

* **Hourly**: Every hour on the hour
* **Daily**: Once per day at specified time
* **Weekly**: Specific days and times
* **Monthly**: Specific date and time
* **Custom**: Cron expression for complex schedules

### Scope configuration

Define what to audit:

<AccordionGroup>
  <Accordion title="Full Tracking Plan">
    Monitor all events and variables in your tracking plan

    ```javascript theme={null}
    scope: {
      type: "full",
      trackingPlan: "main-plan-v2"
    }
    ```
  </Accordion>

  <Accordion title="Specific Events">
    Focus on critical events only

    ```javascript theme={null}
    scope: {
      type: "events",
      events: ["purchase", "add_to_cart", "checkout_start"]
    }
    ```
  </Accordion>

  <Accordion title="Event Categories">
    Monitor events by category

    ```javascript theme={null}
    scope: {
      type: "category",
      categories: ["ecommerce", "critical"]
    }
    ```
  </Accordion>

  <Accordion title="URL Patterns">
    Audit specific pages or sections

    ```javascript theme={null}
    scope: {
      type: "urls",
      patterns: ["/checkout/*", "/products/*"]
    }
    ```
  </Accordion>
</AccordionGroup>

## Sampling strategies

Choose how much traffic to analyze:

### Sampling options

<CardGroup cols={2}>
  <Card title="100% Traffic" icon="infinity">
    **Analyze all events**

    * Most comprehensive
    * Higher cost
    * Best for critical tracking
  </Card>

  <Card title="Percentage Sampling" icon="percentage">
    **Analyze a percentage**

    * Cost-effective
    * Statistically significant
    * Good for high-traffic sites
  </Card>

  <Card title="Event Sampling" icon="filter">
    **Sample by event count**

    * Fixed number of events
    * Predictable costs
    * Good for testing
  </Card>

  <Card title="Smart Sampling" icon="brain">
    **AI-optimized sampling**

    * Focuses on anomalies
    * Efficient coverage
    * Best value
  </Card>
</CardGroup>

### Sampling configuration

```javascript theme={null}
// 100% sampling for critical events
{
  sampling: {
    default: "10%",
    overrides: {
      "purchase": "100%",
      "payment_error": "100%",
      "page_view": "1%"
    }
  }
}
```

## Alert configuration

### Alert channels

<Steps>
  <Step title="Email Alerts">
    Default notification method

    * Instant notifications
    * Detailed issue reports
    * Multiple recipients
  </Step>

  <Step title="Slack Integration">
    Real-time team notifications

    * Channel-specific alerts
    * Severity-based routing
    * Interactive responses
  </Step>
</Steps>

### Alert rules

Configure when to send alerts:

<Tabs>
  <Tab title="Threshold-Based">
    ```javascript theme={null}
    alerts: {
      rules: [{
        condition: "error_rate > 5%",
        severity: "critical",
        channels: ["email", "slack"]
      }]
    }
    ```
  </Tab>

  <Tab title="Event-Specific">
    ```javascript theme={null}
    alerts: {
      rules: [{
        event: "purchase",
        condition: "any_error",
        severity: "critical",
        channels: ["email", "pagerduty"]
      }]
    }
    ```
  </Tab>

  <Tab title="Pattern-Based">
    ```javascript theme={null}
    alerts: {
      rules: [{
        pattern: "missing_variable",
        variable: "transaction_id",
        severity: "high",
        channels: ["email"]
      }]
    }
    ```
  </Tab>
</Tabs>

### Alert severity levels

* **Critical**: Immediate attention required (purchase tracking broken)
* **High**: Important issues (key events affected)
* **Medium**: Should be addressed soon (non-critical events)
* **Low**: Informational (minor validation issues)

## Advanced audit features

### Exclusion rules

Prevent false positives by excluding:

<AccordionGroup>
  <Accordion title="URL Exclusions">
    ```javascript theme={null}
    exclusions: {
      urls: [
        "/admin/*",
        "/test/*",
        "*/preview/*"
      ]
    }
    ```
  </Accordion>

  <Accordion title="User Agent Exclusions">
    ```javascript theme={null}
    exclusions: {
      userAgents: [
        "Googlebot",
        "internal-monitoring",
        "synthetic-tests"
      ]
    }
    ```
  </Accordion>

  <Accordion title="IP Exclusions">
    ```javascript theme={null}
    exclusions: {
      ips: [
        "192.168.1.0/24",
        "10.0.0.0/8"
      ]
    }
    ```
  </Accordion>
</AccordionGroup>

### Custom validation rules

Add business-specific validation:

```javascript theme={null}
customRules: [{
  name: "Valid Transaction ID Format",
  applies_to: "purchase",
  validation: "transaction_id.match(/^TXN-[0-9]{10}$/)",
  severity: "high"
}]
```

### Baseline comparison

Compare against historical data:

```javascript theme={null}
baseline: {
  enabled: true,
  period: "last_7_days",
  deviation_threshold: "20%",
  alert_on_anomaly: true
}
```

## Audit reports

### Report components

Each audit report includes:

1. **Summary Statistics**
   * Total events analyzed
   * Error rate
   * Top issues
   * Trend analysis

2. **Issue Details**
   * Specific errors found
   * Affected pages/events
   * Sample data layers
   * Fix recommendations

3. **Performance Metrics**
   * Audit duration
   * Events per second
   * Coverage statistics

### Reading audit reports

<Note>
  Focus on the "Critical Issues" section first - these have the highest business impact.
</Note>

#### Issue types

* **Missing Events**: Expected events not firing
* **Missing Variables**: Required variables absent
* **Invalid Values**: Values don't match validation rules
* **Type Mismatches**: Wrong data types (string vs number)
* **Pattern Violations**: Values don't match expected patterns

## Best practices

### Audit strategy

<Steps>
  <Step title="Start with Critical Events">
    Begin monitoring purchase and key conversion events
  </Step>

  <Step title="Expand Coverage">
    Gradually add more events as confidence grows
  </Step>

  <Step title="Optimize Sampling">
    Adjust sampling based on traffic and budget
  </Step>

  <Step title="Refine Alerts">
    Tune alert rules to reduce noise
  </Step>
</Steps>

### Recommended configurations

#### E-commerce sites

```javascript theme={null}
{
  name: "E-commerce Critical Path",
  schedule: "continuous",
  sampling: {
    default: "10%",
    purchase_events: "100%"
  },
  alerts: {
    purchase_errors: "critical",
    cart_errors: "high",
    other: "medium"
  }
}
```

#### Media sites

```javascript theme={null}
{
  name: "Content Engagement Tracking",
  schedule: "hourly",
  sampling: "5%",
  focus: ["page_view", "article_read", "video_play"],
  baseline_comparison: true
}
```

#### SaaS applications

```javascript theme={null}
{
  name: "User Journey Monitoring",
  schedule: "continuous",
  sampling: "25%",
  events: ["signup", "feature_use", "subscription_change"],
  alert_channels: ["slack", "pagerduty"]
}
```

## Troubleshooting

### Common issues

<AccordionGroup>
  <Accordion title="No Data in Audit Reports">
    * Verify pixel is installed and active
    * Check audit schedule hasn't started yet
    * Ensure traffic is reaching monitored pages
  </Accordion>

  <Accordion title="Too Many False Positives">
    * Review and update validation rules
    * Add appropriate exclusions
    * Consider optional vs required variables
  </Accordion>

  <Accordion title="Missing Critical Issues">
    * Increase sampling rate
    * Verify tracking plan is complete
    * Check scope configuration
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Configure Alerts" icon="bell" href="/monitoring/alerts">
    Set up alert rules and notifications
  </Card>

  <Card title="Understand Reports" icon="chart-bar" href="/monitoring/audit-reports">
    Learn to interpret audit reports
  </Card>

  <Card title="Data Layer Collector" icon="database" href="/monitoring/data-layer-collector">
    Set up data layer logging
  </Card>

  <Card title="Best Practices" icon="star" href="/best-practices/performance">
    Optimize your audit configuration
  </Card>
</CardGroup>
