Cachovanie stránok, CDN a consent bannery: Ako nepodať nesprávny stav súhlasu

Rýchle stránky, nesprávny súhlas

Cachovanie stránok je jedna z najlepších vecí, ktoré môžete urobiť pre rýchlosť a náklady na hosting. Je to aj jeden z najjednoduchších spôsobov, ako nepozorovane pokaziť nastavenie súhlasu. Cache robí presne to, čo jej poviete: odpoveď uloží raz a podáva ju každému, kto zodpovedá rovnakému kľúču. Ak uložená odpoveď obsahuje čokoľvek špecifické pre voľbu súhlasu alebo polohu jedného návštevníka, dostane to aj ďalší návštevník.

Tento sprievodca pokrýva vrstvy cachovania, ktoré typicky stoja pred webom vydavateľa — edge cache CDN, pluginy na cachovanie celých stránok, reverzné proxy, service workery a samotný prehliadač — a ako každej z nich zabrániť v podávaní nesprávneho zážitku so súhlasom.

Základné pravidlo: Držte súhlas mimo cachovaného HTML

Najbezpečnejšia architektúra renderuje cachovanú HTML stránku ako neutrálnu voči súhlasu. Stránka obsahuje loader CMP a vaše tagy v blokovanom alebo čakajúcom stave, ale žiadne rozhodnutie o tomto konkrétnom návštevníkovi. CMP potom beží v prehliadači, načíta uloženú voľbu, rozhodne, či zobraziť banner, a príslušne uvoľní tagy.

Problémy začínajú, keď server robí rozhodnutia o súhlase v čase renderovania, napríklad:

Keď sa takáto stránka uloží do cache, stav prvého návštevníka sa stane stavom všetkých. Návštevník, ktorý odmietol sledovanie, môže dostať stránku s už aktívnymi tagmi, alebo nový návštevník nemusí banner nikdy uvidieť, pretože cachovaná kópia pochádza od niekoho, kto ho už zavrel.

Prečo „Vary: Cookie“ málokedy je odpoveď

Učebnicová oprava obsahu pre jednotlivých návštevníkov je povedať cache, aby variovala podľa hlavičky cookie. V praxi majú návštevníci veľa cookies s jedinečnými hodnotami, takže variovanie podľa celej hlavičky cookie zvyčajne zníži hit rate cache takmer na nulu. Niektoré CDN umožňujú zostaviť kľúč cache z hodnoty jedinej cookie, čo je použiteľné, ak má vaša cookie súhlasu malý počet možných stavov, ale pridáva to komplexitu a stále to znásobuje počet cachovaných kópií. Presunúť rozhodnutie do prehliadača je jednoduchšie a cache zostane efektívna.

Geografia na edge

Mnohí vydavatelia zobrazujú rôzne bannery podľa regiónu: banner opt-in pre EÚ a Spojené kráľovstvo, oznam o odhlásení pre americké štáty a niečo ľahšie inde. Ak server vyberie variant podľa IP adresy návštevníka a stránka sa cachuje, európsky čitateľ môže dostať cachovanú americkú stránku, alebo naopak.

Tri vzorce sa tomu vyhýbajú:

  1. Geolokácia na strane klienta. Nechajte CMP určiť región v prehliadači, aby cachované HTML zostalo pre všetkých rovnaké.
  2. Krajina v kľúči cache. Ak musíte rozhodovať na edge, zahrňte do kľúča cache kód krajiny, ktorý poskytuje vaše CDN. Dostanete jednu cachovanú kópiu na krajinu, čo je predvídateľné.
  3. Necachovaná edge logika. Spustite regionálne rozhodnutie v edge funkcii, ktorá vloží malú necachovanú hodnotu do inak cachovanej stránky.

Nech vyberiete čokoľvek, zdokumentujte to. Geo chyby patria medzi najťažšie reprodukovateľné, pretože sa objavia len návštevníkom na jednom mieste, ktorí náhodou dostanú stránku cachovanú niekým z iného miesta.

Cachovanie samotného skriptu CMP

Dlhé cachovanie loadera CMP je dobré pre výkon, ale má cenu, keď sa zmení konfigurácia. Ak aktualizujete dodávateľov, účely alebo text bannera a skript alebo konfiguračný súbor je cachovaný rok, niektorí návštevníci budú naďalej vidieť starú verziu. Skontrolujte, ako vaše CMP verzuje súbory: meniaci sa názov súboru alebo parameter verzie vám umožní cachovať agresívne a zároveň nasadzovať zmeny okamžite. Overte tiež, že vaše vlastné CDN neodstraňuje query stringy z URL skriptov tretích strán, ak sa na ne CMP spolieha.

Service workery a offline cache

Weby s vrstvou progresívnej webovej aplikácie často cachujú HTML v service workeri. Platí rovnaké pravidlo: nikdy neukladajte stránku, ktorá odráža konkrétne rozhodnutie o súhlase. Vylúčte endpointy súvisiace so súhlasom a stránky centra preferencií z cachovania service workera a zabezpečte, aby bolo vždy možné načítať novú konfiguráciu CMP.

Cache back/forward

Moderné prehliadače držia nedávno navštívené stránky v pamäti, aby ich tlačidlo späť obnovilo okamžite. Ak návštevník otvorí centrum preferencií na jednej stránke, odvolá súhlas a potom stlačí späť, obnovená stránka môže mať stále spustené tagy spred zmeny. Počúvajte udalosť pageshow a skontrolujte jej vlastnosť persisted: keď sa stránka obnoví z tejto cache, znova načítajte uložený stav súhlasu a tagy zastavte alebo spustite tak, aby zodpovedali.

Testovacia rutina

Kľúčové poznatky

← Blog Čítať všetko →