Skip to main content
GET
https://searchcompany-main.up.railway.app
/
tracking.js
curl https://searchcompany-main.up.railway.app/tracking.js
(function() {
  var ua = navigator.userAgent.toLowerCase();
  var aiPatterns = [
    'gptbot', 'chatgpt', 'openai',
    'claudebot', 'anthropic',
    'gemini', 'google-extended',
    'perplexitybot',
    'bingbot', 'copilot',
    'deepseek',
    'grok', 'xai',
    'googlebot'
  ];
  
  var isAI = aiPatterns.some(function(p) { return ua.indexOf(p) !== -1; });
  
  if (isAI || ua.indexOf('bot') !== -1) {
    fetch('https://searchcompany-main.up.railway.app/api/ai-recommendation-store', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        page_url: window.location.href,
        page_type: 'ai_site',
        page_title: document.title,
        user_agent: navigator.userAgent,
        referrer: document.referrer || null
      })
    }).catch(function() {});
  }
})();
Serves a dynamic JavaScript file that tracks AI recommendations (bot visits). This script is loaded by AI-optimized sites and can be updated without regenerating the sites. 1 AI recommendation = 1 AI bot visiting your site No authentication required - this is a public endpoint.

Why Dynamic?

Instead of hardcoding tracking logic into each AI site, we serve it dynamically:
  • Update tracking logic without redeploying AI sites
  • Add new AI platforms instantly across all sites
  • Fix bugs immediately without regeneration
  • 1-hour cache for performance

Usage

Add this script tag to any page you want to track:
<script src="https://searchcompany-main.up.railway.app/tracking.js"></script>
No attributes needed! The script automatically determines the entity from the page’s domain by looking up the AI site in the database.

What It Tracks

Detects when AI crawlers visit your site. Each visit = 1 AI recommendation.
PlatformUser-Agent Patterns
ChatGPTgptbot, chatgpt, openai
Claudeclaudebot, anthropic
Geminigemini, google-extended
Perplexityperplexitybot
Copilotbingbot, copilot
DeepSeekdeepseek
Grokgrok, xai
Googlegooglebot

Response

Returns JavaScript with Content-Type: application/javascript:
(function () {
  var scripts = document.getElementsByTagName("script");
  var currentScript = scripts[scripts.length - 1];
  var entityId = currentScript.getAttribute("data-entity-id") || "";

  // ... tracking logic ...
})();

Headers

HeaderValue
Content-Typeapplication/javascript
Cache-Controlpublic, max-age=3600
Access-Control-Allow-Origin*
curl https://searchcompany-main.up.railway.app/tracking.js
(function() {
  var ua = navigator.userAgent.toLowerCase();
  var aiPatterns = [
    'gptbot', 'chatgpt', 'openai',
    'claudebot', 'anthropic',
    'gemini', 'google-extended',
    'perplexitybot',
    'bingbot', 'copilot',
    'deepseek',
    'grok', 'xai',
    'googlebot'
  ];
  
  var isAI = aiPatterns.some(function(p) { return ua.indexOf(p) !== -1; });
  
  if (isAI || ua.indexOf('bot') !== -1) {
    fetch('https://searchcompany-main.up.railway.app/api/ai-recommendation-store', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        page_url: window.location.href,
        page_type: 'ai_site',
        page_title: document.title,
        user_agent: navigator.userAgent,
        referrer: document.referrer || null
      })
    }).catch(function() {});
  }
})();