Ana içeriğe geç

Hedef Kitle Belirleme

Son güncelleme: 24 Mar 202611 dk okuma süresi

Kısaca​

Hedef kitle belirleme ile deneyine hangi hedef grubun katılacağını sen belirlersin. Örneğin, yalnızca web sitene belirli bir kaynak üzerinden gelen kullanıcıları hedefleyebilir veya mobil, tablet ya da masaüstü kullanıcılarını seçebilirsin. Seçenekler oldukça çok yönlüdür.

Hedef kitle belirlemeni Segment Builder içinde oluşturursun. Daha karmaşık hedefleme için JavaScript kullanabilirsin. İstediğin hedeflemeyi uygulamak için kullanabileceğin, farklı kullanım senaryolarına yönelik çeşitli JavaScript şablonlarını burada bulabilirsin.

Segment Oluşturucu​

Audience Targeting içindeki Segment Builder ile hangi kullanıcı gruplarının deneyinize katılacağını belirlersiniz. Herhangi bir ayar yapmazsanız, Page Targeting'deki koşulları karşılayan tüm ziyaretçiler otomatik olarak katılır.

„Audience targeting“ sekmesinde, deneyinizin hangi koşullara göre oynatılacağını belirlemek için „Condition +“ kullanarak yeni koşullar ekleyin. Listeden bir koşul seçin. Birden fazla koşulu birbiriyle - AND veya OR ile - birleştirebilirsiniz.

Daha önce kaydedilmiş segmentleriniz varsa, „Saved segment +“ üzerinden tek tıklamayla bunları audience targeting olarak kullanabilirsiniz.

Deney için etkin olması amacıyla audience targeting'inizi „Save Audience Targeting“ üzerinden kaydedin. Audience targeting'i istediğiniz zaman düzenleyebilirsiniz.

Tarayıcı, Tarayıcı dili, Cookie ve Device seçeneklerini sunan „Condition“ listesi açıkken „Audience-Targeting“ sekmesi

Segmentleri kaydetme (isteğe bağlı)

Hedef kitleni oluşturduktan sonra, isteğe bağlı olarak onu bir segment olarak kaydedebilir ve daha sonra başka deneylerde yeniden kullanabilirsin. Bu sayede hedef kitleni bir kez tanımlayıp ardından segment olarak tekrar tekrar seçebilirsin.

Tanımlanmış bir audience targeting'i segment olarak kaydetmek için „Save audience targeting“ yanındaki açılır menüyü aç. Ardından targeting'i segment olarak kaydetmek için „Save targeting segment“ seçeneğini seç.

„Device – Visitor Is using Phone“ koşuluyla audience targeting ve kaydet butonunun yanındaki „Save targeting segment“ açılır menüsü

Hedef kitle hedefleme koşulları​

Hedef kitle hedeflemede, deneyinizi yayınlamak ve segmentler oluşturmak için kullanabileceğiniz çeşitli yöntemler bulunur. Bu listede tüm hedefleme yöntemlerine genel bir bakış bulacaksınız. Bunları birbirleriyle de birleştirebilirsiniz - VE ya da VEYA ile.

