Lehe vahemällu salvestamine, CDN-id ja nõusolekubännerid: kuidas vältida vale nõusoleku oleku serveerimist
Kiired lehed, vale nõusolek
Lehe vahemällu salvestamine on üks parimaid asju, mida saate kiiruse ja majutuskulude heaks teha. See on ka üks lihtsamaid viise nõusoleku seadistust märkamatult lõhkuda. Vahemälu teeb täpselt seda, mida talle öeldakse: salvestab vastuse üks kord ja serveerib seda kõigile, kes sama võtmega kokku langevad. Kui see salvestatud vastus sisaldab midagi, mis on spetsiifiline ühe külastaja nõusolekuvalikule või asukohale, saab selle ka järgmine külastaja.
See juhend käsitleb vahemälukihte, mis tavaliselt väljaandja saidi ees asuvad — CDN-i servavahemälud, täislehe vahemälu pluginad, reverse proxy'd, service workerid ja brauser ise — ning seda, kuidas takistada igaühel neist vale nõusolekukogemust serveerimast.
Põhireegel: hoidke nõusolek vahemällu salvestatud HTML-ist väljas
Kõige turvalisem arhitektuur renderdab vahemällu salvestatud HTML-lehe nõusolekuneutraalsena. Leht sisaldab CMP laadijat ja teie tage blokeeritud või ooteolekus, kuid mitte otsust selle konkreetse külastaja kohta. CMP töötab seejärel brauseris, loeb salvestatud valiku, otsustab, kas bännerit näidata, ja vabastab tagid vastavalt.
Probleemid algavad, kui server teeb nõusolekuotsuseid renderdamise ajal, näiteks:
- teema või plugin, mis trükib reklaami- või analüütikatagid ainult siis, kui nõusolekuküpsis on olemas;
- serveripoolne kood, mis jätab bänneri märgistuse välja külastajatele, kes on juba valinud;
- mallid, mis manustavad külastaja nõusoleku oleku sisseehitatud skripti muutujasse.
Kui see leht on vahemällu salvestatud, saab esimese külastaja olekust kõigi olek. Külastaja, kes jälgimisest keeldus, võib saada lehe, kus tagid on juba aktiivsed, või uus külastaja ei pruugi bännerit kunagi näha, sest vahemälu koopia pärines kellegi käest, kes oli selle juba sulgenud.
Miks “Vary: Cookie” on harva vastus
Külastajapõhise sisu õpikulahendus on öelda vahemäludele, et nad varieeruksid küpsisepäise järgi. Praktikas kannavad külastajad palju unikaalsete väärtustega küpsiseid, mistõttu kogu küpsisepäise järgi varieerumine viib vahemälu tabamusmäära tavaliselt peaaegu nulli. Mõned CDN-id lasevad vahemälu võtme koostada hoopis ühe küpsise väärtusest, mis on kasutatav, kui teie nõusolekuküpsisel on väike arv võimalikke olekuid, kuid see lisab keerukust ja korrutab siiski vahemälu koopiate arvu. Otsuse viimine brauserisse on lihtsam ja hoiab vahemälu tõhusana.
Geograafia servas
Paljud väljaandjad näitavad piirkonniti erinevaid bännereid: eelneva nõusoleku bänner EL-ile ja Ühendkuningriigile, keeldumisteatis USA osariikidele ja midagi kergemat mujal. Kui server valib variandi külastaja IP-aadressi põhjal ja see leht salvestatakse vahemällu, võib Euroopa lugeja saada vahemällu salvestatud USA lehe või vastupidi.
Kolm mustrit väldivad seda:
- Kliendipoolne geolokatsioon. Laske CMP-l piirkond brauseris kindlaks teha, et vahemällu salvestatud HTML jääks kõigile samaks.
- Riik vahemälu võtmes. Kui peate otsustama servas, lisage vahemälu võtmesse riigikood, mida teie CDN pakub. Saate ühe vahemällu salvestatud koopia riigi kohta, mis on prognoositav.
- Vahemällu salvestamata servaloogika. Käivitage piirkondlik otsus servafunktsioonis, mis süstib muidu vahemällu salvestatud lehele väikese vahemällu salvestamata väärtuse.
Ükskõik, mille valite, dokumenteerige see. Geovead on kõige raskemini reprodutseeritavate seas, sest need ilmnevad ainult ühes kohas olevatele külastajatele, kes saavad lehe, mille on vahemällu salvestanud keegi teises kohas.
CMP skripti enda vahemällu salvestamine
CMP laadija pikaajaline vahemällu salvestamine on jõudluse jaoks hea, kuid sellel on hind, kui seadistus muutub. Kui uuendate müüjaid, eesmärke või bänneri teksti ja skript või seadistusfail on aastaks vahemällu salvestatud, näevad mõned külastajad edasi vana versiooni. Kontrollige, kuidas teie CMP oma faile versioonib: muutuv failinimi või versiooniparameeter lubab vahemälu agressiivselt kasutada, rakendades muudatused siiski kohe. Veenduge ka, et teie enda CDN ei eemalda kolmanda osapoole skriptide URL-idelt päringustringe, kui CMP neile tugineb.
Service workerid ja võrguühenduseta vahemälud
Progressiivse veebirakenduse kihiga saidid salvestavad HTML-i sageli service workeris vahemällu. Kehtib sama reegel: ärge kunagi salvestage lehte, mis kajastab konkreetset nõusolekuotsust. Jätke nõusolekuga seotud lõpp-punktid ja eelistuste keskuse lehed service workeri vahemälust välja ning veenduge, et värske CMP seadistuse saab alati kätte.
Tagasi/edasi vahemälu
Kaasaegsed brauserid hoiavad hiljuti külastatud lehti mälus, et tagasi-nupp need hetkega taastaks. Kui külastaja avab ühel lehel eelistuste keskuse, võtab nõusoleku tagasi ja vajutab siis tagasi, võivad taastatud lehel tagid endiselt töötada eelmisest ajast. Kuulake sündmust pageshow ja kontrollige selle omadust persisted: kui leht taastatakse sellest vahemälust, lugege salvestatud nõusoleku olek uuesti ja peatage või käivitage tagid vastavalt.
Testimisrutiin
- Laadige leht puhtas sessioonis, keelduge, laadige seejärel teine leht ja veenduge, et ükski jälgimistag ei käivitu.
- Korrake teise puhta brauseriga ja veenduge, et bänner ilmub, tõestades, et see ei ole vahemälus ära kadunud.
- Kontrollige vastuse päiseid, et näha, kas lehti serveeritakse vahemälust, ning võrrelge HTML-i nõusolekuküpsisega ja ilma — see peaks olema identne.
- Testige vähemalt kahest piirkonnast pärast vahemälu tühjendamist ja uuesti pärast vahemälu soojenemist.
- Võtke nõusolek tagasi, kasutage tagasi-nuppu ja veenduge, et tagid peatuvad.
Peamised järeldused
- Vahemällu salvestatud HTML peaks olema nõusolekuneutraalne; laske CMP-l brauseris otsustada.
- Vältige kogu küpsisepäise järgi varieerumist; see hävitab tabamusmäära.
- Kui bännerid piirkonniti erinevad, otsustage kliendipoolselt või lisage riik vahemälu võtmesse.
- Versioonige CMP faile, et pikad vahemälu eluead ei viivitaks seadistuse muudatusi.
- Käsitlege service workereid ja tagasi/edasi vahemälu ning testige soojendatud vahemäluga, mitte ainult pärast tühjendamist.