PageSourceSearch

https://www.pubperf.com/blog

html pubperf.com collected 2026-09-25 22:54:48 UTC 34,932 bytes, 31 lines download raw bytes

1<!DOCTYPE html><html lang="en-US"><head><meta charSet="utf-8"/>
1<script>!function(){var d=document.documentElement.classList;d.remove('light','dark');d.add('light')}()</script>
1<title>Performance tips and best practices</title><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/><meta name="description" content="PubPerf performance tips and best practices for publishers — site speed, Core Web Vitals, prebid analytics, and ad revenue optimization."/><meta property="og:description" content="PubPerf performance tips and best practices for publishers — site speed, Core Web Vitals, prebid analytics, and ad revenue optimization."/><meta property="og:title" content="Performance tips and best practices"/><meta property="og:url" content="https://www.pubperf.com/blog"/><meta property="og:site_name" content="Pubperf Analytics"/><meta property="og:image" content="https://www.pubperf.com/images/blog.png"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://www.pubperf.com/images/blog.png"/><meta name="twitter:title" content="Performance tips and best practices | Pubperf Analytics"/><meta name="twitter:creator" content="@transfon"/><link rel="canonical" href="https://www.pubperf.com/blog"/>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.pubperf.com"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://www.pubperf.com/blog"}]}</script>
1<link rel="preload" href="/fonts/dm-sans-latin.woff2" as="font" crossorigin=""/><link rel="preload" href="/fonts/ibm-plex-mono-400.woff2" as="font" crossorigin=""/><link rel="apple-touch-icon" sizes="180x180" href="https://www.pubperf.com/images/icons/apple-icon-180x180.png"/><link rel="icon" type="image/png" sizes="192x192" href="https://www.pubperf.com/images/icons/android-icon-192x192.png"/><link rel="icon" type="image/png" sizes="32x32" href="https://www.pubperf.com/images/icons/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="https://www.pubperf.com/images/icons/favicon-16x16.png"/><meta name="next-head-count" content="22"/><link rel="preload" href="/_next/static/css/48c32e2c4cf16882.css" as="style"/><link rel="stylesheet" href="/_next/static/css/48c32e2c4cf16882.css" data-n-g=""/><noscript data-n-css=""></noscript></head><body class="font-sans"><div id="__next"><div><div class="w-full min-h-full antialiased font-body bg-white"><div id="header-bar"><div class="h-14 border-b border-gray-200 dark:border-gray-600"><div class="h-full max-w-screen-lg mx-auto flex flex-row items-center px-5 lg:px-0"><a href="https://www.transfon.com/?utm_campaign=headerbar" class="mr-8 h-full flex items-center"><img src="https://www.transfon.com/images/logo-black.svg" id="header-bar-logo" alt="Transfon" class="w-32"/></a><ul class="h-full w-full flex-row hidden md:flex-1 md:flex space-x-5"><li class="relative" data-headlessui-state=""><button class="h-full text-sm hover:text-gray-900 dark:hover:text-gray-200 outline-none text-gray-400" type="button" aria-expanded="false" data-headlessui-state="">Browse Products</button></li><li class="relative" data-headlessui-state=""><button class="h-full text-sm hover:text-gray-900 dark:hover:text-gray-200 outline-none text-gray-400" type="button" aria-expanded="false" data-headlessui-state="">Browse Solutions</button></li></ul><div style="position:fixed;top:1px;left:1px;width:1px;height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none"></div></div></div></div><div class="mx-auto text-center" id="main-nav"><div class="relative text-left text-white" data-headlessui-state=""><div class="relative"><div class="flex md:bg-transparent justify-between items-center px-5 lg:px-0 md:justify-start dark:bg-gray-800 mx-auto max-w-screen-lg unis-main-nav-root bg-white h-[56px] md:h-[88px]"><a href="/" class="flex-shrink-0 flex"><span class="sr-only">PubPerf</span><img id="logo" class="md:inline-block " width="140" height="auto" src="https://www.pubperf.com/static/logo-black.svg" alt="PubPerf"/></a><div class="-my-2 flex space-x-3 items-center md:hidden"><button class="rounded-md p-2 inline-flex items-center justify-center focus:outline-none text-gray-400 hover:text-gray-500 hover:bg-gray-100" type="button" aria-expanded="false" data-headlessui-state=""><span class="sr-only">Open menu</span><svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button></div><nav class="hidden md:flex-1 md:flex md:items-center md:justify-end h-full"><a href="/features" class="text-base font-medium px-2.5 lg:px-5 text-gray-500 hover:text-gray-900 dark:text-white dark:hover:text-gray-200">Features</a><a href="/prebid-analytics" class="text-base font-medium px-2.5 lg:px-5 text-gray-500 hover:text-gray-900 dark:text-white dark:hover:text-gray-200">Prebid Analytics</a><a href="/pricing" class="text-base font-medium px-2.5 lg:px-5 text-gray-500 hover:text-gray-900 dark:text-white dark:hover:text-gray-200">Pricing</a><a href="/blog" class="text-base font-medium px-2.5 lg:px-5 text-gray-500 hover:text-gray-900 dark:text-white dark:hover:text-gray-200">Blog</a><a href="/mcp" class="text-base font-medium px-2.5 lg:px-5 text-gray-500 hover:text-gray-900 dark:text-white dark:hover:text-gray-200">MCP</a><a href="/docs" class="text-base font-medium px-2.5 lg:px-5 text-gray-500 hover:text-gray-900 dark:text-white dark:hover:text-gray-200">Docs</a><div class="flex"><a href="https://app.pubperf.com/auth/register" target="_self" class="inline-flex items-center space-x-1 text-sm px-5 py-3 font-bold uppercase text-center whitespace-nowrap rounded border leading-none !no-underline border-blue-500 bg-blue-500 !text-white hover:!text-white hover:bg-blue-400 !bg-black !border-black !rounded-full !normal-case !font-medium shadow-sm hover:shadow-md hover:!bg-gray-800 hover:!border-gray-800 !px-3 lg:!px-5 !py-2 mx-2.5 lg:mx-5"><span>
1Start 14-Day Free Trial</span></a></div></nav></div></div></div><div style="position:fixed;top:1px;left:1px;width:1px;height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none"></div></div><div class="bg-hero mb-12"><div class="mx-auto max-w-screen-lg text-center"><div class="mx-auto max-w-screen-lg text-center p-6 md:p-10"><h1 class="text-3xl lg:text-4xl leading-none tracking-tight mt-8 sm:my-5 font-semibold text-gray-900 dark:text-white">Performance tips and best practices</h1><p class="mt-10 font-medium mx-auto text-lg max-w-lg text-gray-500 dark:text-white"></p><div class="mt-8 mb-8 text-center space-x-3"></div></div></div></div><main class="max-w-screen-lg px-6 md:mt-0 mx-auto max-w-screen-lg px-5 lg:px-0"><div class="bg-white my-10 md:px-5 px-0 py-10 lg:pb-12 font-sans"><div class="bg-white dark:bg-gray-800 font-sans"><div class="mx-auto divide-y-2 divide-gray-200 dark:divide-gray-700"><div class="pb-6"><h2 class="text-3xl tracking-tight text-gray-900 dark:text-white sm:text-4xl">Performance tips and best practices</h2><div class="mt-6"><div class="bg-white rounded-lg border border-gray-200 p-6"><h3 class="text-lg font-semibold text-gray-900 mb-4">Browse by Topic</h3><div class="relative"><input type="checkbox" id="tag-cloud-toggle" class="hidden peer"/><div class="relative max-h-20 overflow-hidden peer-checked:max-h-none p-0.5"><div class="flex flex-wrap gap-2"><a href="/blog/tag/prebid" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Prebid</a><a href="/blog/tag/publishers" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Publishers</a><a href="/blog/tag/analytics" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Analytics</a><a href="/blog/tag/seo" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">SEO</a><a href="/blog/tag/pubperf" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Pubperf</a><a href="/blog/tag/header-bidding" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Header Bidding</a><a href="/blog/tag/pagespeed" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">PageSpeed</a><a href="/blog/tag/core-web-vitals" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Core Web Vitals</a><a href="/blog/tag/inp" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">INP</a><a href="/blog/tag/ux" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">UX</a><a href="/blog/tag/prebid-analytics" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Prebid Analytics</a><a href="/blog/tag/ad-revenue" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Ad Revenue</a><a href="/blog/tag/mcp" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">MCP</a><a href="/blog/tag/ai" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">AI</a><a href="/blog/tag/google" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Google</a><a href="/blog/tag/lighthouse" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Lighthouse</a><a href="/blog/tag/third-party-scripts" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Third Party Scripts</a>
1<a href="/blog/tag/realtime-ecpm" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Realtime eCPM</a><a href="/blog/tag/site-speed" class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Site Speed</a></div></div><div class="absolute bottom-4 left-0 right-0 h-12 bg-gradient-to-t from-white to-transparent pointer-events-none peer-checked:hidden"></div><label for="tag-cloud-toggle" class="peer-checked:hidden block mt-3 text-center cursor-pointer text-tblueb text-sm font-medium hover:text-gray-900 select-none"><span class="">Show more</span></label><label for="tag-cloud-toggle" class="peer-checked:block hidden mt-3 text-center cursor-pointer text-tblueb text-sm font-medium hover:text-gray-900 select-none"><span class="">Show less</span></label></div></div></div></div><div class="mt-6 pt-10 pb-10 grid gap-16 lg:grid-cols-2 lg:gap-x-5 lg:gap-y-12"><div><a href="/blog/pubperf-mcp-integration" title="Introducing PubPerf MCP: Query Your Analytics with AI" class="aspect-w-16 aspect-h-9 block w-full"><img class="rounded-md object-cover w-full" alt="Introducing PubPerf MCP: Query Your Analytics with AI" title="Introducing PubPerf MCP: Query Your Analytics with AI" width="502" height="282" src="/images/blog/pubperf-mcp-integration.png"/></a><p class="text-sm text-gray-500 mt-2"><time dateTime="2026/07/03 10:00:00 +0000">July 3, 2026</time></p><a href="/blog/pubperf-mcp-integration" class="mt-2 block"><h3 class="text-xl font-semibold text-gray-900">Introducing PubPerf MCP: Query Your Analytics with AI</h3><p class="mt-3 text-md text-gray-500">PubPerf MCP lets publishers query Core Web Vitals, Prebid analytics, ad revenue, and content performance by simply asking AI assistants like Claude and ChatGPT.</p></a><div class="mt-3"><a href="/blog/pubperf-mcp-integration" class="text-base font-semibold text-tblueb hover:text-tbluea">Read full article</a></div></div><div><a href="/blog/header-bidding-analytics-guide" title="Header Bidding Analytics: What to Track and Why It Matters" class="aspect-w-16 aspect-h-9 block w-full"><img class="rounded-md object-cover w-full" alt="Header Bidding Analytics: What to Track and Why It Matters" title="Header Bidding Analytics: What to Track and Why It Matters" width="502" height="282" src="/images/headerbidding-topn-analysis.png"/></a><p class="text-sm text-gray-500 mt-2"><time dateTime="2026/02/17 10:00:00 +0000">February 17, 2026</time></p><a href="/blog/header-bidding-analytics-guide" class="mt-2 block"><h3 class="text-xl font-semibold text-gray-900">Header Bidding Analytics: What to Track and Why It Matters</h3><p class="mt-3 text-md text-gray-500">Master header bidding analytics: learn the main KPIs, how to diagnose common issues, and how to use data to increase your programmatic ad revenue.</p></a><div class="mt-3"><a href="/blog/header-bidding-analytics-guide" class="text-base font-semibold text-tblueb hover:text-tbluea">Read full article</a></div></div><div><a href="/blog/prebid-analytics-tools-comparison" title="The Complete Guide to Prebid Analytics Tools: 2026 Comparison" class="aspect-w-16 aspect-h-9 block w-full"><img class="rounded-md object-cover w-full" alt="The Complete Guide to Prebid Analytics Tools: 2026 Comparison" title="The Complete Guide to Prebid Analytics Tools: 2026 Comparison" width="502" height="282" src="/images/headerbidding-insights.png"/></a><p class="text-sm text-gray-500 mt-2"><time dateTime="2026/02/17 10:00:00 +0000">February 17, 2026</time></p><a href="/blog/prebid-analytics-tools-comparison" class="mt-2 block"><h3 class="text-xl font-semibold text-gray-900">The Complete Guide to Prebid Analytics Tools: 2026 Comparison</h3><p class="mt-3 text-md text-gray-500">Compare the top prebid analytics tools in 2026. Learn what metrics to track, how to choose the right platform, and how real-time prebid analytics can increase your header bidding revenue.</p></a><div class="mt-3"><a href="/blog/prebid-analytics-tools-comparison" class="text-base font-semibold text-tblueb hover:text-tbluea">Read full article</a></div></div><div><a href="/blog/ads-core-web-vitals-guide" title="How Ads Affect Core Web Vitals: A Data-Driven Publisher Guide" class="aspect-w-16 aspect-h-9 block w-full"><img class="rounded-md object-cover w-full" alt="How Ads Affect Core Web Vitals: A Data-Driven Publisher Guide" title="How Ads Affect Core Web Vitals: A Data-Driven Publisher Guide" width="502" height="282" src="/images/webvital-trends.png"/></a><p class="text-sm text-gray-500 mt-2"><time dateTime="2026/02/15 10:00:00 +0000">February 15, 2026</time></p><a href="/blog/ads-core-web-vitals-guide" class="mt-2 block"><h3 class="text-xl font-semibold text-gray-900">How Ads Affect Core Web Vitals: A Data-Driven Publisher Guide</h3><p class="mt-3 text-md text-gray-500">Discover exactly how ad tags, header bidding, and ad lazy loading affect your Core Web Vitals scores. Practical, data-backed strategies for publishers to balance ad revenue and page performance.</p></a><div class="mt-3"><a href="/blog/ads-core-web-vitals-guide" class="text-base font-semibold text-tblueb hover:text-tbluea">Read full article</a></div></div><div><a href="/blog/ad-revenue-diagnostic-guide" title="Why Your Ad Revenue Dropped: A Publisher&#x27;s Diagnostic Guide" class="aspect-w-16 aspect-h-9 block w-full"><img class="rounded-md object-cover w-full" alt="Why Your Ad Revenue Dropped: A Publisher&#x27;s Diagnostic Guide" title="Why Your Ad Revenue Dropped: A Publisher&#x27;s Diagnostic Guide" width="502" height="282" src="/images/prebid-ecpm.png"/></a><p class="text-sm text-gray-500 mt-2"><time dateTime="2026/02/14 10:00:00 +0000">February 14, 2026</time></p><a href="/blog/ad-revenue-diagnostic-guide" class="mt-2 block"><h3 class="text-xl font-semibold text-gray-900">Why Your Ad Revenue Dropped: A Publisher&#x27;s Diagnostic Guide</h3><p class="mt-3 text-md text-gray-500">A systematic framework for diagnosing ad revenue drops. Learn how to identify whether the cause is traffic, bidders, consent, page speed, or seasonal trends — and fix it.</p></a><div class="mt-3"><a href="/blog/ad-revenue-diagnostic-guide" class="text-base font-semibold text-tblueb hover:text-tbluea">Read full article</a></div></div><div><a href="/blog/how-to-fix-inp" title="How to Improve Web Vitals INP Score and Identify issues" class="aspect-w-16 aspect-h-9 block w-full"><img class="rounded-md object-cover w-full" alt="How to Improve Web Vitals INP Score and Identify issues" title="How to Improve Web Vitals INP Score and Identify issues" width="502" height="282" src="/images/webvitals-inp-scores.jpg"/></a><p class="text-sm text-gray-500 mt-2"><time dateTime="2024/02/13 09:49:36 +0100">February 13, 2024</time></p><a href="/blog/how-to-fix-inp" class="mt-2 block"><h3 class="text-xl font-semibold text-gray-900">How to Improve Web Vitals INP Score and Identify issues</h3><p class="mt-3 text-md text-gray-500">Interaction to Next Paint (INP) score has recently gained support and is now integrated into Pubperf analytics.</p></a><div class="mt-3"><a href="/blog/how-to-fix-inp" class="text-base font-semibold text-tblueb hover:text-tbluea">Read full article</a></div></div></div></div><div class="mt-8"><nav aria-label="Page navigation" class="flex justify-center mt-8"><ul class="inline-flex items-center -space-x-px rounded-md text-sm"><li><span aria-disabled="true" role="link" class="flex items-center justify-center px-3 h-9 ms-0 leading-tight border border-e-0 border-gray-300 rounded-s-lg transition-colors duration-200 text-gray-300 bg-gray-50"><span class="sr-only">Previous</span><svg class="w-3 h-3" aria-hidden="true" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" clip-rule="evenodd"></path></svg></span></li><li><span aria-current="page" class="relative z-20 flex items-center justify-center px-3 h-9 leading-tight text-white border-t border-b border-l border-r border-gray-800 bg-gray-600 transition-colors duration-200">1</span></li><li><a href="/blog/page/2" aria-label="Go to page 2" class="flex items-center justify-center px-3 h-9 leading-tight text-gray-500 bg-white border border-gray-300 hover:bg-gray-100 hover:text-gray-700 transition-colors duration-200">2</a></li><li><a href="/blog/page/2" rel="next" aria-label="Next page" class="flex items-center justify-center px-3 h-9 leading-tight border border-gray-300 rounded-e-lg transition-colors duration-200 pointer-events-auto text-gray-500 bg-white hover:bg-gray-100 hover:text-gray-700"><span class="sr-only">Next</span><svg class="w-3 h-3" aria-hidden="true" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></a></li></ul></nav></div></div></div></main></div><footer class="bg-gray-700 dark:bg-gray-900 text-white p-10 font-sans"><div class="mx-auto max-w-screen-lg md:flex"><div class="pb-8 xl:grid xl:grid-cols-3 xl:gap-8"><div class="grid grid-cols-1 md:grid-cols-3  gap-8 xl:col-span-4 text-center md:text-left"><div>
1<h4 class="text-white tracking-wider uppercase font-normal">General</h4><ul class="mt-4 space-y-1 text-sm"><li><a href="https://www.transfon.com/aboutus" class="text-gray-300 hover:text-gray-200">About Us</a></li><li><a href="https://www.transfon.com/careers" class="text-gray-300 hover:text-gray-200">Careers</a></li></ul><div class="mt-4 text-sm text-gray-300">Transfon Ltd<br/><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="94fcf1f8f8fbd4e0e6f5fae7f2fbfabaf7fbf9">[email&#160;protected]</a><br/><br/><a href="https://www.transfon.com" target="_blank" rel="noreferrer"><img class="my-2 mx-auto md:mx-0" src="https://www.transfon.com/static/logo-long-white.svg" width="120" alt="transfon"/></a><br/><p>© 2017 - <!-- -->2026<!-- --> Transfon Ltd. All rights reserved.</p></div></div><div><h4 class="text-white tracking-wider uppercase font-normal">Transfon Platform</h4><ul class="mt-4 space-y-1 text-sm"><li><a href="https://www.transfon.com/" target="_blank" title="Transfon" class="text-gray-300 hover:text-gray-200" rel="noreferrer">Transfon</a></li></ul><h4 class="mt-4 text-white tracking-wider uppercase font-normal">Legal</h4><ul class="mt-4 space-y-1 text-sm"><li><a href="/privacy" class="text-gray-300 hover:text-gray-200">Privacy</a></li><li><a href="/tos" class="text-gray-300 hover:text-gray-200">Terms of Use</a></li></ul></div><div><h4 class="text-white tracking-wider uppercase font-normal">Social</h4><div class="mt-4 flex justify-center md:justify-start space-x-6"><a href="https://www.facebook.com/transfonhq" class="text-gray-300 hover:text-gray-200"><span class="sr-only">Facebook</span><svg fill="currentColor" viewBox="0 0 24 24" aria-hidden="true" class="h-6 w-6"><path fill-rule="evenodd" d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987
1h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z" clip-rule="evenodd"></path></svg></a><a href="https://twitter.com/transfon" class="text-gray-300 hover:text-gray-200"><span class="sr-only">Twitter</span><svg fill="currentColor" viewBox="0 0 24 24" aria-hidden="true" class="h-6 w-6"><path d="M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"></path></svg></a></div></div></div></div></div></footer></div></div><link rel="stylesheet" href="/dist/bundle.css?v=4517"/>
vendor: 108 bytes, line 1
1<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1<script>
2            window.__state = window.__state || {};
3            window.__state = {"mainNav":{"showHeaderBar":true,"siteName":"PubPerf","variant":"white","logoImg":"https://www.pubperf.com/static/logo-black.svg","logoWidth":140,"logoHeight":"auto","logoMobileImg":"https://www.pubperf.com/static/logo-black.svg","logoMobileWidth":120,"logoMobileHeight":"auto","logoCls":"","mobileBlog":"","menu":[{"name":"Features","href":"/features","icon":"ViewGridIcon"},{"name":"Prebid Analytics","href":"/prebid-analytics","icon":"ChartBarIcon"},{"name":"Pricing","href":"/pricing","icon":"CurrencyPoundIcon"},{"name":"Blog","href":"/blog","icon":"NewspaperIcon"},{"name":"MCP","href":"/mcp","icon":"CpuChipIcon"},{"name":"Docs","href":"/docs","icon":"DocumentTextIcon"}],"mobileMenu":[{"name":"Features","href":"/features","icon":"ViewGridIcon"},{"name":"Prebid Analytics","href":"/prebid-analytics","icon":"ChartBarIcon"},{"name":"Pricing","href":"/pricing","icon":"CurrencyPoundIcon"},{"name":"Blog","href":"/blog","icon":"NewspaperIcon"},{"name":"MCP","href":"/mcp","icon":"CpuChipIcon"},{"name":"Docs","href":"/docs","icon":"DocumentTextIcon"}],"loginHref":"","showLoginBtn":false,"contactLink":null,"rightLinks":[{"name":"Start 14-Day Free Trial","href":"https://app.pubperf.com/auth/register","variant":"blue","className":"!bg-black !border-black !rounded-full !normal-case !font-medium shadow-sm hover:shadow-md hover:!bg-gray-800 hover:!border-gray-800 !px-3 lg:!px-5 !py-2"}],"bottomMobileLinks":[{"name":"Start 14-Day Free Trial","href":"https://app.pubperf.com/auth/register","variant":"blue","className":"!bg-black !border-black !rounded-full !normal-case !font-medium shadow-sm hover:!bg-gray-800 hover:!border-gray-800 my-3 ml-3"},{"name":"Contact us","href":"/contact","variant":"white","className":"!border-0 !bg-transparent !normal-case !font-medium !text-gray-500 hover:!text-gray-900 !shadow-none my-3 mr-3"}]},"docNav":{"meta":{"order":[{"id":"concepts","name":"Concepts","de
3scription":"Concepts of the PubPerf","image":"","open":true,"pages":[{"route":"overview","display":"Overview"},{"href":"/docs/concepts/api","display":"Javascript API"},{"href":"/docs/concepts/iab-tcf-support","display":"IAB TCF API Support"}]},{"id":"getting-started","name":"Getting Started","description":"Set up your workspace and connect your site","image":"","open":true,"pages":[{"href":"/docs/getting-started/organizations-and-projects","display":"Organizations & Projects"},{"href":"/docs/getting-started/api-keys-and-integrations","display":"API Keys & Integrations"},{"href":"/docs/getting-started/mcp","display":"MCP Integration"}]},{"id":"features","name":"Features","description":"Detailed guides for each PubPerf feature","image":"","open":true,"pages":[{"href":"/docs/features/real-user-monitoring","display":"Real User Monitoring"},{"href":"/docs/features/web-vitals","display":"Web Vitals"},{"href":"/docs/features/ad-revenue-analytics","display":"Ad Revenue Analytics"},{"href":"/docs/features/prebid-analytics","display":"Prebid Analytics"},{"href":"/docs/features/content-analytics","display":"Content Analytics"},{"href":"/docs/features/notifications","display":"Notifications"}]}]}},"pricing":{"plans":[{"name":"Starter","periods":{"monthly":[{"currency":"USD","amount":"39","symbol":"$"}],"annual":[{"currency":"USD","amount":"390","symbol":"$"}]},"features":["Up to 500K monthly pageviews","3 Projects","3 Team Members","Real User Performance Monitoring","Core Web Vitals Analytics (LCP, CLS, INP)","Website Speed Index & Performance Trends","Content Analytics by Author, Category & URL","Ad Revenue & Impressions Tracking","Viewability Monitoring","Header Bidding Realtime Insight","Bidder eCPM, Latency & Win Rate","Bidder Timeout Tracking","Revenue Forecasting","Email Alerts & Notifications","CSV Data Export","14-Day Free Trial"]},{"name":"Growth","periods":{"monthly":[{"currency":"USD","amount":"99","symbol":"$"}],"annual":[{"currency":"USD","amount":"990","symbol":"$"}]},"features":["Up to 2M monthly pageviews","10 Projects","10 Team Members","Real User Performance Monitoring","Core Web Vitals Analytics (LCP, CLS, INP)","Website Speed Index & Performance Trends","Content Analytics by Author, Category & URL","Ad Revenue & Impressions Tracking","Viewability Monitoring","Header Bidding Realtime Insight","Bidder eCPM, Latency & Win Rate","Bidder Timeout Tracking","Revenue Forecasting","Email Alerts & Notifications","API Access","Team Management & Role-Based Access","CSV Data Export","Priority Email Support","14-Day Free Trial"]},{"name":"Enterprise","periods":{"monthly":[{"currency":"USD","amount":"199","symbol":"$"}],"annual":[{"currency":"USD","amount":"1990","symbol":"$"}]},"features":["Up to 5M monthly pageviews","Unlimited Projects","Unlimited Team Members","Real User Performance Monitoring","Core Web Vitals Analytics (LCP, CLS, INP)","Website Speed Index & Performance Trends","Content Analytics by Author, Category & URL","Ad Revenue & Impressions Tracking","Viewability Monitoring","Header Bidding Realtime Insight","Bidder eCPM, Latency & Win Rate","Bidder Timeout Tracking","Revenue Forecasting","Email Alerts & Notifications","API Access","Team Management & Role-Based Access","CSV Data Export","SAML Single Sign-On (SSO)","Priority Email Support","Dedicated Account Manager","Custom Integrations Support","14-Day Free Trial"]}],"href":"https://app.pubperf.com/auth/register"}};
4          </script>
4<script defer="" src="/dist/vendor.js?v=22102701"></script>
4<script defer="" src="/dist/bundle.js?v=4517"></script>
4<script defer="" src="/dist/pubperf.caa840a9.js"></script>
4<script defer="" src="/dist/currency.a2c3be22.js"></script>
4<script>!function(){var i,r,o;i="__tcfapiLocator",r=[],(o=window.frames[i])||(function e(){var t=window.document,a=!!o;if(!a)if(t.body){var n=t.createElement("iframe");n.style.cssText="display:none",n.name=i,t.body.appendChild(n)}else setTimeout(e,50);return!a}(),window.__tcfapi=function(){for(var e,t=[],a=0;a<arguments.length;a++)t[a]=arguments[a];if(!t.length)return r;if("setGdprApplies"===t[0])3<t.length&&2===parseInt(t[1],10)&&"boolean"==typeof t[3]&&(e=t[3],"function"==typeof t[2]&&t[2]("set",!0));else if("ping"===t[0]){var n={gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"};"function"==typeof t[2]&&t[2](n,!0)}else r.push(t)},window.addEventListener("message",function(n){var i="string"==typeof n.data,e={};try{e=i?JSON.parse(n.data):n.data}catch(e){}var r=e.__tcfapiCall;r&&window.__tcfapi(r.command,r.version,function(e,t){var a={__tcfapiReturn:{returnValue:e,success:t,callId:r.callId}};i&&(a=JSON.stringify(a)),n.source.postMessage(a,"*")},r.parameter)},!1))}();
5!function(){var i,n,s;i="__uspapiLocator",n=[],(s=window.frames[i])||(function a(){var e=window.document,n=!!s;if(!s)if(e.body){var t=e.createElement("iframe");t.style.cssText="display:none",t.name=i,e.body.appendChild(t)}else setTimeout(a,50);return!n}(),window.__uspapi=function(){for(var a=[],e=0;e<arguments.length;e++)a[e]=arguments[e];if(!a.length)return n;"ping"===a[0]?"function"==typeof a[2]&&a[2]({cmpLoaded:!1,cmpStatus:"stub"},!0):n.push(a)},window.addEventListener("message",function(t){var i="string"==typeof t.data,a={};try{a=i?JSON.parse(t.data):t.data}catch(a){}var s=a.__uspapiCall;s&&window.__uspapi(s.command,s.version,function(a,e){var n={__uspapiReturn:{returnValue:a,success:e,callId:s.callId}};i&&(n=JSON.stringify(n)),t.source.postMessage(n,"*")},s.parameter)},!1))}();
6window.__gpp_addFrame=function(e){if(!window.frames[e])if(document.body){var t=document.createElement("iframe");t.style.cssText="display:none",t.name=e,document.body.appendChild(t)}else window.setTimeout(window.__gpp_addFrame,50,e)},window.__gpp_stub=function(){var e=arguments;if(__gpp.queue=__gpp.queue||[],__gpp.events=__gpp.events||[],!e.length||1==e.length&&"queue"==e[0])return __gpp.queue;if(1==e.length&&"events"==e[0])return __gpp.events;var t=e[0],p=1<e.length?e[1]:null,s=2<e.length?e[2]:null;if("ping"===t)p&&p({gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[-1],gppString:"",parsedSections:{}},!0);else if("addEventListener"===t){"lastId"in __gpp||(__gpp.lastId=0),__gpp.lastId++;var n=__gpp.lastId;__gpp.events.push({id:n,callback:p,parameter:s}),p({eventName:"listenerRegistered",listenerId:n,data:!0,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[-1],gppString:"",parsedSections:{}}},!0)}else if("removeEventListener"===t){for(var a=!1,i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==s){__gpp.events.splice(i,1),a=!0;break}p({eventName:"listenerRemoved",listenerId:s,data:a,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[-1],gppString:"",parsedSections:{}}},!0)}else"hasSection"===t?p(!1,!0):"getSection"===t||"getField"===t?p(null,!0):__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(s){var n="string"==typeof s.data;try{var t=n?JSON.parse(s.data):s.data}catch(e){t=null}if("object"==typeof t&&null!==t&&"__gppCall"in t){var a=t.__gppCall;window.__gpp(a.command,function(e,t){var p={__gppReturn:{returnValue:e,success:t,callId:a.callId}};s.source.postMessage(n?JSON.stringify(p):p,"*")},"parameter"in a?a.parameter:null,"version"in a?a.version:"1.1")}},"__gpp"in window&&"function"==typeof window.__gpp||(window.__gpp=window.__gpp_stub,window.addEventListener("message",window.__gpp_msghandler,!1),window.__gpp_addFrame("__gppLocator"));
7!function(){if(window.gtag||(window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)}),window.gtag("set","developer_id.dZTcxZD",!0),localStorage&&null!==localStorage.getItem("__unic_consent_mode")){var consentStatus=JSON.parse(localStorage.getItem("__unic_consent_mode"));window.gtag("consent","default",consentStatus)}else window.gtag("consent","default",{ad_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",analytics_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",security_storage:"granted"});window.gtag("set","ads_data_redaction",!0),window.gtag("set","url_passthrough",!1)}();</script>
7<script async="" src="https://cmp.uniconsent.com/v2/85d3b86a3e/cmp.js"></script>
7<script id="looperchat-tag" src="https://tag.looperchat.com/chat/tag.js" data-license="947d455d6b" defer="" async=""></script>
7<script id="waf360-tag" src="https://tag.waf360.com/tag/tag.js" license="54bd9a3d9e" defer="" async=""></script>
vendor: 66 bytes, line 7
7<script async="" src="https://www.googletagmanager.com/gtag/js?id=
7G-781GDY0PDX
vendor: 11 bytes, line 7
7"></script>
7<script>
8window.dataLayer = window.dataLayer || [];
9function gtag() { dataLayer.push(arguments) };
10gtag('js', new Date());
11gtag('config', 'G-781GDY0PDX');
12gtag('config', 'AW-18294218932');
13gtag('event', 'conversion', {
14  'send_to': 'AW-18294218932/UxNRCI6ayMkcELTBrpNE'
15});
16</script>
16<script>
vendor: 442 bytes, lines 16-30
16
17(function(w, d, s, l, i) {
18    w[l] = w[l] || [];
19    w[l].push({
20        'gtm.start': new Date().getTime(),
21        event: 'gtm.js'
22    });
23    var f = d.getElementsByTagName(s)[0],
24        j = d.createElement(s),
25        dl = l != 'dataLayer' ? '&l=' + l : '';
26    j.async = true;
27    j.src =
28        'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
29    f.parentNode.insertBefore(j, f);
30})(window, document, 'script', 'dataLayer', '
30GTM-WR9B52R
vendor: 4 bytes, line 30
30');
31</script>
31<script async="" src="//instant.page/5.1.0" type="module" integrity="sha384-by67kQnR+pyfy8yWP4kPO12fHKRLHZPfEsiSXR8u2IKcTdxD805MGUXBzVPnkLHw"></script>
31</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.