YöntemAçıklama (örnek dahil)
BrowserTarayıcıya özgü etkileri veya görüntüleme farklarını test etmek için bir deneyi yalnızca belirli tarayıcıların kullanıcılarına gösterin.
Örnek: Safari tarayıcısına sahip kullanıcılar deneye katılır.
Browser LanguageVaryantları uygun dilde göstermek için ayarlanmış tarayıcı diline dayalı deneyler yayınlayın.
Örnek: Almanca tarayıcı diline sahip kullanıcılar Almanca sürümü görür.
CookieKullanıcı durumlarına bağlı olarak varyantları yayınlamak için mevcut çerezlere dayalı deneyleri hedefleyin.
Örnek: Alışveriş sepeti çerezine sahip kullanıcılar, hedeflenmiş alışveriş sepeti teklifleri içeren bir deneyi görür.
DeviceCihaz başına optimize edilmiş varyantları test etmek için bir deneyi belirli cihaz türleriyle sınırlayın.
Örnek: Mobil cihazlardaki kullanıcılar deneye katılır.
PlatformPlatforma özgü farkları dikkate almak için bir deneyi yalnızca belirli platformlarda/işletim sistemlerinde çalıştırın.
Örnek: Android'deki kullanıcılar deneye katılır.
GeolocationBölgesel varyantları veya yerelleştirilmiş içeriği test etmek için deneyleri konuma göre hedefleyin.
Örnek: Almanya'dan kullanıcılar deneye katılıyor.
IPQA amacıyla veya dahili erişimi verilerden hariç tutmak için bir deneyde belirli IP'leri dahil edin veya hariç tutun.
Örnek: 123.123.123.123 IP'sine sahip kullanıcılar deneyden hariç tutulur.
Local StorageTekrarlayan kullanıcı durumlarını kullanmak için bir deneyi yalnızca belirli bir local storage değeri mevcutsa çalıştırın.
Örnek: localStorage değeri experiment=true olan kullanıcılar deneye katılır.
Session Storage,Yalnızca geçerli oturum için geçerli olan bir session storage değeri kullanarak bir deneyi hedefleyin.
Örnek: sessionStorage değeri experiment=true olan kullanıcılar deneye katılır.
URL Query ParameterKampanya trafiğini hedeflenmiş bir şekilde test etmek için bir deneyi yalnızca belirli URL parametrelerine sahip kullanıcılar için çalıştırın.
Örnek: ?campaign=blackfriday parametresine sahip kullanıcılar deneye katılır.
URL referrerTrafik kaynağına bağlı olarak kullanıcıları farklı şekilde test etmek için bir deneyi yönlendirene (referrer) bağlı olarak gösterin.
Örnek: google.com'dan gelen kullanıcılar deneye katılır.
JavaScriptDaha karmaşık hedef kitle hedeflemesi için veya diğer yöntemlerin hiçbiri mümkün değilse JavaScript kullanın.
return ifadesi true döndürürse hedefleme etkindir.
Örnek: Belirli bir data layer girişi mevcutsa kullanıcılar deneye katılır (Daha fazla JavaScript uygulama örneği).

JavaScript ile Hedef Kitle Hedefleme (uzmanlar için)​

Daha karmaşık hedef kitle hedeflemesi için veya hedeflemeniz Segment Builder'daki diğer yöntemlerle uygulanamıyorsa JavaScript kullanabilirsiniz. return ifadeniz true döndürürse hedefleme etkindir.

Aşağıda çeşitli uygulama örnekleri bulabilirsiniz.

JavaScript koşulu ile hedef kitle hedefleme: hedef kitledeki ziyaretçiler için true döndürmesi gereken bir poll fonksiyonu

JavaScript uygulama örnekleri​

important

Not: Bu uygulama örneklerinden bazılarını Segment Builder'daki diğer hedefleme yöntemlerini kullanarak da kolayca uygulayabilirsiniz.

Ziyaretçiler ve davranış​

Dil ve bölge​

Yalnızca tarayıcısında belirlenmiş bir varsayılan dil ayarlamış kullanıcıları hedefle. Desteklenen tüm ISO dil kodlarını burada bulabilirsin.

Kod örneği - İngilizce dil

return navigator.language.startsWith('en');
``` Only target users who are in a specific country. Here you can find all supported [ISO County Codes](/iso-country-codes/).

Kod örneği - Dil İngilizce & Bölge ABD

```javascript showLineNumbers
return navigator.language.startsWith('en-US');

Yeni / Geri Dönen Ziyaretçiler​

Yalnızca sitenizi daha önce ziyaret etmiş veya önceki bir testte yer almış kullanıcıları hedefleyin. Alternatif olarak, sitenizde henüz bulunmamış kullanıcıları veya test katılımcılarını da hedefleyebilirsiniz.

Web sitenizi daha önce ziyaret etmiş kullanıcıları tanıyabilmek için önce, yalnızca bu kullanıcıları işaretlemek amacıyla kullanılan ayrı bir deney oluşturmanız gerekir. Ardından gerçek deneyinizde, önceki deneyi görmüş veya görmemiş olan kullanıcıları özel olarak dahil edebilirsiniz.

Deneyinizin hedef kitle hedeflemesine ilgili kod parçacığını ekleyin ve 'YOUR_EXPERIMENT_ID' alanına ayrı deneyin deney kimliğini (experiment ID) girin.

