Səhifə Keşi, CDN-lər və Razılıq Bannerləri: Yanlış Razılıq Vəziyyətini Göstərməkdən Necə Qaçmaq
Sürətli Səhifələr, Yanlış Razılıq
Səhifə keşləməsi sürət və hostinq xərcləri üçün edə biləcəyiniz ən yaxşı işlərdən biridir. Eyni zamanda razılıq quraşdırmasını hiss etmədən pozmağın ən asan yollarından biridir. Keş tam olaraq ona deyiləni edir: cavabı bir dəfə saxlayır və eyni açara uyğun gələn hər kəsə təqdim edir. Əgər saxlanmış cavabda bir ziyarətçinin razılıq seçiminə və ya yerinə xas hər hansı bir şey varsa, növbəti ziyarətçi də onu alır.
Bu bələdçi naşir saytının qarşısında adətən dayanan keşləmə təbəqələrini — CDN edge keşləri, tam səhifə keşləmə plaginləri, reverse proxy-lər, service worker-lər və brauzerin özü — və hər birinin yanlış razılıq təcrübəsi göstərməsinin qarşısını necə almağı əhatə edir.
Əsas Qayda: Razılığı Keşlənmiş HTML-dən Kənarda Saxlayın
Ən təhlükəsiz arxitektura keşlənmiş HTML səhifəsini razılığa münasibətdə neytral təqdim edir. Səhifədə CMP yükləyicisi və teqləriniz bloklanmış və ya gözləmə vəziyyətində olur, lakin bu konkret ziyarətçi barədə heç bir qərar yoxdur. CMP sonra brauzerdə işləyir, saxlanmış seçimi oxuyur, banneri göstərib-göstərməyəcəyinə qərar verir və teqləri müvafiq olaraq buraxır.
Problemlər server render zamanı razılıq qərarları verdikdə başlayır, məsələn:
- reklam və ya analitika teqlərini yalnız razılıq cookie-si olduqda çap edən tema və ya plagin;
- artıq seçim etmiş ziyarətçilər üçün banner markup-ını buraxan server tərəfi kod;
- ziyarətçinin razılıq vəziyyətini inline skript dəyişəninə yerləşdirən şablonlar.
Həmin səhifə keşləndikdən sonra ilk ziyarətçinin vəziyyəti hamının vəziyyətinə çevrilir. İzləməni rədd etmiş ziyarətçi teqləri artıq aktiv olan səhifə ala bilər və ya yeni ziyarətçi heç vaxt banner görməyə bilər, çünki keşlənmiş nüsxə onu artıq bağlamış birindən gəlib.
“Vary: Cookie” Nə Üçün Nadir Hallarda Cavabdır
Ziyarətçiyə xas məzmun üçün dərsliklərdəki həll keşlərə cookie başlığına görə dəyişməyi bildirməkdir. Praktikada ziyarətçilər unikal dəyərləri olan çoxlu cookie daşıyır, ona görə bütün cookie başlığına görə dəyişmək adətən keşin hit dərəcəsini demək olar ki, sıfıra endirir. Bəzi CDN-lər keş açarını bir cookie dəyərindən qurmağa imkan verir, bu da razılıq cookie-nizin az sayda mümkün vəziyyəti varsa mümkündür, lakin mürəkkəblik əlavə edir və yenə də keşlənmiş nüsxələrin sayını artırır. Qərarı brauzerə köçürmək daha sadədir və keşi səmərəli saxlayır.
Edge-də Coğrafiya
Bir çox naşir regionlara görə fərqli bannerlər göstərir: Aİ və Böyük Britaniya üçün opt-in banneri, ABŞ ştatları üçün opt-out bildirişi və başqa yerlərdə daha yüngül bir şey. Server variantı ziyarətçinin IP ünvanından seçirsə və həmin səhifə keşlənirsə, Avropalı oxucu keşlənmiş ABŞ səhifəsi ala bilər, ya da əksinə.
Üç nümunə bunun qarşısını alır:
- Müştəri tərəfində geolokasiya. Regionu CMP brauzerdə müəyyənləşdirsin ki, keşlənmiş HTML hamı üçün eyni qalsın.
- Keş açarında ölkə. Edge-də qərar verməlisinizsə, CDN-inizin təqdim etdiyi ölkə kodunu keş açarına daxil edin. Hər ölkə üçün bir keşlənmiş nüsxə əldə edirsiniz ki, bu da proqnozlaşdırıla biləndir.
- Keşlənməyən edge məntiqi. Regional qərarı, başqa cür keşlənmiş səhifəyə kiçik, keşlənməyən dəyər yeridən edge funksiyasında icra edin.
Hansını seçsəniz də, sənədləşdirin. Coğrafi xətaları təkrarlamaq ən çətinlərdəndir, çünki onlar yalnız bir yerdəki ziyarətçilərdə, təsadüfən başqa yerdəki birinin keşlədiyi səhifəni alanlarda görünür.
CMP Skriptinin Özünü Keşləmək
CMP yükləyicisini uzun müddət keşləmək performans üçün yaxşıdır, lakin konfiqurasiya dəyişdikdə bir qiyməti var. Vendorları, məqsədləri və ya banner mətnini yeniləyirsinizsə və skript ya konfiqurasiya faylı bir il keşlənibsə, bəzi ziyarətçilər köhnə versiyanı görməyə davam edəcək. CMP-nizin fayllarını necə versiyalaşdırdığını yoxlayın: dəyişən fayl adı və ya versiya parametri aqressiv keşləməyə və eyni zamanda dəyişiklikləri dərhal yaymağa imkan verir. Həmçinin CMP onlara arxalanırsa, öz CDN-inizin üçüncü tərəf skript URL-lərindən query string-ləri silmədiyini təsdiqləyin.
Service Worker-lər və Oflayn Keşlər
Progressive web app qatı olan saytlar çox vaxt HTML-i service worker-də keşləyir. Eyni qayda tətbiq olunur: konkret razılıq qərarını əks etdirən səhifəni heç vaxt saxlamayın. Razılıqla bağlı endpoint-ləri və seçimlər mərkəzi səhifələrini service worker keşləməsindən çıxarın və yeni CMP konfiqurasiyasının həmişə əldə oluna biləcəyindən əmin olun.
Back/Forward Keşi
Müasir brauzerlər son ziyarət edilmiş səhifələri yaddaşda saxlayır ki, geri düyməsi onları dərhal bərpa etsin. Ziyarətçi bir səhifədə seçimlər mərkəzini açıb razılığı geri çəkərsə və sonra geri düyməsini basarsa, bərpa olunmuş səhifədə əvvəlkindən qalan teqlər hələ də işləyə bilər. pageshow event-ini dinləyin və onun persisted xassəsini yoxlayın: səhifə bu keşdən bərpa olunduqda, saxlanmış razılıq vəziyyətini yenidən oxuyun və teqləri uyğun olaraq dayandırın və ya işə salın.
Test Rutini
- Təmiz sessiyada səhifəni yükləyin, rədd edin, sonra ikinci səhifəni yükləyin və heç bir izləmə teqinin işə düşmədiyini təsdiqləyin.
- İkinci təmiz brauzerlə təkrarlayın və bannerin göründüyünü təsdiqləyin, bu da onun keşlə yox olmadığını sübut edir.
- Səhifələrin keşdən verilib-verilmədiyini görmək üçün cavab başlıqlarını yoxlayın və HTML-i razılıq cookie-si ilə və onsuz müqayisə edin — eyni olmalıdır.
- Keşi təmizlədikdən sonra ən azı iki regiondan, sonra keş qızdıqdan sonra yenidən test edin.
- Razılığı geri çəkin, geri düyməsindən istifadə edin və teqlərin dayandığını yoxlayın.
Əsas Nəticələr
- Keşlənmiş HTML razılığa münasibətdə neytral olmalıdır; qərarı CMP brauzerdə versin.
- Bütün cookie başlığına görə dəyişməkdən qaçının; bu, hit dərəcələrini məhv edir.
- Bannerlər regionlara görə fərqlənirsə, müştəri tərəfində qərar verin və ya ölkəni keş açarına əlavə edin.
- CMP fayllarını versiyalaşdırın ki, uzun keş ömrü konfiqurasiya dəyişikliklərini gecikdirməsin.
- Service worker-ləri və back/forward keşini idarə edin və yalnız təmizləmədən sonra deyil, keş qızdırılmış halda test edin.