INTEGRITY Dokumentace

Časté dotazy

Níže najdete odpovědi na naše nejčastější dotazy. Pokud zde odpověď, kterou hledáte, nenajdete, podívejte se do stránka komunity ↗ abyste prozkoumali další zdroje.

Chyby

Když přidám beacon na svůj web a načtu stránku, zobrazí se mi chyba obsahující is not allowed by Access-Control-Allow-Origin (CORS). Co se děje?

Tato chyba obvykle nastává, když se hostitel webu načítajícího analytiku neshoduje s názvem webu nakonfigurovaného v dashboardu pro analytiku. Ověřte, že jsou tyto hodnoty totožné.

Cloudflare porovnává názvy hostitelů podle přípony. Pokud například nastavíte analytiku pro example.com, povolíme analytiku z www.example.com, blog.staging.example.com, a fooexample.com. Naopak analytiku nepovolíme z example.com.br.

Tuto chybu můžete vidět i v případě, že web neodesílá Referer nebo Origin hlavičku. Referer hlavička je vyžadována (nepokoušejte se použít Referrer-policy hlavičku). Aktuálně pracujeme na změně, po které bude stačit pouze Origin hlavička bude vyžadována, protože se domníváme, že v prohlížeči neexistuje způsob, jak to zakázat.

Beacon analytiky blokují blokovače reklam (včetně adblockplus, Brave, rozšíření DuckDuckGo atd.). Proč tomu tak je?

Cloudflare ví, že tyto služby beacon analytiky blokují.

Zatímco Cloudflare Web Analytics používá JavaScriptový beacon, edge analytiku Cloudflare nelze blokovat, protože dokážeme měřit každý přijatý požadavek. Edge analytika je dostupná všem zákazníkům, kteří přes Cloudflare proxují svůj provoz. V současnosti uživatelé na plánech Pro, Business a Enterprise získávají pokročilou webovou analytiku založenou na našich edge logách.

Proč se mi nezobrazují všechny metriky pro aplikace typu single-page application (SPA) nebo multiple-page application (MPA)?

Při každé změně trasy v single-page aplikaci se na koncový bod beacon odešle měření předchozí trasy. Měření poslední změny trasy se odešle ve chvíli, kdy uživatel opustí kartu nebo zavře okno prohlížeče. Tím se spustí visibilityState do skrytého stavu. Jakmile k tomu dojde, Beacon JS odešle payload pomocí metoda Navigator.sendBeacon ↗ která by se neměla přerušit ani při zavření okna prohlížeče. Kvůli kompatibilitě se ale staré prohlížeče přepnou na AJAX (XmlHttpRequest), kterou lze při zavření okna prohlížeče přerušit, takže poslední payload odeslaný na beacon endpoint se může ztratit. Navíc kvůli různým podmínkám sítě může při odesílání payloadu na beacon endpoint docházet ke ztrátě dat.

Proč u stejného webu vidím více reportovaných dat při automatickém nastavení?

Pokud k řízení toho, které stránky se mají měřit, nepoužíváte Rules, je použití automatické nastavení vloží JS snippet na všechny stránky (subdomény) v dané zóně.

Pokud jste použili ruční nastavení místo toho, hlášeny budou pouze stránky, na kterých se JS snippet vykreslí.

Můj web je proxovaný přes Cloudflare, ale automatické nastavení Web Analytics nefunguje.

Pokud máte Cache-Control hlavičku nastavenou na public, no-transform, proxy Cloudflare nebude moci upravit původní payload webu. Beacon skript se proto na váš web automaticky nevloží a Web Analytics nebude fungovat. Podrobnosti najdete v Origin cache control s dalšími informacemi.

Proč se mi zobrazuje 405 Method Not Allowed chybu z /cdn-cgi/rum?

/cdn-cgi/rum koncový bod přijímá pouze POST požadavky pro příjem dat (data ingestion). Pokud odešlete požadavek jinou metodou HTTP (například GET, PUT, nebo DELETE), endpoint vrátí 405 Method Not Allowed odpověď s Allow: POST, OPTIONS hlavička (OPTIONS je povoleno pro CORS ↗ podpora).

Beacon Web Analytics (beacon.min.js) vždy používá POST při hlášení metrik. Pokud se setkáte s 405 chyby ve svých protokolech, dané požadavky nepocházejí přímo z beacon skriptu.

Nejpravděpodobněji pocházejí z automatizovaného testovacího nástroje, který odesílá chybné požadavky. V takovém případě byste jej měli opravit tak, aby používal POST nebo tyto chyby ignorujte.