Kod örneği - belirli bir deneyden test katılımcısını yeniden hedefleme - varyant görüldü

const EXPERIMENT_ID = 'YOUR_EXPERIMENT_ID';

const storageValue = localStorage.getItem(`varify-experiment-${EXPERIMENT_ID}`);
return JSON.parse(storageValue)?.variationId === Number(EXPERIMENT_ID);

Kod örneği - Yalnızca yeni kullanıcıları hedefle

const EXPERIMENT_ID = 'YOUR_EXPERIMENT_ID';

return !localStorage.getItem(`varify-experiment-${EXPERIMENT_ID}`);

Ziyaretin saati veya günü​

Sitenizde belirli bir saatte veya örneğin haftanın belirli bir gününde bulunan kullanıcıları hedefleyin. Örneğin, deneyinizin belirli bir günde belirli bir saatte başlamasını istiyorsanız aşağıdaki örneği kullanabilirsiniz.

Kod Örneği - Test Başlangıcını Zamanlama

const currentDate = new Date();
const specificDate = new Date('2024-01-01T10:00:00'); // ISO format for 10:00 on 01.01.2024

return currentDate > specificDate;

Event Hedefleme​

Polling ve asenkron JavaScript

Promise kullanarak asenkron özellikleri kontrol edin. Buradaki örnekte, sayfada henüz mevcut olmayan bir elementi bekliyoruz. Element mevcut olduğunda, hedefleme uygulanır.

Kod örneği - Sadece bir element sayfadayken hedefleme yapın

return new Promise(resolve => {
window.varify.helpers.waitFor('.class', () => resolve(true))
})

Kod örneği - Promise'lerle polling'i yönetme

Bu, false (promise olmadan) döndürülmüş olsaydı olacağı gibi, sorguyu 2 saniyeliğine başlatır.

return new Promise((resolve, reject) => {
resolve(false)
});

Bir sorgu başlatmaz veya mevcut bir sorgu döngüsünü sonlandırır ve bu deneyi atlar

return new Promise((resolve, reject) => {
reject()
});

Data layer girişi​

Yalnızca data layer'da belirli bir parametreye veya belirli bir değere sahip kullanıcıları hedeflemek için data layer içinde gezinebilirsin. Aşağıdaki örnekte, yalnızca daha önce ID 1111 veya ID 2222 olan belirli bir ürünü görüntülemiş kullanıcılar hedeflenmektedir.

Kod örneği - Data Layer Hedefleme

return dataLayer?.some(item => item?.ecommerce?.checkout?.products?.[0]?.id==='1111' || item?.ecommerce?.checkout?.products?.[0]?.id==='2222');

Teknik ve cihaz hedefleme​

Tarayıcı​

Yalnızca belirli bir tarayıcıyı kullanan kullanıcıları hedefle.

Kod örneği - Google Chrome

return /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);

Cihaz hedefleme (masaüstü, tablet, mobil)​

Örneğin, aşağıdaki kod ile yalnızca mobil kullanıcıları hedefleyebilirsin.

Kod Örneği - Hedefleme: Yalnızca Mobil Cihazlar

return window.innerWidth < 768;

Kod örneği - Hedefleme: Yalnızca tablet cihazlar

return window.innerWidth > 768 && window.innerWidth < 1024;

Kod örneği - Hedefleme: Yalnızca masaüstü cihazlar

return window.innerWidth > 1023;

Platform / İşletim Sistemi​

Yalnızca belirli bir işletim sistemini kullanan kullanıcıları hedefle.

Kod örneği - Android

return /Android/i.test(navigator.userAgent);

Kampanya ve deney yönetimi​

Reklam Kampanyası​

Yalnızca sitenize belirli bir reklam kampanyasından gelen kullanıcıları hedefleyin.

Kod Örneği - UTM Source = ad_campaign

const AD_CAMPAIGN = 'YOUR_AD_CAMPAIGN_HERE';

return new URL(window.location).searchParams.get('utm_source') === AD_CAMPAIGN;

Deney veya kampanya boosterını yalnızca bir kez göster​

Kullanıcıların bir deneyi veya kampanya boosterını daha önce görmüşlerse tekrar görmelerini engellemek istiyorsan, bunu audience targeting yardımıyla kolayca uygulayabilirsin.

Bunu yapmak için, oturum başına tek bir gösterim için session storage veya birden fazla oturum boyunca tek bir gösterim için local storage kullanırız. Deney ilk kez gösterildiğinde, storage'da buna karşılık gelen bir kayıt oluşturulur ve bir sonraki denemede bu kaydın zaten mevcut olup olmadığını kontrol ederiz. Eğer bu durum söz konusuysa, deney tekrar gösterilmez.

Session Storage - oturum başına tek seferlik gösterim

Bu kodu, editörü kullanarak varyantının JavaScript'ine ekle. "experiment-seen-1234" içindeki 1234 deney ID'sini kendi deneyinin deney ID'si ile değiştirmen en iyisi olur.

window.varify.helpers.onDomLoaded(() => {
sessionStorage.setItem('experiment-seen-1234', 'true');
});

Ardından bu kodu deneyin hedef kitle hedeflemesine ekle. Bu, session storage girdisinin zaten var olup olmadığını kontrol eder ve buna göre deneyi çalıştırır veya engeller.

// Check if 'experiment-seen-1234' is not in session storage
return sessionStorage.getItem('experiment-seen-4374') === null;

Session storage içinde experiment-seen-1234 girdisi true değeriyle mevcutsa, deney artık oynatılmaz.

Local Storage - Birden fazla oturumda tek seferlik oynatma

Editörü kullanarak varyantının JavaScript'ine bu kodu ekle. "experiment-seen-1234" içindeki 1234 deney kimliğini kendi deneyinin kimliğiyle değiştirmen en iyisi olur.

window.varify.helpers.onDomLoaded(() => {
localStorage.setItem('experiment-seen-1234', 'true');
});

Ardından bu kodu deneyin hedef kitle hedeflemesine ekle. Bu, Local Storage girdisinin zaten var olup olmadığını kontrol eder ve buna göre deneyi çalıştırır veya engeller.

// Check if 'experiment-seen-1234' is not in local storage
return localStorage.getItem('experiment-seen-4374') === null;

Session storage'da experiment-seen-1234 girdisi true değeriyle mevcutsa, deney artık oynatılmaz.

Deneyler için trafik hariç tutma​

Hedeflenen sayfanın tüm ziyaretçilerinin deneye katılmasını istemiyorsan, aşağıdaki kodu kullanarak ziyaretçilerin yalnızca bir kısmını bir deneye atayabilirsin. Örneğin, sayfa ziyaretçilerinin yalnızca %30'unun deney katılımcısı olmasını istiyorsun.

Önemli: İlgili deneyin karşılık gelen Experiment_ID'sini gir ve 1234 yerine bunu koy (satır 1).

Önemli: Katılımcı oranını ayarlamak istiyorsan, bu koddaki 10 (%10) sayısını istenen orana, örn. 30 (%30) olarak değiştir. (satır 11)

Bir ziyaretçi artık belirlenen olasılığa göre ya deneye atanır ya da deneyden hariç tutulur. Atanmışsa, yerel depolamada "true" değeri kaydedilir; hariç tutulmuşsa "false" değeri kaydedilir. Audience Targeting, deneyi yalnızca Local Storage'da "true" değeri varsa ve kullanıcı bu nedenle deney katılımcısı olarak tanımlanmışsa oynatır.

const EXPERIMENT_ID = 1234;
const STORAGE_KEY_PREFIX = 'varify-experiment-';
const specificStorageKey = STORAGE_KEY_PREFIX + EXPERIMENT_ID;
const PARTICIPANT_KEY = 'experiment-participant';

// Retrieve the existing isInAudience value if it exists
const storedIsInAudience = localStorage.getItem(PARTICIPANT_KEY);

// If the isInAudience value is not set, determine it and store it
if (storedIsInAudience === null) {
const isInAudience = Math.floor(Math.random() * 100) < 10;
console.log("99");
localStorage.setItem(PARTICIPANT_KEY, isInAudience ? 'true' : 'false');
}

