Lapu kešošana, CDN un piekrišanas baneri: kā izvairīties no nepareiza piekrišanas stāvokļa piegādes
Ātras lapas, nepareiza piekrišana
Lapu kešošana ir viena no labākajām lietām, ko varat darīt ātrumam un mitināšanas izmaksām. Tā ir arī viens no vieglākajiem veidiem, kā nemanot sabojāt piekrišanas iestatījumus. Kešatmiņa dara tieši to, ko tai liek: saglabā atbildi vienreiz un piegādā to ikvienam, kas atbilst tai pašai atslēgai. Ja šī saglabātā atbilde satur kaut ko, kas raksturīgs viena apmeklētāja piekrišanas izvēlei vai atrašanās vietai, nākamais apmeklētājs to saņem arī.
Šajā rokasgrāmatā aplūkoti kešošanas slāņi, kas parasti atrodas izdevēja vietnes priekšā — CDN malu kešatmiņas, pilnas lapas kešošanas spraudņi, reverse proxy, service workers un pats pārlūks — un kā neļaut nevienam no tiem piegādāt nepareizu piekrišanas pieredzi.
Pamatnoteikums: turiet piekrišanu ārpus kešotā HTML
Drošākā arhitektūra renderē kešoto HTML lapu kā piekrišanai neitrālu. Lapa satur CMP ielādētāju un jūsu tagus bloķētā vai gaidīšanas stāvoklī, bet nesatur lēmumu par šo konkrēto apmeklētāju. Tad CMP darbojas pārlūkā, nolasa saglabāto izvēli, izlemj, vai rādīt baneri, un attiecīgi atbrīvo tagus.
Problēmas sākas, kad serveris pieņem piekrišanas lēmumus renderēšanas brīdī, piemēram:
- motīvs vai spraudnis, kas drukā reklāmu vai analītikas tagus tikai tad, ja ir piekrišanas sīkdatne;
- servera puses kods, kas izlaiž banera marķējumu apmeklētājiem, kuri jau izvēlējušies;
- veidnes, kas iegulst apmeklētāja piekrišanas stāvokli iekļautā skripta mainīgajā.
Kad šī lapa ir kešota, pirmā apmeklētāja stāvoklis kļūst par visu stāvokli. Apmeklētājs, kurš noraidīja izsekošanu, var saņemt lapu ar jau aktīviem tagiem, vai jauns apmeklētājs var nekad neredzēt baneri, jo kešotā kopija nāca no kāda, kurš to jau bija aizvēris.
Kāpēc “Vary: Cookie” reti ir atbilde
Mācību grāmatas risinājums saturam katram apmeklētājam ir likt kešatmiņām mainīties pēc sīkdatņu galvenes. Praksē apmeklētājiem ir daudz sīkdatņu ar unikālām vērtībām, tāpēc mainīšanās pēc visas sīkdatņu galvenes parasti kešatmiņas trāpījumu līmeni samazina gandrīz līdz nullei. Dažas CDN ļauj kešatmiņas atslēgu veidot no vienas sīkdatnes vērtības, kas ir izmantojams, ja jūsu piekrišanas sīkdatnei ir neliels iespējamo stāvokļu skaits, taču tas pievieno sarežģītību un joprojām palielina kešoto kopiju skaitu. Lēmuma pārcelšana uz pārlūku ir vienkāršāka un saglabā kešatmiņu efektīvu.
Ģeogrāfija malā
Daudzi izdevēji rāda atšķirīgus banerus pa reģioniem: baneri ar iepriekšēju atļauju ES un Apvienotajai Karalistei, atteikšanās paziņojumu ASV štatiem un kaut ko vieglāku citur. Ja serveris izvēlas variantu pēc apmeklētāja IP adreses un šī lapa tiek kešota, eiropiešu lasītājs var saņemt kešotu ASV lapu vai otrādi.
Trīs modeļi no tā izvairās:
- Klienta puses ģeolokācija. Ļaujiet CMP noteikt reģionu pārlūkā, lai kešotais HTML visiem paliktu vienāds.
- Valsts kešatmiņas atslēgā. Ja lēmums jāpieņem malā, iekļaujiet kešatmiņas atslēgā valsts kodu, ko nodrošina jūsu CDN. Jūs iegūstat vienu kešotu kopiju katrai valstij, kas ir paredzami.
- Nekešota malas loģika. Izpildiet reģionālo lēmumu malas funkcijā, kas citādi kešotā lapā ievieto nelielu nekešotu vērtību.
Ko arī izvēlētos, dokumentējiet to. Ģeogrāfijas kļūdas ir vienas no grūtāk reproducējamajām, jo tās parādās tikai apmeklētājiem vienā vietā, kuri nejauši saņem lapu, ko kešojis kāds cits citur.
Paša CMP skripta kešošana
CMP ielādētāja kešošana uz ilgu laiku ir laba veiktspējai, taču tai ir cena, kad mainās konfigurācija. Ja atjaunināt piegādātājus, nolūkus vai banera tekstu, bet skripts vai konfigurācijas fails ir kešots uz gadu, daži apmeklētāji turpinās redzēt veco versiju. Pārbaudiet, kā jūsu CMP versionē savus failus: mainīgs faila nosaukums vai versijas parametrs ļauj kešot agresīvi, tomēr izmaiņas ieviest uzreiz. Pārliecinieties arī, ka jūsu pašu CDN nenoņem vaicājuma virknes no trešo pušu skriptu URL, ja CMP uz tām paļaujas.
Service workers un bezsaistes kešatmiņas
Vietnes ar progresīvās tīmekļa lietotnes slāni bieži kešo HTML service worker. Attiecas tas pats noteikums: nekad nesaglabājiet lapu, kas atspoguļo konkrētu piekrišanas lēmumu. Izslēdziet ar piekrišanu saistītos galapunktus un preferenču centra lapas no service worker kešošanas un pārliecinieties, ka vienmēr var iegūt svaigu CMP konfigurāciju.
Atpakaļ/uz priekšu kešatmiņa
Mūsdienu pārlūki glabā nesen apmeklētās lapas atmiņā, lai atpakaļ poga tās atjaunotu acumirklī. Ja apmeklētājs vienā lapā atver preferenču centru, atsauc piekrišanu un tad nospiež atpakaļ, atjaunotajā lapā tagi var joprojām darboties no iepriekš. Klausieties notikumu pageshow un pārbaudiet tā īpašību persisted: kad lapa tiek atjaunota no šīs kešatmiņas, atkārtoti nolasiet saglabāto piekrišanas stāvokli un apturiet vai startējiet tagus atbilstoši.
Testēšanas rutīna
- Ielādējiet lapu tīrā sesijā, noraidiet, tad ielādējiet otru lapu un pārliecinieties, ka neviens izsekošanas tags neiedarbojas.
- Atkārtojiet ar otru tīru pārlūku un pārliecinieties, ka baneris parādās, pierādot, ka tas nav izkešots prom.
- Pārbaudiet atbildes galvenes, lai redzētu, vai lapas tiek piegādātas no kešatmiņas, un salīdziniet HTML ar piekrišanas sīkdatni un bez tās — tam jābūt identiskam.
- Testējiet vismaz no diviem reģioniem pēc kešatmiņas iztīrīšanas un vēlreiz pēc kešatmiņas sasilšanas.
- Atsauciet piekrišanu, izmantojiet atpakaļ pogu un pārbaudiet, ka tagi apstājas.
Galvenie secinājumi
- Kešotajam HTML jābūt piekrišanai neitrālam; ļaujiet CMP lemt pārlūkā.
- Izvairieties mainīties pēc visas sīkdatņu galvenes; tas iznīcina trāpījumu līmeni.
- Ja baneri atšķiras pa reģioniem, lemiet klienta pusē vai pievienojiet valsti kešatmiņas atslēgai.
- Versionējiet CMP failus, lai ilgi kešošanas termiņi nekavētu konfigurācijas izmaiņas.
- Apstrādājiet service workers un atpakaļ/uz priekšu kešatmiņu un testējiet ar sasildītu kešatmiņu, ne tikai pēc iztīrīšanas.