C cenaly.com
Ücretsiz başlayın

Sitem

Sitenize tek bir kod: sohbet, pop-up, çerez banner'ı, rezervasyon, randevu, sipariş, yardım ve hukuki belgeler

26 min read Bu ekranı demoda aç
On this page 13

Sitem: kendi sitenizdeki widget'lar

"Sitem" bölümü, zaten bir sitesi olanlar içindir. Bizim vitrinimize taşınmanıza ve bir şeyleri aktarmanıza gerek yok: mevcut sitenize tek bir kod satırı eklersiniz ve ardından ihtiyacınız olan ürünleri panelde açma/kapama düğmeleriyle etkinleştirirsiniz.

Nerede açılır: Admin paneli → Pazarlama → "Sitem" (admin.cenaly.com).

<script> etiketi ekleyebileceğiniz herhangi bir platformda çalışır: WordPress, Tilda, Wix, Shopify, Webflow, Bitrix, InSales, OpenCart, özel yazılmış site, sayfa oluşturucu açılış sayfası.


Sitenin adresi ve kurulum kodu#

Bölümün başlığındaki «🌐 Siteniz» bloğu üç adımda yol gösterir: adres → sitedeki kod → kontrol, ve ana düğme her zaman bir sonraki tamamlanmamış adımı önerir. İlki — sitenizin adresi (örneğin, example.com): kurulumu onun üzerinden kontrol eder ve widget'larda doğru bağlantıları kurarız.

İkincisi — kurulum kodu. Bu tek bir satırdır:

<script src="https://cdn.cenaly.com/site/v1.js" data-domain="ALAN-ADINIZ" async></script>

Onu bir kez ekleyin — <head> içine veya </body> öncesine. Sitenin koduna bir daha dönmeye gerek yoktur: widget'ların bileşimi sayfadaki etiketlerle değil, paneldeki açma-kapama düğmeleriyle belirlenir. Widget'ı açtınız — birkaç dakika içinde sitede belirir, kapattınız — kaybolur.

Daha önce widget'ların ayrı etiketlerini elle eklediyseniz, onlar çalışmaya devam eder: tek yükleyici onları görür ve widget'ı ikinci kez yüklemez.


Popüler platformlarda kurulum#

«Kurulum kodu» penceresinde her platform için ayrı bir sekme vardır — aşağıdakiyle aynı adımlarla.

Buradaki her platformun kendi bağlantı çıpası vardır ve siteyi düzenleyen kişiye anlatmak yerine doğrudan bağlantı gönderebilirsiniz: #html, #google-tag-manager, #wordpress, #tilda, #wix, #shopify, #webflow, #squarespace — örneğin, /ru/docs/site-widgets#tilda.

Her maddede tekrarlamamak için tüm platformlar için ortak olanlar:

  • etiket tüm siteye bir kez yerleştirilir — ayrı bir sayfaya değil, ortak şablona;
  • site kurucularında (Tilda, Wix, Webflow, Squarespace) düzenleme, site yeniden yayınlanana kadar düzenleyicide kalır;
  • düzenleyicinin önizlemesini değil, canlı siteyi kontrol etmek gerekir;
  • sitenin önünde bir önbellek veya CDN varsa onu temizleyin: hem ziyaretçiye hem de bizim kontrolümüze sayfanın etiketsiz kaydedilmiş bir kopyası sunulabilir;
  • kurulum kontrolünün bu sırada göremediği şeyler — aşağıda ayrı bir inceleme.

HTML#

Şablonuna erişiminiz olan herhangi bir site: kendi yazdığınız, açılış sayfası, statik üretici.

  1. Kod satırını kopyalayın: Pazarlama → «Sitem».
  2. Onu sitenin ortak şablonunun <head> bölümüne veya </body> öncesine yapıştırın.
  3. Ortak şablon yoksa (sayfalar ayrı dosyalarsa) — her sayfaya yapıştırın.
  4. Değişiklikleri sunucuya yükleyin, siteyi açın ve «Kurulumu kontrol et»e basın.

Google Tag Manager#

Şablona erişim yokken ve sitede GTM zaten kuruluyken uygundur.

  1. Etiketler → Oluştur → tür «Özel HTML».
  2. Kod satırını yapıştırın, tetikleyici — «Tüm sayfalar», kaydedin.
  3. **«Yayınla»**ya basın: konteyner sürümü yayınlanmadıkça canlı sitede etiket yoktur.

⚠️ GTM'den yüklenen etiketi bizim «Kurulum kontrolü» asla görmez — ve bu bir hata değil, yöntemin sonucudur: «Kurulum kontrolünün görmedikleri». Siteyi açın ve gözünüzle bakın.

WordPress#

  1. WordPress konsolu (siteniz/wp-admin), yönetici yetkileri gerekir.
  2. Güvenilir yol: Eklentiler → Yeni ekle → header/footer'a kod ekleyen herhangi bir eklenti → ayarlarında satırı Header alanına yapıştırın → kaydedin.
  3. Eklentisiz yol: Görünüm → Tema dosyası düzenleyici → header.php (kapanış </head> öncesi) veya footer.php (</body> öncesi) → «Dosyayı güncelle».
  4. Siteyi açın ve «Kurulumu kontrol et»e basın.

⚠️ Ana temanın dosyalarında yapılan düzenleme, tema güncellendiğinde kaybolur — bunu WordPress belgeleri de uyarır. Kod ekleme eklentisi veya alt tema güncellemeyi atlatır. Önbellekleme eklentisi varsa (W3 Total Cache, WP Rocket ve benzerleri) — önbelleği temizleyin, aksi halde kontrol sayfanın eski kopyasını görür.

💡 Widget'lar için ayrı bir eklenti kurmaya gerek yoktur: onları tek bir etiket bağlar. Cenaly Consent eklentisi başka bir şey içindir, sizin yerinize yalnızca çerez banner'ının etiketini yerleştirir (bkz. Çerezler ve onay).