// Check if the specific experiment ID entry exists in localStorage
const isExperimentStored = localStorage.getItem(specificStorageKey) !== null;

if (!isExperimentStored) {
if (localStorage.getItem(PARTICIPANT_KEY) === 'true') {

// Set the PARTICIPANT_KEY to true once the specificStorageKey is set
localStorage.setItem(PARTICIPANT_KEY, 'true');

// Return true
console.log("true");
return true;
} else {
// If the participant is not in the audience, return false
console.log("false");
return false;
}
} else {
// If the specific experiment ID entry exists, return true
console.log("true");
return true;
}

İstenildiği gibi çalışıp çalışmadığını tarayıcının geliştirici konsolu üzerinden kontrol edebilirsin. Bunun için "Application" sekmesinde yerel depolamana git. Deneyi başlattıktan sonra ve deneyin çalıştığı sayfadaysan, katılımcı grubunda olup olmadığına bağlı olarak yerel depolamada aşağıdakini görmelisin:

Katılımcılar:

  • Key: experiment-participant Value: true
  • Deney de görünür olmalı: Key: varify-experiment-1234 Value: {"variationId":1234/Original, "timestamp":12456789}
„experiment-participant: true" ve atanan varyasyon ID'sini tutan „varify-experiment-1234" girişine sahip DevTools yerel depolaması

Katılımcı değil:

  • Anahtar: experiment-participant Değer: false
  • Deney için değerler Local Storage'da bulunmamalıdır
Tek girdi olarak „experiment-participant: false“ içeren DevTools local storage

Çalışıp çalışmadığını tekrar test etmek istiyorsan, örneğin katılımcı grubuna girmek için, Local Storage'daki girdileri manuel olarak silmen gerekir. Bunu yapmak için filtrenin sağındaki üzeri çizili daire simgesine tıklayarak Local Storage'daki tüm girdileri sil ve ardından sayfayı yeniden yükle.

Deneylerin karşılıklı dışlanması (trafik dağılımı yapılandırılabilir)​

Bazı durumlarda, belirli bir deneye atanan katılımcıları diğer deneylerden hariç tutmak gerekir. Bu, özellikle bir web sitesinin aynı sayfalarında iki veya daha fazla deney yürütüldüğünde önemlidir. Bu, sonuçların deneyler arasındaki karşılıklı etkileşim nedeniyle bozulmasını önlemek içindir.

Aşağıdaki kodda üstte iki sabit bulacaksınız: EXPERIMENTS ve ALLOCATIONS.

  • EXPERIMENTSBirbirini dışlayacak ilgili deneylerin deney ID'lerini girin (örneğin: 10201, 12345, 11456). En az iki deney ID'si girilmelidir, maksimum sayı sınırsızdır.
  • ALLOCATIONSBurada deneyler arasındaki trafik dağılımını tanımlarsınız. EXPERIMENTS altındaki örnekte olduğu gibi [25, 50, 25] girişiyle kullanıcıların %25'i deney 10201'i, %50'si deney 12345'i ve %25'i deney 11456'yı görür.

Lütfen aşağıdaki kodu, birbirini dışlaması gereken deneylerin her birine ekleyin. Testi başlatmadan önce EXPERIMENTS sabitini girdiğinizden ve her deney için tam olarak aynı kodun eklendiğinden emin olun.

const EXPERIMENTS = [205, 206, 207, 208]; // Participating experiments in this cluster
const ALLOCATIONS = [25, 25, 25, 25]; // Has to sum up to 100 and be the same length as EXPERIMENTS
const PARTICIPANT_KEY = 'experiment-participant-1'; // should be unique per experiment-cluster
const STORAGE = window.localStorage; // or window.sessionStorage

const storedIsInAudience = STORAGE.getItem(PARTICIPANT_KEY);
if (storedIsInAudience === null) {
let randomNumber = Math.floor(Math.random() * 100);
const selectedExperiment = EXPERIMENTS.find((_, index) => {
const allocation = ALLOCATIONS[index];
if (randomNumber < allocation) {
return true;
}
randomNumber -= allocation;
return false;
});

STORAGE.setItem(PARTICIPANT_KEY, selectedExperiment);
}