Vlastní integrace přímo s tímto koncovým bodem nepodporujeme: všechny požadavky musí pocházet z našeho beacon JavaScriptu.

Proč se mi v Internet Exploreru zobrazují syntaktické chyby ze skriptu beaconu?

Internet Explorer 11 byl poslední verzí Internet Exploreru a byl byl v roce 2022 zcela vyřazen z podpory (EOL) ↗.

Náš beacon skript cílí na moderní syntaxi, kterou Internet Explorer nepodporuje. Při pokusu o spuštění skriptu proto dojde k chybě, kterou uživatel nevidí. Jediným funkčním dopadem je to, že z těchto starších prohlížečů se beacony nesbírají.

U zákazníků používajících automatické vkládání Cloudflare přidává type="module" do <script> tag, aby se zabránilo načítání v Internet Exploreru a podobně starých, zastaralých prohlížečích.

U zákazníků používajících ruční vložení je nutné přidat type="module" do <script> tag ručně. Náš dashboard byl aktualizován tak, aby tento atribut byl součástí instalačních pokynů.


Nastavení

Svůj web proxuji přes Cloudflare. Mám JS beacon přidávat ručně?

Můžete, ale nemusíte. Cloudflare Web Analytics je určena především zákazníkům, kteří k měření svého webového provozu nepoužívají proxy Cloudflare.

Stávající zákazníci Cloudflare mohou přistupovat k analytickým datům shromážděným na naší edge síti na Analytics kartě dashboardu. Web Analytics můžete také povolit k měření výkonu pomocí JavaScriptu.

Pokud používáte doménu proxovanou přes Cloudflare s automatické nastavení bude hlásit statistiky zpět na /cdn-cgi/rum endpoint. Pokud jste si JS snippet nainstalovali sami (ruční nastavení), nahlásí to zpět na cloudflareinsights.com/cdn-cgi/rum koncový bod.

Mohu přidat Web Analytics na svůj web pomocí správce značek, jako je Google Tag Manager (GTM)?

Ano. Místo vložení skriptu pomocí správce značek, jak je znázorněno zde:

<script
	type="module"
	src="https://static.cloudflareinsights.com/beacon.min.js"
	data-cf-beacon='{"token": "$SITE_TOKEN"}'
></script>

Přidejte následující skript:

<script
	type="module"
	src="https://static.cloudflareinsights.com/beacon.min.js?token=$SITE_TOKEN"
></script>

Co musím přidat do svých zásad zabezpečení obsahu (CSP)?

Pokud váš web používá zásady zabezpečení obsahu (CSP), budete muset do této hlavičky HTTP přidat několik záznamů, aby si prohlížeče mohly stáhnout skript beacon a odesílat beacony na Cloudflare.

Upozornění: nezapomeňte všechny změny CSP nejprve ověřit v testovacím prostředí, než aktualizaci nasadíte do produkčního prostředí. Můžete k tomu využít Content Security Rules ↗ nebo to vyzkoušejte s Content-Security-Policy-Report-Only nejprve.

Nejprve budete muset povolit spuštění našeho skriptu jeho přidáním do vašeho script-src direktivu:

script-src [...existing values...] https://static.cloudflareinsights.com/beacon.min.js

Poznámka: pokud máte ve skriptu dotazovací řetězec jako v příkladu výše pro Google Tag Manager, musíte jej uvést i v adrese URL, např. script-src [...existing values...] https://static.cloudflareinsights.com/beacon.min.js?token=$SITE_TOKEN

Za druhé musíte povolit koncový bod, na který se data beaconu odesílají.

Při automatickém vkládání jde o stejnou doménu, ujistěte se tedy, že vaše connect-src zahrnuje 'self':

connect-src [...existing values...] 'self'

Při ručním vložení se tento skript místo toho připojuje k cloudflareinsights.com, proto se ujistěte, že je místo toho zahrnuto toto:

connect-src [...existing values...] cloudflareinsights.com

Jak mohu u JS beacon vynutit Subresource Integrity (SRI)?

Pokud používáte automatické vkládání (tedy ne výše zmíněný způsob s ručně vloženým skriptem), Cloudflare automaticky přidává integrity atribut v <script>. Díky tomu se skript spustí pouze v případě, že lokální hash staženého obsahu odpovídá hodnotě integrity uvedené v HTML.

Pokud používáte přístup s ručně vloženým skriptem, bohužel v současnosti neexistuje způsob, jak bezpečně použít integrity atribut, protože u beacon skriptu nepodporujeme uzamčení verze. Děláme to proto, abychom mohli pravidelně vydávat aktualizace kvůli zabezpečení, opravám chyb a zajištění