Tilda#

  1. Projeler listesinde — ilgili sitenin «Site ayarları» (sayfa değil, proje ayarları).
  2. «Daha fazla» bölümü (bazı hesaplarda «Kod ekleme» olarak adlandırılır) → «head içine eklenecek HTML kodu» alanı.
  3. Satırı yapıştırın ve kaydedin.
  4. Projenin tüm sayfalarını yeniden yayınlayın — bu olmadan kod yalnızca düzenleyicide kalır.
  5. Canlı siteyi açın ve «Kurulumu kontrol et»e basın.

💡 Etiket yalnızca tek bir sayfada gerekiyorsa — aynı alan «Sayfa ayarları» → «Ek» bölümünde de vardır; o zaman bu sayfayı yeniden yayınlamak gerekir.

Wix#

  1. Site yayınlanmış, alan adı ise bağlanmış olmalıdır: bu, Wix'in kendi kodu için koyduğu şarttır.
  2. Settings (Ayarlar) → Development & integrations (Geliştirme ve entegrasyonlar) → Custom Code.
  3. «+ Add Custom Code» → satırı yapıştırın, parçaya anlaşılır bir ad verin.
  4. Tüm sayfalara (All pages) uygulayın, bir kez yüklensin, ekleme yeri — Head. Kaydedin.
  5. Publish'e basın, canlı siteyi açın ve «Kurulumu kontrol et»e basın.

⚠️ Wix'teki kod parçaları alan adına bağlıdır: siteye başka bir alan adı atadığınızda parçalar silinir, etiketi yeniden eklemek gerekir.

Shopify#

  1. Shopify yönetim paneli → Online Store (İnternet mağazası) → Temalar.
  2. İlgili temada «…» → Duplicate: temanın kopyası sizin geri dönüş yolunuzdur.
  3. Yine orada «…» → Kodu düzenle (Edit code).
  4. Solda Layout klasörü → theme.liquid dosyası → satırı kapanış </head> öncesine (veya </body> öncesine) yapıştırın → Save.
  5. Mağazanın vitrinini açın ve «Kurulumu kontrol et»e basın.

⚠️ Düzenleme mağazaya değil, temaya aittir: temayı değiştirdiyseniz veya yeniden oluşturduysanız — etiketi yenisine ekleyin, aksi halde widget'lar eski temayla birlikte kaybolur. Shopify'ın ödeme sayfaları temanın serbest betiklerine kapalıdır — widget'lar vitrin için tasarlanmıştır.

Webflow#

  1. İlgili projenin Site settings → Custom code sekmesi.
  2. Head code alanı → satırı yapıştırın ve kaydedin. Bu alana yalnızca betiğin kendisi yazılır: html, head, body etiketlerini eklemeye gerek yoktur.
  3. Publish'e basın — düzenleyicide ve önizlemede kendi kodunuz çalışmaz.
  4. Yayınlanan siteyi açın ve «Kurulumu kontrol et»e basın.

⚠️ Webflow'un site ayarlarındaki özel kod alanları ücretli Site plan'da açılır. Widget yalnızca tek bir sayfada gerekiyorsa — sayfanın kendi ayarlarında kendi kod alanları vardır.

Squarespace#

  1. Site paneli → Website → Website Tools → Code Injection.
  2. Header alanı (her sayfanın <head> bölümüne girer) → satırı yapıştırın → Save.
  3. Canlı siteyi açın ve «Kurulumu kontrol et»e basın.

⚠️ Code Injection paneli Core, Plus, Advanced planlarında ve Squarespace'in bazı eski planlarında kullanılabilir. Sayfadaki kod bloğu (Code Block) bunun yerine geçmez: o kodu tek bir sayfanın içine koyar, widget'lar ise tüm sitede gereklidir.

Adımlar platformların resmî yardım belgeleriyle karşılaştırılmıştır. Platform menü öğesini yeniden adlandırdıysa — bize değil, onun yardım belgesine güvenin ve bize yazın: düzeltiriz.


On iki widget#

Her widget, bir anahtarı ve ayar dişlisi olan ayrı bir karttır. Widget'ların topladığı veriler panelin olağan bölümlerine düşer — site için ayrı bir «gelen kutusu» açmanıza gerek yok.

Widget Ziyaretçi ne görür Veriler nereye gider Dokümantasyon
🍪 Çerezler ve onay Kategorili onay banner'ı ve ayarlar ekranı Onay günlüğü, çerez beyanı Çerezler ve onay
💬 Sohbet: yapay zekâ asistanı ve operatörler Sayfadaki sohbet balonu «Çalışma sohbeti» içindeki «Misafirler» bölümü — WhatsApp, Telegram, e-posta, Messenger/Instagram ile birlikte Misafirlerle sohbet
💡 Popup'lar ve formlar Promosyonlar, çıkışta teklifler, e-posta toplama, sayaçlar Kampanyalar ve istatistikleri Kendi sitenizde popup'lar
📅 Masa rezervasyonu «Masa rezerve et» düğmesi «Masalar» bölümü — rezervasyonlar ve salon planı Masa rezervasyonları
🗓️ Online randevu «Randevu al» düğmesi: hizmet → uzman → saat «Randevular» bölümü Randevu defteri
🛒 Online sipariş «Sipariş ver» düğmesi, sepet ve kendi sitenizin üzerinde sipariş tamamlama «Siparişler» bölümü Kendi sitenizde online sipariş
📚 Destek merkezi Yayımlanmış yardım makalelerini açan «?» düğmesi Makaleler — «Makaleler ve sayfalar»da («Yardım» grubu), yardım analitiği — «Bilgi tabanı»nda Destek merkezi
⚖️ Hukuki belgeler Gizlilik politikasının, kullanım koşullarının vb. bağlantıları veya metni Sayfalar bizim hosting'imizde durur, yeniden yayımlamak siteyi kendiliğinden günceller; doğrudan widget panelinden, sihirbaz olmadan ayarlanır Hukuki belgeler
📞 Siteden arama «Ara» düğmesi — numara çevirmeden, doğrudan tarayıcıdan görüşme «Aramalar» bölümü: sıradan bir aramadaki gibi kayıt ve analiz Siteden arama
☎️ Geri arama Uygun saati seçmeye imkân veren «Beni arayın» formu Geri arama kuyruğu: sistem yöneticiyi ve misafiri kendisi arar; talepler — «Talepler»de ve «Müşteriler» bölümünün «Geri aramalar» sekmesinde Geri arama
➕ Çoklu düğme Arkasında tüm iletişim kanallarının bir arada durduğu tek bir yüzen düğme Seçilen kanal nereye götürüyorsa oraya; panelde — kanal bazında tıklama istatistiği Çoklu düğme
📈 Canlı vitrin Dönem içindeki sipariş, rezervasyon ve randevu sayılarını ve ortalama puanı gösteren şeritler Etkinliklerinizin ve değerlendirmelerinizin kimliksizleştirilmiş toplamlarını gösterir Canlı vitrin