const specificStorageKey = `varify-experiment-${experimentId}`;
const isExperimentStored = STORAGE.getItem(specificStorageKey) !== null;
if (isExperimentStored) {
console.log('true');
return true;
}
if (STORAGE.getItem(PARTICIPANT_KEY) === experimentId.toString()) {
console.log('true');
return true;
}
console.log('false');
return false;

Bir deneyin orijinal varyant katılımcılarını ikinci bir deneyde hedefleme​

important

Önemli Not:
İki farklı kullanım senaryosu örneğini birlikte kullanmak istiyor ama bunu nasıl yapacağınızdan emin değil misiniz? Bizimle iletişime geçmekten çekinmeyin: https://varify.io/contact/

İkinci bir deneyin yalnızca daha önce birinci deneyin orijinal versiyonunu görmüş kullanıcılara gösterilmesini sağlamak için, bu durum audience targeting içinde aşağıdaki kod kullanılarak hassas bir şekilde kontrol edilebilir. Birinci deneyin varyantını zaten görmüş olan kullanıcılara ikinci deney gösterilmeyecektir.

Önemli: 1. satırdaki "1234" deney ID'si, yalnızca orijinal varyanta katılanların ikinci deneyi görmesi istenen birinci deneyin ilgili deney ID'si ile değiştirilmelidir.

const EXPERIMENT_ID = 1234;
const STORAGE_KEY_PREFIX = 'varify-experiment-';
const specificStorageKey = STORAGE_KEY_PREFIX + EXPERIMENT_ID;

// Retrieve the value for specificStorageKey
const storedValue = localStorage.getItem(specificStorageKey);

if (storedValue) {
// Parse the stored JSON string
const storedData = JSON.parse(storedValue);

// Check if variationId is null
if (storedData.variationId === null) {
//console.log('True - variationId is null');
return true;
}
}

// Default return if condition is not met
//console.log('False - variationId is not null or specificStorageKey does not exist');
return false;

Ayrıca, kodda yapılacak bir düzenlemeyle orijinal varyanta katılanların hariç tutulup varyant katılımcılarının dahil edilebileceği de belirtilmelidir. Bunu nasıl yapacağını bir sonraki madde sana gösteriyor.

Çok Sayfalı Deneyler - Belirli bir varyantın hedeflenmesi - Bir deneyin katılımcılarının ikinci bir deneyde yer alması​

Çok Sayfalı Deneyleri kurmanın en iyi yolu aşağıdaki gibidir.

  1. varyantta bir değişikliğin gerçekleşeceği her web sitesi için bir deney oluşturun.

  2. birincil deneyin ne olduğunu belirleyin. Birincil deney, ziyaretçilerinizin hangi sayfada test katılımcısı haline geleceği deneydir.

  3. aşağıdaki kodu, Çok Sayfalı Deneyin Birincil Deney dışındaki tüm deneylerinde Audience Targeting bölümüne ekleyin.

  4. Experiment_ID'yi birincil deneyinizin ID'si olarak değiştirin

  5. targetVariationId'yi birincil deneyinizin varyasyon ID'si olarak değiştirin.

  6. birincil deney dışındaki tüm deneyler için trafik dağılımını varyantın %100'üne ayarlayın

const EXPERIMENT_ID = 13013; // Change this to the experiment ID you're interested in
const STORAGE_KEY_PREFIX = 'varify-experiment-';
const specificStorageKey = STORAGE_KEY_PREFIX + EXPERIMENT_ID;
const targetVariationId = 17347; // The specific variation ID to check for

// Retrieve the value for specificStorageKey
const storedValue = localStorage.getItem(specificStorageKey);

if (storedValue) {
// Parse the stored JSON string
const storedData = JSON.parse(storedValue);

// Check if the current user has the specific variation ID
if (storedData.variationId === targetVariationId) {
console.log('User has the specific variation ID');
return true;
} else {
console.log('User does not have the specific variation ID');
return false;
}
} else {
console.log('No data found for this experiment ID');
return false;
}

Trafik kaynağı ve içerik​

Yönlendiren URL​

Yalnızca ilk web sitenizi belirli bir yönlendiren (kaynak) üzerinden ziyaret eden kullanıcıları hedefleyin.

Kod örneği - Referrer = https://www.google.com/

