[{"data":1,"prerenderedAt":1202},["ShallowReactive",2],{"post-\u002Ftr\u002Fgoogle-consent-mode-v2-icin-ucretli-cmp-sart-mi":3},{"page":4,"translation":1062,"nav":1064,"related":1190,"random":1191},{"id":5,"title":6,"body":7,"categories":1036,"category":1039,"date":1040,"description":1041,"draft":1042,"extension":1043,"image":1044,"kind":1045,"lang":108,"meta":1046,"navigation":666,"path":1047,"publishedAt":1048,"readingTime":1049,"seo":1050,"slug":1051,"stem":1052,"tags":1053,"translationKey":1059,"type":1060,"updated":1039,"__hash__":1061},"postsTr\u002Ftr\u002Fgoogle-consent-mode-v2-icin-ucretli-cmp-sart-mi.md","Google Consent Mode v2 İçin Ücretli CMP Şart mı?",{"type":8,"value":9,"toc":1023},"minimark",[10,49,52,55,63,78,81,84,90,95,98,101,162,165,190,200,203,209,222,225,229,235,244,251,254,259,262,279,282,286,289,292,295,324,327,335,339,342,345,348,351,354,358,361,493,514,518,521,530,542,545,552,555,558,562,578,581,584,588,591,745,748,812,818,831,834,838,841,877,886,890,893,988,991,994,998,1001,1007,1010,1013,1016,1019],[11,12,13,21],"blockquote",{},[14,15,16,17],"p",{},"💡 ",[18,19,20],"strong",{},"Özet (TL;DR):",[22,23,24,31,37,43],"ul",{},[25,26,27,30],"li",{},[18,28,29],{},"Google Consent Mode v2 kullanan her sitenin ücretli ya da Google sertifikalı bir CMP edinmesi gerekmiyor."," GA4, Google Tag Manager ve Google Ads kullanan sıradan bir site; sinyalleri, zamanlamayı ve bölgesel kuralları doğru uyguladığı sürece ticari, açık kaynak veya kendi geliştirdiği bir çözümü kullanabilir.",[25,32,33,36],{},[18,34,35],{},"Yayıncılar ayrı bir durum."," Avrupa Ekonomik Alanı, Birleşik Krallık ve İsviçre'de AdSense, Ad Manager ya da AdMob kullanan yayıncılar için Google sertifikası ve IAB TCF desteği seçimi doğrudan etkileyebilir.",[25,38,39,42],{},[18,40,41],{},"Aylık ücret çoğu zaman çerez bildirimi için ödenmiyor."," Otomatik tarama, sınıflandırma, ülkeye göre davranış, rıza kayıtları, politika takibi, birden çok siteyi yönetme ve bakım sorumluluğunun bir bölümünü dışarıda tutmak için ödeniyor.",[25,44,45,48],{},[18,46,47],{},"Kısa listem bilinçli olarak dar:"," Hizmet olarak sunulan çözümlerde Cookiebot ve CookieYes, politika araçları da gerekiyorsa iubenda, daha kapsamlı bir açık kaynak altyapı için Consenti, yalnızca sağlam bir arayüz kütüphanesi isteyen geliştirici için Orest Bida'nın CookieConsent projesi.",[14,50,51],{},"Çalıştığım şirkette WordPress altyapısındaki siteleri peyderpey Next.js altyapısına geçiriyoruz. Mevcut sitelerde çerez ve izin yönetimini Complianz ile yapıyoruz. WordPress içinde bu oldukça rahat bir düzen: otomatik tarama, tercih ekranı, kayıtlar ve bütünleşmeler sitenin yönetim paneliyle aynı dünyanın içinde yaşıyor.",[14,53,54],{},"Ön yüzü WordPress'ten çıkardığımız anda bu rahatlık bizimle birlikte taşınmıyor.",[14,56,57,58,62],{},"Yeni yapıda ya hizmet olarak sunulan bir ürün kullanmamız, ya çözümü kendi altyapımızda barındırmamız ya da daha küçük bir sistemi kendimiz geliştirmemiz gerekiyor. Üstelik sitelerimiz birçok ülkeye hizmet ediyor. Dolayısıyla mesele yalnızca bir pencere açıp ",[59,60,61],"code",{},"gtag('consent', ...)"," çağrısı yapmak değil. Hangi ülkede hangi varsayılanın uygulanacağını, ziyaretçinin seçiminin nasıl kanıtlanacağını, pazarlama ekibinin eklediği yeni araçların nasıl fark edileceğini ve reklam ekosistemindeki değişiklikleri kimin izleyeceğini de belirlememiz gerekiyor.",[14,64,65,77],{},[66,67,76],"a",{"href":68,"rel":69,"target":73,"className":74},"https:\u002F\u002Fconsenti.dev\u002F",[70,71,72],"nofollow","noopener","noreferrer","_blank",[75],"dofollow","Consenti"," ile bu sırada karşılaştım. Açık kaynak olması, kendi altyapımızda çalışabilmesi ve modern uygulamalar düşünülerek geliştirilmesi içimdeki geliştiriciye doğal olarak cazip geldi. Üstelik sık gördüğümüz basit çerez bildirimi kütüphanelerinden daha bütünlüklü bir sistem kurmaya çalışıyordu.",[14,79,80],{},"Bu da uzun süredir aklımın bir köşesinde duran soruyu yeniden ortaya çıkardı: Görünen ürün bir bildirim, bir tercih penceresi ve Google'a gönderilen dört izin sinyalinden ibaretse neden site başına her ay 10, 30, hatta çok daha fazla avro ödeyelim?",[14,82,83],{},"Araştırmaya başladığımda yanıtın büyük ölçüde kodlama ayrıntılarında yatacağını sanıyordum. Asıl meselenin, devam eden sorumluluğu nereye koymak istediğimiz olduğunu gördüm.",[14,85,86],{},[87,88,89],"em",{},"Bu yazı, 18 Ağustos 2026 tarihinde doğrulayabildiğim teknik ve ticari durumu anlatıyor. CMP, gizlilik süreçlerini destekleyen bir araçtır; bir siteyi tek başına hukuka uygun hâle getirmez. Bu yazı hukuki danışmanlık değildir.",[91,92,94],"h2",{"id":93},"önce-şu-ayrımı-yapalım-consent-mode-cmp-değildir","Önce Şu Ayrımı Yapalım: Consent Mode, CMP Değildir",[14,96,97],{},"Google Consent Mode, sitenin izin arayüzüyle Google etiketleri arasında çalışan bir protokoldür. Etiketlere hangi depolama ve reklam kullanım türlerine izin verildiğini söyler. Bu kararı bir CMP üretebilir; ancak Consent Mode ne bildirimi çizer ne de kullandığınız metin ve seçeneklerin hukuken yeterli olup olmadığına karar verir.",[14,99,100],{},"İkinci sürümde dört önemli sinyal var:",[102,103,104,118],"table",{},[105,106,107],"thead",{},[108,109,110,115],"tr",{},[111,112,114],"th",{"align":113},"left","Sinyal",[111,116,117],{"align":113},"Neyi denetler?",[119,120,121,132,142,152],"tbody",{},[108,122,123,129],{},[124,125,126],"td",{"align":113},[59,127,128],{},"analytics_storage",[124,130,131],{"align":113},"Google Analytics çerezleri gibi ölçüm amaçlı depolamaya izin verilip verilmediğini",[108,133,134,139],{},[124,135,136],{"align":113},[59,137,138],{},"ad_storage",[124,140,141],{"align":113},"Reklam amaçlı depolamaya izin verilip verilmediğini",[108,143,144,149],{},[124,145,146],{"align":113},[59,147,148],{},"ad_user_data",[124,150,151],{"align":113},"Kullanıcı verisinin reklam amaçlarıyla Google'a gönderilip gönderilemeyeceğini",[108,153,154,159],{},[124,155,156],{"align":113},[59,157,158],{},"ad_personalization",[124,160,161],{"align":113},"Verinin yeniden pazarlama dâhil kişiselleştirilmiş reklamlarda kullanılıp kullanılamayacağını",[14,163,164],{},"Arayüzün nasıl göründüğünden daha önemli olan işlem sırası:",[166,167,168,171,178,181,184,187],"ol",{},[25,169,170],{},"Sayfa açılır.",[25,172,173,174,177],{},"Ölçüm komutları ve etiketler çalışmadan ",[18,175,176],{},"önce"," varsayılan izin durumu belirlenir.",[25,179,180],{},"Google etiketleri bu duruma göre başlatılır.",[25,182,183],{},"Ziyaretçi tercihini yapar ya da değiştirir.",[25,185,186],{},"Site güncel izin durumunu gönderir.",[25,188,189],{},"Etiketler sayfanın kalanında ve sonraki gezinmelerde davranışlarını buna göre değiştirir.",[14,191,192,193,199],{},"Google'ın ",[66,194,198],{"href":195,"rel":196,"target":73,"className":197},"https:\u002F\u002Fdevelopers.google.com\u002Ftag-platform\u002Fsecurity\u002Fguides\u002Fconsent",[70,71,72],[75],"uygulama rehberi",", varsayılan durumun bütün ölçüm komutlarından önce ayarlanmasını açıkça istiyor. Kendi geliştirdiğimiz pek çok çözüm tam burada hata veriyor: Sonunda doğru seçim gönderiliyor ama GA4 veya reklam etiketi yanlış varsayılanla çoktan çalışmış oluyor.",[14,201,202],{},"Birbirine karıştırılan iki çalışma biçimi daha var.",[14,204,205,208],{},[18,206,207],{},"Temel Consent Mode"," kullanımında Google etiketleri ziyaretçi tercih ekranında seçim yapana kadar engellenir. İzin verilmezse bu etiketler yüklenmez. “Reddedildi” durumunda engellenen etiketten istek çıkmadığı için bu yaklaşımın davranışını anlamak daha kolaydır; karşılığında Google'ın modelleme için kullanabileceği veri azalır.",[14,210,211,214,215,221],{},[18,212,213],{},"Gelişmiş Consent Mode"," kullanımında Google etiketleri varsayılan durum reddedilmişken yüklenir. Depolama kapalı kalırken izin durumunu dikkate alan, çerez kullanmayan sinyaller gönderebilir; ziyaretçi seçim yaptıktan sonra davranışını günceller. Google, bu yöntemin reklamverene özgü modelleme için daha fazla veri sağlayabildiğini belirtiyor. Bu, gelişmiş yöntemin her ülkede kendiliğinden hukuka uygun olduğu anlamına gelmez. Yalnızca reddetme durumundaki teknik davranışın farklı olduğu anlamına gelir. Google ",[66,216,220],{"href":217,"rel":218,"target":73,"className":219},"https:\u002F\u002Fdevelopers.google.com\u002Ftag-platform\u002Fsecurity\u002Fconcepts\u002Fconsent-mode",[70,71,72],[75],"iki yöntemin farkını kendi belgesinde"," anlatıyor; hukuki dayanak ve arayüz yine sitenin hizmet verdiği bölgelere göre değerlendirilmek zorunda.",[14,223,224],{},"Ürün karşılaştırırken “Consent Mode v2 destekliyor” ifadesine bu nedenle temkinli yaklaşmak gerekiyor. Bir üründe bu, dört sinyalin doğru sırayla yönetilmesi anlamına gelirken başka bir üründe müşterinin kendi başına uyarlaması gereken kısa bir örnek koddan ibaret olabiliyor.",[91,226,228],{"id":227},"google-sertifikası-konusundaki-karışıklık","Google Sertifikası Konusundaki Karışıklık",[14,230,231,232],{},"Araştırmanın en yararlı bulgusu aynı zamanda en basit olanıydı: ",[18,233,234],{},"Google, Consent Mode kullanan her reklamverenin Google sertifikalı bir CMP edinmesini şart koşmuyor.",[14,236,192,237,243],{},[66,238,242],{"href":239,"rel":240,"target":73,"className":241},"https:\u002F\u002Fsupport.google.com\u002Fadsense\u002Fanswer\u002F13554116",[70,71,72],[75],"CMP gereksinimleri sayfası"," reklamverenlerle yayıncıları birbirinden ayırıyor. GA4, Google Tag Manager ve Google Ads'i kendi sitesindeki ölçüm, dönüşüm veya yeniden pazarlama için kullanan sıradan bir işletme; kendi geliştirdiği ya da Google'ın iş ortağı olmayan bir CMP üzerinden Consent Mode sinyallerini gönderebilir. Google, reklamverenleri iş ortağı programındaki bir CMP'yi kullanmaya zorlamadığını açıkça belirtiyor.",[14,245,246,247,250],{},"Yayıncı tarafında tablo ciddi biçimde değişiyor. Avrupa Ekonomik Alanı, Birleşik Krallık veya İsviçre'de AdSense, Ad Manager ya da AdMob üzerinden kişiselleştirilmiş reklam sunan bir site için Google'ın yayıncı kuralları, ",[18,248,249],{},"IAB Şeffaflık ve Rıza Çerçevesi (TCF) ile bütünleşmiş Google sertifikalı bir CMP"," gerektirebilir. Sertifikasız bir uygulamada trafik kişiselleştirilmemiş veya sınırlı reklamlarla karşılanabilir; bu da yayıncının hedeflediği gelir modelini değiştirebilir.",[14,252,253],{},"Bu nedenle ilk soru “Bu araç Consent Mode v2 destekliyor mu?” olmamalı. Önce şunu sormak gerekiyor:",[11,255,256],{},[14,257,258],{},"Kendi sitemizi ölçen bir reklamveren miyiz, yoksa Google'ın yayıncı ürünleri üzerinden reklam alanı satan bir yayıncı mı?",[14,260,261],{},"Bu tek ayrım, internetteki hatalı tavsiyelerin büyük bölümünü eliyor. GA4 ve dönüşüm ölçümü kullanan küçük bir SaaS tanıtım sitesiyle Avrupa'da programatik reklam sunan bir yayın kuruluşunun aynı izin altyapısına ihtiyacı yok.",[14,263,264,265,271,272,278],{},"TCF de her çerez bildiriminin daha gelişmiş adı değil. Güncel ",[66,266,270],{"href":267,"rel":268,"target":73,"className":269},"https:\u002F\u002Fiabeurope.eu\u002Ftransparency-consent-framework\u002F",[70,71,72],[75],"IAB Europe TCF v2.3",", reklam tedarik zincirindeki amaçları, satıcıları ve rıza sinyallerini ortak bir biçimde taşımaya yarıyor. TCF kuralları kapsamında geçerli bir rıza dizisini yalnızca kayıtlı bir CMP yazabilir. IAB Europe'un Temmuz 2026'da ",[66,273,277],{"href":274,"rel":275,"target":73,"className":276},"https:\u002F\u002Fiabeurope.eu\u002Fcmp-vendor-notifications\u002F",[70,71,72],[75],"v2.4 geçiş takvimini duyurmuş olması",", bunun bir kez kurulan çerez bildiriminden çok sürekli bakımı gereken bir altyapı olduğunu da gösteriyor. Yayıncı için değerli, hatta zorunlu olabilen bu özellik; üç tane bilinen etiketi olan geliştirici yönetimindeki bir site için gereksiz bir yük olabilir.",[14,280,281],{},"Sertifikayı hukuki güvenceyle de karıştırmamak lazım. Google, sertifikanın gizlilik mevzuatının tamamını değil, kendi CMP şartlarını denetlediğini açıkça söylüyor. Sertifikalı bir ürün yanlış yapılandırılabilir; güzel görünen bir pencere hatalı varsayılanlar kullanabilir; gizlilik metni kodun gerçekte yaptığından farklı bir şey anlatabilir.",[91,283,285],{"id":284},"sonuçta-bir-pencere-ve-dört-çağrı","“Sonuçta Bir Pencere ve Dört Çağrı”",[14,287,288],{},"Küçük bir site için bu itirazın önemli bir bölümü haklı.",[14,290,291],{},"Bütün betikleri ben yönetiyorsam, hangi ülkelere hizmet verdiğimi biliyorsam, etiketleri izin verilmeden önce engelleyebiliyorsam, tercihi saklıyor ve geri çekme imkânı sunuyorsam, yalnızca dört JavaScript değerini değiştirmek için bir yönetim paneli kiralamam şart değil. Olgun bir kütüphane arayüz işinin çoğunu üstlenebilir. Gerekiyorsa sunucuda basit bir uç nokta da rıza kaydı tutabilir. Bu, son derece makul bir mühendislik kararı olabilir.",[14,293,294],{},"Fakat ticari CMP'nin sattığı ürün bundan ibaret değil. Düzenli ücret genellikle şu işlerin bir bölümünü kapsıyor:",[22,296,297,300,303,306,309,312,315,318,321],{},[25,298,299],{},"yeni eklenen çerez ve betiklerin belirli aralıklarla taranması;",[25,301,302],{},"bulunan öğeleri sınıflandırmaya çalışan güncel bir veritabanı;",[25,304,305],{},"konuma göre varsayılanlar ve bölgesel davranış;",[25,307,308],{},"denetimde sunulabilecek rıza ve politika kayıtları;",[25,310,311],{},"IAB satıcı listeleri ve TCF bağlantısı;",[25,313,314],{},"çevrilmiş arayüzler ve politika metinleri;",[25,316,317],{},"birden çok site ve alan adını tek yerden yönetme;",[25,319,320],{},"pazarlama ya da hukuk ekibinin yeni bir dağıtım yapmadan kullanabileceği panel;",[25,322,323],{},"tarayıcılar, Google ürünleri veya düzenleyici beklentiler değiştiğinde sistemin güncellenmesi.",[14,325,326],{},"Bu özelliklerin hiçbiri tek başına hukuka uygunluk kanıtı değil. Satış sayfalarının ima ettiğinden daha zayıf oldukları yerler de var: Otomatik tarama her birinci taraf depolama anahtarını anlayamaz, otomatik sınıflandırmanın insan tarafından gözden geçirilmesi gerekir. Yine de gerçek bir işi çözüyorlar. Abonelik aslında bir işletme gideri tercihidir: Ya sağlayıcıya ödeme yaparsınız ya da bu işi sürdürmek için mühendis ve gizlilik sorumlularının zamanını ayırırsınız.",[14,328,329,330,334],{},"WordPress'ten ayrılırken bunun benzerlerini sık görüyoruz. ",[66,331,333],{"href":332},"\u002Ftr\u002Fyeni-evrenbal-com-yeni-bir-donem-ve-yazma-felsefesi","Kendi sitemi WordPress'ten Git tabanlı Nuxt altyapısına taşırken"," de yazdığım gibi, eski platformun bakım yükünden kurtulmak eklenti ekosisteminin sunduğu kolaylıkları yeniden kurmak anlamına gelebiliyor. Complianz bu kolaylıklardan biri. Alternatif çözümün şirket içinde bir sahibi, izleme düzeni, sürüm güncelleme işi ve her bölgesel istisna için destek gerektirdiği durumda yalnızca yıllık eklenti ücretini karşılaştırmak yanıltıcı olur.",[91,336,338],{"id":337},"pazarı-nasıl-daralttım","Pazarı Nasıl Daralttım?",[14,340,341],{},"Yararlı bir tabloya sığdırdığımdan çok daha fazla ürünü inceledim.",[14,343,344],{},"Complianz, WordPress için güçlü bir başlangıç noktası olmaya devam ediyor; fakat temelde bir WordPress eklentisi. Otomatik tarama, rıza kanıtı anlık görüntüleri ve bölgesel davranış gibi alıştığımız özellikleri tanımlamamıza yardımcı oldu. Yine de Next.js uygulamalarından oluşan bir yapının doğal yönetim merkezi değil.",[14,346,347],{},"OneTrust kurumsal çözümlerin temsilcisi: birçok bölgeyi ve yönetişim ihtiyacını kapsıyor, satış görüşmesiyle ilerliyor ve anlamlı bir herkese açık fiyat sunmuyor. Büyük bir uyum ekibi için doğru karşılaştırma noktası olabilir; küçük bir izin katmanının neden yeni abonelik gerektirdiğini sorgulayan geliştiriciye verilecek anlamlı yanıt değil.",[14,349,350],{},"Termly, belgelenmiş Next.js kurulumu bulunan güvenilir bir hizmet seçeneği. Klaro ise kendi altyapısında çalıştırmak isteyenler için hâlâ ilginç; ancak yayın sıklığı ve Consent Mode bağlantısının daha fazla el emeği istemesi nedeniyle bu tabloda kütüphane yaklaşımını Orest Bida'nın CookieConsent projesiyle temsil etmeyi tercih ettim. Silktide Consent Manager v2 açık kaynak bir paket için güçlü Consent Mode desteğine sahip, fakat yeni ana sürümü Consenti'de zaten incelememiz gereken olgunluk sorusunu tekrar ediyor.",[14,352,353],{},"Geriye, birbirinin benzeri beş bildirimden ziyade beş farklı satın alma ve sorumluluk biçimini temsil eden seçenek kaldı.",[91,355,357],{"id":356},"ağustos-2026-i̇tibarıyla-kısa-liste","Ağustos 2026 İtibarıyla Kısa Liste",[14,359,360],{},"Aşağıdaki fiyatlar 18 Ağustos 2026'da doğruladığım, vergi ile kurumsal sözleşmeler hariç herkese açık liste fiyatlarıdır. Sayfa ve görüntülenme sınırları sık değişir; satın almadan önce yeniden kontrol etmek gerekir.",[102,362,363,382],{},[105,364,365],{},[108,366,367,370,373,376,379],{},[111,368,369],{"align":113},"Seçenek",[111,371,372],{"align":113},"Fiyat ve sınır özeti",[111,374,375],{"align":113},"Aslında ne sunuyor?",[111,377,378],{"align":113},"Consent Mode ve küresel kullanım",[111,380,381],{"align":113},"Ana maliyet veya risk",[119,383,384,403,433,456,474],{},[108,385,386,391,394,397,400],{},[124,387,388],{"align":113},[18,389,390],{},"Cookiebot",[124,392,393],{"align":113},"Bir alan adı ve en fazla 50 alt sayfa için ücretsiz; Premium Lite da 50 sayfanın altındaki siteleri hedefliyor, daha büyük siteler daha yüksek sayfa kademelerine geçiyor",[124,395,396],{"align":113},"Barındırılan tarama, sınıflandırma, rıza kayıtları, birden çok alan adı yönetimi ve olgun işletim düzeni",[124,398,399],{"align":113},"Doğrudan Consent Mode bağlantısı; uygun paketlerde bölgesel davranış ve IAB TCF; Google sertifikalı yayıncı yolu mevcut",[124,401,402],{"align":113},"Başlangıç fiyatı büyük siteleri temsil etmiyor; site sayısı büyüdükçe alan adı başına maliyet ve sağlayıcı bağımlılığı artıyor",[108,404,405,410,424,427,430],{},[124,406,407],{"align":113},[18,408,409],{},"CookieYes",[124,411,412,413,416,417,420,421],{"align":113},"Ücretsiz: 100 sayfa ve ayda 5.000 görüntülenme; Basic ",[18,414,415],{},"10",", Pro ",[18,418,419],{},"25",", Ultimate ",[18,422,423],{},"55 dolar\u002Falan adı\u002Fay",[124,425,426],{"align":113},"Barındırılan tarama, rıza kaydı, anlaşılır kullanım sınırları ve Next.js\u002Ftek sayfa uygulamaları için belge",[124,428,429],{"align":113},"Bütün paketlerde Consent Mode v2 ve GTM; konum yönetimi ve TCF üst paketlerde",[124,431,432],{"align":113},"Görüntülenme sınırları ve site başına ücret, trafikle birlikte pahalılaşabilir",[108,434,435,440,447,450,453],{},[124,436,437],{"align":113},[18,438,439],{},"iubenda",[124,441,442,443,446],{"align":113},"Ücretsiz başlangıç; Essentials aylık ",[18,444,445],{},"6,99 dolar"," veya yıllık ödemede daha düşük aylık karşılık; üst paketlerde trafik ve politika özellikleri artıyor",[124,448,449],{"align":113},"CMP'nin yanında gizlilik\u002Fçerez politikaları ve daha geniş bir rıza veritabanı ürünü",[124,451,452],{"align":113},"Consent Mode ve yayıncı özellikleri var; konum ve bütün dil seçenekleri daha üst paketlerde",[124,454,455],{"align":113},"Gereğinden fazla ürün ve bağımlılık yaratabilir; herkese açık sertifika belgesi inceleme sırasında hâlâ TCF v2.2 diyordu, bu nedenle yayıncılar canlı sertifika listesini ve gereken TCF sürümünü doğrulamalı",[108,457,458,462,465,468,471],{},[124,459,460],{"align":113},[18,461,76],{},[124,463,464],{"align":113},"Apache-2.0 lisanslı; lisans ücreti yok, altyapı ve sahiplik sizde",[124,466,467],{"align":113},"Arayüz, depolama bağdaştırıcıları, isteğe bağlı arka uç, rıza kayıtları, GPC ve bölgesel yapılandırma",[124,469,470],{"align":113},"Kaynak kod dört v2 sinyalini de yönetiyor; engellemeli ya da izin durumunu dikkate alan yükleme kurulabilir; Google sertifikalı veya kayıtlı TCF CMP'si değil",[124,472,473],{"align":113},"Çok genç proje, küçük geliştirici tabanı, henüz olgunlaşan tarama özelliği ve kullanan ekip için daha fazla doğrulama işi",[108,475,476,481,484,487,490],{},[124,477,478],{"align":113},[18,479,480],{},"CookieConsent v3",[124,482,483],{"align":113},"MIT lisanslı kütüphane; lisans ücreti yok",[124,485,486],{"align":113},"Olgun tercih arayüzü, saklama, sürüm yenileme davranışı ve betik engelleme",[124,488,489],{"align":113},"Resmî örnek dört Google sinyalini de kapsıyor; bölgesel kuralları ve çevresindeki hizmetleri geliştirici sağlıyor",[124,491,492],{"align":113},"Otomatik tarama, konum, denetim arka ucu, TCF programı veya mevzuat takibi yerleşik değil",[14,494,495,496,501,502,507,508,513],{},"Güncel ",[66,497,500],{"href":498,"rel":499,"target":73},"https:\u002F\u002Fwww.cookiebot.com\u002Fen\u002Fpricing\u002F",[70,71,72],"Cookiebot fiyatları",", ",[66,503,506],{"href":504,"rel":505,"target":73},"https:\u002F\u002Fwww.cookieyes.com\u002Fpricing\u002F",[70,71,72],"CookieYes fiyatları"," ve ",[66,509,512],{"href":510,"rel":511,"target":73},"https:\u002F\u002Fwww.iubenda.com\u002Fen\u002Fpricing\u002F",[70,71,72],"iubenda fiyatları",", üçüncü taraf karşılaştırma sitelerinden daha güvenilir; yine de yalnızca bugünün fotoğrafını gösteriyor. Kendi altyapımızda çalıştırdığımız seçeneklerin abonelik bedeli yok çünkü maliyet mühendislik ve işletime taşınıyor, ortadan kalkmıyor.",[91,515,517],{"id":516},"consenti-en-i̇lginç-soru-i̇şareti","Consenti: En İlginç Soru İşareti",[14,519,520],{},"Consenti hem araştırmayı başlattığı hem de alışılmadık bir ara noktaya yerleşmeye çalıştığı için daha yakından bakmayı hak ediyor.",[14,522,523,529],{},[66,524,528],{"href":525,"rel":526,"target":73,"className":527},"https:\u002F\u002Fgithub.com\u002Fsantoshe61\u002Fconsenti",[70,71,72],[75],"Proje Apache-2.0 lisansına sahip",". Yalnızca ön yüzde kullanılabildiği gibi Express, Fastify, Next.js veya genel bir Node.js hizmetiyle çalışan arka uç paketleri de var. Depolama konusunda deponun kendi belgeleri çelişiyor: örnekler SQLite kullanırken teknik karar notu dosya tabanlı JSON'u varsayılan, SQLite'ı ise isteğe bağlı olarak anlatıyor. Bu nedenle kullanmadan önce üretimde hangi adaptörün hedeflendiğini doğrulardım. Tercihleri saklayabiliyor, tarayıcı sekmeleri arasında eşitleyebiliyor, Küresel Gizlilik Denetimi (GPC) sinyalini tanıyor, arka uç destekli konum belirleme yolu sunuyor ve rıza kayıtları tutabiliyor.",[14,531,532,533,501,535,501,537,507,539,541],{},"Daha önemlisi, Consent Mode desteği yalnızca ana sayfaya konmuş bir rozetten ibaret değil. Uygulama, kategorileri ",[59,534,128],{},[59,536,138],{},[59,538,148],{},[59,540,158],{}," değerleriyle eşliyor; varsayılanları belirleyip değişiklikleri yayımlıyor. Google Tag Manager bu değerler reddedilmişken yüklenirse Gelişmiş Consent Mode benzeri bir davranış elde ediliyor. Betikler izin verilene kadar tutulursa Temel Consent Mode yaklaşımına uygun biçimde kullanılabiliyor.",[14,543,544],{},"Önemli çekinceler de var.",[14,546,547,548,551],{},"Bu inceleme sırasında herkese açık depoda yalnızca dokuz commit vardı ve paketler hâlâ 0.x sürümlerindeydi. Tarama kodu var ama dağıtımı ve belgeleri arayüz ile API paketleri kadar tamamlanmış değil. Bölge tespiti arka uçtan gelen IP bilgisini kullanabiliyor; yalnızca tarayıcıda çalışan kurulum ise kaçınılmaz olarak dil ve saat dilimi gibi daha zayıf işaretlere dayanıyor. TCF\u002FGPP desteği kısmi. Consenti kendi başına kayıtlı bir IAB CMP'si ya da Google sertifikalı yayıncı CMP'si değil. İşletmecinin bu kurumsal gereksinimi ayrıca çözmesi gerekir; koda ",[59,549,550],{},"cmpId"," alanı eklemek kayıt oluşturmaz.",[14,553,554],{},"Bunlar Consenti'yi kötü bir seçim yapmıyor. Onu genç bir altyapı bağımlılığı yapıyor. Deneyimli, kaynak kodu inceleyebilecek ve sertifikalı yayıncı yoluna ihtiyacı olmayan bir ekip için bulduğum en kapsamlı açık kaynak girişimlerden biri. Küresel bir şirkette kullanacaksam bunu bir hizmet işletmek gibi ele alırım: Sürümleri sabitler, her bölgeyi sınar, yeni sürümleri izler, veritabanı modelini gözden geçirir, saklama politikasını tanımlar ve Google ya da IAB kuralları değiştirdiğinde kimin müdahale edeceğini önceden belirlerim.",[14,556,557],{},"Belgelerinin en güçlü tarafı, kendi altyapınızda çalıştırmanın bu sorumluluğu ortadan kaldırdığını iddia etmemesi. En zayıf tarafıysa yalnızca zaman: İncelediğim sırada iki aylık bile olmayan bir projeye hiçbir belge yılların üretim tecrübesini kazandıramaz.",[91,559,561],{"id":560},"daha-hafif-yol-nasıl-görünüyor","Daha Hafif Yol Nasıl Görünüyor?",[14,563,564,565,570,571,577],{},"Diğer uçta ",[66,566,480],{"href":567,"rel":568,"target":73,"className":569},"https:\u002F\u002Fgithub.com\u002Forestbida\u002Fcookieconsent",[70,71,72],[75],", platform yerine kütüphane yaklaşımının iyi bir örneği. Uygulamaya erişilebilir bir tercih ekranı, tercihlerin saklanması, betik engelleme ve izin metni değiştiğinde yeniden sorma davranışı kazandırıyor. ",[66,572,576],{"href":573,"rel":574,"target":73,"className":575},"https:\u002F\u002Fcookieconsent.orestbida.com\u002Fadvanced\u002Fgoogle-consent-mode.html",[70,71,72],[75],"Resmî Consent Mode örneği"," dört v2 değerini de kapsıyor.",[14,579,580],{},"Bilerek sunmadıkları daha belirleyici: Pazarlama ekibinin yeni ölçüm aracını keşfetmiyor, ziyaretçinin hangi yargı alanında olduğuna karar vermiyor, sunucu tarafında denetlenebilir geçmiş tutmuyor, IAB satıcı listelerini güncellemiyor ve politika gözden geçirilmesi gerektiğinde gizlilik ekibini uyarmıyor. Resmî rıza kaydı örneği, kayıt ve saklama sorumluluğu size ait olduğu için veriyi kendi uç noktanıza nasıl göndereceğinizi gösteriyor.",[14,582,583],{},"Kişisel site için bu sadelik tam aradığınız şey olabilir. Birkaç ekip tarafından yönetilen elli uluslararası sitede ise fark ettirmeden şirket içi bir CMP ürününe dönüşebilir. Bildirimin kodu küçük kalırken sahip olunması gereken alan büyür.",[91,585,587],{"id":586},"en-temel-consent-mode-v2-akışı","En Temel Consent Mode v2 Akışı",[14,589,590],{},"Kavramsal uygulama gerçekten kısa. Varsayılan durum GTM, GA4 veya diğer Google ölçüm komutlarından önce çalışmalı:",[592,593,598],"pre",{"className":594,"code":595,"language":596,"meta":597,"style":597},"language-html shiki shiki-themes github-light github-dark","\u003Cscript>\n  window.dataLayer = window.dataLayer || [];\n  function gtag() { dataLayer.push(arguments); }\n\n  gtag('consent', 'default', {\n    analytics_storage: 'denied',\n    ad_storage: 'denied',\n    ad_user_data: 'denied',\n    ad_personalization: 'denied'\n  });\n\u003C\u002Fscript>\n","html","",[59,599,600,616,635,661,668,688,700,710,720,729,735],{"__ignoreMap":597},[601,602,605,609,613],"span",{"class":603,"line":604},"line",1,[601,606,608],{"class":607},"sVt8B","\u003C",[601,610,612],{"class":611},"s9eBZ","script",[601,614,615],{"class":607},">\n",[601,617,619,622,626,629,632],{"class":603,"line":618},2,[601,620,621],{"class":607},"  window.dataLayer ",[601,623,625],{"class":624},"szBVR","=",[601,627,628],{"class":607}," window.dataLayer ",[601,630,631],{"class":624},"||",[601,633,634],{"class":607}," [];\n",[601,636,638,641,645,648,651,654,658],{"class":603,"line":637},3,[601,639,640],{"class":624},"  function",[601,642,644],{"class":643},"sScJk"," gtag",[601,646,647],{"class":607},"() { dataLayer.",[601,649,650],{"class":643},"push",[601,652,653],{"class":607},"(",[601,655,657],{"class":656},"sj4cs","arguments",[601,659,660],{"class":607},"); }\n",[601,662,664],{"class":603,"line":663},4,[601,665,667],{"emptyLinePlaceholder":666},true,"\n",[601,669,671,674,676,680,682,685],{"class":603,"line":670},5,[601,672,673],{"class":643},"  gtag",[601,675,653],{"class":607},[601,677,679],{"class":678},"sZZnC","'consent'",[601,681,501],{"class":607},[601,683,684],{"class":678},"'default'",[601,686,687],{"class":607},", {\n",[601,689,691,694,697],{"class":603,"line":690},6,[601,692,693],{"class":607},"    analytics_storage: ",[601,695,696],{"class":678},"'denied'",[601,698,699],{"class":607},",\n",[601,701,703,706,708],{"class":603,"line":702},7,[601,704,705],{"class":607},"    ad_storage: ",[601,707,696],{"class":678},[601,709,699],{"class":607},[601,711,713,716,718],{"class":603,"line":712},8,[601,714,715],{"class":607},"    ad_user_data: ",[601,717,696],{"class":678},[601,719,699],{"class":607},[601,721,723,726],{"class":603,"line":722},9,[601,724,725],{"class":607},"    ad_personalization: ",[601,727,728],{"class":678},"'denied'\n",[601,730,732],{"class":603,"line":731},10,[601,733,734],{"class":607},"  });\n",[601,736,738,741,743],{"class":603,"line":737},11,[601,739,740],{"class":607},"\u003C\u002F",[601,742,612],{"class":611},[601,744,615],{"class":607},[14,746,747],{},"Ziyaretçi ilgili kategorilere izin verdikten sonra aynı sinyaller güncellenir:",[592,749,753],{"className":750,"code":751,"language":752,"meta":597,"style":597},"language-js shiki shiki-themes github-light github-dark","gtag('consent', 'update', {\n  analytics_storage: 'granted',\n  ad_storage: 'granted',\n  ad_user_data: 'granted',\n  ad_personalization: 'granted'\n});\n","js",[59,754,755,771,781,790,799,807],{"__ignoreMap":597},[601,756,757,760,762,764,766,769],{"class":603,"line":604},[601,758,759],{"class":643},"gtag",[601,761,653],{"class":607},[601,763,679],{"class":678},[601,765,501],{"class":607},[601,767,768],{"class":678},"'update'",[601,770,687],{"class":607},[601,772,773,776,779],{"class":603,"line":618},[601,774,775],{"class":607},"  analytics_storage: ",[601,777,778],{"class":678},"'granted'",[601,780,699],{"class":607},[601,782,783,786,788],{"class":603,"line":637},[601,784,785],{"class":607},"  ad_storage: ",[601,787,778],{"class":678},[601,789,699],{"class":607},[601,791,792,795,797],{"class":603,"line":663},[601,793,794],{"class":607},"  ad_user_data: ",[601,796,778],{"class":678},[601,798,699],{"class":607},[601,800,801,804],{"class":603,"line":670},[601,802,803],{"class":607},"  ad_personalization: ",[601,805,806],{"class":678},"'granted'\n",[601,808,809],{"class":603,"line":690},[601,810,811],{"class":607},"});\n",[14,813,814,815,817],{},"Gerçek bir uygulamada dört sinyalin tek düğmeyle açılması şart değil. Ölçüm izni yalnızca ",[59,816,128],{}," değerini, reklam izni diğer üçünü değiştirebilir. Ziyaretçi daha önce verdiği izni geri çekebileceği için güncelleme yolu iki yönde de çalışmak zorunda.",[14,819,820,821,823,824,507,827,830],{},"Next.js'te varsayılan izin durumu, React sayfayı tarayıcıda devralmadan; istemci tarafı gezinme ve üçüncü taraf betik bileşenleri çalışmadan önce belirlenmeli. Ekip Consent Mode'u sayfa kodu yerine özel bir GTM şablonunda uyguluyorsa Google, şablonun içinden ",[59,822,759],{}," kuyruğuna komut eklemek yerine ",[59,825,826],{},"setDefaultConsentState",[59,828,829],{},"updateConsentState"," API'lerini öneriyor. Buradaki zamanlama bir hız iyileştirmesi değil. İlk isteğin doğru varsayılanla korunup korunmadığını belirliyor.",[14,832,833],{},"Bölgeye göre varsayılanlar bu sade örneği karmaşıklaştırıyor. Küresel bir site bazı ülkelerde varsayılan olarak reddedebilir, başka yerlerde farklı bir bildirim düzeni uygulayabilir, ilgili ABD eyaletlerinde GPC sinyalini dikkate alabilir. Bu kurallar ön yüz ekibinin tahminle hazırladığı bir ülke kodları listesi değil, belgelenmiş bir politika girdisi olmalı.",[91,835,837],{"id":836},"uygulamayı-nasıl-doğrularım","Uygulamayı Nasıl Doğrularım?",[14,839,840],{},"CMP panelinde “bağlandı” yazması yeterli değil. Önemli her bölge ve tercih yolu için şunları kontrol ederim:",[22,842,843,849,855,862,865,868,871,874],{},[25,844,845,848],{},[18,846,847],{},"Google Tag Assistant"," içinde en erken Consent olayında beklenen varsayılanlar, sonraki olaylarda doğru güncellemeler var mı?",[25,850,851,854],{},[18,852,853],{},"GTM Preview"," içinde etkileşimden önce, tümünü kabul ettikten, tümünü reddettikten ve ayrıntılı seçim yaptıktan sonra hangi etiketler çalıştı veya engellendi?",[25,856,857,858,861],{},"Tarayıcının geliştirici araçlarında ağ istekleri ve çerezler seçilen temel ya da gelişmiş davranışla eşleşiyor mu; yoksa yalnızca ",[59,859,860],{},"localStorage"," içindeki tercih mi değişiyor?",[25,863,864],{},"Geri dönen ziyaretçinin kayıtlı seçimi etiketler başlamadan uygulanıyor mu; politika veya sürüm değişince gerektiğinde yeniden soruluyor mu?",[25,866,867],{},"Ziyaretçi tercihlerini yeniden açıp verdiği izni, verirken olduğu kadar kolay geri çekebiliyor mu?",[25,869,870],{},"Next.js içindeki sayfa geçişleri durumu koruyor mu, yoksa bazı etiketleri eski izin durumuyla yeniden mi çalıştırıyor?",[25,872,873],{},"Sunucu tarafı kayıt vaat ediliyorsa politika sürümü, tercihler ve zaman damgası içeren anlamlı bir kayıt, tanımlı saklama süresi içinde bulunabiliyor mu?",[25,875,876],{},"Otomatik taramayla elle çıkarılmış etiket listesi aynı şeyi mi söylüyor? Söylemiyorsa hangisi eksik?",[14,878,192,879,885],{},[66,880,884],{"href":881,"rel":882,"target":73,"className":883},"https:\u002F\u002Fdevelopers.google.com\u002Ftag-platform\u002Fsecurity\u002Fguides\u002Fconsent-debugging",[70,71,72],[75],"izin hatalarını ayıklama rehberi",", Tag Assistant'ı başlangıç noktası yapıyor. Ben buna sitenin kendi izin bağdaştırıcısı çevresinde tekrarlanabilir bütünleşme testleri de eklerim. Üçüncü taraf yapılandırması kod değişikliği olmadan değişebildiği için üretimdeki gerçek davranışı belirli aralıklarla sınamak gerekir.",[91,887,889],{"id":888},"öneri-siteye-göre-değişiyor","Öneri Siteye Göre Değişiyor",[14,891,892],{},"Her seçenek başka bir riski fiyatlandırdığı için dürüst bir tek kazanan yok.",[102,894,895,908],{},[105,896,897],{},[108,898,899,902,905],{},[111,900,901],{"align":113},"Senaryo",[111,903,904],{"align":113},"Makul başlangıç noktası",[111,906,907],{"align":113},"Neden?",[119,909,910,923,936,949,962,975],{},[108,911,912,917,920],{},[124,913,914],{"align":113},[18,915,916],{},"Kişisel veya küçük geliştirici sitesi",[124,918,919],{"align":113},"CookieConsent v3, yalnızca ön yüzüyle Consenti ya da ticari bir ücretsiz paket",[124,921,922],{"align":113},"Az sayıda bilinen etiket elle sahiplenmeyi mümkün kılar; gerek duymadığınız bir uyum platformu kurmayın",[108,924,925,930,933],{},[124,926,927],{"align":113},[18,928,929],{},"Ücretli müşteri edinimi yapan bağımsız SaaS",[124,931,932],{"align":113},"CookieYes\u002FCookiebot veya açıkça sahibi belirlenmiş arka uçla Consenti",[124,934,935],{"align":113},"Daha çok ölçüm aracı, deney ve alan adı; tarama, kayıt ve merkezi ayarın değerini artırır",[108,937,938,943,946],{},[124,939,940],{"align":113},[18,941,942],{},"Küresel Next.js geçişi",[124,944,945],{"align":113},"Barındırılan CMP ya da sorumlusu belirlenmiş, kendi altyapınızdaki bir hizmet",[124,947,948],{"align":113},"Bölgesel kurallar, birden çok ekip ve site; yönetim ile denetlenebilirliği temel gereksinime dönüştürür",[108,950,951,956,959],{},[124,952,953],{"align":113},[18,954,955],{},"Pazarlama ağırlıklı işletme",[124,957,958],{"align":113},"Olgun, hizmet olarak sunulan CMP",[124,960,961],{"align":113},"Teknik olmayan değişiklikler, ajanslar ve sık değişen etiketler; panel ile taramayı bildirimden daha değerli yapar",[108,963,964,969,972],{},[124,965,966],{"align":113},[18,967,968],{},"AdSense \u002F Ad Manager \u002F AdMob yayıncısı",[124,970,971],{"align":113},"Google'ın güncel sertifikalı CMP listesinden ve zorunlu IAB TCF sürümünden başlayın",[124,973,974],{"align":113},"Sertifika ve reklam tedarik zinciri uyumu, isteğe bağlı özellik değil ticari gereksinim olabilir",[108,976,977,982,985],{},[124,978,979],{"align":113},[18,980,981],{},"Gizlilik ekibi olan büyük kuruluş",[124,983,984],{"align":113},"OneTrust ile daha geniş Usercentrics\u002Fiubenda ürünleri dâhil kurumsal değerlendirme",[124,986,987],{"align":113},"Yönetişim, roller, bütünleşmeler, satın alma ve birçok sitedeki kanıt; en düşük yazılım ücretinden daha önemlidir",[14,989,990],{},"Olgun tarama, alan adları arasında tercih paylaşımı ve erişilebilir rıza kayıtları önemliyse Cookiebot güçlü. CookieYes'in herkese açık paketleri daha anlaşılır ve Next.js yolu daha pratik belgelenmiş. Kuruluş yalnızca etiket durumunu değil, gizlilik belgeleriyle rıza veritabanını da istiyorsa iubenda daha anlamlı. Consenti, gençliğini ve yayıncı sertifikasının bulunmadığını kabul eden ekip için bu grubun en iddialı açık kaynak seçeneği. Gerçek ihtiyaç iyi bir arayüz ve uygulama ekibinin sahipleneceği mantıksa CookieConsent en sade yanıt.",[14,992,993],{},"Yayıncı olsaydım bu yazıdaki tablo dâhil hiçbir karşılaştırmaya son söz gibi güvenmezdim. Uygulamadan önce Google'ın canlı sertifika listesini, güncel IAB politikasını ve kullanılan Google ürününü yeniden kontrol ederdim. Bu inceleme tarihinde geçerli çerçeve TCF v2.3; IAB Europe ise v2.4 geçiş takvimini çoktan duyurmuştu. Bu, yazıdaki en hızlı eskiyecek bilgilerden biri.",[91,995,997],{"id":996},"bu-araştırma-benim-i̇çin-neyi-değiştirdi","Bu Araştırma Benim İçin Neyi Değiştirdi?",[14,999,1000],{},"Başlangıçta sorduğum soru fiyatla ilgiliydi: Bir geliştiricinin az miktarda JavaScript ile yeniden üretebileceği bir iş için neden her ay ödeme yapalım?",[14,1002,1003,1004],{},"Daha doğru soru şuymuş: ",[18,1005,1006],{},"İzin sisteminin hangi bölümlerini şirket içinde ayrı bir ürün gibi geliştirmek ve işletmek istiyoruz?",[14,1008,1009],{},"Kontrollü tek bir site için yanıt makul biçimde “çoğunu” olabilir. WordPress'ten Next.js'e geçen küresel bir site grubunda ise ekranda görünen bildirim en az ilginç parça. Kararı; envanter, bölgesel politikalar, rıza kanıtı, izni geri çekme, yükleme sırası, yayıncı olup olmama ve kurumsal sahiplik belirliyor.",[14,1011,1012],{},"Bu araştırmayı kendi trafiğimiz, hizmet verdiğimiz ülkeler, kullandığımız Google ürünleri, şirket içindeki beceriler ve bakıma ayırabileceğimiz kaynak üzerinden bir tercih yapmak için kullandık. Hangi ürünü seçtiğimizi özellikle yazmıyorum. Kurumsal bağlamın tamamını açıklamadan bir kazanan ilan etmek, bu yazının önlemeye çalıştığı kestirme kararı teşvik ederdi.",[14,1014,1015],{},"Ücretli CMP kendiliğinden daha güvenli değil. Açık kaynak kendiliğinden daha ucuz değil. Kendi kodunuzu yazmak kendiliğinden daha basit değil. Bunlar aynı sorumluluğu koyabileceğiniz üç farklı yer.",[14,1017,1018],{},"Seçiminizi, o bildirimi geliştirmekten keyif alan kişi ekipten ayrıldığında, pazarlama altı yeni etiket eklediğinde ve izin çerçevesinin yeni sürümü çıktığında da ekibinizin sahiplenebileceği yere göre yapın.",[1020,1021,1022],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":597,"searchDepth":618,"depth":618,"links":1024},[1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035],{"id":93,"depth":618,"text":94},{"id":227,"depth":618,"text":228},{"id":284,"depth":618,"text":285},{"id":337,"depth":618,"text":338},{"id":356,"depth":618,"text":357},{"id":516,"depth":618,"text":517},{"id":560,"depth":618,"text":561},{"id":586,"depth":618,"text":587},{"id":836,"depth":618,"text":837},{"id":888,"depth":618,"text":889},{"id":996,"depth":618,"text":997},[1037,1038],"business","technical",null,"2026-08-18","Küresel siteleri WordPress'ten Next.js'e taşırken Google Consent Mode v2 için ücretli, açık kaynak ve özel geliştirilmiş CMP seçeneklerini karşılaştırdım.",false,"md","\u002Fimages\u002Fhero\u002Fconsent-architecture.avif","İnceleme",{},"\u002Ftr\u002Fgoogle-consent-mode-v2-icin-ucretli-cmp-sart-mi","2026-08-18 01:31:56",17,{"title":6,"description":1041},"google-consent-mode-v2-icin-ucretli-cmp-sart-mi","tr\u002Fgoogle-consent-mode-v2-icin-ucretli-cmp-sart-mi",[1054,1055,1056,1057,1058],"google-consent-mode-v2","cmp","gizlilik","nextjs","gdpr","paid-cmp-consent-mode-v2","post","b9H0zl91_rYfH0oRxSuFiJWVeqx86vR7T55fsu1OcVQ",{"path":1063},"\u002Fdo-you-need-a-paid-cmp-for-google-consent-mode-v2",{"prev":1039,"next":1065,"others":1068,"lucky":1187,"readingTime":1049},{"path":1066,"title":1067},"\u002Ftr\u002Fvite-nedir","Vite Nedir? Modern Web Geliştirme ve Paketleme Aracı",[1069,1072,1075,1078,1081,1084,1087,1090,1091,1094,1097,1100,1103,1106,1109,1112,1115,1118,1121,1124,1127,1130,1133,1136,1139,1142,1145,1148,1151,1154,1157,1160,1163,1166,1169,1172,1175,1178,1181,1184],{"path":1070,"title":1071},"\u002Ftr\u002Fgo-veri-tipleri-string-integer-float-complex-boolean-ve-array","Go Veri Tipleri - String, Integer, Float, Complex, Boolean ve Array",{"path":1073,"title":1074},"\u002Ftr\u002Fes15-nedir-ecmascript-2024-nedir","ES15 nedir? ECMAScript 2024 nedir?",{"path":1076,"title":1077},"\u002Ftr\u002Fes16-nedir-ecmascript-2025-nedir","ES16 nedir? ECMAScript 2025 nedir?",{"path":1079,"title":1080},"\u002Ftr\u002Fes12-nedir-ecmascript-2021-nedir","ES12 Nedir? ECMAScript 2021 Nedir?",{"path":1082,"title":1083},"\u002Ftr\u002Fmerhaba-gluster","Merhaba Gluster: Dağıtık Dosya Sistemi Nedir?",{"path":1085,"title":1086},"\u002Ftr\u002Fgo-veri-tipleri-map","Go Veri Tipleri - Map",{"path":1088,"title":1089},"\u002Ftr\u002Fes8-nedir-ecmascript-2017-nedir","ES8 Nedir? ECMAScript 2017 Nedir?",{"path":1066,"title":1067},{"path":1092,"title":1093},"\u002Ftr\u002Fes9-nedir-ecmascript-2018-nedir","ES9 Nedir? ECMAScript 2018 Nedir?",{"path":1095,"title":1096},"\u002Ftr\u002Ftasarim-kaliplari-design-patterns-abstract-factory-nedir","Abstract Factory Tasarım Deseni Nedir?",{"path":1098,"title":1099},"\u002Ftr\u002Froot-yetkisi-olmayan-kullanici-ssh-baglantisini-ssh-baglantisini-ssh-anahtari-ile-nasil-kurabilir","Root yetkisi olmayan kullanıcı, SSH bağlantısını, SSH anahtarı ile nasıl kurabilir?",{"path":1101,"title":1102},"\u002Ftr\u002Ftemplate-method-tasarim-deseni-nedir","Template Method Tasarım Deseni Nedir?",{"path":1104,"title":1105},"\u002Ftr\u002Fphalcon-frameworkun-gelecegi","Phalcon Framework'ün Geleceği: Bir Devrin Sonu",{"path":1107,"title":1108},"\u002Ftr\u002Fdocker-swarm-nedir","Docker Swarm Nedir?",{"path":1110,"title":1111},"\u002Ftr\u002Fphp-generator-ve-iterator-farki","PHP'de Generator ve Iterator Arasındaki Temel Farklar",{"path":1113,"title":1114},"\u002Ftr\u002Fes10-nedir-ecmascript-2019-nedir","ES10 Nedir? ECMAScript 2019 Nedir?",{"path":1116,"title":1117},"\u002Ftr\u002Frabbitmq-nedir","RabbitMQ Nedir?",{"path":1119,"title":1120},"\u002Ftr\u002Fubuntu-20-04-composer-kurulumu","Ubuntu 20.04 - Composer Kurulumu",{"path":1122,"title":1123},"\u002Ftr\u002Fwebpack-nedir","Webpack Nedir? Modern JavaScript Paketleyici Ekosistemi",{"path":1125,"title":1126},"\u002Ftr\u002Faws-ec2-uzerinde-docker-ve-full-stack-web-performansi","AWS EC2 Üzerinde Docker ve Full Stack Web Performansı",{"path":1128,"title":1129},"\u002Ftr\u002Fgo-slice-veri-tipi","Go Veri Tipleri: Slice",{"path":1131,"title":1132},"\u002Ftr\u002Frest-api-uri-yapisi-nasil-olmali","REST API URI Yapısı Nasıl Olmalı?",{"path":1134,"title":1135},"\u002Ftr\u002Fapi-gateway-nedir","API Gateway Nedir? Ne İşe Yarar?",{"path":1137,"title":1138},"\u002Ftr\u002Fgo-veri-tipleri-struct","Go Veri Tipleri: Struct",{"path":1140,"title":1141},"\u002Ftr\u002Fdocker-ile-redis-kurulumu","Docker ile Redis Kurulumu",{"path":1143,"title":1144},"\u002Ftr\u002Fmutable-ve-immutable-kavrami","Mutable ve Immutable Kavramları Nedir?",{"path":1146,"title":1147},"\u002Ftr\u002Fprogralama-ipucu-yoda-gosterimi","Yoda Koşulları (Yoda Conditions) Nedir? Programlama İpucu",{"path":1149,"title":1150},"\u002Ftr\u002Frest-api-kimlik-dogrulama-nasil-yapilir","REST API Kimlik Doğrulama Nasıl Yapılır?",{"path":1152,"title":1153},"\u002Ftr\u002Fes7-nedir-ecmascript-2016-nedir","ES7 Nedir? ECMAScript 2016 Nedir?",{"path":1155,"title":1156},"\u002Ftr\u002Fjavascriptde-moduller","JavaScript'te Modüller",{"path":1158,"title":1159},"\u002Ftr\u002Ffactory-method-ve-abstract-factory-farki-nedir","Factory Method ve Abstract Factory Farkı Nedir?",{"path":1161,"title":1162},"\u002Ftr\u002Fmemento-tasarim-deseni-nedir","Memento Tasarım Deseni Nedir?",{"path":1164,"title":1165},"\u002Ftr\u002Fself-hosted-api-gateway-nasil-kurulur-kapsamli-rehber","Self-Hosted API Gateway Nasıl Kurulur? Kapsamlı Rehber",{"path":1167,"title":1168},"\u002Ftr\u002Ftasarim-kaliplari-design-patterns-factory-method-nedir","Factory Method Tasarım Deseni Nedir?",{"path":1170,"title":1171},"\u002Ftr\u002Fdigital-oceanda-vps-kurulumu","DigitalOcean'da VPS (Droplet) Kurulumu: Adım Adım Rehber",{"path":1173,"title":1174},"\u002Ftr\u002Fstrategy-tasarim-deseni-nedir","Strategy Tasarım Deseni Nedir?",{"path":1176,"title":1177},"\u002Ftr\u002Fjwt-guvenli-mi-guvenlik-acigi-olusturmayin","JWT Güvenli Derken Güvenlik Açığı Oluşturmayın",{"path":1179,"title":1180},"\u002Ftr\u002Frestful-api-bilesenleri","RESTful API Bileşenleri",{"path":1182,"title":1183},"\u002Ftr\u002Fyeni-tema-honeywind","Yeni WordPress Temam Honeywind: Tailwind CSS ve Minimalizm",{"path":1185,"title":1186},"\u002Ftr\u002Fobserver-tasarim-deseni-nedir","Observer Tasarım Deseni Nedir?",{"path":1188,"title":1189},"\u002Ftr\u002Fmerhaba-phalcon-framework","Merhaba Phalcon Framework",[],[1192,1196,1200],{"path":1193,"title":1194,"date":1195},"\u002Ftr\u002Fflyweight-tasarim-deseni-nedir","Flyweight Tasarım Deseni Nedir?","2021-09-14",{"path":1197,"title":1198,"date":1199},"\u002Ftr\u002Frest-api-guvenligi-nasil-saglanir","REST Api Güvenliği Nasıl Sağlanır?","2021-02-16",{"path":1149,"title":1150,"date":1201},"2021-02-15",1787045999349]