PageSourceSearch

https://www.pvuv.ai/

html pvuv.ai collected 2026-10-05 12:26:35 UTC 71,392 bytes, 478 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en"><head>
3  <meta charset="UTF-8">
4  <meta name="viewport" content="width=device-width, initial-scale=1.0">
5  <title>Google Analytics Alternative — Open-Source Web Analytics</title>
6  <meta name="description" content="A free, open-source Google Analytics alternative — hosted or self-hosted. Scores every visit for authenticity and flags invalid traffic and bots.">
7  <meta name="author" content="PVUV.ai">
8  <meta name="theme-color" content="#46407d">
9  <link rel="icon" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%2211.56%2049.38%20619.94%20619.94%22%20role%3D%22img%22%20aria-label%3D%22pvuv.ai%22%3E%20%3Ctitle%3Epvuv.ai%3C%2Ftitle%3E%20%3Cstyle%3E.body%7Bfill%3A%2346407d%7D%40media%20(prefers-color-scheme%3Adark)%7B.body%7Bfill%3A%239b93d9%7D%7D%3C%2Fstyle%3E%20%3Cpath%20class%3D%22body%22%20d%3D%22M%20414.92%20382.11%20%20%20A%201.59%201.58%20-67.3%200%200%20415.54%20383.63%20%20%20Q%20430.74%20394.82%20443.54%20407.91%20%20%20Q%20460.74%20425.47%20466.30%20448.40%20%20%20C%20472.21%20472.78%20468.25%20499.23%20462.17%20523.97%20%20%20A%204.18%204.02%20-23.0%200%201%20461.64%20525.21%20%20%20Q%20459.13%20529.19%20454.95%20528.41%20%20%20Q%20452.99%20528.05%20449.48%20523.81%20%20%20Q%20422.47%20491.17%20387.27%20456.45%20%20%20C%20386.12%20455.31%20384.71%20454.36%20382.72%20454.33%20%20%20C%20378.98%20454.28%20372.68%20453.43%20367.76%20453.49%20%20%20Q%20349.34%20453.71%20345.54%20453.54%20%20%20Q%20342.86%20453.41%20341.84%20450.77%20%20%20A%201.63%201.60%20-55.7%200%201%20341.74%20450.21%20%20%20Q%20341.72%20413.90%20341.81%20339.57%20%20%20Q%20341.81%20336.66%20345.32%20336.70%20%20%20Q%20357.95%20336.82%20363.49%20336.72%20%20%20A%204.04%203.85%20-53.1%200%200%20364.63%20336.53%20%20%20Q%20370.03%20334.77%20369.27%20328.77%20%20%20A%202.96%202.88%2025.8%200%200%20368.81%20327.51%20%20%20C%20366.00%20323.34%20361.17%20317.82%20358.41%20314.20%20%20%20Q%20335.88%20284.57%20327.89%20274.17%20%20%20C%20321.98%20266.49%20317.22%20271.39%20312.79%20277.33%20%20%20Q%20298.29%20296.81%20278.06%20323.16%20%20%20C%20275.23%20326.85%20273.38%20328.80%20274.72%20333.02%20%20%20C%20275.67%20336.02%20278.88%20336.61%20281.93%20336.62%20%20%20Q%20296.72%20336.67%20298.49%20336.69%20%20%20C%20301.01%20336.71%20301.38%20338.04%20301.38%20340.37%20%20%20Q%20301.43%20377.51%20301.45%20448.33%20%20%20C%20301.45%20452.65%20299.41%20453.70%20295.39%20453.61%20%20%20Q%20293.53%20453.56%20278.21%20453.47%20%20%20C%20271.35%20453.42%20266.14%20454.07%20259.39%20454.57%20%20%20A%203.11%203.01%20-61.9%200%200%20257.99%20455.02%20%20%20Q%20256.51%20455.92%20255.07%20457.32%20%20%20Q%20250.38%20461.88%20230.59%20482.33%20%20%20Q%20211.80%20501.75%20201.10%20515.34%20%20%20C%20196.74%20520.88%20192.09%20527.82%20188.41%20528.39%20%20%20Q%20184.48%20528.99%20181.81%20525.62%20%20%20A%203.35%203.35%200.0%200%201%20181.17%20524.34%20%20%20C%20174.49%20498.13%20170.11%20468.95%20178.33%20443.03%20%20%20Q%20184.77%20422.71%20201.09%20406.28%20%20%20Q%20214.51%20392.77%20227.50%20383.27%20%20%20A%200.97%200.96%2067.9%200%200%20227.88%20382.36%20%20%20C%20223.79%20354.57%20222.38%20326.37%20224.67%20298.19%20%20%20Q%20230.08%20231.51%20267.68%20178.26%20%20%20C%20281.46%20158.76%20297.20%20141.42%20315.90%20126.65%20%20%20C%20319.72%20123.64%20323.46%20123.95%20327.52%20126.81%20%20%20Q%20331.94%20129.93%20337.38%20134.90%20%20%20Q%20362.92%20158.21%20381.21%20186.56%20%20%20Q%20414.86%20238.71%20418.74%20300.48%20%20%20Q%20421.36%20342.10%20414.92%20382.11%20%20%20Z%22%2F%3E%20%3Cpath%20fill%3D%22%23fe8913%22%20d%3D%22M%20321.60%20594.18%20%20%20Q%20318.54%20594.18%20315.59%20591.67%20%20%20C%20293.54%20572.90%20275.37%20546.18%20269.03%20517.45%20%20%20Q%20266.92%20507.85%20267.56%20499.29%20%20%20C%20268.00%20493.36%20269.67%20480.04%20274.87%20477.08%20%20%20Q%20276.24%20476.30%20280.47%20476.29%20%20%20Q%20301.23%20476.27%20321.60%20476.27%20%20%20Q%20341.97%20476.27%20362.73%20476.29%20%20%20Q%20366.96%20476.30%20368.33%20477.08%20%20%20C%20373.53%20480.04%20375.20%20493.3
96%20375.64%20499.29%20%20%20Q%20376.28%20507.85%20374.17%20517.45%20%20%20C%20367.83%20546.18%20349.66%20572.90%20327.61%20591.67%20%20%20Q%20324.66%20594.18%20321.60%20594.18%20%20%20Z%22%2F%3E%20%3C%2Fsvg%3E" type="image/svg+xml">
10  <link rel="canonical" href="https://www.pvuv.ai/">
11
12  <!-- Open Graph / social -->
13  <meta property="og:type" content="website">
14  <meta property="og:site_name" content="PVUV.ai">
15  <meta property="og:title" content="Google Analytics Alternative — Open-Source Web Analytics">
16  <meta property="og:description" content="A free, open-source Google Analytics alternative — hosted or self-hosted. Scores every visit for authenticity and flags invalid traffic and bots.">
17  <meta property="og:url" content="https://www.pvuv.ai/">
18  <meta name="twitter:card" content="summary_large_image">
19  <meta name="twitter:title" content="Google Analytics Alternative — Open-Source Web Analytics">
20  <meta name="twitter:description" content="A free, open-source Google Analytics alternative — hosted or self-hosted. Scores every visit for authenticity and flags invalid traffic and bots.">
21
22  <link rel="preconnect" href="https://github.com">
23  <link rel="stylesheet" href="/_assets/site.css">
24<meta property="og:locale" content="en_US"><meta property="og:locale:alternate" content="zh_CN"><link rel="alternate" hreflang="en" href="https://www.pvuv.ai/"><link rel="alternate" hreflang="zh-Hans" href="https://www.pvuv.ai/zh"><link rel="alternate" hreflang="x-default" href="https://www.pvuv.ai/"><meta property="og:image" content="https://www.pvuv.ai/og-image.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="og:image:alt" content="PVUV.ai — open-source Google Analytics alternative"><meta name="twitter:image" content="https://www.pvuv.ai/og-image.png">
24<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","name":"PVUV.ai","url":"https://www.pvuv.ai/","inLanguage":"en"},{"@type":"SoftwareApplication","name":"PVUV.ai","applicationCategory":"BusinessApplication","operatingSystem":"Cloudflare Workers","description":"Open-source, self-hosted Google Analytics alternative with built-in invalid-traffic detection and ad protection, running on Cloudflare Workers + D1.","url":"https://www.pvuv.ai/","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"}},{"@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Do I have to self-host PVUV.ai, or is there a hosted version?","acceptedAnswer":{"@type":"Answer","text":"There is a free hosted version — sign in at pvuv.ai and start measuring in minutes, with no setup. Prefer full control? Self-host the open-source build on your own Cloudflare account. The analytics is free both ways; only the optional AI analysis and recommendations are a paid add-on."}},{"@type":"Question","name":"Is PVUV.ai a free, open-source Google Analytics alternative?","acceptedA
24nswer":{"@type":"Answer","text":"Yes. All the analytics is free — traffic stats, invalid-traffic detection and ad protection — whether you use the free hosted version at pvuv.ai or self-host the open-source (AGPL-3.0) build. Only the optional AI analysis and recommendations are a paid add-on."}},{"@type":"Question","name":"How is PVUV.ai different from Google Analytics (GA4)?","acceptedAnswer":{"@type":"Answer","text":"Beyond PV/UV and standard web analytics, PVUV.ai scores every visit for authenticity, detects invalid traffic and bots that only reveal themselves in aggregate, and can protect your ad revenue — capabilities GA4 does not offer. It is also privacy-friendly and needs no cookies."}},{"@type":"Question","name":"Can I self-host PVUV.ai?","acceptedAnswer":{"@type":"Answer","text":"Yes. PVUV.ai runs entirely on Cloudflare Workers + D1 in your own account — no external database and no server to maintain. You can be collecting data right after deploying a few Workers."}},{"@type":"Question","name":"Is PVUV.ai privacy-friendly and GDPR-conscious?","acceptedA
24nswer":{"@type":"Answer","text":"It is built to minimize what it stores: IPs are hashed and never kept in plaintext, fingerprints are stored as conclusions only, and mobile-sensor signals are coarse booleans you can switch off. As the deployer you stay in control of compliance."}},{"@type":"Question","name":"Does PVUV.ai replace Google Analytics for ad-supported sites?","acceptedAnswer":{"@type":"Answer","text":"Yes — it is designed for sites that monetize with ads. On top of analytics, its invalid-traffic detection and optional ad protection help keep bots from dragging down your ad accounts."}}]}]}</script>
24</head>
25<body>
26  <a class="skip-link" href="#main">Skip to content</a>
27
28  <!-- ===================== Header ===================== -->
29  <header class="site-header" id="top">
30    <div class="container header-inner">
31      <a class="brand" href="#top" aria-label="PVUV.ai">
32        <svg class="brand-logo brand-logo-light" xmlns="http://www.w3.org/2000/svg" viewBox="175.9 157.5 1876.7 470.3" role="img" aria-label="PVUV.ai">
33  
34  <g transform="translate(71.40,94.08) scale(0.8310)">
35    <path fill="#46407d" d="M 414.92 382.11   A 1.59 1.58 -67.3 0 0 415.54 383.63   Q 430.74 394.82 443.54 407.91   Q 460.74 425.47 466.30 448.40   C 472.21 472.78 468.25 499.23 462.17 523.97   A 4.18 4.02 -23.0 0 1 461.64 525.21   Q 459.13 529.19 454.95 528.41   Q 452.99 528.05 449.48 523.81   Q 422.47 491.17 387.27 456.45   C 386.12 455.31 384.71 454.36 382.72 454.33   C 378.98 454.28 372.68 453.43 367.76 453.49   Q 349.34 453.71 345.54 453.54   Q 342.86 453.41 341.84 450.77   A 1.63 1.60 -55.7 0 1 341.74 450.21   Q 341.72 413.90 341.81 339.57   Q 341.81 336.66 345.32 336.70   Q 357.95 336.82 363.49 336.72   A 4.04 3.85 -53.1 0 0 364.63 336.53   Q 370.03 334.77 369.27 328.77   A 2.96 2.88 25.8 0 0 368.81 327.51   C 366.00 323.34 361.17 317.82 358.41 314.20   Q 335.88 284.57 327.89 274.17   C 321.98 266.49 317.22 271.39 312.79 277.33   Q 298.29 296.81 278.06 323.16   C 275.23 326.85 273.38 328.80 274.72 333.02   C 275.67 336.02 278.88 336.61 281.93 336.62   Q 296.72 336.67 298.49 336.69   C 301.01 336.71 301.38 338.04 301.38 340.37   Q 301.43 377.51 301.45 448.33   C 301.45 452.65 299.41 453.70 295.39 453.61   Q 293.53 453.56 278.21 453.47   C 271.35 453.42 266.14 454.07 259.39 454.57   A 3.11 3.01 -61.9 0 0 257.99 455.02   Q 256.51 455.92 255.07 457.32   Q 250.38 461.88 230.59 482.33   Q 211.80 501.75 201.10 515.34   C 196.74 520.88 192.09 527.82 188.41 528.39   Q 184.48 528.99 181.81 525.62   A 3.35 3.35 0.0 0 1 181.17 524.34   C 174.49 498.13 170.11 468.95 178.33 443.03   Q 184.77 422.71 201.09 406.28   Q 214.51 392.77 227.50 383.27   A 0.97 0.96 67.9 0 0 227.88 382.36   C 223.79 354.57 222.38 326.37 224.67 298.19   Q 230.08 231.51 267.68 178.26   C 281.46 158.76 297.20 141.42 315.90 126.65   C 319.72 123.64 323.46 123.95 327.52 126.81   Q 331.94 129.93 337.38 134.90   Q 362.92 158.21 381.21 186.56   Q 414.86 238.71 418.74 300.48   Q 421.36 342.10 414.92 382.11   Z"/>
36    <path fill="#fe8913" d="M 321.60 594.18   Q 318.54 594.18 315.59 591.67   C 293.54 572.90 275.37 546.18 269.03 517.45   Q 266.92 507.85 267.56 499.29   C 268.00 493.36 269.67 480.04 274.87 477.08   Q 276.24 476.30 280.47 476.29   Q 301.23 476.27 321.60 476.27   Q 341.97 476.27 362.73 476.29   Q 366.96 476.30 368.33 477.08   C 373.53 480.04 375.20 493.36 375.64 499.29   Q 376.28 507.85 374.17 517.45   C 367.83 546.18 349.66 572.90 327.61 591.67   Q 324.66 594.18 321.60 594.18   Z"/>
37  </g>
38  <path fill="#1e1b3a" d="   M 645.64 438.37   A 1.00 0.99 -89.2 0 0 644.62 439.37   L 644.62 523.34   A 0.12 0.06 73.2 0 1 644.61 523.39   C 643.81 526.67 641.49 527.73 638.06 527.71   Q 595.61 527.55 579.42 527.69   C 575.00 527.73 571.37 526.90 571.37 522.01   Q 571.45 305.92 571.35 263.75   Q 571.34 262.12 571.46 258.44   A 2.06 2.00 60.1 0 1 571.69 257.54   Q 573.50 253.97 576.77 253.96   C 624.57 253.79 651.68 253.19 692.44 253.38   Q 718.39 253.50 741.79 262.22   Q 746.14 263.84 755.51 269.24   C 776.55 281.39 787.99 301.75 792.29 325.67   Q 796.54 349.25 790.20 371.94   C 782.51 399.45 762.34 419.35 735.30 429.04   Q 712.58 437.19 690.95 438.08   Q 669.00 438.99 645.64 438.37   Z   M 644.61 380.45   A 2.08 2.08 0.0 0 0 646.65 382.53   Q 659.82 382.78 675.60 382.58   C 690.91 382.39 709.35 377.92 716.40 362.31   Q 721.42 351.18 719.32 337.42   C 716.31 317.61 700.09 310.28 682.00 309.90   Q 663.34 309.51 646.82 310.03   A 2.28 2.28 0.0 0 0 644.61 312.31   L 644.61 380.45   Z"/>
39  <path fill="#1e1b3a" d="   M 941.78 457.58   Q 973.07 358.23 1001.99 259.72   Q 1003.74 253.77 1010.78 253.82   Q 1052.02 254.08 1072.25 253.90   C 1074.60 253.88 1076.87 253.78 1078.49 255.26   Q 1081.10 257.64 1079.78 261.51   Q 1038.10 383.75 995.91 507.10   C 994.48 511.28 992.70 518.21 990.90 522.37   C 989.15 526.39 986.75 527.67 982.03 527.67   Q 899.36 527.74 895.62 527.61   Q 892.82 527.51 890.64 524.49   A 3.16 2.93 20.3 0 1 890.24 523.70   Q 851.97 409.30 845.67 390.15   Q 828.87 339.15 804.62 263.57   Q 803.21 259.19 803.67 257.83   C 804.62 255.08 806.86 254.10 8
3909.96 254.13   C 815.37 254.17 822.70 253.87 829.67 253.92   Q 866.74 254.20 873.27 253.92   Q 880.36 253.62 882.29 260.14   Q 882.78 261.78 887.76 278.85   Q 918.59 384.58 933.00 431.62   Q 934.50 436.52 940.79 457.57   A 0.52 0.52 0.0 0 0 941.78 457.58   Z"/>
40  <path fill="#1e1b3a" d="   M 1103.95 256.26   C 1105.91 253.57 1108.46 253.89 1112.20 253.89   Q 1131.84 253.91 1141.25 253.99   C 1152.11 254.08 1161.51 253.57 1171.24 254.07   C 1177.77 254.41 1176.43 261.96 1176.43 266.00   Q 1176.45 359.04 1176.48 413.62   Q 1176.49 425.76 1177.57 431.77   Q 1179.25 441.14 1183.46 448.97   C 1190.31 461.72 1204.46 468.20 1218.56 469.38   C 1236.07 470.83 1255.79 467.36 1266.56 452.05   C 1274.67 440.53 1277.09 425.06 1276.64 411.04   Q 1276.61 410.19 1276.63 266.53   C 1276.63 259.72 1275.59 253.90 1283.53 253.92   Q 1329.26 254.02 1342.00 253.93   C 1346.86 253.90 1350.30 254.62 1350.31 260.01   Q 1350.36 291.29 1350.31 418.25   C 1350.29 442.57 1345.10 465.87 1331.86 486.04   C 1313.98 513.28 1281.83 526.72 1250.74 530.51   Q 1219.46 534.33 1187.73 528.81   C 1150.60 522.34 1120.23 499.94 1109.00 462.98   Q 1105.46 451.35 1103.88 438.17   Q 1102.98 430.64 1103.08 412.81   Q 1103.15 398.81 1103.07 258.77   Q 1103.06 257.48 1103.95 256.26   Z"/>
41  <path fill="#1e1b3a" d="   M 1518.54 457.74   A 0.61 0.60 -21.9 0 0 1519.39 458.10   Q 1519.73 457.94 1519.90 457.43   Q 1524.58 443.29 1534.24 412.02   Q 1545.19 376.61 1565.27 309.67   Q 1568.44 299.11 1572.15 285.82   Q 1578.77 262.13 1578.82 261.91   C 1579.91 257.45 1582.35 253.81 1586.70 253.83   Q 1629.98 253.96 1648.31 253.85   Q 1654.01 253.81 1655.26 254.69   C 1658.38 256.88 1657.65 259.86 1656.33 263.37   Q 1654.42 268.43 1650.80 279.03   Q 1626.73 349.56 1595.71 442.60   C 1588.31 464.78 1577.60 495.07 1569.17 520.67   Q 1568.02 524.15 1566.65 525.49   Q 1564.42 527.68 1561.76 527.68   Q 1492.67 527.62 1474.05 527.77   Q 1470.59 527.80 1468.42 525.93   Q 1466.90 524.62 1465.58 520.61   Q 1436.82 433.29 1387.34 284.18   Q 1380.73 264.26 1379.63 260.97   Q 1378.28 256.92 1381.38 254.90   Q 1383.04 253.82 1386.33 253.85   Q 1403.19 253.99 1452.00 254.01   Q 1455.36 254.01 1457.58 256.43   Q 1458.88 257.83 1460.06 262.05   Q 1487.85 361.43 1518.54 457.74   Z"/>
42  <ellipse fill="#6b6880" cx="0.00" cy="0.00" transform="translate(1980.12,299.17) rotate(-1.4)" rx="32.48" ry="31.76"/>
43  <path fill="#6b6880" d="   M 1858.12 417.61   Q 1858.74 412.71 1858.18 408.20   C 1856.48 394.25 1845.42 388.28 1832.30 387.76   Q 1817.84 387.19 1809.42 389.24   Q 1794.71 392.83 1789.54 394.80   Q 1783.22 397.22 1776.11 399.75   A 1.75 1.73 -50.8 0 1 1775.27 399.84   Q 1773.15 399.53 1772.73 397.52   Q 1769.31 381.20 1763.86 364.16   C 1762.58 360.13 1764.97 358.59 1768.50 357.10   C 1799.00 344.24 1832.60 338.17 1864.83 345.27   Q 1884.46 349.59 1896.49 359.50   C 1912.41 372.60 1917.69 391.96 1917.69 412.31   Q 1917.68 427.83 1917.62 478.35   Q 1917.61 491.92 1918.49 500.62   Q 1919.76 513.16 1921.18 522.74   Q 1921.85 527.23 1916.95 527.39   Q 1907.92 527.69 1872.54 527.42   A 3.17 3.17 0.0 0 1 1869.62 525.41   L 1863.52 509.64   A 0.36 0.36 0.0 0 0 1862.93 509.52   C 1853.80 518.63 1842.65 525.76 1830.00 528.81   Q 1805.62 534.68 1783.05 526.93   Q 1768.80 522.05 1759.18 510.38   C 1741.72 489.19 1742.88 453.03 1764.37 434.47   C 1779.07 421.79 1800.32 418.35 1819.76 418.20   Q 1852.39 417.95 1857.52 418.12   A 0.59 0.58 -85.1 0 0 1858.12 417.61   Z   M 1858.09 449.65   Q 1843.48 449.55 1835.76 449.71   Q 1825.13 449.92 1815.91 454.13   C 1807.52 457.97 1803.52 466.84 1805.38 475.79   C 1807.23 484.69 1815.09 489.25 1823.77 489.99   Q 1840.51 491.41 1851.61 481.23   C 1856.83 476.44 1858.63 470.83 1858.73 463.76   Q 1858.86 454.43 1858.63 450.17   A 0.55 0.54 88.3 0 0 1858.09 449.65   Z"/>
44  <rect fill="#6b6880" x="1950.37" y="346.14" width="61.08" height="181.42" rx="4.53"/>
45  <ellipse fill="#6b6880" cx="0.00" cy="0.00" transform="translate(1677.05,490.30) rotate(-77.9)" rx="38.21" ry="38.04"/>
46</svg><svg class="brand-logo brand-logo-dark" xmlns="http://www.w3.org/2000/svg" viewBox="175.9 157.5 1876.7 470.3" aria-hidden="true">
47  
48  <g transform="translate(71.40,94.08) scale(0.8310)">
49    <path fill="#9b93d9" d="M 414.92 382.11   A 1.59 1.58 -67.3 0 0 415.54 383.63   Q 430.74 394.82 443.54 407.91   Q 460.74 425.47 466.30 448.40   
49C 472.21 472.78 468.25 499.23 462.17 523.97   A 4.18 4.02 -23.0 0 1 461.64 525.21   Q 459.13 529.19 454.95 528.41   Q 452.99 528.05 449.48 523.81   Q 422.47 491.17 387.27 456.45   C 386.12 455.31 384.71 454.36 382.72 454.33   C 378.98 454.28 372.68 453.43 367.76 453.49   Q 349.34 453.71 345.54 453.54   Q 342.86 453.41 341.84 450.77   A 1.63 1.60 -55.7 0 1 341.74 450.21   Q 341.72 413.90 341.81 339.57   Q 341.81 336.66 345.32 336.70   Q 357.95 336.82 363.49 336.72   A 4.04 3.85 -53.1 0 0 364.63 336.53   Q 370.03 334.77 369.27 328.77   A 2.96 2.88 25.8 0 0 368.81 327.51   C 366.00 323.34 361.17 317.82 358.41 314.20   Q 335.88 284.57 327.89 274.17   C 321.98 266.49 317.22 271.39 312.79 277.33   Q 298.29 296.81 278.06 323.16   C 275.23 326.85 273.38 328.80 274.72 333.02   C 275.67 336.02 278.88 336.61 281.93 336.62   Q 296.72 336.67 298.49 336.69   C 301.01 336.71 301.38 338.04 301.38 340.37   Q 301.43 377.51 301.45 448.33   C 301.45 452.65 299.41 453.70 295.39 453.61   Q 293.53 453.56 278.21 453.47   C 271.35 453.42 266.14 454.07 259.39 454.57   A 3.11 3.01 -61.9 0 0 257.99 455.02   Q 256.51 455.92 255.07 457.32   Q 250.38 461.88 230.59 482.33   Q 211.80 501.75 201.10 515.34   C 196.74 520.88 192.09 527.82 188.41 528.39   Q 184.48 528.99 181.81 525.62   A 3.35 3.35 0.0 0 1 181.17 524.34   C 174.49 498.13 170.11 468.95 178.33 443.03   Q 184.77 422.71 201.09 406.28   Q 214.51 392.77 227.50 383.27   A 0.97 0.96 67.9 0 0 227.88 382.36   C 223.79 354.57 222.38 326.37 224.67 298.19   Q 230.08 231.51 267.68 178.26   C 281.46 158.76 297.20 141.42 315.90 126.65   C 319.72 123.64 323.46 123.95 327.52 126.81   Q 331.94 129.93 337.38 134.90   Q 362.92 158.21 381.21 186.56   Q 414.86 238.71 418.74 300.48   Q 421.36 342.10 414.92 382.11   Z"/>
50    <path fill="#fe8913" d="M 321.60 594.18   Q 318.54 594.18 315.59 591.67   C 293.54 572.90 275.37 546.18 269.03 517.45   Q 266.92 507.85 267.56 499.29   C 268.00 493.36 269.67 480.04 274.87 477.08   Q 276.24 476.30 280.47 476.29   Q 301.23 476.27 321.60 476.27   Q 341.97 476.27 362.73 476.29   Q 366.96 476.30 368.33 477.08   C 373.53 480.04 375.20 493.36 375.64 499.29   Q 376.28 507.85 374.17 517.45   C 367.83 546.18 349.66 572.90 327.61 591.67   Q 324.66 594.18 321.60 594.18   Z"/>
51  </g>
52  <path fill="#ffffff" d="   M 645.64 438.37   A 1.00 0.99 -89.2 0 0 644.62 439.37   L 644.62 523.34   A 0.12 0.06 73.2 0 1 644.61 523.39   C 643.81 526.67 641.49 527.73 638.06 527.71   Q 595.61 527.55 579.42 527.69   C 575.00 527.73 571.37 526.90 571.37 522.01   Q 571.45 305.92 571.35 263.75   Q 571.34 262.12 571.46 258.44   A 2.06 2.00 60.1 0 1 571.69 257.54   Q 573.50 253.97 576.77 253.96   C 624.57 253.79 651.68 253.19 692.44 253.38   Q 718.39 253.50 741.79 262.22   Q 746.14 263.84 755.51 269.24   C 776.55 281.39 787.99 301.75 792.29 325.67   Q 796.54 349.25 790.20 371.94   C 782.51 399.45 762.34 419.35 735.30 429.04   Q 712.58 437.19 690.95 438.08   Q 669.00 438.99 645.64 438.37   Z   M 644.61 380.45   A 2.08 2.08 0.0 0 0 646.65 382.53   Q 659.82 382.78 675.60 382.58   C 690.91 382.39 709.35 377.92 716.40 362.31   Q 721.42 351.18 719.32 337.42   C 716.31 317.61 700.09 310.28 682.00 309.90   Q 663.34 309.51 646.82 310.03   A 2.28 2.28 0.0 0 0 644.61 312.31   L 644.61 380.45   Z"/>
53  <path fill="#ffffff" d="   M 941.78 457.58   Q 973.07 358.23 1001.99 259.72   Q 1003.74 253.77 1010.78 253.82   Q 1052.02 254.08 1072.25 253.90   C 1074.60 253.88 1076.87 253.78 1078.49 255.26   Q 1081.10 257.64 1079.78 261.51   Q 1038.10 383.75 995.91 507.10   C 994.48 511.28 992.70 518.21 990.90 522.37   C 989.15 526.39 986.75 527.67 982.03 527.67   Q 899.36 527.74 895.62 527.61   Q 892.82 527.51 890.64 524.49   A 3.16 2.93 20.3 0 1 890.24 523.70   Q 851.97 409.30 845.67 390.15   Q 828.87 339.15 804.62 263.57   Q 803.21 259.19 803.67 257.83   C 804.62 255.08 806.86 254.10 809.96 254.13   C 815.37 254.17 822.70 253.87 829.67 253.92   Q 866.74 254.20 873.27 253.92   Q 880.36 253.62 882.29 260.14   Q 882.78 261.78 887.76 278.85   Q 918.59 384.58 933.00 431.62   Q 934.50 436.52 940.79 457.57   A 0.52 0.52 0.0 0 0 941.78 457.58   Z"/>
54  <path fill="#ffffff" d="   M 1103.95 256.26   C 1105.91 253.57 1108.46 253.89 1112.20 253.89   Q 1131.84 253.91 1141.25 253.99   C 1152.11 254.08 1161.51 253.57 1171.24 254.07   C 1177.77 254.41 1176.43 261.96 1176.43 266.00   Q 1176.45 359.04 1176.48 413.62   Q 1176.49 425.76 1177.57 431.77   Q 1179.25 441.14 1183.46 448.97   C 1190.31 461.72 1204.46 468.20 1218.56 469.38   C 1236.07 470.83 1255.79 467.36 1266.56 452.05   C 1274.67 440.53 1277.09 425.06 1276.64 411.04   Q 1276.61 410.19 1276.63 266.53   C 1276.63 259.72 1275.59 253.90 1283.53 253.92   Q 1329.26 254.02 1342.00 253.93   C 1346.86 253.90 1350.30 254.62 1350.31 260.01   Q 1350.36 291.29 1350.31 418.25   C 1350.29 442.57 1345.10 465.87 1331.86 486.04   C 1313.98 513.28 1281.83 526.72 1250.74 530.51   Q 1219.46 534.33 1187.73 528.81   C 1150.60 522.34 1120.23 499.94 1109.00 462.98   Q 1105.46 451.35 1103.88 438.17   Q 1102.98 430.64 1103.08 412.81   Q 1103.15 398.81 1103.07 258.77   Q 1103.06 257.48 1103.95 256.26   Z"/>
55  <path fill="#ffffff" d="   M 1518.54 457.74   A 0.61 0.60 -21.9 0 0 1519.39 458.10   Q 1519.73 457.94 1519.90 457.43   Q 1524.58 443.29 1534.24 412.02   Q 1545.19 376.61 1565.27 309.67   Q 1568.44 299.11 1572.15 285.82   Q 1578.77 262.13 1578.82 261.91   C 1579.91 257.45 1582.35 253.81 1586.70 253.83   Q 1629.98 253.96 1648.31 253.85   Q 1654.01 253.81 1655.26 254.69   C 1658.38 256.88 1657.65 259.86 1656.33 263.37   Q 1654.42 268.43 1650.80 279.03   Q 1626.73 349.56 1595.71 442.60   C 1588.31 464.78 1577.60 495.07 1569.17 520.67   Q 1568.02 524.15 1566.65 525.49   Q 1564.42 527.68 1561.76 527.68   Q 1492.67 527.62 1474.05 527.77   Q 1470.59 527.80 1468.42 525.93   Q 1466.90 524.62 1465.58 520.61   Q 1436.82 433.29 1387.34 284.18   Q 1380.73 264.26 1379.63 260.97   Q 1378.28 256.92 1381.38 254.90   Q 1383.04 253.82 1386.33 253.85   Q 1403.19 253.99 1452.00 254.01   Q 1455.36 254.01 1457.58 256.43   Q 1458.88 257.83 1460.06 262.05   Q 1487.85 361.43 1518.54 457.74   Z"/>
56  <ellipse fill="#b8b4cc" cx="0.00" cy="0.00" transform="translate(1980.12,299.17) rotate(-1.4)" rx="32.48" ry="31.76"/>
57  <path fill="#b8b4cc" d="   M 1858.12 417.61   Q 1858.74 412.71 1858.18 408.20   C 1856.48 394.25 1845.42 388.28 1832.30 387.76   Q 1817.84 387.19 1809.42 389.24   Q 1794.71 392.83 1789.54 394.80   Q 1783.22 397.22 1776.11 399.75   A 1.75 1.73 -50.8 0 1 1775.27 399.84   Q 1773.15 399.53 1772.73 397.52   Q 1769.31 381.20 1763.86 364.16   C 1762.58 360.13 1764.97 358.59 1768.50 357.10   C 1799.00 344.24 1832.60 338.17 1864.83 345.27   Q 1884.46 349.59 1896.49 359.50   C 1912.41 372.60 1917.69 391.96 1917.69 412.31   Q 1917.68 427.83 1917.62 478.35   Q 1917.61 491.92 1918.49 500.62   Q 1919.76 513.16 1921.18 522.74   Q 1921.85 527.23 1916.95 527.39   Q 1907.92 527.69 1872.54 527.42   A 3.17 3.17 0.0 0 1 1869.62 525.41   L 1863.52 509.64   A 0.36 0.36 0.0 0 0 1862.93 509.52   C 1853.80 518.63 1842.65 525.76 1830.00 528.8
571   Q 1805.62 534.68 1783.05 526.93   Q 1768.80 522.05 1759.18 510.38   C 1741.72 489.19 1742.88 453.03 1764.37 434.47   C 1779.07 421.79 1800.32 418.35 1819.76 418.20   Q 1852.39 417.95 1857.52 418.12   A 0.59 0.58 -85.1 0 0 1858.12 417.61   Z   M 1858.09 449.65   Q 1843.48 449.55 1835.76 449.71   Q 1825.13 449.92 1815.91 454.13   C 1807.52 457.97 1803.52 466.84 1805.38 475.79   C 1807.23 484.69 1815.09 489.25 1823.77 489.99   Q 1840.51 491.41 1851.61 481.23   C 1856.83 476.44 1858.63 470.83 1858.73 463.76   Q 1858.86 454.43 1858.63 450.17   A 0.55 0.54 88.3 0 0 1858.09 449.65   Z"/>
58  <rect fill="#b8b4cc" x="1950.37" y="346.14" width="61.08" height="181.42" rx="4.53"/>
59  <ellipse fill="#b8b4cc" cx="0.00" cy="0.00" transform="translate(1677.05,490.30) rotate(-77.9)" rx="38.21" ry="38.04"/>
60</svg>
61        
62      </a>
63
64      <nav class="nav" aria-label="Primary">
65        <a href="#features">Features</a>
66        <a href="#detection">Detection</a>
67        <a href="#architecture">Architecture</a>
68        <a href="#privacy">Privacy</a>
69        <a href="#roadmap">Roadmap</a>
70        <a href="#guides">Guides</a>
71      </nav>
72
73      <div class="header-actions">
74        
75        <a class="btn btn-ghost" href="https://github.com/qiayue/pvuv.ai" rel="noopener" target="_blank">
76          <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8Z"></path></svg>
77          <span>GitHub</span>
78        </a>
79        <a class="lang-link" href="/zh" hreflang="zh-Hans" aria-label="切换到中文">中文</a><a class="btn btn-primary btn-sites" href="/sites">Dashboard</a><button class="nav-toggle" id="navToggle" type="button" aria-label="Menu" aria-expanded="false">
80          <span></span><span></span><span></span>
81        </button>
82      </div>
83    </div>
84  </header>
85
86  <main id="main">
87    <!-- ===================== Hero ===================== -->
88    <section class="hero">
89      <div class="container hero-inner">
90        <div class="hero-copy">
91          <p class="eyebrow">Free analytics · hosted or self-hosted · open source</p>
92          <h1 class="hero-title">
93            <span>The open-source Google Analytics alternative that knows <span class="kw-underline">which traffic is real</span></span>
94          </h1>
95          <p class="hero-sub">PVUV.ai is a self-hosted, <span class="kw">open-source Google Analytics (GA4) alternative</span>. Beyond PV/UV, it scores every visit for authenticity, catches <span class="kw">invalid traffic and bots</span> that only reveal themselves in aggregate, and loads ad code only for traffic it trusts. Runs on Cloudflare’s edge — use the free hosted version, or self-host the open-source build.</p>
96          <div class="hero-cta">
97            <a class="btn btn-primary" href="/sites">Start free — no setup</a>
98            <a class="btn btn-ghost" href="#quickstart">Self-host it</a>
99          </div>
100          <ul class="hero-badges" aria-label="Highlights">
101            <li><span class="dot dot-green"></span><span>100% open source · AGPL-3.0</span></li>
102            <li><span class="dot dot-indigo"></span><span>Free hosted or self-host</span></li>
103            <li><span class="dot dot-amber"></span><span>Privacy-friendly by default</span></li>
104          </ul>
105        </div>
106
107        <!-- Traffic-quality preview card -->
108        <div class="hero-visual" aria-hidden="true">
109          <div class="quality-card">
110            <div class="quality-head">
111              <span class="quality-title">Traffic quality</span>
112              <span class="quality-live"><span class="pulse"></span><span>live</span></span>
113            </div>
114            <div class="donut">
115              <svg viewBox="0 0 42 42" width="120" height="120" role="img" aria-label="traffic verdict donut">
116                <circle class="donut-ring" cx="21" cy="21" r="15.9"></circle>
117                <circle class="seg seg-clean" cx="21" cy="21" r="15.9" stroke-dasharray="71 29" stroke-dashoffset="25"></circle>
118                <circle class="seg seg-suspect" cx="21" cy="21" r="15.9" stroke-dasharray="16 84" stroke-dashoffset="-46"></circle>
119                <circle class="seg seg-bot" cx="21" cy="21" r="15.9" stroke-dasharray="9 91" stroke-dashoffset="-62"></circle>
120                <circle class="seg seg-crawler" cx="21" cy="21" r="15.9" stroke-dasharray="4 96" stroke-dashoffset="-71"></circle>
121              </svg>
122              <div class="donut-center">
123                <strong>71%</strong>
124                <small>clean</small>
125              </div>
126            </div>
127            <ul class="quality-legend">
128              <li><span class="sw sw-clean"></span><span>Clean</span><b>71%</b></li>
129              <li><span class="sw sw-suspect"></span><span>Suspect</span><b>16%</b></li>
130              <li><span class="sw sw-bot"></span><span>Bot</span><b>9%</b></li>
131              <li><span class="sw sw-crawler"></span><span>Crawler</span><b>4%</b></li>
132            </ul>
133          </div>
134        </div>
135      </div>
136    </section>
137
138    <!-- ===================== Why ===================== -->
139    <section class="oss-strip" aria-label="Open source and self-hosted">
140    <div class="container">
141      <h2 class="oss-h2">An open-source Google Analytics alternative you fully control</h2>
142      <div class="oss-grid">
143        <div class="oss-item"><h3><span class="oss-ic warm"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.79-.84.78-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09Z"/><path d="M12 15 9 12a22 22 0 0 1 8-10c1.5 0 3 1.5 3 3a22 22 0 0 1-10 8Z"/><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"/><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"/></svg></span>100% open source</h3><p>AGPL-3.0 and public on GitHub — audit every line, fork it, run your own build. No black box, no lock-in.</p></div>
144        <div class="oss-item"><h3><span class="oss-ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="7" rx="2"/><rect x="3" y="13" width="18" height="7" rx="2"/><path d="M7 7.5h.01M7 16.5h.01"/></svg></span>Hosted or self-hosted</h3><p>Use the free hosted version with zero setup, or self-host the open-source build on your own Cloudflare Workers + D1. The analytics is free either way.</p></div>
145        <div class="oss-item"><h3><span class="oss-ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2 4 5v6c0 5 3.4 8.5 8 11 4.6-2.5 8-6 8-11V5l-8-3Z"/><path d="m9 12 2 2 4-4"/></svg></span>A GA / GA4 alternative</h3><p>Privacy-friendly, lightweight, cookieless-capable — plus invalid-traffic detection Google Analytics never gave you.</p></div>
146      </div>
147    </div>
148  </section>
149  <section class="section why" id="why">
150      <div class="container narrow">
151        <h2 class="section-title">Why PVUV.ai over Google Analytics (GA4)</h2>
152        <p class="section-lead">Most analytics tools — Google Analytics (GA4) included — count traffic but treat every request as real. Sites that monetize with ads are exposed to invalid-traffic penalties they can't see coming. PVUV.ai is the open-source alternative that treats traffic quality as a first-class metric — so you can tell real visitors from bots, see where bad traffic comes from, and act on it. It’s not a feature-for-feature GA4 clone — it keeps the core analytics you actually use simple, and adds what GA lacks.</p>
153      </div>
154    </section>
155
156    <!-- ===================== Features (3 pillars) ===================== -->
157    <section class="section" id="features">
158      <div class="container">
159        <h2 class="section-title">Three capabilities, one lightweight stack</h2>
160        <p class="section-lead center">
160Full-dimension web analytics, layered invalid-traffic detection, and optional ad-fraud protection — open source, self-hosted, and served from Cloudflare's edge with no server to run.</p>
161
162        <div class="grid grid-3">
163          <article class="card">
164            <div class="card-icon icon-analytics" aria-hidden="true">
165              <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"></path><rect x="7" y="12" width="3" height="6"></rect><rect x="12" y="8" width="3" height="10"></rect><rect x="17" y="4" width="3" height="14"></rect></svg>
166            </div>
167            <h3>Full-dimension analytics</h3>
168            <ul class="card-list">
169              <li>Per-page PV/UV across multiple sites &amp; subdomains</li>
170              <li>Referrers, full UTM, and every click param (gclid, fbclid, ttclid, msclkid…)</li>
171              <li>Engagement-based bounce rate (GA4-style) and true dwell time</li>
172              <li>Custom events with revenue, auto-converted to USD</li>
173              <li>Session- &amp; user-level path attribution, cross-device merge</li>
174            </ul>
175          </article>
176
177          <article class="card">
178            <div class="card-icon icon-detect" aria-hidden="true">
179              <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2 4 5v6c0 5 3.4 8.5 8 11 4.6-2.5 8-6 8-11V5l-8-3Z"></path><path d="m9 12 2 2 4-4"></path></svg>
180            </div>
181            <h3>Invalid-traffic detection</h3>
182            <ul class="card-list">
183              <li>Client signals — headless/automation traits, environment contradictions, WebGL/canvas, honeypots</li>
184              <li>Session features — inter-page timing, path patterns, interaction presence</li>
185              <li>Population statistics — fingerprint/IP-segment clusters, distribution tests, cross-site detection</li>
186              <li>Every hit carries a 0–100 score, a verdict, and a bit-flag of fired signals</li>
187            </ul>
188          </article>
189
190          <article class="card">
191            <div class="card-icon icon-shield" aria-hidden="true">
192              <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2 4 5v6c0 5 3.4 8.5 8 11 4.6-2.5 8-6 8-11V5l-8-3Z"></path><circle cx="12" cy="11" r="2.4"></circle><path d="M12 13.4V17"></path></svg>
193            </div>
194            <h3>Ad protection (optional)</h3>
195            <ul class="card-list">
196              <li>Progressive verdict: fast first-page decision, accurate blocking from page two</li>
197              <li>Loads ad code only for trustworthy traffic — never modifies the ad script itself</li>
198              <li>Fail-open by design: any error defaults to loading ads, never costing revenue</li>
199              <li>Owner-controlled thresholds with a shadow (record-only) mode</li>
200            </ul>
201          </article>
202        </div>
203
204        <div class="ai-note">
205          <span class="ai-badge">AI analysis · paid add-on</span>
206          <p>Scheduled and on-demand reports: data anomaly → attribution → actionable recommendations.</p>
207        </div>
208      </div>
209    </section>
210
211    <!-- ===================== Detection deep-dive ===================== -->
212    <section class="section" id="compare">
213      <div class="container">
214        <h2 class="section-title">PVUV.ai vs Google Analytics, Plausible, Matomo &amp; Umami</h2>
215        <p class="section-lead center">They all do web analytics. Only PVUV.ai scores every visit for authenticity, flags invalid traffic and bots, and can gate your ads — which is exactly why it’s the Google Analytics alternative for sites that run on ad revenue.</p>
216        <ul class="wins"><li><span class="wc">✓</span>Invalid-traffic &amp; bot detection</li><li><span class="wc">✓</span>Ad-fraud protection</li><li><span class="wc">✓</span>AI analysis (add-on)</li><li><span class="wc">✓</span>Serverless on Cloudflare — no database</li><li><span class="wc">✓</span>100% open source</li><li><span class="wc">✓</span>Free hosted or self-host</li></ul>
217        <div class="cmp-wrap"><table class="cmp"><thead><tr><th>
217</th><th>PVUV.ai</th><th>Google Analytics (GA4)</th><th>Plausible</th><th>Matomo</th><th>Umami</th></tr></thead><tbody><tr><td>Open source (AGPL-3.0)</td><td><span class="yes">✓</span></td><td><span class="no">✗</span></td><td><span class="yes">✓</span></td><td><span class="yes">✓</span></td><td><span class="yes">✓</span></td></tr><tr><td>Self-hosted — you own the data</td><td><span class="yes">✓</span></td><td><span class="no">✗</span></td><td><span class="yes">✓</span></td><td><span class="yes">✓</span></td><td><span class="yes">✓</span></td></tr><tr><td>Serverless — no database to run</td><td><span class="yes">✓</span> Cloudflare</td><td class="mut">SaaS</td><td><span class="no">✗</span></td><td><span class="no">✗</span></td><td><span class="no">✗</span></td></tr><tr><td>Invalid-traffic &amp; bot detection</td><td><span class="yes">✓</span></td><td><span class="no">✗</span></td><td><span class="no">✗</span></td><td><span class="no">✗</span></td><td><span class="no">✗</span></td></tr><tr><td>Ad-fraud protection</td><td><span class="yes">✓</span></td><td><span class="no">✗</span></td><td><span class="no">✗</span></td><td><span class="no">✗</span></td><td><span class="no">✗</span></td></tr><tr><td>AI analysis &amp; recommendations</td><td><span class="yes">✓</span> add-on</td><td class="mut">Limited</td><td><span class="no">✗</span></td><td><span class="no">✗</span></td><td><span class="no">✗</span></td></tr><tr><td>Privacy-first (cookieless, hashed IPs)</td><td><span class="yes">✓</span></td><td class="mut">Limited</td><td><span class="yes">✓</span></td><td><span class="yes">✓</span></td><td><span class="yes">✓</span></td></tr><tr><td>Price</td><td class="mut">Free — hosted or self-host</td><td class="mut">Free, sampled</td><td class="mut">Paid cloud / free self-host</td><td class="mut">Free self-host / paid cloud</td><td class="mut">Free self-host</td></tr></tbody></table></div>
218        <p class="cmp-foot">Every tool measures traffic. PVUV.ai is the only one that also tells real visitors from bots and protects your ad revenue — while running serverless on your own Cloudflare account.</p><p class="center" style="margin-top:14px"><a href="/google-analytics-alternative/">See the full comparison of Google Analytics alternatives →</a></p>
219      </div>
220    </section>
221    
222    <section class="section section-alt" id="detection">
223      <div class="container">
224        <h2 class="section-title">Bad traffic that only shows up in aggregate</h2>
225        <p class="section-lead center">A single request can look perfectly human. The same hand behind thousands of them cannot. PVUV.ai stitches three layers of evidence — and shows its work.</p>
226
227        <div class="layers">
228          <div class="layer">
229            <span class="layer-num">01</span>
230            <h3>Single point — client signals</h3>
231            <p>Automation traits, environment contradictions, canvas/WebGL, honeypots — captured in the SDK, scored server-side.</p>
232          </div>
233          <div class="layer-arrow" aria-hidden="true">→</div>
234          <div class="layer">
235            <span class="layer-num">02</span>
236            <h3>Stitching — session features</h3>
237            <p>Mechanical equidistant page intervals and abnormally regular paths get flagged as evidence accumulates in-session.</p>
238          </div>
239          <div class="layer-arrow" aria-hidden="true">→</div>
240          <div class="layer">
241            <span class="layer-num">03</span>
242            <h3>Batch — population statistics</h3>
243            <p>A daily pass finds fingerprint/IP clusters and distribution anomalies, then re-verdicts: “this fingerprint links N visitors across M sites.”</p>
244          </div>
245        </div>
246
247        <p class="restraint-note">Framed with restraint: verified crawlers are classified separately, “suspect” is shown amber (uncertain, not confirmed), and re-verdict authority stays with the platform — so the data behind ad protection keeps its meaning.</p><p class="center" style="margin-top:14px"><a href="/bot-traffic/">Guide: what is bot traffic, and how to stop it →</a></p>
248      </div>
249    </section>
250
251    <!-- ===================== Architecture ===================== -->
252    <section class="section" id="architecture">
253      <div class="container">
254        <h2 class="section-title">Architecture</h2>
255        <p class="section-lead center">An edge pipeline: collect → validate &amp; score → queue → batch-write → roll up → analyze → loop back a fresh verdict.</p>
256
257        <div class="arch-flow" role="img" aria-label="PVUV.ai data flow">
258          <div class="arch-node"><span class="arch-k">browser</span><span class="arch-v">f.js</span></div>
259          <span class="arch-conn" aria-hidden="true"></span>
260          <div class="arch-node"><span class="arch-k">in.pvuv.ai/in</span><span class="arch-v">ingest · validate · realtime score</span></div>
261          <span class="arch-conn" aria-hidden="true"></span>
262          <div class="arch-node"><span class="arch-k">Queue → consumer</span><span class="arch-v">batch-write D1 · update sessions</span></div>
263          <span class="arch-conn" aria-hidden="true"></span>
264          <div class="arch-node"><span class="arch-k">Cron</span><span class="arch-v">hourly rollups · daily population analysis</span></div>
265          <span class="arch-conn arch-loop" aria-hidden="true"></span>
266          <div class="arch-node arch-node-accent"><span class="arch-k">in.pvuv.ai/v</span><span class="arch-v">fast verdict + KV blocklist</span></div>
267        </div>
268
269        <div class="arch-split">
270          <div class="arch-split-icon" aria-hidden="true">
271            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="7" rx="2"></rect><rect x="3" y="13" width="18" height="7" rx="2"></rect><path d="M7 7.5h.01M7 16.5h.01"></path></svg>
272          </div>
273          <p>Domain split — the exposed subdomains embedded on measured sites (js, in) are isolated from the internal ones (api, apex console). If an exposed subdomain ever hits a blocklist, your dashboards and queries stay unaffected.</p>
274        </div>
275
276        <div class="stack">
277          <span class="stack-label">Cloudflare suite</span>
278          <ul class="chips">
279            <li>Workers</li>
280            <li>D1 <small>monthly-partitioned events</small></li>
281            <li>Queues <small>spike buffering</small></li>
282            <li>KV <small>blocklist · config</small></li>
283            <li>Cron Triggers</li>
284            <li>R2 <small>optional archive</small></li>
285          </ul>
286          <p class="stack-foot">No external database. No server to run.</p>
287        </div>
288      </div>
289    </section>
290
291    <!-- ===================== Privacy ===================== -->
292    <section class="section section-alt" id="privacy">
293      <div class="container">
294        <h2 class="section-title">Privacy by design</h2>
295        <p class="section-lead center">PVUV.ai is built to minimize what it stores. Authenticity signals are used for scoring, not for cross-site visitor profiling.</p>
296
297        <div class="grid grid-3">
298          <div class="privacy-item">
299            <h3>Hashed IPs only</h3>
300            <p>IP is stored only as a truncated hash (plus a /24 segment hash), never in plaintext.</p>
301          </div>
302          <div class="privacy-item">
303            <h3>No raw fingerprints</h3>
304            <p>Device fingerprints are stored as hashes and conclusions only — never raw values — and used solely for authenticity scoring.</p>
305          </div>
306          <div class="privacy-item">
307            <h3>Coarse sensor signals</h3>
308            <p>Mobile-sensor signals are coarse booleans only — no raw streams, no sensor fingerprint — and can be turned off.</p>
309          </div>
310        </div>
311
312        <p class="compliance-note">Deployer responsibility: in GDPR/ePrivacy jurisdictions, fingerprinting and sensor signals may require user consent. The project ships data-minimizing defaults and opt-out toggles; each deployer is responsible for compliance in their own jurisdiction.</p>
313      </div>
314    </section>
315
316    <!-- ===================== Quick start ===================== -->
317    <section class="section" id="quickstart">
318      <div class="container">
319        <h2 class="section-title">Quick start</h2>
320        <p class="section-lead center">Want zero setup? Use the free hosted version. Prefer full control? Self-host PVUV.ai on your own Cloudflare account — free and open source — then drop one script tag on any site.</p>
321
322        <div class="grid grid-2 qs-grid">
323          <div class="code-block">
324            <div class="code-head"><span>Deploy on Cloudflare</span></div>
325            <pre><code><span class="c-c"># 1. Clone &amp; install</span>
326git clone https://github.com/qiayue/pvuv.ai.git
327cd pvuv.ai &amp;&amp; npm install
328
329<span class="c-c"># 2. Create edge resources</span>
330wrangler d1 create pvuv
331wrangler kv namespace create BLOCKLIST
332wrangler queues create INGEST_QUEUE
333
334<span class="c-c"># 3. Schema + deploy</span>
335wrangler d1 execute pvuv --file=./shared/schema.sql
336wrangler deploy --config workers/ingest/wrangler.toml</code></pre>
337          </div>
338
339          <div class="code-block">
340            <div class="code-head"><span>Add it to a site</span></div>
341            <pre><code><span class="c-c">&lt;!-- register a site to get your site_id --&gt;</span>
342<span class="c-t">&lt;script</span> <span class="c-a">defer</span>
343  <span class="c-a">src</span>=<span class="c-s">"https://js.pvuv.ai/f.js"</span>
344  <span class="c-a">data-site</span>=<span class="c-s">"YOUR_SITE_ID"</span>
345  <span class="c-a">data-adguard</span>=<span class="c-s">"balanced"</span>
346  <span class="c-a">data-adclient</span>=<span class="c-s">"ca-pub-xxxxxxxx"</span><span class="c-t">&gt;</span>
347<span class="c-t">&lt;/script&gt;</span></code></pre>
348            <p class="code-foot">Optional: data-spa, data-exclude, data-sensors="off", or point data-api at a first-party reverse proxy.</p>
349          </div>
350        </div>
351
352        <div class="qs-cta">
353          <a class="btn btn-primary" href="https://github.com/qiayue/pvuv.ai#quick-start" rel="noopener" target="_blank">Full quick-start guide</a>
354          <a class="btn btn-ghost" href="https://github.com/qiayue/pvuv.ai/blob/main/PROJECT_PLAN.md" rel="noopener" target="_blank">Read the build spec</a>
355        </div>
356      </div>
357    </section>
358
359    <!-- ===================== Roadmap ===================== -->
360    <section class="section section-alt" id="roadmap">
361      <div class="container">
362        <h2 class="section-title">Roadmap</h2>
363        <p class="section-lead center">Under active development toward the first deployable milestone. Interfaces and schema may change before a tagged release.</p>
364
365        <ol class="roadmap">
366          <li class="rm rm-current">
367            <div class="rm-tag">M1 <span class="rm-chip">first deployable</span></div>
368            <p>
368SDK + ingest + fast verdict + D1 schema + minimal console (PV/UV, sources, top pages, traffic-quality overview).</p>
369          </li>
370          <li class="rm">
371            <div class="rm-tag">M2</div>
372            <p>Sessions/dwell/bounce, full UTM, rollup acceleration, population analysis + blocklist loop, shadow mode, reverse-proxy option.</p>
373          </li>
374          <li class="rm">
375            <div class="rm-tag">M3</div>
376            <p>identify + custom events + revenue + funnel attribution, distribution tests + baseline anomalies.</p>
377          </li>
378          <li class="rm">
379            <div class="rm-tag">M4</div>
380            <p>AI reports, full anti-fraud, external ranking integration, human-review UI.</p>
381          </li>
382        </ol>
383      </div>
384    </section>
385
386    <!-- ===================== CTA ===================== -->
387    <section class="section section-alt" id="faq">
388      <div class="container narrow">
389        <h2 class="section-title">Frequently asked questions</h2>
390        <div class="faq"><div class="faq-item"><h3>Do I have to self-host PVUV.ai, or is there a hosted version?</h3><p>There is a free hosted version — sign in at pvuv.ai and start measuring in minutes, with no setup. Prefer full control? Self-host the open-source build on your own Cloudflare account. The analytics is free both ways; only the optional AI analysis and recommendations are a paid add-on.</p></div><div class="faq-item"><h3>Is PVUV.ai a free, open-source Google Analytics alternative?</h3><p>Yes. All the analytics is free — traffic stats, invalid-traffic detection and ad protection — whether you use the free hosted version at pvuv.ai or self-host the open-source (AGPL-3.0) build. Only the optional AI analysis and recommendations are a paid add-on.</p></div><div class="faq-item"><h3>How is PVUV.ai different from Google Analytics (GA4)?</h3><p>Beyond PV/UV and standard web analytics, PVUV.ai scores every visit for authenticity, detects invalid traffic and bots that only reveal themselves in aggregate, and can protect your ad revenue — capabilities GA4 does not offer. It is also privacy-friendly and needs no cookies.</p></div><div class="faq-item"><h3>Can I self-host PVUV.ai?</h3><p>Yes. PVUV.ai runs entirely on Cloudflare Workers + D1 in your own account — no external database and no server to maintain. You can be collecting data right after deploying a few Workers.</p></div><div class="faq-item"><h3>Is PVUV.ai privacy-friendly and GDPR-conscious?</h3><p>It is built to minimize what it stores: IPs are hashed and never kept in plaintext, fingerprints are stored as conclusions only, and mobile-sensor signals are coarse booleans you can switch off. As the deployer you stay in control of compliance.</p></div><div class="faq-item"><h3>Does PVUV.ai replace Google Analytics for ad-supported sites?</h3><p>Yes — it is designed for sites that monetize with ads. On top of analytics, its invalid-traffic detection and optional ad protection help keep bots from dragging down your ad accounts.</p></div></div>
391      </div>
392    </section>
393    <section class="section" id="guides">
394      <div class="container">
395        <h2 class="section-title">Guides &amp; resources</h2>
396        <p class="section-lead center">Practical, no-fluff guides on traffic quality for site owners.</p>
397        <div class="guides-grid"><a class="guide-card" href="/google-analytics-alternative/"><span class="g-tag">Comparison</span><h3>Google Analytics alternatives, compared</h3><p>GA4 vs Plausible, Matomo, Umami, Fathom &amp; Clarity — an honest side-by-side.</p><span class="g-more">Read →</span></a><a class="guide-card" href="/bot-traffic/"><span class="g-tag">Guide</span><h3>What is bot traffic — and how to stop it</h3><p>Bot types, how to spot them in GA4, and how to detect, block and prevent them.</p><span class="g-more">Read →</span></a><a class="guide-card" href="/adsense-invalid-traffic/"><span class="g-tag">Guide</span><h3>AdSense invalid traffic: what it means &amp; how to fix it</h3><p>Why earnings get deducted or ad serving limited — and how to protect your account.</p><span class="g-more">Read →</span></a></div>
398      </div>
399    </section>
400    <section class="section cta-band">
401      <div class="container narrow center">
402        <h2>Free analytics you can trust — hosted or self-hosted.</h2>
403        <p>Open-source under AGPL-3.0. Self-host and modify freely — if you run a modified version as a network service, offer its source to your users.</p>
404        <div class="hero-cta center">
405          <a class="btn btn-primary" href="/sites">Start free</a>
406          <a class="btn btn-ghost" href="https://github.com/qiayue/pvuv.ai/blob/main/CONTRIBUTING.md" rel="noopener" target="_blank">
406Contribute</a>
407        </div>
408      </div>
409    </section>
410  </main>
411
412  <!-- ===================== Footer ===================== -->
413  <footer class="site-footer">
414    <div class="container footer-inner">
415      <div class="footer-brand">
416        <a class="brand" href="#top" aria-label="PVUV.ai">
417          <svg class="brand-logo brand-logo-light" xmlns="http://www.w3.org/2000/svg" viewBox="175.9 157.5 1876.7 470.3" role="img" aria-label="PVUV.ai">
418  
419  <g transform="translate(71.40,94.08) scale(0.8310)">
420    <path fill="#46407d" d="M 414.92 382.11   A 1.59 1.58 -67.3 0 0 415.54 383.63   Q 430.74 394.82 443.54 407.91   Q 460.74 425.47 466.30 448.40   C 472.21 472.78 468.25 499.23 462.17 523.97   A 4.18 4.02 -23.0 0 1 461.64 525.21   Q 459.13 529.19 454.95 528.41   Q 452.99 528.05 449.48 523.81   Q 422.47 491.17 387.27 456.45   C 386.12 455.31 384.71 454.36 382.72 454.33   C 378.98 454.28 372.68 453.43 367.76 453.49   Q 349.34 453.71 345.54 453.54   Q 342.86 453.41 341.84 450.77   A 1.63 1.60 -55.7 0 1 341.74 450.21   Q 341.72 413.90 341.81 339.57   Q 341.81 336.66 345.32 336.70   Q 357.95 336.82 363.49 336.72   A 4.04 3.85 -53.1 0 0 364.63 336.53   Q 370.03 334.77 369.27 328.77   A 2.96 2.88 25.8 0 0 368.81 327.51   C 366.00 323.34 361.17 317.82 358.41 314.20   Q 335.88 284.57 327.89 274.17   C 321.98 266.49 317.22 271.39 312.79 277.33   Q 298.29 296.81 278.06 323.16   C 275.23 326.85 273.38 328.80 274.72 333.02   C 275.67 336.02 278.88 336.61 281.93 336.62   Q 296.72 336.67 298.49 336.69   C 301.01 336.71 301.38 338.04 301.38 340.37   Q 301.43 377.51 301.45 448.33   C 301.45 452.65 299.41 453.70 295.39 453.61   Q 293.53 453.56 278.21 453.47   C 271.35 453.42 266.14 454.07 259.39 454.57   A 3.11 3.01 -61.9 0 0 257.99 455.02   Q 256.51 455.92 255.07 457.32   Q 250.38 461.88 230.59 482.33   Q 211.80 501.75 201.10 515.34   C 196.74 520.88 192.09 527.82 188.41 528.39   Q 184.48 528.99 181.81 525.62   A 3.35 3.35 0.0 0 1 181.17 524.34   C 174.49 498.13 170.11 468.95 178.33 443.03   Q 184.77 422.71 201.09 406.28   Q 214.51 392.77 227.50 383.27   A 0.97 0.96 67.9 0 0 227.88 382.36   C 223.79 354.57 222.38 326.37 224.67 298.19   Q 230.08 231.51 267.68 178.26   C 281.46 158.76 297.20 141.42 315.90 126.65   C 319.72 123.64 323.46 123.95 327.52 126.81   Q 331.94 129.93 337.38 134.90   Q 362.92 158.21 381.21 186.56   Q 414.86 238.71 418.74 300.48   Q 421.36 342.10 414.92 382.11   Z"/>
421    <path fill="#fe8913" d="M 321.60 594.18   Q 318.54 594.18 315.59 591.67   C 293.54 572.90 275.37 546.18 269.03 517.45   Q 266.92 507.85 267.56 499.29   C 268.00 493.36 269.67 480.04 274.87 477.08   Q 276.24 476.30 280.47 476.29   Q 301.23 476.27 321.60 476.27   Q 341.97 476.27 362.73 476.29   Q 366.96 476.30 368.33 477.08   C 373.53 480.04 375.20 493.36 375.64 499.29   Q 376.28 507.85 374.17 517.45   C 367.83 546.18 349.66 572.90 327.61 591.67   Q 324.66 594.18 321.60 594.18   Z"/>
422  </g>
423  <path fill="#1e1b3a" d="   M 645.64 438.37   A 1.00 0.99 -89.2 0 0 644.62 439.37   L 644.62 523.34   A 0.12 0.06 73.2 0 1 644.61 523.39   C 643.81 526.67 641.49 527.73 638.06 527.71   Q 595.61 527.55 579.42 527.69   C 575.00 527.73 571.37 526.90 571.37 522.01   Q 571.45 305.92 571.35 263.75   Q 571.34 262.12 571.46 258.44   A 2.06 2.00 60.1 0 1 571.69 257.54   Q 573.50 253.97 576.77 253.96   C 624.57 253.79 651.68 253.19 692.44 253.38   Q 718.39 253.50 741.79 262.22   Q 746.14 263.84 755.51 269.24   C 776.55 281.39 787.99 301.75 792.29 325.67   Q 796.54 349.25 790.20 371.94   C 782.51 399.45 762.34 419.35 735.30 429.04   Q 712.58 437.19 690.95 438.08   Q 669.00 438.99 645.64 438.37   Z   M 644.61 380.45   A 2.08 2.08 0.0 0 0 646.65 382.53   Q 659.82 382.78 675.60 382.58   C 690.91 382.39 709.35 377.92 716.40 362.31   Q 721.42 351.18 719.32 337.42   C 716.31 317.61 700.09 310.28 682.00 309.90   Q 663.34 309.51 646.82 310.03   A 2.28 2.28 0.0 0 0 644.61 312.31   L 644.61 380.45   Z"/>
424  <path fill="#1e1b3a" d="   M 941.78 457.58   Q 973.07 358.23 1001.99 259.72   Q 1003.74 253.77 1010.78 253.82   Q 1052.02 254.08 1072.25 253.90   C 1074.60 253.88 1076.87 253.78 1078.49 255.26   Q 1081.10 257.64 1079.78 261.51   Q 1038.10 383.75 995.91 507.10   C 994.48 511.28 992.70 518.21 990.90 522.37   C 989.15 526.39 986.75 527.67 982.03 527.67   Q 899.36 527.74 895.62 527.61   Q 892.82 527.51 890.64 524.49   A 3.16 2.93 20.3 0 1 890.24 523.70   Q 851.97 409.30 845.67 390.15   Q 828.87 339.15 804.62 263.57   Q 803.21 259.19 803.67 257.83   C 804.62 255.08 806.86 254.10 8
42409.96 254.13   C 815.37 254.17 822.70 253.87 829.67 253.92   Q 866.74 254.20 873.27 253.92   Q 880.36 253.62 882.29 260.14   Q 882.78 261.78 887.76 278.85   Q 918.59 384.58 933.00 431.62   Q 934.50 436.52 940.79 457.57   A 0.52 0.52 0.0 0 0 941.78 457.58   Z"/>
425  <path fill="#1e1b3a" d="   M 1103.95 256.26   C 1105.91 253.57 1108.46 253.89 1112.20 253.89   Q 1131.84 253.91 1141.25 253.99   C 1152.11 254.08 1161.51 253.57 1171.24 254.07   C 1177.77 254.41 1176.43 261.96 1176.43 266.00   Q 1176.45 359.04 1176.48 413.62   Q 1176.49 425.76 1177.57 431.77   Q 1179.25 441.14 1183.46 448.97   C 1190.31 461.72 1204.46 468.20 1218.56 469.38   C 1236.07 470.83 1255.79 467.36 1266.56 452.05   C 1274.67 440.53 1277.09 425.06 1276.64 411.04   Q 1276.61 410.19 1276.63 266.53   C 1276.63 259.72 1275.59 253.90 1283.53 253.92   Q 1329.26 254.02 1342.00 253.93   C 1346.86 253.90 1350.30 254.62 1350.31 260.01   Q 1350.36 291.29 1350.31 418.25   C 1350.29 442.57 1345.10 465.87 1331.86 486.04   C 1313.98 513.28 1281.83 526.72 1250.74 530.51   Q 1219.46 534.33 1187.73 528.81   C 1150.60 522.34 1120.23 499.94 1109.00 462.98   Q 1105.46 451.35 1103.88 438.17   Q 1102.98 430.64 1103.08 412.81   Q 1103.15 398.81 1103.07 258.77   Q 1103.06 257.48 1103.95 256.26   Z"/>
426  <path fill="#1e1b3a" d="   M 1518.54 457.74   A 0.61 0.60 -21.9 0 0 1519.39 458.10   Q 1519.73 457.94 1519.90 457.43   Q 1524.58 443.29 1534.24 412.02   Q 1545.19 376.61 1565.27 309.67   Q 1568.44 299.11 1572.15 285.82   Q 1578.77 262.13 1578.82 261.91   C 1579.91 257.45 1582.35 253.81 1586.70 253.83   Q 1629.98 253.96 1648.31 253.85   Q 1654.01 253.81 1655.26 254.69   C 1658.38 256.88 1657.65 259.86 1656.33 263.37   Q 1654.42 268.43 1650.80 279.03   Q 1626.73 349.56 1595.71 442.60   C 1588.31 464.78 1577.60 495.07 1569.17 520.67   Q 1568.02 524.15 1566.65 525.49   Q 1564.42 527.68 1561.76 527.68   Q 1492.67 527.62 1474.05 527.77   Q 1470.59 527.80 1468.42 525.93   Q 1466.90 524.62 1465.58 520.61   Q 1436.82 433.29 1387.34 284.18   Q 1380.73 264.26 1379.63 260.97   Q 1378.28 256.92 1381.38 254.90   Q 1383.04 253.82 1386.33 253.85   Q 1403.19 253.99 1452.00 254.01   Q 1455.36 254.01 1457.58 256.43   Q 1458.88 257.83 1460.06 262.05   Q 1487.85 361.43 1518.54 457.74   Z"/>
427  <ellipse fill="#6b6880" cx="0.00" cy="0.00" transform="translate(1980.12,299.17) rotate(-1.4)" rx="32.48" ry="31.76"/>
428  <path fill="#6b6880" d="   M 1858.12 417.61   Q 1858.74 412.71 1858.18 408.20   C 1856.48 394.25 1845.42 388.28 1832.30 387.76   Q 1817.84 387.19 1809.42 389.24   Q 1794.71 392.83 1789.54 394.80   Q 1783.22 397.22 1776.11 399.75   A 1.75 1.73 -50.8 0 1 1775.27 399.84   Q 1773.15 399.53 1772.73 397.52   Q 1769.31 381.20 1763.86 364.16   C 1762.58 360.13 1764.97 358.59 1768.50 357.10   C 1799.00 344.24 1832.60 338.17 1864.83 345.27   Q 1884.46 349.59 1896.49 359.50   C 1912.41 372.60 1917.69 391.96 1917.69 412.31   Q 1917.68 427.83 1917.62 478.35   Q 1917.61 491.92 1918.49 500.62   Q 1919.76 513.16 1921.18 522.74   Q 1921.85 527.23 1916.95 527.39   Q 1907.92 527.69 1872.54 527.42   A 3.17 3.17 0.0 0 1 1869.62 525.41   L 1863.52 509.64   A 0.36 0.36 0.0 0 0 1862.93 509.52   C 1853.80 518.63 1842.65 525.76 1830.00 528.81   Q 1805.62 534.68 1783.05 526.93   Q 1768.80 522.05 1759.18 510.38   C 1741.72 489.19 1742.88 453.03 1764.37 434.47   C 1779.07 421.79 1800.32 418.35 1819.76 418.20   Q 1852.39 417.95 1857.52 418.12   A 0.59 0.58 -85.1 0 0 1858.12 417.61   Z   M 1858.09 449.65   Q 1843.48 449.55 1835.76 449.71   Q 1825.13 449.92 1815.91 454.13   C 1807.52 457.97 1803.52 466.84 1805.38 475.79   C 1807.23 484.69 1815.09 489.25 1823.77 489.99   Q 1840.51 491.41 1851.61 481.23   C 1856.83 476.44 1858.63 470.83 1858.73 463.76   Q 1858.86 454.43 1858.63 450.17   A 0.55 0.54 88.3 0 0 1858.09 449.65   Z"/>
429  <rect fill="#6b6880" x="1950.37" y="346.14" width="61.08" height="181.42" rx="4.53"/>
430  <ellipse fill="#6b6880" cx="0.00" cy="0.00" transform="translate(1677.05,490.30) rotate(-77.9)" rx="38.21" ry="38.04"/>
431</svg><svg class="brand-logo brand-logo-dark" xmlns="http://www.w3.org/2000/svg" viewBox="175.9 157.5 1876.7 470.3" aria-hidden="true">
432  
433  <g transform="translate(71.40,94.08) scale(0.8310)">
434    <path fill="#9b93d9" d="M 414.92 382.11   A 1.59 1.58 -67.3 0 0 415.54 383.63   Q 430.74 394.82 443.54 407.91   Q 460.74 425.47 466.30 448.40   
434C 472.21 472.78 468.25 499.23 462.17 523.97   A 4.18 4.02 -23.0 0 1 461.64 525.21   Q 459.13 529.19 454.95 528.41   Q 452.99 528.05 449.48 523.81   Q 422.47 491.17 387.27 456.45   C 386.12 455.31 384.71 454.36 382.72 454.33   C 378.98 454.28 372.68 453.43 367.76 453.49   Q 349.34 453.71 345.54 453.54   Q 342.86 453.41 341.84 450.77   A 1.63 1.60 -55.7 0 1 341.74 450.21   Q 341.72 413.90 341.81 339.57   Q 341.81 336.66 345.32 336.70   Q 357.95 336.82 363.49 336.72   A 4.04 3.85 -53.1 0 0 364.63 336.53   Q 370.03 334.77 369.27 328.77   A 2.96 2.88 25.8 0 0 368.81 327.51   C 366.00 323.34 361.17 317.82 358.41 314.20   Q 335.88 284.57 327.89 274.17   C 321.98 266.49 317.22 271.39 312.79 277.33   Q 298.29 296.81 278.06 323.16   C 275.23 326.85 273.38 328.80 274.72 333.02   C 275.67 336.02 278.88 336.61 281.93 336.62   Q 296.72 336.67 298.49 336.69   C 301.01 336.71 301.38 338.04 301.38 340.37   Q 301.43 377.51 301.45 448.33   C 301.45 452.65 299.41 453.70 295.39 453.61   Q 293.53 453.56 278.21 453.47   C 271.35 453.42 266.14 454.07 259.39 454.57   A 3.11 3.01 -61.9 0 0 257.99 455.02   Q 256.51 455.92 255.07 457.32   Q 250.38 461.88 230.59 482.33   Q 211.80 501.75 201.10 515.34   C 196.74 520.88 192.09 527.82 188.41 528.39   Q 184.48 528.99 181.81 525.62   A 3.35 3.35 0.0 0 1 181.17 524.34   C 174.49 498.13 170.11 468.95 178.33 443.03   Q 184.77 422.71 201.09 406.28   Q 214.51 392.77 227.50 383.27   A 0.97 0.96 67.9 0 0 227.88 382.36   C 223.79 354.57 222.38 326.37 224.67 298.19   Q 230.08 231.51 267.68 178.26   C 281.46 158.76 297.20 141.42 315.90 126.65   C 319.72 123.64 323.46 123.95 327.52 126.81   Q 331.94 129.93 337.38 134.90   Q 362.92 158.21 381.21 186.56   Q 414.86 238.71 418.74 300.48   Q 421.36 342.10 414.92 382.11   Z"/>
435    <path fill="#fe8913" d="M 321.60 594.18   Q 318.54 594.18 315.59 591.67   C 293.54 572.90 275.37 546.18 269.03 517.45   Q 266.92 507.85 267.56 499.29   C 268.00 493.36 269.67 480.04 274.87 477.08   Q 276.24 476.30 280.47 476.29   Q 301.23 476.27 321.60 476.27   Q 341.97 476.27 362.73 476.29   Q 366.96 476.30 368.33 477.08   C 373.53 480.04 375.20 493.36 375.64 499.29   Q 376.28 507.85 374.17 517.45   C 367.83 546.18 349.66 572.90 327.61 591.67   Q 324.66 594.18 321.60 594.18   Z"/>
436  </g>
437  <path fill="#ffffff" d="   M 645.64 438.37   A 1.00 0.99 -89.2 0 0 644.62 439.37   L 644.62 523.34   A 0.12 0.06 73.2 0 1 644.61 523.39   C 643.81 526.67 641.49 527.73 638.06 527.71   Q 595.61 527.55 579.42 527.69   C 575.00 527.73 571.37 526.90 571.37 522.01   Q 571.45 305.92 571.35 263.75   Q 571.34 262.12 571.46 258.44   A 2.06 2.00 60.1 0 1 571.69 257.54   Q 573.50 253.97 576.77 253.96   C 624.57 253.79 651.68 253.19 692.44 253.38   Q 718.39 253.50 741.79 262.22   Q 746.14 263.84 755.51 269.24   C 776.55 281.39 787.99 301.75 792.29 325.67   Q 796.54 349.25 790.20 371.94   C 782.51 399.45 762.34 419.35 735.30 429.04   Q 712.58 437.19 690.95 438.08   Q 669.00 438.99 645.64 438.37   Z   M 644.61 380.45   A 2.08 2.08 0.0 0 0 646.65 382.53   Q 659.82 382.78 675.60 382.58   C 690.91 382.39 709.35 377.92 716.40 362.31   Q 721.42 351.18 719.32 337.42   C 716.31 317.61 700.09 310.28 682.00 309.90   Q 663.34 309.51 646.82 310.03   A 2.28 2.28 0.0 0 0 644.61 312.31   L 644.61 380.45   Z"/>
438  <path fill="#ffffff" d="   M 941.78 457.58   Q 973.07 358.23 1001.99 259.72   Q 1003.74 253.77 1010.78 253.82   Q 1052.02 254.08 1072.25 253.90   C 1074.60 253.88 1076.87 253.78 1078.49 255.26   Q 1081.10 257.64 1079.78 261.51   Q 1038.10 383.75 995.91 507.10   C 994.48 511.28 992.70 518.21 990.90 522.37   C 989.15 526.39 986.75 527.67 982.03 527.67   Q 899.36 527.74 895.62 527.61   Q 892.82 527.51 890.64 524.49   A 3.16 2.93 20.3 0 1 890.24 523.70   Q 851.97 409.30 845.67 390.15   Q 828.87 339.15 804.62 263.57   Q 803.21 259.19 803.67 257.83   C 804.62 255.08 806.86 254.10 809.96 254.13   C 815.37 254.17 822.70 253.87 829.67 253.92   Q 866.74 254.20 873.27 253.92   Q 880.36 253.62 882.29 260.14   Q 882.78 261.78 887.76 278.85   Q 918.59 384.58 933.00 431.62   Q 934.50 436.52 940.79 457.57   A 0.52 0.52 0.0 0 0 941.78 457.58   Z"/>
439  <path fill="#ffffff" d="   M 1103.95 256.26   C 1105.91 253.57 1108.46 253.89 1112.20 253.89   Q 1131.84 253.91 1141.25 253.99   C 1152.11 254.08 1161.51 253.57 1171.24 254.07   C 1177.77 254.41 1176.43 261.96 1176.43 266.00   Q 1176.45 359.04 1176.48 413.62   Q 1176.49 425.76 1177.57 431.77   Q 1179.25 441.14 1183.46 448.97   C 1190.31 461.72 1204.46 468.20 1218.56 469.38   C 1236.07 470.83 1255.79 467.36 1266.56 452.05   C 1274.67 440.53 1277.09 425.06 1276.64 411.04   Q 1276.61 410.19 1276.63 266.53   C 1276.63 259.72 1275.59 253.90 1283.53 253.92   Q 1329.26 254.02 1342.00 253.93   C 1346.86 253.90 1350.30 254.62 1350.31 260.01   Q 1350.36 291.29 1350.31 418.25   C 1350.29 442.57 1345.10 465.87 1331.86 486.04   C 1313.98 513.28 1281.83 526.72 1250.74 530.51   Q 1219.46 534.33 1187.73 528.81   C 1150.60 522.34 1120.23 499.94 1109.00 462.98   Q 1105.46 451.35 1103.88 438.17   Q 1102.98 430.64 1103.08 412.81   Q 1103.15 398.81 1103.07 258.77   Q 1103.06 257.48 1103.95 256.26   Z"/>
440  <path fill="#ffffff" d="   M 1518.54 457.74   A 0.61 0.60 -21.9 0 0 1519.39 458.10   Q 1519.73 457.94 1519.90 457.43   Q 1524.58 443.29 1534.24 412.02   Q 1545.19 376.61 1565.27 309.67   Q 1568.44 299.11 1572.15 285.82   Q 1578.77 262.13 1578.82 261.91   C 1579.91 257.45 1582.35 253.81 1586.70 253.83   Q 1629.98 253.96 1648.31 253.85   Q 1654.01 253.81 1655.26 254.69   C 1658.38 256.88 1657.65 259.86 1656.33 263.37   Q 1654.42 268.43 1650.80 279.03   Q 1626.73 349.56 1595.71 442.60   C 1588.31 464.78 1577.60 495.07 1569.17 520.67   Q 1568.02 524.15 1566.65 525.49   Q 1564.42 527.68 1561.76 527.68   Q 1492.67 527.62 1474.05 527.77   Q 1470.59 527.80 1468.42 525.93   Q 1466.90 524.62 1465.58 520.61   Q 1436.82 433.29 1387.34 284.18   Q 1380.73 264.26 1379.63 260.97   Q 1378.28 256.92 1381.38 254.90   Q 1383.04 253.82 1386.33 253.85   Q 1403.19 253.99 1452.00 254.01   Q 1455.36 254.01 1457.58 256.43   Q 1458.88 257.83 1460.06 262.05   Q 1487.85 361.43 1518.54 457.74   Z"/>
441  <ellipse fill="#b8b4cc" cx="0.00" cy="0.00" transform="translate(1980.12,299.17) rotate(-1.4)" rx="32.48" ry="31.76"/>
442  <path fill="#b8b4cc" d="   M 1858.12 417.61   Q 1858.74 412.71 1858.18 408.20   C 1856.48 394.25 1845.42 388.28 1832.30 387.76   Q 1817.84 387.19 1809.42 389.24   Q 1794.71 392.83 1789.54 394.80   Q 1783.22 397.22 1776.11 399.75   A 1.75 1.73 -50.8 0 1 1775.27 399.84   Q 1773.15 399.53 1772.73 397.52   Q 1769.31 381.20 1763.86 364.16   C 1762.58 360.13 1764.97 358.59 1768.50 357.10   C 1799.00 344.24 1832.60 338.17 1864.83 345.27   Q 1884.46 349.59 1896.49 359.50   C 1912.41 372.60 1917.69 391.96 1917.69 412.31   Q 1917.68 427.83 1917.62 478.35   Q 1917.61 491.92 1918.49 500.62   Q 1919.76 513.16 1921.18 522.74   Q 1921.85 527.23 1916.95 527.39   Q 1907.92 527.69 1872.54 527.42   A 3.17 3.17 0.0 0 1 1869.62 525.41   L 1863.52 509.64   A 0.36 0.36 0.0 0 0 1862.93 509.52   C 1853.80 518.63 1842.65 525.76 1830.00 528.8
4421   Q 1805.62 534.68 1783.05 526.93   Q 1768.80 522.05 1759.18 510.38   C 1741.72 489.19 1742.88 453.03 1764.37 434.47   C 1779.07 421.79 1800.32 418.35 1819.76 418.20   Q 1852.39 417.95 1857.52 418.12   A 0.59 0.58 -85.1 0 0 1858.12 417.61   Z   M 1858.09 449.65   Q 1843.48 449.55 1835.76 449.71   Q 1825.13 449.92 1815.91 454.13   C 1807.52 457.97 1803.52 466.84 1805.38 475.79   C 1807.23 484.69 1815.09 489.25 1823.77 489.99   Q 1840.51 491.41 1851.61 481.23   C 1856.83 476.44 1858.63 470.83 1858.73 463.76   Q 1858.86 454.43 1858.63 450.17   A 0.55 0.54 88.3 0 0 1858.09 449.65   Z"/>
443  <rect fill="#b8b4cc" x="1950.37" y="346.14" width="61.08" height="181.42" rx="4.53"/>
444  <ellipse fill="#b8b4cc" cx="0.00" cy="0.00" transform="translate(1677.05,490.30) rotate(-77.9)" rx="38.21" ry="38.04"/>
445</svg>
446          
447        </a>
448        <p>Open-source, self-hosted web analytics with invalid-traffic detection &amp; ad protection.</p>
449      </div>
450      <nav class="footer-nav" aria-label="Footer">
451        <div class="footer-col">
452          <span class="footer-h">Product</span>
453          <a href="#features">Features</a>
454          <a href="#detection">Detection</a>
455          <a href="#architecture">Architecture</a>
456          <a href="#roadmap">Roadmap</a>
457        </div>
458        <div class="footer-col">
459          <span class="footer-h">Resources</span>
460          <a href="https://github.com/qiayue/pvuv.ai" rel="noopener" target="_blank">GitHub</a>
461          <a href="https://github.com/qiayue/pvuv.ai/blob/main/PROJECT_PLAN.md" rel="noopener" target="_blank">Build spec</a>
462          <a href="https://github.com/qiayue/pvuv.ai/blob/main/CONTRIBUTING.md" rel="noopener" target="_blank">Contributing</a>
463          <a href="https://github.com/qiayue/pvuv.ai/blob/main/SECURITY.md" rel="noopener" target="_blank">Security</a>
464        </div>
465      </nav>
466    </div>
467    <div class="container footer-bottom">
468      <p>© 2026 PVUV.ai · Licensed under AGPL-3.0</p>
469      <p class="footer-note">Runs on Cloudflare Workers + D1</p>
470    </div>
471  </footer>
472
473  
474
475
476<script src="/_assets/site.js" defer></script>
476  <!-- PVUV.ai analytics (self-tracking) -->
477  
477<script defer src="https://www.pvuv.ai/f.js" data-site="TaymKSbQ" data-api="https://in.pvuv.ai"></script>
477
478</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.