Yükleme sırası rastgele değildir: çerez banner'ı widget'larımız arasında ilk yüklenir. Tek asenkron yükleyici önce ayarları okur ve sitenin kendisinin çoktan başlattığı analitiğin önüne geçemez. İzleyiciler çalışmadan önce engelleme gerekiyorsa, ayrı consent/v1.js etiketini <head> içinde en başa, async ve defer olmadan yerleştirin — onay hakkındaki makalede anlatıldığı gibi. Çoklu düğme toplanan widget'lardan sonra gelir, «Canlı vitrin» ise en son: onun şeritleri aynı köşedeki düğmeleri hesaba katar.

cenaly.ru üzerindeki çerez banner'ının kısıtları vardır: onay günlüğü ve CSV henüz toplanmıyor, çerez tarayıcısı kullanılamıyor, beyan elle tutuluyor. Yapılandırmaya erişilemediğinde mevcut sürüm izleyici engellemesini kaldırır; kurulumdan sonra banner'ı ve sayfanın gerçek isteklerini kontrol edin. Koşulların tamamı — Çerezler ve onay makalesinde.

Destek merkezi, «Makaleler ve sayfalar» bölümünde hazırlamanız ya da bilgi tabanından yayımlamanız gereken, yayımlanmış makaleleri gösterir. Düğme makaleleri kendisi oluşturmaz. Yardım analitiğinde bu panelin içindeki sayfa olayları «site» kaynağına aittir; «widget» kaynağı ise sohbetteki yardım sekmesini belirtir.

Hukuki belgeleri önce bizim hosting'imizde yayımlamak gerekir. Widget yayımlanmış sürümleri bağlantı olarak, pencere içinde ya da sayfadaki metin olarak gösterir; panelde yeniden yayımlamak bunları günceller. Bu, mevzuat değişikliklerinin otomatik takibi değildir.

Çoklu düğme yalnızca bir bağlantı listesi değildir: davet balonu («Sorunuz mu var?»), gösterim koşulları (hangi sayfalarda, kaç saniye sonra, yalnızca telefonda mı yoksa her yerde mi), mesajlaşma uygulamaları için hazır ilk mesaj taslağı ve kanal bazında kendi tıklama istatistiği vardır.

«Canlı vitrin» sosyal kanıtı kendi verilerinizle — siparişler, rezervasyonlar ve randevularla — gösterir ve bunu dürüstçe yapar: şeritte ad ve telefon yoktur, olaylar toplulaştırılmıştır, eskiyenler ise işletmenin takvimine göre gösterilmez olur (dün kapalı olan bir işletme dünkü siparişleri «satmaz»).

«Popup'lar ve formlar» kartında anahtarın ve dişlinin yanında «✨ Şablondan oluştur» düğmesi bulunur: aynı widget ayarları penceresini açar, ama doğrudan hazır senaryo galerisiyle — ve siz «Tamam» düğmesine basana kadar hiçbir şey kaydetmez.

«Hukuki belgeler» paneli artık beş adımlı bir sihirbaza yönlendirmez: ülke, belge seti, faaliyetinizle ilgili sorular, kurumsal bilgiler ve dil tek bir ekrandadır, otomatik doldurma ve önizleme katlanmış durumdadır, altta ise «Yayımlanacak belge: N» sayacı vardır. Verilmiş yanıtlarla çelişen bir seçenek, tam olarak neden çeliştiği açıklanarak kilitlenir.

Hub'ın açık pencereleri sayfa adresinde yaşar: widget dişlisi ?widget=<widget> yazar, kurulum kodu penceresi ise ?panel=install. Yani belirli bir widget'ın ayarına giden bağlantıyı bir iş arkadaşınıza gönderebilirsiniz ve bu bağlantı F5'ten de «geri» düğmesinden de sağ çıkar.

Bazı widget'lara anahtar yetmez — içerik de gerekir:

  • Online randevu sitede, menüde «Hizmet» türünde en az bir ürün olduğunda ve rezervasyon açıkken görünür (masa rezervasyonundakiyle aynı anahtar);
  • Destek merkezi anahtarla hemen açılır, ama yayımlanmış makale yoksa boş bir yardım sayfası açar — widget ayarlarında kaç makalenin yayımlandığı görünür.

Rezervasyon kısıtları. Şu anda masa rezervasyonu widget'ı seçilen tarih ve saati misafirin tarayıcısının saat diliminde dönüştürür. Başka bir saat diliminden gelen ziyaretçi için defterdeki saat, işletmenin beklediği saatten farklı olabilir — onaylarken bunu kontrol edin. Talebin gönderildiği bildirimi de her zaman sunucunun rezervasyonu onayladığı anlamına gelmez. Online randevu onayın geciktiğini bildiriyorsa, önce randevu defterini kontrol edin: yeni bir deneme mükerrer kayıt oluşturabilir.

Kapatmanın doğrulanması. Widget'ı kapattıktan sonra siteyi kontrol edin ve veriler yenilendikten sonra ayarları yeniden açın. Mevcut sürümde anahtar yerel olarak sönebilir, ama önceki açık durum sunucuda korunabilir. Tek bir widget'ı acilen durdurmanız gerekiyorsa onun ayrı etiketini silin ya da desteğe başvurun; ortak etiketin silinmesi, onun bağladığı tüm seti bir anda durdurur.