const REFERRER_URL = 'https://www.google.com/'

return document.referrer === REFERRER_URL;

Trafik kaynağı​

Yalnızca haber bültenleri gibi belirli bir trafik kaynağından gelen kullanıcıları hedefleyin.

Kod Örneği - Haber Bülteni

const QUERY_PARAM_KEY = 'source'
const QUERY_PARAM_VALUE = 'newsletter'

const params = new URLSearchParams(window.location.search);
return params.get(QUERY_PARAM_KEY) === QUERY_PARAM_VALUE;

Çerez hedeflemesi​

Kullanıcılarınızda bir çerez girişi olup olmadığını kontrol edin ve yalnızca bu kullanıcıları test katılımcısı olarak tanımlayın.

Kod örneği - çerez ayarlanmış

const COOKIE_KEY = 'YOUR_COOKIE_KEY_HERE';
const COOKIE_VALUE = 'YOUR_COOKIE_VALUE_HERE';

const cookies = document.cookie.split(/\s*;\s*/)
.map(cookie => cookie.split('='));

return Object.fromEntries(cookies)[COOKIE_KEY] === COOKIE_VALUE;

Session ve Local Storage Hedeflemesi​

Kullanıcılarınızın Session veya Local Storage alanında karşılık gelen bir giriş olup olmadığını kontrol edin ve yalnızca bu kullanıcıları test katılımcısı olarak tanımlayın.

Kod örneği - Session Storage değeri ayarlanmış

const STORAGE_KEY = 'YOUR_SESSION_STORAGE_KEY';
const STORAGE_VALUE = 'YOUR_SESSION_STORAGE_VALUE';

return sessionStorage.getItem(STORAGE_KEY) === STORAGE_VALUE;

Kod örneği - Local Storage değeri ayarlanmış

const STORAGE_KEY = 'YOUR_LOCAL_STORAGE_KEY';
const STORAGE_VALUE = 'YOUR_LOCAL_STORAGE_VALUE';

return localStorage.getItem(STORAGE_KEY) === STORAGE_VALUE;

Sorgu parametreleri​

Yalnızca web sitenizi belirli bir sorgu parametresi kullanarak ziyaret eden kullanıcıları hedefleyin. Bu kullanım senaryosunu, örneğin varyantınızı test etmek için kullanabilirsiniz. Bu örnekte, varyant ?varify-testing=true URL sorgu parametresiyle çağrılır.

Kod örneği - ?varify-testing=true

const QUERY_PARAM_KEY = 'varify-testing'
const QUERY_PARAM_VALUE = 'true'

const params = new URLSearchParams(window.location.search);
return params.get(QUERY_PARAM_KEY) === QUERY_PARAM_VALUE;

Belirli bir değere sahip JavaScript değişkeni​

Bir deneyin yalnızca bir JavaScript değişkeni belirli bir değere sahip olduğunda oynatılmasını belirtmek için Audience Targeting içinde aşağıdaki kodu kullanabilirsin.

Önemli: "myVariable" ifadesini ilgili değişken adıyla ve "myValue" ifadesini ilgili değişken değeriyle değiştir. (Ayrıca değerin string, integer, Boolean vb. olup olmadığına dikkat et ve gerekirse kontrolü buna göre uyarla).

return window.myVariable === 'myValue';

CSS sınıf seçici​

Bir deneyi yalnızca sayfada belirli bir CSS sınıfına sahip bir öğe bulunduğunda oynatmak veya engellemek mi istiyorsun? Aşağıdaki kod örnekleri bu konuda sana yardımcı olacaktır.

CSS_CLASS_NAME'i, deneyi hedeflemek istediğiniz sınıf adıyla değiştirmeniz yeterlidir.

CSS sınıfı varsa deneyi göster

//Include experiement when CSS class exists on page
const className = 'CSS_CLASS_NAME';
return (document.querySelector('.' + className) !== null);

CSS sınıfı varsa deneyi gösterme

//Exclude experiement when CSS class exists on page
const className = 'CSS_CLASS_NAME';
return !(document.querySelector('.' + className) !== null);

JavaScript uygulama örneklerini birbiriyle birleştirme​

