AlphaWe’re still building this tool. Results may be incomplete or inaccurate, and features may change.It’s publicly accessible so others can try it and share feedback.

Vue Integration

Add AI Search Index to your Vue.js application.

Method 1: HTML Script Tag (Recommended)

Add the script to your index.html:

index.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>My Vue App</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
    
    <!-- AI Search Index Tracking Pixel -->
    <script 
      src="https://www.aisearchindex.com/pixel.js" 
      data-tid="YOUR_TRACKING_ID"
      data-spa="true"
      async
    ></script>
    <noscript><img src="https://www.aisearchindex.com/api/pixel?tid=YOUR_TRACKING_ID" width="1" height="1" style="position:absolute;left:-9999px;visibility:hidden" alt="" /></noscript>
  </body>
</html>

Method 2: Vue 3 Composable

Create a composable to manage the tracking script:

src/composables/useAISearchIndex.ts
import { onMounted, onUnmounted } from 'vue'

interface Options {
  trackingId: string
  spa?: boolean
  debug?: boolean
}

export function useAISearchIndex(options: Options) {
  let script: HTMLScriptElement | null = null

  onMounted(() => {
    if (document.querySelector('script[data-ais-pixel]')) return

    script = document.createElement('script')
    script.src = 'https://www.aisearchindex.com/pixel.js'
    script.async = true
    script.setAttribute('data-tid', options.trackingId)
    script.setAttribute('data-ais-pixel', 'true')
    
    if (options.spa !== false) {
      script.setAttribute('data-spa', 'true')
    }
    if (options.debug) {
      script.setAttribute('data-debug', 'true')
    }
    
    document.body.appendChild(script)
  })

  onUnmounted(() => {
    if (script) script.remove()
  })
}

Use it in your App.vue:

src/App.vue
<script setup lang="ts">
import { useAISearchIndex } from './composables/useAISearchIndex'

useAISearchIndex({
  trackingId: 'YOUR_TRACKING_ID',
  spa: true,
})
</script>

<template>
  <RouterView />
</template>

Using Vue Router?

Enable SPA mode to automatically track route changes:

<script 
  src="https://www.aisearchindex.com/pixel.js" 
  data-tid="YOUR_TRACKING_ID"
  data-spa="true"
  async
></script>
<noscript><img src="https://www.aisearchindex.com/api/pixel?tid=YOUR_TRACKING_ID" width="1" height="1" style="position:absolute;left:-9999px;visibility:hidden" alt="" /></noscript>

SPA mode works with Vue Router 3 and 4, as well as other routing solutions.

Nuxt 3

For Nuxt 3 projects, use the useHead composable:

app.vue or a plugin
<script setup>
useHead({
  script: [
    {
      src: 'https://www.aisearchindex.com/pixel.js',
      'data-tid': 'YOUR_TRACKING_ID',
      'data-spa': 'true',
      async: true,
    },
  ],
})
</script>

<template>
  <NuxtPage />
</template>

Alternatively, add it to your nuxt.config.ts:

nuxt.config.ts
export default defineNuxtConfig({
  app: {
    head: {
      script: [
        {
          src: 'https://www.aisearchindex.com/pixel.js',
          'data-tid': 'YOUR_TRACKING_ID',
          'data-spa': 'true',
          async: true,
        },
      ],
    },
  },
})