Sivujen välimuisti, CDN:t ja suostumusbannerit: miten välttää väärän suostumustilan tarjoilu

Nopeat sivut, väärä suostumus

Sivujen välimuistitus on yksi parhaista asioista nopeuden ja palvelinkustannusten kannalta. Se on myös yksi helpoimmista tavoista rikkoa suostumusasetukset huomaamatta. Välimuisti tekee täsmälleen sen, mitä sille käsketään: se tallentaa vastauksen kerran ja tarjoilee sen kaikille, jotka vastaavat samaa avainta. Jos tallennettu vastaus sisältää jotain, mikä on ominaista yhden kävijän suostumusvalinnalle tai sijainnille, seuraava kävijä saa sen myös.

Tämä opas käsittelee välimuistikerroksia, jotka tyypillisesti sijaitsevat julkaisijan sivuston edessä — CDN:n reunavälimuistit, koko sivun välimuistilaajennukset, reverse proxyt, service workerit ja itse selain — ja sitä, miten estät kutakin tarjoilemasta väärää suostumuskokemusta.

Perussääntö: pidä suostumus poissa välimuistitetusta HTML:stä

Turvallisin arkkitehtuuri renderöi välimuistitetun HTML-sivun suostumusneutraalina. Sivu sisältää CMP-latauksen ja tagisi estetyssä tai odottavassa tilassa, mutta ei päätöstä tästä nimenomaisesta kävijästä. CMP suoritetaan sitten selaimessa, lukee tallennetun valinnan, päättää, näytetäänkö banneri, ja vapauttaa tagit sen mukaisesti.

Ongelmat alkavat, kun palvelin tekee suostumuspäätöksiä renderöintihetkellä, esimerkiksi:

Kun sivu on välimuistitettu, ensimmäisen kävijän tilasta tulee kaikkien tila. Kävijä, joka hylkäsi seurannan, voi saada sivun, jossa tagit ovat jo aktiivisia, tai uusi kävijä ei välttämättä koskaan näe banneria, koska välimuistikopio tuli joltakulta, joka oli jo sulkenut sen.

Miksi “Vary: Cookie” on harvoin vastaus

Oppikirjaratkaisu kävijäkohtaiselle sisällölle on käskeä välimuistien vaihdella eväste-otsikon mukaan. Käytännössä kävijöillä on monta evästettä yksilöllisillä arvoilla, joten koko eväste-otsikon mukaan vaihtelu laskee välimuistin osumasuhteen yleensä lähes nollaan. Jotkin CDN:t antavat muodostaa välimuistiavaimen yhden evästearvon perusteella, mikä on toimiva ratkaisu, jos suostumusevästeellä on pieni määrä mahdollisia tiloja, mutta se lisää monimutkaisuutta ja silti kertoo välimuistikopioiden määrän. Päätöksen siirtäminen selaimeen on yksinkertaisempaa ja pitää välimuistin tehokkaana.

Maantiede reunalla

Monet julkaisijat näyttävät eri bannereita alueittain: ennakkosuostumusbanneri EU:lle ja Britannialle, kieltäytymisilmoitus Yhdysvaltain osavaltioille ja jotain kevyempää muualla. Jos palvelin valitsee variantin kävijän IP-osoitteen perusteella ja sivu välimuistitetaan, eurooppalainen lukija voi saada välimuistitetun Yhdysvaltain sivun tai päinvastoin.

Kolme mallia välttää tämän:

  1. Asiakaspuolen paikannus. Anna CMP:n määrittää alue selaimessa, jolloin välimuistitettu HTML pysyy kaikille samana.
  2. Maa välimuistiavaimessa. Jos päätös on tehtävä reunalla, sisällytä välimuistiavaimeen CDN:si tarjoama maakoodi. Saat yhden välimuistitetun kopion maata kohti, mikä on ennustettavaa.
  3. Välimuistittamaton reunalogiikka. Suorita aluepäätös reunafunktiossa, joka lisää pienen välimuistittoman arvon muuten välimuistitettuun sivuun.

Minkä tahansa valitsetkin, dokumentoi se. Maantieteeseen liittyvät virheet ovat vaikeimmin toistettavien joukossa, koska ne ilmenevät vain yhdessä paikassa oleville kävijöille, jotka sattuvat saamaan jonkun toisessa paikassa välimuistittaman sivun.

CMP-skriptin itsensä välimuistitus

CMP-latauksen välimuistitus pitkäksi aikaa on hyväksi suorituskyvylle, mutta sillä on hintansa, kun konfiguraatio muuttuu. Jos päivität toimittajia, käyttötarkoituksia tai bannerin tekstiä ja skripti tai konfiguraatiotiedosto on välimuistitettu vuodeksi, jotkut kävijät näkevät edelleen vanhan version. Tarkista, miten CMP:si versioi tiedostonsa: muuttuva tiedostonimi tai versioparametri antaa välimuistittaa aggressiivisesti ja silti ottaa muutokset käyttöön heti. Varmista myös, ettei oma CDN:si poista kyselymerkkijonoja kolmannen osapuolen skriptien URL-osoitteista, jos CMP luottaa niihin.

Service workerit ja offline-välimuistit

Progressiivisen verkkosovelluksen kerroksen sisältävät sivustot välimuistittavat usein HTML:n service workerissa. Sama sääntö pätee: älä koskaan tallenna sivua, joka heijastaa tiettyä suostumuspäätöstä. Sulje suostumukseen liittyvät päätepisteet ja asetuskeskussivut service workerin välimuistituksen ulkopuolelle ja varmista, että tuore CMP-konfiguraatio on aina haettavissa.

Takaisin/eteenpäin-välimuisti

Nykyaikaiset selaimet pitävät äskettäin käydyt sivut muistissa, jotta takaisin-painike palauttaa ne heti. Jos kävijä avaa asetuskeskuksen yhdellä sivulla, peruuttaa suostumuksen ja painaa sitten takaisin, palautetulla sivulla tagit voivat yhä pyöriä edellisestä ajasta. Kuuntele pageshow-tapahtumaa ja tarkista sen persisted-ominaisuus: kun sivu palautetaan tästä välimuistista, lue tallennettu suostumustila uudelleen ja pysäytä tai käynnistä tagit vastaavasti.

Testausrutiini

Keskeiset opit

← Blogi Lue kaikki →