Memòria cau de pàgines, CDN i bàners de consentiment: com evitar servir l'estat de consentiment equivocat
Pàgines ràpides, consentiment equivocat
La memòria cau de pàgines és una de les millors coses que pots fer per la velocitat i els costos d'allotjament. També és una de les maneres més fàcils de trencar una configuració de consentiment sense adonar-te'n. Una memòria cau fa exactament el que se li diu: desa una resposta una vegada i la serveix a tothom qui coincideixi amb la mateixa clau. Si aquesta resposta desada conté qualsevol cosa específica de l'elecció de consentiment o de la ubicació d'un visitant, el següent visitant també ho rep.
Aquesta guia cobreix les capes de memòria cau que solen situar-se davant d'un lloc d'editor — memòries cau de punta del CDN, connectors de memòria cau de pàgina completa, servidors intermediaris inversos, service workers i el mateix navegador — i com evitar que cadascuna serveixi l'experiència de consentiment equivocada.
La regla bàsica: mantén el consentiment fora de l'HTML a la memòria cau
L'arquitectura més segura renderitza la pàgina HTML emmagatzemada com a neutral pel que fa al consentiment. La pàgina conté el carregador del CMP i les teves etiquetes en estat bloquejat o d'espera, però cap decisió sobre aquest visitant concret. Després el CMP s'executa al navegador, llegeix l'elecció desada, decideix si cal mostrar el bàner i allibera les etiquetes en conseqüència.
Els problemes comencen quan el servidor pren decisions de consentiment en el moment de renderitzar, per exemple:
- un tema o connector que només imprimeix etiquetes d'anuncis o d'analítiques quan hi ha una galeta de consentiment;
- codi del servidor que omet el marcatge del bàner per als visitants que ja han triat;
- plantilles que incrusten l'estat de consentiment d'un visitant en una variable d'script en línia.
Quan aquesta pàgina es desa a la memòria cau, l'estat del primer visitant esdevé l'estat de tothom. Un visitant que ha rebutjat el seguiment pot rebre una pàgina amb les etiquetes ja actives, o un visitant nou pot no veure mai un bàner perquè la còpia desada ve d'algú que ja l'havia descartat.
Per què “Vary: Cookie” poques vegades és la resposta
La solució de manual per al contingut per visitant és dir a les memòries cau que variïn segons la capçalera de galetes. A la pràctica, els visitants porten moltes galetes amb valors únics, de manera que variar segons tota la capçalera de galetes sol deixar la taxa d'encerts de la memòria cau gairebé a zero. Alguns CDN et permeten construir la clau de la memòria cau a partir del valor d'una sola galeta, cosa que és viable si la teva galeta de consentiment té pocs estats possibles, però afegeix complexitat i continua multiplicant el nombre de còpies desades. Moure la decisió al navegador és més senzill i manté la memòria cau eficient.
Geografia a la vora
Molts editors mostren bàners diferents segons la regió: un bàner d'acceptació prèvia per a la UE i el Regne Unit, un avís de baixa per als estats dels EUA i alguna cosa més lleugera a la resta. Si el servidor tria la variant a partir de l'adreça IP del visitant i aquesta pàgina es desa a la memòria cau, un lector europeu pot rebre una pàgina nord-americana desada, o al revés.
Tres patrons ho eviten:
- Geolocalització al client. Deixa que el CMP determini la regió al navegador, de manera que l'HTML desat sigui el mateix per a tothom.
- País a la clau de la memòria cau. Si has de decidir a la vora, inclou a la clau de la memòria cau el codi de país que proporciona el teu CDN. Obtens una còpia desada per país, cosa previsible.
- Lògica de vora sense memòria cau. Executa la decisió regional en una funció de vora que injecti un valor petit i sense memòria cau en una pàgina que, per la resta, està desada.
Triïs el que triïs, documenta-ho. Els errors de geografia són dels més difícils de reproduir, perquè només apareixen per a visitants d'un lloc que reben per atzar una pàgina desada per algú d'un altre.
Memòria cau del propi script del CMP
Desar durant molt de temps el carregador del CMP a la memòria cau és bo per al rendiment, però té un cost quan canvia la configuració. Si actualitzes proveïdors, finalitats o el text del bàner i l'script o el fitxer de configuració queda desat durant un any, alguns visitants continuaran veient la versió antiga. Comprova com versiona els fitxers el teu CMP: un nom de fitxer o un paràmetre de versió que canviï et permet desar agressivament i alhora desplegar els canvis a l'instant. Confirma també que el teu CDN no elimina les cadenes de consulta de les URL d'scripts de tercers si el CMP en depèn.
Service workers i memòries cau fora de línia
Els llocs amb una capa d'aplicació web progressiva sovint desen l'HTML en un service worker. Val la mateixa regla: no desis mai una pàgina que reflecteixi una decisió de consentiment concreta. Exclou de la memòria cau del service worker els punts finals relacionats amb el consentiment i les pàgines del centre de preferències, i assegura't que sempre es pugui obtenir una configuració nova del CMP.
La memòria cau d'avançar i retrocedir
Els navegadors moderns mantenen a la memòria les pàgines visitades recentment perquè el botó d'enrere les restauri a l'instant. Si un visitant obre el centre de preferències en una pàgina, retira el consentiment i després prem enrere, la pàgina restaurada pot tenir encara les etiquetes en marxa d'abans. Escolta l'esdeveniment pageshow i comprova la seva propietat persisted: quan una pàgina es restaura des d'aquesta memòria cau, torna a llegir l'estat de consentiment desat i atura o inicia les etiquetes perquè hi coincideixin.
Una rutina de proves
- Carrega una pàgina en una sessió neta, rebutja, carrega una segona pàgina i confirma que no es dispara cap etiqueta de seguiment.
- Repeteix-ho amb un segon navegador net i confirma que apareix el bàner, cosa que demostra que no s'ha perdut per la memòria cau.
- Comprova les capçaleres de resposta per veure si les pàgines es serveixen des de la memòria cau, i compara l'HTML amb una galeta de consentiment i sense — hauria de ser idèntic.
- Prova des d'almenys dues regions després de buidar la memòria cau, i de nou quan s'hagi escalfat.
- Retira el consentiment, fes servir el botó d'enrere i verifica que les etiquetes s'aturen.
Punts clau
- L'HTML desat ha de ser neutral pel que fa al consentiment; deixa que el CMP decideixi al navegador.
- Evita variar segons tota la capçalera de galetes; destrueix les taxes d'encert.
- Si els bàners difereixen per regió, decideix al client o afegeix el país a la clau de la memòria cau.
- Versiona els fitxers del CMP perquè els temps llargs de memòria cau no endarrereixin els canvis de configuració.
- Gestiona els service workers i la memòria cau d'avançar i retrocedir, i prova amb la memòria cau escalfada, no només després de buidar-la.