Her kartın düğmelerinin üzerinde 7 günlük mini istatistik bulunur: gösterimler, açılmalar ve widget'ın anlamına göre üçüncü bir sayı (talepler, siparişler, rezervasyonlar, randevular, görüşmeler, diyaloglar, tıklamalar). «—» verinin henüz hiç olmadığı, «0» ise telemetrinin geldiği ama hiç olay yaşanmadığı anlamına gelir; «Ayrıntılar →» sizi «Site widget'ları» panosuna götürür.

Online sipariş ayarları penceresinde harici site için bir düğme daha vardır — «🔔 Gelince haber ver»: kendi kataloğunuzdan ürünü ve varyantı seçersiniz, tükenmiş ürünün sayfasındaki düğmeyi işaretlersiniz; misafir de e-postasını bırakır, bağlantıyla onaylar ve ürün yeniden stoğa girdiğinde tek bir e-posta alır. Harici kataloğu okumayız ve harici sayfadan stok bakiyesi almayız — ürün elle bağlanır. Ayrıntılar — Kendi sitenizde online sipariş makalesinde.


Sitenizde zaten var olan formlar#

Kart ızgarasının altındaki «📝 Sitenizde zaten var olan formlar» bloğu, «sitede talep formu zaten duruyor ve onu kimse değiştirmeyecek» durumu içindir. Formu ne değiştiririz ne de geciktiririz: form eskisi gibi sizin arka ucunuza gönderilir, talebin bir kopyası da panele düşer.

Kural, formun CSS seçicisinden, «ad / telefon / e-posta» alanlarının adreslerinden (değer olarak düpedüz bir alan adı — örneğin phone — de, input[name="tel"] gibi bir seçici de yazılabilir), isteğe bağlı sayfa maskelerinden ve bir anahtardan oluşur. Lokasyon başına en fazla 10 kural, her form için bir kural. Form seçicisi olmayan ya da telefonu veya e-postası olmayan bir kural açılamaz — toplayacağı bir şey yoktur. Her satırda bir «Kontrol et» düğmesi vardır: sunucu sayfayı okur ve formun bulunup bulunmadığını, kuraldaki hangi alanların formda olduğunu ve formda genel olarak hangi alan adlarının bulunduğunu söyler.

Tam olarak ne gönderilir. Tam olarak üç alan — ad, telefon, e-posta — artı parametresiz ve çapasız sayfa adresi. «Gönder» düğmesine basılmadan önceki giriş okunmaz, kendi doğrulamamızı ve gecikmelerimizi eklemeyiz, tarayıcının kendi doğrulamasından geçmeyen bir form da talep oluşturmaz. Sunucu, aynı formun aynı iletişim bilgisiyle 10 dakika içindeki tekrarını bastırır; eşzamanlı gönderimlerde ya da işaretin yazılmasındaki bir aksamada mükerrer kayıt olabilir. Kendi widget'larımızın formları dinlenmez.

Yakalama, talebin kopyasını sunucunun yanıtını beklemeden gönderir. Ağ koptuğunda ya da tarayıcı isteği engellediğinde kopya ulaşmayabilir: bağlantı düzeldikten sonra çalışan bir teslim kuyruğu şu anda yoktur. Aynı sayfada aynı iletişim bilgisiyle yapılan tekrar da sayfa yeniden yüklenene kadar bastırılır. Gönderim işareti yakalama girişimi anlamına gelir; talebin ulaşıp ulaşmadığını gelen kutusundan kontrol edin.

Nerede aranır. «Talepler» bölümü ve iletişim merkezinin «Talepler» sekmesi — «Sitedeki formlar: » grubu altında. Böyle her talebin üzerinde dürüst bir not vardır: biz «Gönder» düğmesine basıldığını görürüz, verilerin arka ucunuzdaki akıbetini değil.

⚠️ «Kontrol et» düğmesi HTML'i tarayıcı olmadan çözümler: JavaScript'in çizdiği bir formu görmez — ama misafirin tarayıcısındaki yakalama onu görür. Panel bunu açıkça söyler.


Eylemlere bağlantılar ve QR#

Kart ızgarasının altındaki «🔗 Eylemlere bağlantılar ve QR» bloğu, sitenizde tek bir belirli eylemi açan bir bağlantı üretir: https://siteniz/#cenaly=book — rezervasyon formunu, #cenaly=appointment:<hizmet> — doğrudan bir hizmete randevuyu, #cenaly=order:<urun> — ürün kartını, ayrıca sohbeti, geri aramayı, yardımı, belgeyi (legal:<tur>) ve çoklu düğmenin yelpazesini. Böyle bir bağlantı genellikle QR kodu olarak basılır: masaya, fişe, ambalaja, çevrimdışı reklama.

Nasıl oluşturulur: eylemi seçin, isterseniz belirli bir nesneyi de (yayımlanmış menüden bir hizmet ya da ürün, yayımlanmış bir belge) ve «nereye yerleştirdiğinizi» seçin — sizin analitiğiniz için kullanılacak UTM etiketleri buna bağlıdır (utm_source=qr&utm_medium=<yer>&utm_campaign=<eylem>; biz onları okumayız). Çıktı, «Kopyala» düğmesi olan bir bağlantı ile PNG ve SVG olarak indirilebilen bir QR koddur. Bağlantının temeli sitenizin adresidir; adres girilmemişse bizim vitrinimizdir. Her widget'ın kartında, eylemi önceden seçilmiş kısa bir «🔗 Bağlantı» düğmesi bulunur.

Neden ? parametresi değil de # çapası: yabancı CMS'ler, önbellek eklentileri ve CDN'ler bilinmeyen parametreleri kırpar ve kanonik adresi değiştirir; çapayı ise tarayıcı sunucuya hiç göndermez — bu yüzden çapa bizim kodumuza kesinlikle ulaşır. Onu ortak etiket yürütür: çapayı yüklenme sırasında bir kez okur, adresten kaldırır ve gereken widget ayağa kalktığında onu açar. Tekil widget etiketleri çapayı okumaz.

