AI Visibility Analysis
Analyzing your website
This usually takes about 60 seconds
- Looking up company data
- Checking ChatGPT index
- Scanning for schema markup
- Checking Gemini visibility
- Running AI visibility analysis
- Generating your report
Building your report0%
(function(){
var params = new URLSearchParams(window.location.search);
var token = params.get(‘report_token’) || params.get(‘token’);
var url = params.get(‘url’) || params.get(‘website_url’);
if(url){
var d = document.getElementById(‘ut’);
if(d) d.textContent = url.replace(/^https?://(www.)?/,”).replace(//$/,”);
}
var steps = [‘s0′,’s1′,’s2′,’s3′,’s4′,’s5’];
// Step timing in ms — spread across ~54 seconds
var stepTimes = [0, 7000, 15000, 24000, 35000, 47000];
var tips = [
‘🔎 Looking up your company in our enrichment database.’,
‘🤖 Checking how ChatGPT currently indexes your domain.’,
‘📄 Scanning your HTML for schema markup and structured data.’,
‘✨ Checking your presence and citation signals in Gemini.’,
‘📈 Running your full AI visibility analysis across all four signals.’,
‘🏆 Almost done. Building your personalized report now.’
];
function setStep(i){
steps.forEach(function(id, idx){
var el = document.getElementById(id);
if(!el) return;
el.className = idx < i ? 'done' : (idx === i ? 'active' : '');
});
var tb = document.getElementById('tip-box');
if(tb && tips[i]) tb.innerHTML = '
‘ + tips[i] + ‘‘;
}
function setProgress(pct){
var pf = document.getElementById(‘pf’);
var pp = document.getElementById(‘pp’);
if(pf) pf.style.width = pct + ‘%’;
if(pp) pp.textContent = Math.round(pct) + ‘%’;
}
// Activate steps on schedule
stepTimes.forEach(function(t, i){
setTimeout(function(){ setStep(i); }, t);
});
// Smooth progress bar over 57 seconds (0 -> 95%)
var startTime = Date.now();
var duration = 57000;
var progressInterval = setInterval(function(){
var elapsed = Date.now() – startTime;
var pct = Math.min(95, (elapsed / duration) * 95);
setProgress(pct);
if(elapsed >= duration) clearInterval(progressInterval);
}, 300);
// Poll for report
var pollStart = 20000;
var pollInterval = 5000;
var maxWait = 120000;
var pollCount = 0;
function checkReport(){
if(!token) return;
var reportUrl = ‘https://rivetline.ai/ai-visibility-score/’ + token + ‘/’;
fetch(reportUrl, {method:’HEAD’})
.then(function(r){
if(r.ok && r.status === 200){
clearInterval(progressInterval);
setStep(5);
setProgress(100);
setTimeout(function(){ window.location.href = reportUrl; }, 800);
} else {
scheduleNextPoll();
}
})
.catch(function(){ scheduleNextPoll(); });
}
function scheduleNextPoll(){
pollCount++;
var elapsed = pollStart + (pollCount * pollInterval);
if(elapsed < maxWait){
setTimeout(checkReport, pollInterval);
}
}
setTimeout(checkReport, pollStart);
})();