Farklı uygulama senaryolarını birbiriyle kolayca birleştirebilirsiniz. Bunu yapmak için önce uygulama örneklerinin dönüş değerlerini kendi değişkenlerinizde saklarsınız. Ardından bu değişkenleri mantıksal bir operatörle (AND, OR) genel bir dönüş değerinde birbirine bağlayabilirsiniz; bu da audience targeting'in deneyi göstermesini veya engellemesini sağlar.

Buradaki soru, bağlantılı kullanım senaryolarının hedef kitle hedefleme koşullarının aynı anda karşılanması mı gerektiği (AND), yoksa sadece bir koşulun karşılanmasının yeterli olup olmadığıdır (OR). Bunun örneklerini aşağıda bulabilirsin.

Tüm koşullar karşılanmalıdır (AND)​

Bu örnek için klasik bir kullanım senaryosu, bir deneyin yalnızca mobil kullanıcılar için gösterilmesi gerektiğidir. Ancak aynı zamanda QA işlemini session storage üzerinden de gerçekleştirmek istersin.

Deney, yalnızca QA session storage mevcutsa VE ekran genişliği bir mobil cihaza karşılık geliyorsa oynatılmalıdır.

//Audience Targeting for QA with Session Storage
const STORAGE_KEY = 'varify-test';
const STORAGE_VALUE = 'true';
let isValueMatched = sessionStorage.getItem(STORAGE_KEY) === STORAGE_VALUE;

//Audience Targeting for mobile users
let mobileWidth = window.innerWidth < 768;

// //Combined with AND operator. Return true if both variables are true.
return isValueMatched && mobileWidth;
  • Session storage ile QA için uygulama örneğinde, return bir değişken oluşturur (let isValueMatched =)
  • Aynı şekilde mobil hedef kitle hedefleme kodunun return'ü için de geçerlidir (let mobileWidth =)
  • Değişken adlarını kendin tanımlayabilirsin, ancak farklı olmaları gerekir
  • İki değişkenin bir VE koşuluyla bağlandığı "return" ile yeni bir satır eklenmiştir -> &&

Deney sadece her iki değişkenin de true değerine sahip olması durumunda gösterilir.

Bir koşul yerine getirilmelidir (OR)​

Ancak bazen tüm koşulların karşılanması gerekmeyen hedef kitle hedefleme senaryolarını birleştirmek istersiniz. Bu durumda değişkenler bir OR operatörü ile bağlanır.

Bir örnek, deneyi sadece belirli bir kampanyanın veya yönlendirenin ziyaretçilerine göstermek istemen olabilir. Bunu yapmak için iki senaryonun bir OR ile bağlanması gerekir.

//Audience Targeting for Specific Campaign
const AD_CAMPAIGN = 'YOUR_AD_CAMPAIGN_HERE';
let specificCampaign = new URL(window.location).searchParams.get('utm_source') === AD_CAMPAIGN;

//Audience Targeting for Specific Referrer
const REFERRER_URL = 'https://www.google.com/'
let specificReferrer = document.referrer === REFERRER_URL;

//Combined with OR operator
return specificCampaign || specificCampaign;
  • Kampanya senaryosunun return'ünden bir değişken (let specificCampaign =) oluşturuldu
  • Yönlendiren senaryosunun return'ünden değişken (let specificReferrer =) oluşturuldu
  • Her iki değişkenden OR Operatörü || ile yeni bir return sorgusu oluşturuldu

İki değişkenden en az biri true değerini içeriyorsa, deney oynatılır.

Teknik açıklama​

Audience Targeting alanında, hedeflemenin uygulanıp uygulanmadığını belirlemek için çalıştırılacak herhangi bir JavaScript tanımlanabilir. Dönüş değeri falsy olduğu sürece, JavaScript her çalıştırmadan sonra yeniden yüklenir. 2000ms'ye ulaşılana kadar 100ms aralıklarla çalıştırılır. Bundan sonra iptal edilir ve kullanıcı audience targeting kapsamına girmez. Promise dönüşleri kullanılarak asenkron özellikler kontrol edilebilir.

Bir deneyin audience targeting olmadan oynatılması isteniyorsa, ekran görüntüsünde gösterildiği gibi varsayılan değeri (return true;) bırakman gerekir.