Blok, tiraj basılmadan önce uyarır: eylemin widget'ı kapalıdır, son kontrolde sitede kurulum kodu bulunamamıştır. Bağlantı, kapalı olanı açmaz ve var olmayan belgenin yerine başkasını koymaz — böyle bir durumda hiçbir şey yapmaz: yabancı bir sitede bu, hata vermekten iyidir. Aynı bağlantı işletmenin bizdeki vitrininde de çalışır — yardım, belgeler ve çoklu düğme dahil; çünkü etiket bir kez basılır, site ise değişebilir.


Çevrimiçi randevu widget'ı ayrıntılı#

Ayarlar — «Çevrimiçi Randevu» kartı → dişli: düğmenin rengi, metni, ekrandaki köşesi ve dili. Ayarların hemen altında, yalnızca bu widget'ı kuracaksanız diye ona özel hazır kod satırı da bulunur.

Dil. Varsayılan — otomatik: widget, üzerinde bulunduğu sayfanın dilinde konuşur ve 45 dil bilir. Yalnızca gereken sözlük yüklenir, bu yüzden sitenin hızını etkilemez. Listeden tek bir dili sabitleyebilirsiniz — örneğin site iki dilliyse ama randevuları tek dilde almak istiyorsanız.

Belirli bir hizmete veya uzmana bağlantılar. Widget etiketine öznitelikler ekleyebilirsiniz — misafir doğrudan gereken adıma düşer:

Öznitelik Ne yapar
data-service="hizmet id" hizmet önceden seçilidir — sitenizdeki hizmet açıklamasının yanında «Randevu al» düğmesi. Tanımlayıcı, «Menü» bölümünde kalemin yanında görünür
data-master="uzman id" uzman önceden seçilidir — belirli bir uzmanın sayfası için; uzmanın tanımlayıcısı çalışanın tanımlayıcısıyla aynıdır
data-open="true" randevu paneli düğmeye basılmadan kendiliğinden açılır — ayrı bir «Randevu al» sayfası için

Eskimiş bir tanımlayıcı (hizmetin adı değişti, uzman işten ayrıldı) widget'ı bozmaz: sessizce ilk adımdan başlayan normal seçimi gösterir.

Randevuya kadar daha az adım:

  • tek hizmet veya tek uygun uzman varsa — gereksiz ekran gösterilmez;
  • «⚡ En yakın: bugün 17:30» çipi tek dokunuşla randevu aldırır, takvim ise boş saati olan ilk günde kendiliğinden açılır;
  • ad, telefon ve e-posta misafirin cihazında hatırlanır: tekrar randevu alırken alanlar zaten doludur, «Ben değilim» bağlantısı ise onları siler;
  • telefonda panel tam ekran açılır, randevu düğmesi klavyenin altında kaybolmaz;
  • widget klavyeyle kullanılabilir ve ekran okuyucu tarafından doğru okunur.

E-posta. E-posta alanı isteğe bağlıdır; misafir adresini bıraktıysa ziyaret ayrıntılarını ve «Randevuyu yönet» bağlantısını içeren bir mektup alır, ziyareti bu bağlantıyla kendisi taşır veya iptal eder. Ayrıntılar — Randevu defteri bölümünde.

Widget ne getirdi. Randevu defterindeki «🌐 Sitedeki widget» düğmesi 7, 30 veya 90 günlük huniyi gösterir: düğme kaç kez görüldü, kaç misafir paneli açtı, iletişim adımına geldi ve randevu aldı, dolu saat yüzünden kaç randevu kaybedildi. Siteden gelen randevuların yanında ise «Siteden» rozeti bulunur.


Kurulum kontrolü#

«Kurulumu kontrol et» düğmesi sitenizi açar ve sayfanın kaynak HTML'ini okur. Yanıtta:

  • «Widget kodu sitede bulundu» — ortak etiket yerinde;
  • «Yalnızca ayrı widget etiketleri bulundu» — eski tekil yerleştirmeler çalışıyor, ortak etiket yok;
  • «Sitedeki kod başka bir lokasyona ait» — etikette başkasının data-domain değeri var (birden fazla işletmesi olanlarda sık görülen hata);
  • «Bu sayfada widget kodu yok» — etiket görünmüyor.

⚠️ Kontrol, tek bir sayfanın kaynak HTML'ini okur. Etiketi tarayıcıda Google Tag Manager ya da başka bir betik yerleştiriyorsa kontrol onu görmez — bu bir hata değildir. Yöntemin sınırları dışında kalan diğer durumlar aşağıda «Kurulum kontrolü neleri görmez» başlığında toplanmıştır.

Haftada bir aynı kontrol kendiliğinden tekrarlanır — site adresi girilmiş, en az bir widget'ı açık olan ve önceki kontrolde etiketi bulunan lokasyonlar için. Etiket sessizce ölür — site yeni bir temaya taşınmıştır, ajans kodu eklemeden yeni tasarımı yayına almıştır, önbellek eklentisi «fazlalık» betiği atmıştır — ve eskiden bu ancak talepler kesildiğinde fark edilirdi. Artık «etiket vardı → etiket yok» geçişi çalışma sohbetine kart olarak düşer (lokasyon başına haftada birden sık olmamak üzere) ve «Siteniz» bloğunda kırmızı üçüncü adım olarak görünür. Açılmayan bir site (zaman aşımı, sunucu hatası) arıza sayılmaz — gelecek hafta yeniden bakarız; Google Tag Manager üzerinden yerleştirilen etiketi kontrol hiçbir zaman görmez, bu yüzden onun için yanlış alarm da olmaz.

Aynı analiz panele girmeden, herkese açık olarak da kullanılabilir — «Site kontrolü» sayfası: adresi girin; sayfanın HTML'ini okuyup sayaçları ve pikselleri adlarıyla tek tek, onay banner'ının olup olmadığını (bizimki, başkasınınki ya da hiçbiri) ve açık widget'larla birlikte bizim etiketimizin görünüp görünmediğini gösterir. Siteyi bağlamadan önce kontrol etmek ve bağlantıyı geliştiriciye ya da müşteriye vermek için elverişlidir.