Mohu stejný JS Snippet použít i pro jinou doménu?

Ne. Pokud je však apexová doména (známá také jako „kořenová doména“ nebo „naked domain“) stejná, můžete použít stejný site tag. Pokud jste nám například poskytli hostname example.com při registraci webu, můžete JS snippet z tohoto webu použít i pro abc.example.com a def.example.com protože používají stejnou apex doménu. Když se payload odešle na beacon endpoint, hostname ověřujeme porovnáním koncovky (postfix matching), takže pokud vaše doména sdílí stejnou apex doménu, bude to fungovat.

Mohu použít automatické nastavení u domény v režimu DNS only (nastavení CNAME)?

Ne, můžete použít pouze automatické nastavení s vložením JS snippetu, pokud je provoz na vaší doméně proxovaný přes Cloudflare (oranžový mrak).

Pokud máte doménu pouze s DNS, budete muset provést ruční nastavení místo toho.

Co brání tomu, aby byl JS Snippet přidán na stránku?

Aby mohl Cloudflare automaticky přidat úryvek JavaScriptu, musí mít vaše stránky platný HTML kód.

Cloudflare by například nemohl povolit Web Analytics na takové stránce:

index.html
Hello world.

Aby Web Analytics mohl správně vložit úryvek JavaScriptu, potřebujete platný výstup HTML, například:

index.html
<!DOCTYPE html>
<html>
	<head>
		<title>Title</title>
	</head>
	<body>

		<p>Hello world.</p>

	</body>
</html>

Mohu používat Real User Monitoring (RUM) s Cloudflare Workers?

Real User Monitoring (RUM) od Cloudflare pracuje výhradně s počátečním požadavkem klienta a nedokáže shromažďovat metriky z podpožadavků Workeru. Jde o zásadní architektonické omezení, které zajišťuje přesné měření výkonu a zabraňuje duplicitním nebo zavádějícím analytickým datům.


Funkce

Jsou data vzorkována?

Nevzorkovaná data z beaconu uchováváme po dobu posledních 7 dnů, poté jsou agregována na přibližně 10 %.

Při agregaci metrik v Cloudflare Dashboard nebo při dotazování GraphQL API se dynamicky zvolí úroveň vzorkování (mezi 0,0001 % a 100 %) podle použitých filtrů a počtu odpovídajících řádků. Díky tomu je zajištěna vysoká přesnost hodnot při zachování přiměřené doby odezvy. Můžete více o tomto přístupu se dozvíte na blogu Cloudflare ↗.

Poznámka: rozhraní GraphQL API poskytuje sampleInterval pole, které označuje, jaká úroveň vzorkování byla na dotaz použita.

Mohu zobrazit analytická data na straně serveru podle URL?

Web Analytics zobrazuje pouze analytiku na straně klienta. Všichni zákazníci Cloudflare, kteří přes ni proxují svůj provoz, navíc získávají analytiku založenou na provozu procházejícím edge sítí Cloudflare.

Uživatelé plánů Pro, Business a Enterprise mají v současnosti k dispozici pokročilou analýzu HTTP provozu, což je jediný způsob, jak zobrazit funkce, jako je rozdělení provozu podle URL na základě analytiky na straně serveru.

Jak dlouho mám přístup k datům ve Web Analytics?

V současnosti máte přístup k datům za posledních šest měsíců.

Podporuje Cloudflare Web Analytics parametry UTM?

Zatím ne. Parametry UTM jsou speciální parametry query řetězce, které pomáhají sledovat, odkud návštěvnost pochází. Cloudflare Web Analytics v současnosti neloguje query řetězce, aby nedocházelo ke shromažďování potenciálně citlivých dat, ale podporu bychom mohli v budoucnu přidat.

Podporuje Web Analytics vlastní události?

Zatím ne, ale podporu bychom mohli v budoucnu přidat.

Mohu pomocí Web Analytics sledovat více než jeden web?

Ano. V současnosti platí orientační limit deseti webů na účet, ten však lze po kontaktování podpory Cloudflare upravit.

Kdy beacon odesílá metriky na /cdn-cgi/rum/ endpoint?

U tradičních webů, tedy ne u single-page aplikací (SPA), odesílá beacon Web Analytics data na /cdn-cgi/rum/ endpoint po dokončení načítání stránky (událost load) a při jejím opuštění. U Single Page Applications se při každé změně route odesílají další metriky, aby bylo možné zachytit událost načtení stránky.