Onay
Kendi çerez politikanıza verilen tek bir onay, ister bildiriminiz ister sohbet sorsun, ve iki tarafı aynı yanıtta tutan üç arcy.js çağrısı.
ARCY, ziyaretçi sizin çerez politikanıza onay verene kadar cihazına hiçbir şey yazmaz. Onay tektir, iki tane değildir: kendi politikanız arcy.js'in neler yazdığını anlatan çerez şablonunu taşır, dolayısıyla bildiriminizi kabul eden ziyaretçi ARCY'yi de kabul etmiş olur. Widget'ın tek ihtiyacı bunu duymaktır.
Ziyaretçinin evet diyebileceği iki yer vardır ve ikisi de geçerlidir:
- Sizin çerez bildiriminiz. Kabul düğmesi
arcy.consent(true), Reddet düğmesiarcy.consent(false)çağırır. Olağan yol budur. - Sohbetin kendisi. Kayıtlı bir onayı olmadan sohbete uzanan ziyaretçiye tam orada, sizin ağzınızdan, gizlilik politikanıza ve çerez politikanıza bağlantı verilerek sorulur.
Bu ikisi aralarından seçim yapacağınız seçenekler değildir. Ortam başına ayarlanacak bir şey yoktur. Her ortam aynı davranır ve ARCY'ye verdiğiniz tek şey Settings > App altındaki Onay kartındaki iki adrestir.
Sohbet ne zaman, ne sorar
Soru, ziyaretçi depolama gerektiren bir şeyi ilk kez yaptığında belirir: Gönder'e basmak, bir başlangıç sorusuna dokunmak, Geçmiş, Akışlar ya da Ayarlar çekmecesini açmak veya görsel düğmesine basmak. Paneli açmak, karşılamayı okumak ya da paneli köşeye küçültmek soruyu asla getirmez. Bakmak serbesttir; kullanmak yanıt ister.
Soru sizin sitenizin ağzından yazılmıştır ("Çerez kullanıyoruz..."), gizlilik politikanıza ve çerez politikanıza bağlanır ve tek bir düğmesi vardır: Kabul et. Reddet yoktur. Paneli kapatmak "şimdi değil" demektir: hiçbir şey yazılmaz ve ziyaretçi sohbeti bir sonraki kez kullanmaya çalıştığında soru geri gelir.
Onay kartındaki iki adresi de doldurana kadar soru ARCY'nin kendi sayfalarına bağlanır: arcyai.com/privacy ve arcyai.com/cookie-policy. Doğru sayfalardır ama sizin değil bizim sayfalarımızdır, bu yüzden kart iki alan da dolana kadar sizi uyarır. Sohbet çubuğunun altındaki "[yazılım ürünü adınız] yapay zekadır ve hata yapabilir · Gizlilik Politikası" satırı için de aynı yedek geçerlidir.
Ret ne anlama gelir
Bildiriminizden gelen arcy.consent(false) çağrısı reddi altı ay boyunca kaydeder. Ret tek
bir şey yapar: ARCY'nin ilk konuşan taraf olmasını durdurur. Koşulları tutan bir
akış, hayır demiş bir ziyaretçi için kendi başına açılıp soruyu
göstermez. Ziyaretçi yine de sohbete uzanabilir ve uzandığında sohbet yeniden sorar. Bu
ikinci soru bilerek oradadır. Bildirimi reddedip yirmi saniye sonra bir soru yazan ziyaretçi,
artık politikanızın anlattığı bir hizmeti istiyordur ve o anda sormak, aynı onay için ikinci
şansınızdır.
Hiç yanıt vermemiş bir ziyaretçi farklıdır: koşulları tutan bir akış soruyu kendi başına gösterebilir, çünkü henüz kimse hayır dememiştir.
Bir onaydan sonra arcy.consent(false) çağırmak onayı geri çekmektir. Toplama durur,
ARCY'nin cihaza yazdığı her çerez ve anahtar silinir ve ret kaydedilir. Sonradan onay veren
ziyaretçi, geçmişi olmayan yeni bir ziyaretçi olarak başlar. Geri çekme ileriye dönüktür:
bizim tarafımızda zaten saklanmış hiçbir şey bununla silinmez; silme ayrı bir taleptir.
Widget'ın kendi Ayarlar sayfasında onay kontrolü yoktur. Ziyaretçinin fikrini değiştirdiği yer sizin bildiriminizdir, çünkü fikrini değiştirdiği şey sizin politikanızdır.
Üç çağrı
Üçü de önce init() çalışmış olmasını ister. Herhangi birini init() öncesinde çağırmak bir
konsol uyarısı yazar ve hiçbir şey yapmaz.
consent(granted)
consent(granted: boolean): voidZiyaretçinin yanıtını kaydeder. true bir onaydır: ARCY artık anonim kimlik çerezini yazabilir
ve oturumunu başlatabilir. false bir rettir, kayıtlı bir onay varsa geri çekmedir. Zaten
kayıtlı olan yanıtla çağırmak hiçbir şeyi değiştirmez.
consentState()
consentState(): "granted" | "refused" | nullZiyaretçinin kendi cihazından okunan güncel yanıt. null, ziyaretçinin hiç yanıt vermediği ya
da bildirimin eski bir sürümüne yanıt verip yeniden sorulması gerektiği anlamına gelir.
Bildiriminizin kendini gösterip göstermeyeceğine bununla karar verin.
onConsent(callback)
onConsent(callback: (granted: boolean) => void): () => voidKaynağı ne olursa olsun her değişimde tetiklenir: bildiriminizin consent() çağırması, bir
ziyaretçinin sohbetin içinde Kabul et'e basması ya da bir geri çekme. Geri çağrı true veya
false alır. Aboneliği bırakan bir işlev döndürür. Sohbetin içinde verilen bir kabulün kendi
analitiğinize, CMP'nize ya da Google Consent Mode'a ulaşmasını sağlayan köprü budur; böylece
iki taraf tek bir yanıt tutar.
Bağlama
Düz bir bildirim
HTML kurulum yolu arcy.js'i eş zamansız yükler, bu yüzden durumu betiğinizin ilk satırında değil, widget hazır olduğunda okuyun.
<div id="cookie-banner" hidden>
Çerez kullanıyoruz. <a href="/cerez-politikasi">Daha fazla bilgi</a>
<button id="cookie-accept">Kabul et</button>
<button id="cookie-reject">Reddet</button>
</div>
<script>
// Settings > Installation ekranındaki yükleyici bunun üstünde çalışır.
arcy.on("ready", function () {
var banner = document.getElementById("cookie-banner")
if (arcy.consentState() === null) banner.hidden = false
document.getElementById("cookie-accept").onclick = function () {
arcy.consent(true)
banner.hidden = true
}
document.getElementById("cookie-reject").onclick = function () {
arcy.consent(false)
banner.hidden = true
}
// Sohbetin içinde kabul eden ziyaretçi bildirimi bir daha görmemeli.
arcy.onConsent(function (granted) {
if (granted) banner.hidden = true
})
})
</script>Google Consent Mode
Google Analytics ya da Google Ads, Consent Mode arkasında çalışıyorsa ARCY'nin yanıtı her değiştiğinde onu da güncelleyin. Sohbetin içinde kabul eden ziyaretçi böylece analitiğinizi de açar, geri çekme ise yeniden kapatır.
arcy.onConsent((granted) => {
gtag("consent", "update", {
analytics_storage: granted ? "granted" : "denied",
})
})Bildiriminizin kendi gtag('consent', 'update', ...) çağrısını olduğu gibi bırakın. İki yol da
aynı yerde biter.
Bir onay yönetim platformu (CMP)
Her CMP bir kabul ve bir ret geri çağrısı ile kendi durumunu okumanın bir yolunu sunar. Adlar değişir; biçim hep aynıdır. İki satır CMP'nin yanıtını ARCY'ye taşır, bir geri çağrı da sohbetin içindeki kabulü CMP'ye geri götürür. İkisinin birbirini döngüde çağırmaması için CMP'ye yazmadan önce durumunu kontrol edin.
cmp.onAccept(() => arcy.consent(true))
cmp.onReject(() => arcy.consent(false))
arcy.onConsent((granted) => {
if (granted && !cmp.hasConsent()) cmp.acceptAll()
})React
init(), bildirim ve abonelik tek bir bileşende toplanır, böylece hiçbir şey widget hazır
olmadan durumu okumaz.
"use client"
import { useEffect, useState } from "react"
import arcy from "arcy.js"
export function ARCY() {
const [showBanner, setShowBanner] = useState(false)
useEffect(() => {
let unsubscribe = () => {}
arcy.init("arcy_pk_...").then(() => {
setShowBanner(arcy.consentState() === null)
unsubscribe = arcy.onConsent((granted) => {
if (granted) setShowBanner(false)
})
})
return () => unsubscribe()
}, [])
if (!showBanner) return null
const answer = (granted: boolean) => {
arcy.consent(granted)
setShowBanner(false)
}
return (
<div role="dialog">
Çerez kullanıyoruz. <a href="/cerez-politikasi">Daha fazla bilgi</a>
<button onClick={() => answer(true)}>Kabul et</button>
<button onClick={() => answer(false)}>Reddet</button>
</div>
)
}<ARCY /> bileşenini kök düzeninizde, init() çağırdığınız yerde bir kez yerleştirin.
Onaydan sonra ARCY ne yazar
Kayıtlı alan adınızda iki birinci taraf çerez, arcy.consent.<Token> (yanıt, onaydan önce
yazılan tek şey) ve arcy.anon.<Token> (anonim kimlik, yalnızca onaydan sonra yazılır), ayrıca
birkaç localStorage ve sessionStorage anahtarı. Süreleriyle birlikte tam liste ve kendi
politikanız için hazır metin çerez politikası şablonunda.
Yanıt nerede görünür
Bir oturumun Etkinlik sayfası onayın bildiriminizden mi yoksa sohbetten mi geldiğini gösterir, böylece hukuk danışmanınıza tahmin yürütmeden yanıt verirsiniz.
Ayrıca bakınız
- Yazılım ürünü: iki adres alanını taşıyan Onay kartı
- Referans: arcy.js API'sinin tamamı
- Çerez politikası bildirimi: kendi politikanıza yapıştıracağınız metin