Bölümdeki widget kartlarının altında iki blok daha vardır: «Kendi kodunuzla vitrin (Headless)» — siteyi kendi geliştiricinizin yazdığı ve widget'larımıza ihtiyaç duymadığı durum için veri, API ve webhook'lar — ve hazır tekil etiketleri içeren «Gelişmiş: her widget için ayrı etiket». Yani tekil etiketi yalnızca «geçmişten taşımakla» kalmaz, burada da alabilirsiniz.

Kurulum kontrolü neleri görmez#

Kontrolün yöntemi basit ve dürüsttür: tek bir adresin kaynak HTML'i için tek bir istek, tarayıcı olmadan. Sunucunun verdiğini okur ve işaretlemede bizim yollarımızı içeren <script src="…"> etiketini ararız. Yapamadıklarının listesi de buradan çıkar — ve bu bir arıza değil, yöntemin sınırıdır.

Durum Kontrol ne der Gerçeği nasıl anlarsınız
Etiketi tarayıcıda Google Tag Manager ya da başka herhangi bir betik yerleştiriyor «kod yok» Siteyi açın: widget ya vardır ya yoktur. Geliştirici araçlarında Network sekmesi, site/v1.js filtresi
Sitenin başka bir sayfası: etiket ana sayfa şablonunda duruyor, ama blog ya da katalog sayfalarında yok «site adresi» alanında yazan adrese ilişkin yanıt Alana iç sayfanın tam adresini yazın ve kontrolü bir kez daha çalıştırın
SPA (React, Vue ve istemci tarafında render eden benzerleri): işaretlemeyi JS tarayıcıda oluşturur widget sitede çalışırken bile «kod yok» Gözle bakmak gerekir. Etiketi uygulamanın içine değil, sunucu şablonuna ya da index.html içine koymak daha güvenlidir
Sayfa yeniden yüklenmeden SPA içinde yapılan geçişler hiçbir şey: kontrol sitede tıklama yapmaz ve yalnızca sunucunun ilk yanıtını görür Bölümleri kendiniz gezin — widget sayfada yaşar ve bu geçişlerden sağ çıkar
Site yalnızca http:// üzerinden yanıt veriyor, giriş, IP filtresi ya da bot korumasıyla kapalı kontrol hatası Kontrol yalnızca https üzerinden ve oturum açmadan gider; böyle bir siteye kendiniz bakın
Çok büyük sayfa işaretlemenin ilk 512 KB'ı okunur Şablonda etiket <head> içine konur — orada sayfanın başına düşer
Arka arkaya üçten fazla yönlendirme hata Nihai adresi yazın
Platformun ya da CDN'in önbelleği etiketsiz kayıtlı bir kopya veriyor «kod yok» Önbelleği temizleyip yeniden deneyin
Etiket duruyor, ama widget çalışmıyor (ödenmemiş, anahtar kapalı, gösterim koşulları devreye girmiş) «kod bulundu» Bu başka bir konu — aşağıdaki «Sorun giderme» bölümüne bakın

Kontrolün iyi gördüğü şey: etiketimizin kaynak işaretlemede olup olmadığı, ortak mı yoksa tekil etiketlerden oluşan bir set mi olduğu ve içindeki data-domain kime ait — yani en sık yapılan «kodu komşu lokasyondan kopyaladım» hatasını yakalar.

Herkese açık «Site kontrolü» sayfasının sınırı da tam olarak aynıdır: o da kaynak HTML'i okur ve betikleri çalıştırmaz. Gerçek çerezleri ve tarayıcıda sonradan yüklenenleri yalnızca CMP tarayıcısı toplar — bkz. Çerezler ve onay.


Sorun giderme#

On iki widget'ın tamamı için ortak liste — en sık rastlanan sebepten nadirlere doğru. Belirli bir widget'a özgü olanlar kendi makalesinde anlatılmıştır.

1. «Kurulum kontrolü» kodun olmadığını söylüyor. Etiket eklenmemiştir, şablonun tüm sayfalarına eklenmemiştir veya site ekleme sonrasında yayınlanmamıştır (Tilda, Wix, Webflow yeniden yayınlamayı gerektirir). Bölümün başlığındaki site adresini de kontrol edin: kontrol tam olarak oraya gider — ve yalnızca oraya, tek sayfa olarak. Bir şeyi düzeltmeden önce «Kurulum kontrolünün görmedikleri» listesiyle karşılaştırın: «kod yok» durumlarının yarısı sitenin bozukluğu değil, yöntemin sınırıdır.

2. Sitedeki kod başka bir lokasyona ait. Etikette yabancı bir data-domain vardır — birden fazla işletme olduğunda ve kod komşu karttan kopyalandığında sık görülen bir hata. Kodu doğru lokasyon seçiliyken alın.

3. Kontrol, Google Tag Manager üzerinden eklenen etiketi görmüyor. Bu bir hata değildir. Kontrol sayfanın kaynak HTML'ini okur — sunucunun gönderdiğini —, GTM ise etiketi zaten tarayıcıda yerleştirir. Siteyi açın ve gözünüzle bakın: widget ya vardır ya yoktur. Kontrol yönteminin göstermediklerinin tam listesi (GTM, sitenin ikinci sayfası, SPA, kapalı site) — «Kurulum kontrolünün görmedikleri».

4. Değişiklikler sitede görünmedi. Widget dosyaları CDN üzerinden 5 dakikalık önbellekle dağıtılır. Açma-kapama düğmesini açtıktan veya ayarları düzenledikten sonra birkaç dakika bekleyin ve sayfayı önbelleği temizleyerek yenileyin (Ctrl+F5). Tarayıcı inatla eskisini gösteriyorsa — gizli modda kontrol edin.

5. Widget açık ama sayfada görünmüyor. Listeyi gözden geçirin:

  • widget ücretlidir ve ödenmemiştir — ödenmemiş eklenti sunucuda site verilerinden çıkarılır, bu yüzden düğme açık olsa bile sayfaya ulaşmaz;
  • widget'ın gösterim koşulları vardır (çoklu düğme, geri arama, «Canlı vitrin»): sayfa maskesi, gecikme, cihaz filtresi veya program tam olarak bu sayfayı ve bu anı elemiş olabilir;
  • widget'ın içeriği yetersizdir: online randevu, menüde en az bir hizmet kalemi olduğunda ve rezervasyon açıkken belirir; yayımlanmış makalesi olmayan destek merkezi boş bir panel açar; tek kanalı olmayan çoklu düğme hiç çizilmez; «Canlı vitrin» sayılar eşiğin altındayken susar;
  • çoklu düğme komşusunun düğmesini yutmuştur: yelpazesinde «Sohbeti aç» veya «Geri arama» maddesi varsa, bu widget'ların kendi düğmeleri kasıtlı olarak söndürülür — artık yelpazenin içindedirler.

