Audience Segmentation Explorer

*{box-sizing:border-box;margin:0;padding:0}
:root{–bg:#0f172a;–card:#1e293b;–accent:#3b82f6;–accent2:#8b5cf6;–green:#10b981;–yellow:#f59e0b;–red:#ef4444;–text:#e2e8f0;–muted:#94a3b8}
body{font-family:’Segoe UI‘,system-ui,sans-serif;background:var(–bg);color:var(–text);padding:20px;line-height:1.6}
.wrap{max-width:1100px;margin:0 auto}
h1{font-size:1.6rem;margin:4px 0 16px;background:linear-gradient(90deg,var(–accent),var(–accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.sub{color:var(–muted);margin-bottom:20px;font-size:.9rem}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:700px){.grid{grid-template-columns:1fr}}
.card{background:var(–card);border-radius:12px;padding:16px;border:1px solid #334155}
.card h3{font-size:.95rem;margin-bottom:12px;color:var(–muted)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:20px}
.stat{background:var(–card);border-radius:10px;padding:14px;text-align:center;border:1px solid #334155}
.stat .val{font-size:1.8rem;font-weight:700}
.stat .lbl{font-size:.75rem;color:var(–muted);text-transform:uppercase;letter-spacing:.5px}
canvas{width:100%!important;height:200px!important}
.journey-step{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #1e293b;font-size:.85rem}
.step-num{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(–accent),var(–accent2));color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}
.step-lbl{flex:1;color:cbd5e1}
.step-pct{color:var(–muted);font-size:.8rem}

👥 Audience Segmentation Explorer

Reviewed: June 4, 2026

Understand reader journeys, returning vs. new visitors, and content preference patterns.

68%
Returning Visitors
32%
New Visitors
4.2
Pages / Session
6m 14s
Avg Read Time

🗺️ Reader Journey Funnel

1
Land on blog post
100%
2
Scroll past intro (30+ sec)
64%
3
Read to midpoint
41%
4
Click related article
28%
5
Explore interactive tool
18%
6
Return within 7 days
12%

🫧 Segment Distribution

📊 New vs Returning Trend

⭐ Content Preferences by Segment

function drawDoughnut(canvasId,data){
const c=document.getElementById(canvasId);
const ctx=c.getContext(‚2d‘);
const W=c.offsetWidth,H=200;
c.width=W;c.height=H;
const cx=W/2,cy=H/2,r=70,ir=45;
const colors=[‚#3b82f6′,’#8b5cf6′,’#10b981′,’#f59e0b‘];
let a=-Math.PI/2;
const total=data.reduce((s,x)=>s+x.v,0);
data.forEach((d,i)=>{
const sweep=d.v/total*Math.PI*2;
ctx.beginPath();
ctx.arc(cx,cy,r,a,a+sweep);
ctx.arc(cx,cy,ir,a+sweep,a,true);
ctx.closePath();
ctx.fillStyle=colors[i];ctx.fill();
a+=sweep;
});
// center text
ctx.fillStyle=’#e2e8f0′;ctx.font=’bold 24px system-ui‘;ctx.textAlign=’center‘;
ctx.fillText(total+’%‘,cx,cy+8);
// legend
let ly=10;
data.forEach((d,i)=>{
ctx.fillStyle=colors[i];ctx.fillRect(8,ly,10,10);
ctx.fillStyle=’#e2e8f0′;ctx.font=’11px system-ui‘;ctx.textAlign=’left‘;
ctx.fillText(d.l+‘ — ‚+d.v+’%‘,24,ly+9);
ly+=18;
});
}

function drawLine(canvasId,data,labels,color){
const c=document.getElementById(canvasId);
const ctx=c.getContext(‚2d‘);
const W=c.offsetWidth,H=200;
c.width=W;c.height=H;
const pad=30,x0=pad,y0=H-pad,x1=W-pad,y1=pad;
const maxY=Math.max(…data);
ctx.clearRect(0,0,W,H);
ctx.strokeStyle=’#334155′;
for(let i=0;i{
const x=x0+(x1-x0)*i/(data.length-1);
const y=y0-(y0-y1)*d/maxY;
i===0?ctx.moveTo(x,y):ctx.lineTo(x,y);
});
ctx.stroke();
data.forEach((d,i)=>{
const x=x0+(x1-x0)*i/(data.length-1);
const y=y0-(y0-y1)*d/maxY;
ctx.beginPath();ctx.arc(x,y,3,0,Math.PI*2);ctx.fillStyle=color;ctx.fill();
ctx.fillStyle=’#94a3b8′;ctx.font=’9px system-ui‘;
ctx.fillText(labels[i],x-10,H-8);
});
}

function drawHBar(canvasId,bars){
const c=document.getElementById(canvasId);
const ctx=c.getContext(‚2d‘);
const W=c.offsetWidth,H=200;
c.width=W;c.height=H;
const barH=20,startY=10,maxV=100;
const lpad=100,rpad=10;
bars.forEach((b,i)=>{
const y=startY+i*(barH+8);
ctx.fillStyle=’#94a3b8′;ctx.font=’11px system-ui‘;ctx.textAlign=’right‘;
ctx.fillText(b.l,lpad-8,y+15);
ctx.fillStyle=’#334155′;
ctx.beginPath();ctx.roundRect(lpad,y,W-lpad-rpad,barH,[4]);ctx.fill();
ctx.fillStyle=b.c||’#3b82f6′;
const w=(W-lpad-rpad-4)*b.v/100;
if(w>0){ctx.beginPath();ctx.roundRect(lpad+2,y+2,w,barH-4,[3]);ctx.fill();}
ctx.fillStyle=’#e2e8f0′;ctx.font=’10px system-ui‘;ctx.textAlign=’left‘;
ctx.fillText(b.v+’%‘,lpad+w+6,y+15);
});
}

drawDoughnut(’segmentChart‘,[
{l:’AI Engineers‘,v:35},{l:’CTOs / Tech Leads‘,v:28},{l:’Researchers‘,v:22},{l:’Students‘,v:15}
]);
drawLine(‚retentionChart‘,[25,28,30,32,31,33,32,34,32,33],[‚W142′,’W143′,’W144′,’W145′,’W146′,’W147′,’W148′,’W149′,’W150′,’W151′],’#8b5cf6‘);
drawHBar(‚prefChart‘,[
{l:’Deep Guides‘,v:85,c:’#3b82f6′},{l:’Tools‘,v:72,c:’#8b5cf6′},{l:’Tutorials‘,v:68,c:’#10b981′},
{l:’Analysis‘,v:55,c:’#f59e0b‘},{l:’News‘,v:38,c:’#ef4444′},
{l:’Opinion‘,v:25,c:’#06b6d4′}
]);

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert