Funnel olayları, kullanıcılarınızın oyununuzun önemli aşamalarındaki ilerlemesini takip etmenizi sağlar. Bu, şunları içerir:
- Eğitim — Kullanıcılar oyuna başlarken nerede ayrılıyor?
- İlerleme — Kullanıcılar oyunda nerede ilerlemeyi durduruyor?
- Dükkan — Kullanıcılar satın alımları nerede terk ediyor?
Oyununuza funnel olaylarını takip etmeye başladığınızda, Creator Hub'daki Analytics kontrol panelinin Funnel sayfasını açarsınız. Kontrol paneline en fazla on funnel için sekmeler ekleyebilirsiniz.
Funnel olaylarını takip etme
Funnel olaylarını takip etmek için, önce oyununuzdaki en önemli funnel'ları belirleyin ve bunları adımlara ayırın. Amaç oyuncu davranışını anlamak olduğundan, bu adımlar genellikle bir eylem veya başarı ile ilişkilidir.
Bir RPG'de, oyuna katılma, bir sınıf seçme, başlangıç odasından çıkma gibi adımlarınız olabilir. Genellikle, bir oyuncu bir adımı tamamladıktan sonra LogFunnelStepEvent() veya LogOnboardingFunnelStepEvent() çağrısını yaparsınız, ancak en önemli şey bu yöntemleri ne zaman çağırdığınızda tutarlı olmaktır ve kolayca yorumlanabilir isimler kullanmaktır.
Eğitim akışınız, funnel olaylarını takip etmeye başlamak için harika bir yerdir, çünkü muhtemelen kullanıcılarınızın çoğunu kaybettiğiniz yer burasıdır.
Tek seferlik funnel'ları takip etme
Tek seferlik bir funnel, her kullanıcı için yalnızca bir kez gerçekleşen dönüşüm olaylarını izler.
Yaygın bir örnek, oyununuzun yeni kullanıcı tutma ve oturum süresini nasıl iyileştireceğinizi anlamak için kritik öneme sahip olan eğitim funnel'ıdır. Aşağıdaki örnek, yeni kullanıcıların bir çiftliğe girdiği, tohum ektiği, bitki suladığı ve daha fazlasını ardışık olarak yaptığı Plant adlı bir tycoon oyunu için bir eğitim funnel'ıdır:
local AnalyticsService = game:GetService("AnalyticsService")
-- FTUE'nin ilk adımını kaydet
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Adım numarası
"Çiftlikte" -- Adım adı
)
-- İkinci adımı kaydet
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
2, -- Adım numarası
"Tohum Ekle" -- Adım adı
)Tekrarlayan funnel'ları takip etme
Tekrarlayan bir funnel, kullanıcı başına birden fazla kez gerçekleşen dönüşüm olaylarını izler.
Yaygın bir örnek, oyununuzun ödeme dönüşümünü, ARPPU'yu ve gelirini nasıl iyileştireceğinizi anlamanıza yardımcı olabilecek bir dükkan funnel'ıdır. Aşağıdaki örnek, kullanıcıların dükkanı açtığı, öğeyi görüntülediği, sepete eklediği ve daha fazlasını yaptığı bir dükkan funnel'ıdır.
Tekrarlayan bir funnel'da, aynı kullanıcının farklı oturumlarını ayırt etmek için funnelSessionId kullanın; örneğin, bir oturumda dükkanı birden fazla kez açma durumunda.
local AnalyticsService = game:GetService("AnalyticsService")
local HttpService = game:GetService("HttpService")
local funnelSessionId = HttpService:GenerateGUID()
-- Kullanıcı dükkanı açtığında kaydet
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Adımları bir araya getirmek için kullanılan funnel adı
funnelSessionId, -- Bu benzersiz ödeme oturumu için funnel oturum ID'si
1, -- Adım numarası
"Dükkanı Açtı" -- Adım adı
)
-- Kullanıcı bir öğeyi görüntülediğinde kaydet
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Adımları bir araya getirmek için kullanılan funnel adı
funnelSessionId, -- Bu benzersiz ödeme oturumu için funnel oturum ID'si
2, -- Adım numarası
"Öğeyi Görüntüledi" -- Adım adı
)
-- Kullanıcı sepete eklediğinde kaydet
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Adımları bir araya getirmek için kullanılan funnel adı
funnelSessionId, -- Bu benzersiz ödeme oturumu için funnel oturum ID'si
3, -- Adım numarası
"Sepete Ekle" -- Adım adı
)funnelSessionId'yi Uygulama
Funnel'ları uygularken, bir funnelSessionId olaylarınızı takip etmenize yardımcı olabilir, ancak her durumda gerekli olmayabilir. Aşağıdaki yönergeleri kullanın:
- Tek seferlik funnel'lar - Tek seferlik funnel'lar için funnelSessionId kullanmanıza gerek yoktur çünkü bunlar her kullanıcı için yalnızca bir kez gerçekleşir.
- Dükkan funnel'ları - Tekrarlayan bir funnel'da, aynı kullanıcının farklı oturumlarını ayırt etmek için funnelSessionId kullanın; örneğin, önceki örnekte olduğu gibi bir oturumda dükkanı birden fazla kez açma durumunda. Bu gibi durumlarda, oyuncunun bir oturumda dükkanı birden fazla kez açabileceği durumlarda, funnelSessionId olarak bir GUID kullanmanız önerilir.
- Öğe yükseltmeleri - Farklı öğe yükseltme yollarını ayırt etmek için funnelSessionId kullanın; genellikle bir oyun oturumundan daha uzun bir zaman diliminde. Dükkan funnel'ı durumunda olduğu gibi bir GUID kullanmak yerine, genellikle yükseltilen öğeye dayalı olarak benzersiz bir anahtar oluşturabilirsiniz; örneğin: <playerId>-<itemId>.
Analytics, her funnel için kullanıcı başına en son 10 benzersiz funnelSessionId değerini takip eder. Bir kullanıcı, o funnel için en son 10'unda olmayan bir funnelSessionId kullanırsa, funnel bunu yeni bir oturum olarak sayar.
İlk adım
Funnel'lar, ilk adım kaydedildiğinde başlar. Bir funnel'ı oyuncu katıldığında hemen başlatmak istiyorsanız, PlayerAdded olayında ilk adımı kaydedin.
local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Adım numarası
"Oyuncu Katıldı" -- Adım adı
)
end)Tekrarlanan adımlar
Bir kullanıcı bir funnel'daki bir adımı tekrar ederse, funnel yalnızca adımın ilk örneğini dikkate alır. Örneğin, bir kullanıcı bir funnel'ın 2. adımını iki kez kaydederse, funnel yalnızca 2. adımın ilk örneğini sayar. Kullanıcıların bağlantı kesip yeniden bağlandığı durumlarda tek seferlik funnel'lar için özel bir işlem yapmanıza gerek yoktur ve funnelSessionId tekrarlayan funnel'ları yönetir.
Tekrarlanan adımlar funnel tarafından göz ardı edilir, ancak yine de kaydedilir ve küresel oran limitine katkıda bulunur.
Atlanan adımlar
Herhangi bir nedenle bir funnel'daki bir adımı atlarsanız, önceki adımlar otomatik olarak tamamlanır. Örneğin, 1, 2 ve 3 adımlarına sahip bir funnel'ınız varsa ve 1 veya 2 adımlarını kaydetmeden 3. adımı kaydederseniz, funnel 1 ve 2 adımlarını tamamlanmış olarak kabul eder.
Funnel filtrelerini kullanma
Roblox, funnel verilerinizi analiz etmenize yardımcı olacak filtreler sağlar. Bunlar oyuncu verileri ve cihaz verilerini içerir ve özel veriler de gönderebilirsiniz. Bazı durumlarda, bir oyuncunun durumu funnel sırasında değişebilir; örneğin, oyuncu mobil cihazdan masaüstü cihaza geçerse.
Funnel'ları çift saymaktan kaçınmak için filtreler yalnızca funnel'ın ilk adımına uygulanır. Bu, bir oyuncu funnel sırasında cihaz değiştirirse, funnel'ın yalnızca funnel'a girdikleri zamandaki cihazlarına atfedileceği anlamına gelir.
Benzer şekilde, funnel'lar kohortlara göre görüntülenir; bu, bir oyuncu 6/19'da funnel'a girerse, funnel'ın 6/20'de tamamlanmış olsa bile 6/19 kohortuna atfedileceği anlamına gelir.
Funnel'ları değiştirme
Funnel adımlarınızda bir güncelleme yaptıktan sonra, en son funnel'ı görmek için doğru tarih aralığını ayarlamak önemlidir. Mevcut tarih 6/21 ise ve 6/14'te eğitim funnel'ınızın 2. adımını güncellediyseniz, en son funnel'ı görüntülemek için tarih aralığını 6/14 – 6/21 olarak ayarlamalısınız.
Bir tarih aralığı seçtiğinizde ve bu aralıkta bir funnel adımı güncellemesi varsa, ilgili adımda bir uyarı görüntülenir:

Funnel'larınızı kötü niyetli kullanıcılardan koruyun
Verilerinizi temiz tutmak için, kötü niyetli kullanıcıların analitik hizmetinize geçersiz veriler göndermesini önlemek için sunucu kodunuzda bir düzeyde veri doğrulama eklemek önemlidir.
Örneğin, üç adımlı bir eğitim funnel'ınız varsa, her adımı tamamladığında sunucuya bildirmek için istemci için bir RemoteEvent kullanabilir ve olayı kaydetmeden önce adım numarasının geçerli olduğunu kontrol etmek için bir sunucu kontrolü ekleyebilirsiniz:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local onboardingEvent = ReplicatedStorage:WaitForChild("OnboardingEvent")
local function fireOnboardingEvent(step: number)
onboardingEvent:FireServer({ step = step })
end
fireOnboardingEvent(1)
fireOnboardingEvent(2)
fireOnboardingEvent(10) -- geçersiz adımlocal AnalyticsService = game:GetService("AnalyticsService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local onboardingEvent = ReplicatedStorage:WaitForChild("OnboardingEvent")
local maxStep = 3
local function onPlayerEventFired(player: Player, args: { step: number })
local step = args.step
if(step > maxStep) then
warn(`İstemciden alınan geçersiz eğitim adımı {step}.`)
return
end
print(`{player.Name} adımı tamamladı: {step}`)
AnalyticsService:LogOnboardingFunnelStepEvent(player, step)
end
onboardingEvent.OnServerEvent:Connect(onPlayerEventFired)Özel alanları kullanma
Funnel olayları, segmentler arasında daha kolay karşılaştırma sağlamak için özel alanları ayırmanıza da olanak tanır. Örneğin, hangi başlangıç aracının oyunculara en iyi ilerlemeyi sağladığını takip edebilir veya farklı haritalar ekleyerek belirli bir haritanın diğerlerinden daha iyi bir oyun döngüsüne sahip olup olmadığını görebilirsiniz.

Daha fazla bilgi için özel alanlar sayfasına bakın.
Funnel'ları oyununuzu büyütmek için kullanma
Takip edilmesi en önemli funnel'lardan biri eğitim funnel'ıdır çünkü birçok oyun yeni kullanıcı tutma ve etkileşimde zorluk çeker.
Aşağıdaki Plant için eğitim funnel'ında, en büyük düşüş 2. adımda ("Tohum Ekle") gerçekleşmektedir.

Bu verilere dayanarak, şunları yapabilirsiniz:
- Kullanıcıları tohum eklemeye yönlendirmek için daha iyi yönlendirme göstergeleri ekleyin.
- Kullanıcıların oyunun geri kalanını keşfetmeden önce tohum ekleyip başarılı bir bitki yetiştirmelerini gerektiren yeni bir kullanıcı deneyimi tasarlayın. Bu olayı, olumlu geri bildirim unsurları oluşturarak veya diğer oyun tasarım tekniklerini kullanarak geliştirebilirsiniz.