6. Ekranın köşesinde birkaç düğme birbirini itiyor. Çoklu düğmeyi açın ve yelpazesine ilgili widget'ların eylemlerini ekleyin — onların ayrı düğmeleri kendiliğinden söner.

7. Kendi kurucumuzla yapılan sitede widget'lar yok. Orada kurulum kodu şablona gömülüdür ve paneldeki kod bloğu gösterilmez — bu normaldir. Widget'ların açma-kapama düğmelerini kontrol edin: yeni oluşturulan site, çerez banner'ı, hukuki belgeler ve sohbet açık olarak gelir, geri kalanı elle açılır. Yüzeyler arasındaki farkları da göz önünde bulundurun: çoklu düğme bizim vitrinimizde yalnızca ayrı «Kendi vitrinimizde de göster» düğmesiyle gösterilir (sayfanın yerleşik düğmelerini yutar), «Canlı vitrin» ise yabancı bir sitedeki gibi aynı tek düğmeyle çalışır.


Content-Security-Policy kullanan site#

Sunucunuz Content-Security-Policy başlığını gönderiyorsa, kurulum kodumuzun neyi yüklemesine izin verileceğine tarayıcı kendisi karar verir. Etiketin kendisi bu durumda çalışır — ona siz izin verdiniz —, ancak onun çektiği her şey sessizce engellenebilir: dışarıdan bu «widget'lar kayboldu» gibi görünür. Tarayıcı konsolunda ise Refused to load the script biçiminde satırlar görülür.

Kopukluk tam olarak tek bir modda oluşur: politika betiklere yalnızca tek kullanımlık nonce ile izin veriyorsa, 'strict-dynamic' olmadan ve listede CDN sunucumuz yokken. Aşağıda bunu kapatmanın üç yolu var, en basitinden başlayarak.

Seçenek 1 — etiketimizde nonce#

Sunucunuz her yanıt için yeni bir rastgele değer üretir ve onu hem başlığa hem de etikete koyar:

Content-Security-Policy: script-src 'nonce-r4nd0m...'
<script nonce="r4nd0m..." src="https://cdn.<markanız>/site/v1.js" data-domain="LOKASYONUNUZ" async></script>

Tek etiket, kendi etiketinin nonce değerini okur ve eklediği her widget paketine aktarır — böylece script-src denetimini geçerler. İstekler, stiller ve gömülü sayfalar için de aşağıdaki tablodaki izinler gereklidir. Ayrı «Gelince haber ver» formunun aşağıda anlatılan bir kısıtlaması vardır.

⚠️ Tüm yanıtlarda aynı kalan sabit bir değer nonce değildir: sayfaya kod ekleyebilen herkes onu kendi betiğine kopyalar. Her yanıt için, sunucuda üretin.

Seçenek 2 — 'strict-dynamic'#

Content-Security-Policy: script-src 'nonce-r4nd0m...' 'strict-dynamic'

'strict-dynamic' ile etiketimize duyulan güven, onun eklediği betiklere de yayılır — «Akıllı popup'ların» tembel yüklenen parçaları dahil. Bu, betikler için bir direktif örneğidir: default-src, connect-src, style-src veya frame-src kısıtlamaları varsa aşağıdaki tablodan ilgili izinleri ekleyin.

Seçenek 3 — sunucu listesi#

Nonce sizin için mümkün değilse (site kurucularında böyle olur), sunucularımıza açıkça izin verin:

Content-Security-Policy: script-src https://cdn.<markanız>;
  connect-src https://cdn.<markanız> https://api.<markanız> wss://ws.<markanız> https://o.<markanız>;
  img-src https://cdn.<markanız> https://i.<markanız>;
  frame-src https://cdn.<markanız> https://lokasyonunuz.<markanız>;
  style-src 'unsafe-inline'

Markanızın ve lokasyonunuzun sunucuları yerleştirilmiş hazır kod parçası panelde bulunur: Pazarlama → Sitem, kurulum kodunun altındaki «Content-Security-Policy kullanan site mi?» bloğu — orada ayrıca «Kopyala» düğmesi ve her sunucunun hangi widget için gerekli olduğuna dair not vardır.

Kime ne gerekli:

Direktif Kime gerekli
script-src Tüm widget'lara: CDN'imizdeki paketler
connect-src Tümüne: talepler, rezervasyonlar, randevular, siparişler, telemetri; sohbete — websocket ve sinyal kovası
img-src Siparişe: ürün ve yemek fotoğrafları
frame-src Siparişe, destek merkezine ve hukuki belgelere: vitrininizi <iframe> içinde açarlar
style-src Tümüne: widget pencereleri kendi Shadow DOM'larına <style> ekler

Bunun kapsamadıkları — dürüstçe#

  • Stiller. Pencerelerin tasarımı Shadow DOM içindeki satır içi <style> etiketidir, bu yüzden style-src 'unsafe-inline' gereklidir. Bu script-src'yi etkilemez: betikler için 'unsafe-inline' ve 'unsafe-eval' istemiyoruz.
  • Widget'ların tembel yüklenen parçaları (genişletilmiş popup'lar ve «Akıllı popup'ların» yuvaları, onay banner'ının yaş kapısı, çoklu düğmenin mobil çubuğu, form yakalama) kendi yükleyicileriyle yüklenir ve nonce değerini alırlar — ana paketle aynı denetimi geçerler. İstisna — «Gelince haber ver» düğmesinin formudur (stock/form-v1.js): bu, tek yükleyicinin dışında ayrı bir etikettir ve nonce'u henüz taşımaz — CDN sunucumuz olmadan yalnızca nonce ile çalışan bir politikada abonelik formu açılmaz.
  • Site kurucuları (Tilda, Wix ve benzerleri) başlığı kendileri gönderir ve orada kendi etiketiniz için tek kullanımlık nonce yazamazsınız. Geriye sunucu listesi seçeneği kalır — tabii platform politikayı düzenlemeye izin veriyorsa.
  • Siteden arama sesi WebRTC akışıyla iletir ve medya dosyası yüklemez, bu yüzden ona media-src gerekmez; mikrofona izni CSP değil, Permissions-Policy ve HTTPS verir.

