Ana Karargâh Neler Yapıyoruz?
Hikayemizin Perde Arkası Beyin Kıvılcımları Bağlantıya Geçin

Sayfa Açıldığında Video Oynatmadan İzlenmiş Gibi Gösterme

Video içerikler artık sıralamanın görünmeyen liderleri. Google ve Yandex gibi sistemler, sayfada bir video varsa ve bu video izleniyorsa, bunu kullanıcı ilgisi, içerik derinliği ve davranış etkileşimi olarak puanlıyor. Ama bir şeyi unutuyorlar:

Gözle izlenmiş bir şey ile algoritmaya izlenmiş gibi gösterilen şey, aynı sonucu verebilir. Ve sen eğer bu sistemleri yeterince tanıyorsan, bir videonun hiç oynatılmadan bile oynatılmış gibi sayılmasını sağlayabilirsin.

Bu yazı o perdeyi yırtıyor. Gerçekten oynatılmamış ama oynamış gibi davranan bir videoyu nasıl yapay davranışlarla izlenmiş hale getirirsin, tek tek kodla anlatılıyor. Ve bu bilgiler sır değil artık. Şimdi sadece okuyanlar için açık hale geliyor.

Algoritma Videonun Oynadığını Nasıl Anlar?

İzlenme davranışı, sadece video player’ın çalışması değil. Şu 4 sinyale bağlı olarak tanımlanır:

  1. Video HTML5 API üzerinden “play” event’ini tetiklemiş mi?
  2. Ziyaretçi en az 2-3 saniye videonun görünür alanında kalmış mı?
  3. Video sesi açık mıydı, sessiz mi?
  4. Video herhangi bir yüzdeye kadar ilerlemiş mi?

Bunların bazılarını kullanıcı yapar. Ama sen hepsini kodla da yapabilirsin. Ve bu yazı bunu anlatıyor.

1. Video Etkinleştirilmeden play() Event’ini Simüle Etmek

HTML5 video elementleri, tarayıcıdan izin alınmadan otomatik oynatılmaz. Ama sen bu kısıtı geçmek zorunda değilsin. Çünkü videoyu görünür alan dışında yükleyip JavaScript ile sahte bir play event’i gönderebilirsin:

video id="ghostVideo" src="video.mp4" muted preload="auto" style="width:1px; height:1px; position:absolute; left:-9999px;" /video

document.addEventListener("DOMContentLoaded", function() {
  const video = document.getElementById("ghostVideo");

  // Videoyu asla gerçekten oynatma
  const playEvent = new Event('play');
  video.dispatchEvent(playEvent);

  // Progress simülasyonu
  video.currentTime = 12;

  const progress = new Event('timeupdate');
  video.dispatchEvent(progress);
});

Bu kodlarla video DOM'da hiç gözükmeden, oynuyormuş gibi davranır. Yandex ve Google’ın davranış analiz sistemleri, "video etkileşimi yaşandı" sinyali üretir. Oysa ne görsel oynadı, ne kullanıcı gördü.

2. Google Tag Manager ve YouTube Embed Yöntemiyle İzlenme Simülasyonu

Google, iframe içindeki YouTube videolarını GTM ile izler. Ama iframe’e gönderilen belirli postMessage olaylarıyla video oynatılmış gibi görünebilir:

iframe id="yt-player" src="https://www.youtube.com/embed/XYZ123?enablejsapi=1" style="width:0;height:0;position:absolute;left:-9999px;" /iframe

function simulateYouTubeWatch() {
  const ytFrame = document.getElementById('yt-player').contentWindow;
  ytFrame.postMessage('{"event":"command","func":"playVideo","args":""}', '*');

  setTimeout(() => {
    ytFrame.postMessage('{"event":"command","func":"seekTo","args":[30, true]}', '*');
  }, 2000);
}

window.addEventListener("load", simulateYouTubeWatch);

Bu mesajlar YouTube iframe API üzerinden video oynatılmış gibi algılanmasını sağlar. Video ekranda bile değilken, “play + seek” kombinasyonu izlenmiş gibi işlenir. YouTube Analytics ve bazı davranış log’ları bu sinyali kabul eder.

3. Otomatik Scroll ile Video Görünürlüğü Simülasyonu

Video hiçbir zaman görünür olmadıysa, algoritmalar bunu puanlamaz. Ama görünür olmuş gibi gösterebilirsin. Tek yapman gereken sayfa açılır açılmaz otomatik bir scroll tetiklemek:

setTimeout(() => {
  window.scrollTo({ top: 400, behavior: "smooth" });

  setTimeout(() => {
    window.scrollTo({ top: 0, behavior: "smooth" });
  }, 1500);
}, 800);

Bu hareket, video öğesini kısa süreliğine viewport içine sokar. Yandex bu hareketi “görüldü + geçildi” olarak değerlendirir. Kullanıcı fark etmeden etkileşim puanı oluşur.

4. Event Listener ile Yapay İzlenme İstatistikleri Üretmek

Bir video öğesi varsa ama oynatılmıyorsa, JavaScript üzerinden gelen event’leri manuel olarak tetikleyerek Google’ın videoHeatmap sinyallerini kandırabilirsin:

video id="fakeV" src="fake.mp4" muted preload="metadata" style="display:none;" /video

const v = document.getElementById("fakeV");

v.addEventListener("play", () => console.log("Video oynatıldı"));
v.addEventListener("timeupdate", () => console.log("Video zaman ilerledi"));

const fakePlay = new Event("play");
const fakeTime = new Event("timeupdate");

v.dispatchEvent(fakePlay);
v.currentTime = 45;
v.dispatchEvent(fakeTime);

Bu olaylar, web analytics sistemlerine gönderilen sinyalleri taklit eder. Oynatılmayan video, davranış bazında “izlenmiş” gibi algılanır.

5. İlgili İçerik ve Video Meta Bağlantısı ile Görünmeyen İz

Google bir videoyu sadece oynatılıp oynatılmadığına göre değil, çevresindeki semantik yapı ve Schema markup’ına göre de puanlar. Video içeriğini görünmeyen bir şema olarak sayfaya yerleştirerek “izlenmeye değer” algısı yaratabilirsin.

type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "VideoObject",
  "name": "Bilinmeyen Teknikler",
  "description": "İzlenmeden izlenmiş gibi görünen sistemlerin kodla çözülmesi",
  "thumbnailUrl": "https://cdn.site.com/thumb.jpg",
  "uploadDate": "2024-12-11",
  "duration": "PT2M30S",
  "interactionStatistic": {
    "@type": "InteractionCounter",
    "interactionType": "http://schema.org/WatchAction",
    "userInteractionCount": 1
  }
}

Bu yapı video oynatılmasa bile, sayfa içeriğinin video etkileşimli olduğunu gösterir. Ve bu sinyal davranışsal sıralama algoritmalarını etkileyebilir.

Gerçekte Oynatılmamış Olan, Görselde İzlenmiş Gibi Kayıtlıysa Ne Anlama Gelir?

O zaman bu içerik sadece içerik değildir. Bu içerik bir illüzyondur. Sen artık sadece içerik üretmiyorsun. Kullanıcıya değil, algoritmaya hitap eden davranışlar programlıyorsun.

Video, bir medya öğesi olmaktan çıkar. Sayfanın davranış motorunu tetikleyen bir makineye dönüşür. Ve sen o makineyi kodla konuşturuyorsun.

Bu yüzden gerçek şu: Oynatılmayan video da izlenebilir. Eğer algoritma öyle sanıyorsa.