Widget'ı ayrı bir bölüm olarak çıkarma#

Widget'lardan biri sizin ana ürününüzse (örneğin yalnızca pop-up'ları veya yalnızca çerez banner'ını kullanıyorsanız), «Pazarlama → Sitem → kart → dişli» yolu çok uzun. Kartta «Kenar çubuğuna çıkar» butonu bulunur — widget kendi menü öğesini alır ve tek tıkla açılır.

Bu, arayüzünüzün bir ayarıdır: yalnızca bölümün görünürlüğünü yönetir, widget'ın sitedeki çalışmasını değil.


Ne ücretsiz, ne ücretli eklenti#

Widget'ların bir kısmı aboneliğe dahildir, bir kısmı ise «Eklentiler» bölümünden eklenti olarak bağlanır: ücretli olarak Rezervasyon, Popup'lar ve formlar, Destek merkezi ve Hukuki belgeler işaretlenmiştir — kartlarında «💳 Ücretli eklenti» etiketi bulunur.

Ücretli widget satın alındıktan sonra açılır. Ödenmemiş bir widget'ın düğmesine basmak onu açmaz, doğrudan bölümün içinde ödeme penceresini açar; ödemeden sonra widget kendiliğinden açılır. Ödenmemiş bir widget'taki «💳 Ücretli eklenti» etiketi de bir ödeme düğmesidir, halihazırda ödenmiş olanda ise aboneliği görmek üzere kataloğa götürür. Erişim, geçerli satın almaya bağlıdır. Aboneliğin değiştirilmesi ile site ayarlarının güncellenmesi ayrı işlemlerdir: satın alma sonrasında widget belirmediyse, açma-kapama düğmesini kontrol edin ve lokasyon ayarlarını kaydedin. Beş dakikalık önbellek, güncellenmiş verilerin yayımlanmasından itibaren sayılır; abonelik durumundaki değişikliğin kendisi şu an böyle bir yayımlamayı garanti etmez.

Kendi kurucumuzla yapılan sitede «Hukuki belgeler» ve çerez banner'ı ücretsizdir. Onların kartlarında «ücretli» yerine «🎁 Siteye dahil» etiketi bulunur ve ödeme penceresi hiç gösterilmez: bu bir üst satış değil, siteyi yasal olarak kullanmanın koşuludur. Yeni oluşturulan site doğrudan çerez banner'ı, hukuki belgeler ve sohbet açık olarak gelir. Yabancı bir sitede «Hukuki belgeler» eklentisi ayrıca ödenir. Çerez banner'ı mevcut merkezde dört ücretli widget listesine dahil değildir.

Tarifeler ve ödeme — Uygulama mağazası ve Abonelik bölümlerinde.


İlgili bölümler#


Sık sorulan sorular#

Kendi sitemden vazgeçmem gerekir mi? Hayır. Widget'lar sitenizin üzerinde yaşar, tasarımınızı ve barındırmanızı değiştirmezsiniz.

Birkaç widget varsa kaç etiket eklemeliyim? Bir tane. Widget'ların bileşimi — paneldeki açma-kapama düğmeleridir.

Widget siteyi yavaşlatır mı? Yükleyici eşzamansız (async) bağlanır ve sayfanın çizimini engellemez; her widget ayrı küçük bir dosyayla ve yalnızca açıksa yüklenir. Kapalı widget hiç indirilmez.

Widget tasarımı bozar mı? Hayır. Her widget yalıtılmış bir kapsayıcıda (Shadow DOM) çizilir: sitenizin stilleri widget'ın içine sızmaz, widget'ın stilleri de dışarı. Tasarım gereği istisna — online sipariş widget'ıdır: o, «Sepete» düğmelerini özellikle sizin sayfa yapınıza yerleştirir ve bu, önizlemeyle ayarlanır (bkz. Kendi sitenizde online sipariş).

Widget hangi dilde konuşur? Sayfanın diline bakar: önce belirlediyseniz etiketteki data-lang özniteliğine, sonra HTML sayfanızın lang değerine, sonra misafirin tarayıcı diline ve son çare olarak İngilizceye. Sözlükler farklı büyüklüktedir: çerez banner'ı, online randevu widget'ı ve sohbet penceresi 45 dil bilir (sohbetin etiketleri sayfanın diline göre ayrı bir dil paketiyle gelir), geri kalanlarda İngilizce, Rusça, Gürcüce ve Türkçe gömülüdür ve İngilizceye düşerler. Düğmelerin etiketlerini ve davetleri siz belirlersiniz — sitenin her dili için ayrı bir satır olarak.

Widget'ların topladığı veriler nerede saklanır? Markanızın bulutunda: cenaly.com için — AWS, cenaly.ru için — Yandex Cloud; Rus işletmelerinin verileri Rusya'da kalır. Talepler, siparişler, rezervasyonlar ve yazışmalar sizin panelinize gelir, genel CDN'e ise yalnızca widget ayarları ve zaten herkese açık olanlar gider (menü, çalışma saatleri, yayımlanmış belgeler, «Canlı vitrin»in kimliksizleştirilmiş sayıları).

Birkaç işletmem var — ne yapmalıyım? Widget'lar lokasyona göre ayarlanır: bölümün üst kısmındaki listeden onu seçin ve onun kurulum kodunu alın. Her sitenin kendi data-domain değeri vardır.

Widget'ları birkaç farklı siteye koyabilir miyim? Evet, bir lokasyonun etiketi birkaç sayfaya veya siteye eklenebilir — veriler tek bir lokasyona gelir.

Was this article helpful?