Sự kiện đường ống cho phép bạn theo dõi tiến trình của người dùng thông qua các giai đoạn chính của trải nghiệm của bạn. Điều này bao gồm:
- Hòa nhập - Nơi người dùng thả khi bắt đầu với trải nghiệm của bạn?
- Tiến trình - Nơi người dùng dừng tiến bộ qua trải nghiệm của bạn?
- Cửa hàng - Nơi người dùng từ bỏ việc mua hàng?
Khi bạn bắt đầu theo dõi sự kiện Đường ống, bạn sẽ mở khóa trang Đường ống của bảng điều khiển Phân tích trên Trung tâm Nhà sáng tạo.Bạn có thể thêm tab vào bảng điều khiển cho đến mười ống dẫn.
Theo dõi sự kiện ống truyền thông
Để theo dõi sự kiện đường ống, trước tiên xác định các đường ống quan trọng nhất trong trải nghiệm của bạn và phân chúng thành các bước.Dòng onboarding của bạn là một nơi tuyệt vời để bắt đầu, bởi vì đây là nơi bạn có thể mất hầu hết người dùng của mình.
Theo dõi đường ống một lần
Một ống dẫn một lần theo dõi sự kiện chuyển đổi chỉ xảy ra một lần cho mỗi người dùng.
Một ví dụ phổ biến là một ống dẫn huấn luyện mà rất quan trọng để hiểu cách cải thiện tỷ lệ giữ chân người dùng mới và thời gian phiên của bạn.Ví dụ sau đây là ống dẫn onboarding cho Cây , một trải nghiệm tycoon nơi người dùng mới nhập vào một nông trại, gieo hạt, tưới nước và nhiều hơn nữa theo thứ tự tuần tự:
Theo dõi các bước huấn luyện trong nhà máy
local AnalyticsService = game:GetService("AnalyticsService")-- Ghi lại bước đầu tiên của FTUEAnalyticsService:LogOnboardingFunnelStepEvent(player,1, -- Số bước"In Farm" -- Tên bước)-- Ghi lại bước thứ haiAnalyticsService:LogOnboardingFunnelStepEvent(player,2, -- Số bước"Plant Seed" -- Tên bước)
Theo dõi các đường ống lặp lại
Một ống truyền lặp lại theo dõi các sự kiện chuyển đổi xảy ra nhiều lần mỗi người dùng.
Một ví dụ phổ biến là một ống nối cửa hàng mà rất quan trọng để hiểu cách cải thiện việc chuyển đổi người trả tiền cho trải nghiệm của bạn, ARPPU và doanh thu.Ví dụ sau đây là ống dẫn cửa hàng nơi người dùng mở cửa hàng, xem mặt vật phẩm, thêm mặt hàng vào giỏ hàng, và nhiều hơn nữa.
Sử dụng funnelSessionId để phân biệt giữa các phiên khác nhau của cùng một người dùng trong một đường ống lặp lại, chẳng hạn như mở cửa hàng nhiều lần trong một phiên.
Theo dõi các bước của Cửa hàng
local AnalyticsService = game:GetService("AnalyticsService")local HttpService = game:GetService("HttpService")funnelSessionId = HttpService:GenerateGUID()-- Ghi lại khi người dùng mở cửa hàngAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Tên đường ống được sử dụng để nhóm các bước lại với nhaufunnelSessionId, -- ID phiên lọc cho phiên thanh toán độc đáo này1, -- Số bước"Opened Store" -- Tên bước)-- Ghi lại khi người dùng xem một vật phẩmAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Tên đường ống được sử dụng để nhóm các bước lại với nhaufunnelSessionId, -- ID phiên lọc cho phiên thanh toán độc đáo này2, -- Số bước"Viewed Item" -- Tên bước)-- Ghi lại khi người dùng xem thêm vào giỏ hàngAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Tên đường ống được sử dụng để nhóm các bước lại với nhaufunnelSessionId, -- ID phiên lọc cho phiên thanh toán độc đáo này3, -- Số bước"Added to Cart" -- Tên bước)
Thực hiện funnelSessionId
Khi triển khai ống dẫn, một funnelSessionId có thể giúp bạn theo dõi các sự kiện của mình nhưng có thể không cần thiết trong mọi trường ví dụ / trường hợp. Sử dụng các hướng dẫn sau đây:
- Ống dẫn một lần - Bạn không cần phải sử dụng funnelSessionId cho ống dẫn một lần vì chúng chỉ xảy ra một lần cho mỗi người dùng.
- Lưu trữ đường ống - Sử dụng funnelSessionId để phân biệt giữa các phiên khác nhau của cùng một người dùng trong một đường ống lặp lại, chẳng hạn như mở cửa hàng nhiều lần trong một phiên duy nhất trong ví dụ trước.Trong những trường hợp như thế này, nơi mà người chơi có thể mở cửa hàng nhiều lần trong một phiên, được khuyến khích sử dụng một GUID là funnelSessionId .
- Nâng cấp vật phẩm - Sử dụng funnelSessionId để phân biệt giữa các con đường nâng cấp vật phẩm khác nhau, thường trong một khoảng thời gian lâu hơn một phiên chơi duy nhất.Thay vì sử dụng một GUID như trong trường hợp đường ống cửa hàng, bạn thường có thể xây dựng một chìa khóa duy nhất dựa trên mục được nâng cấp, ví dụ: <playerId>-<itemId> .
Bước đầu tiên
Ống dẫn bắt đầu khi bước đầu tiên được ghi lại.Nếu bạn muốn bắt đầu một ống dẫn ngay lập tức khi người chơi tham gia, bạn sẽ cần phải ghi lại bước đầu tiên trên sự kiện PlayerAdded.
Ghi lại bước đầu tiên trong sự kiện PlayerAdded
local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Số bước
"Player Joined" -- Tên bước
)
end)
Các bước lặp lại
Nếu một người dùng lặp lại một bước trong ống dẫn, ống dẫn chỉ xem xét ví dụ đầu tiên của bước.Ví dụ, nếu người dùng ghi lại bước 2 của ống dẫn hai lần, ống dẫn chỉ tính bước đầu tiên của bước 2.
Bỏ qua các bước
Nếu vì lý do nào đó bạn bỏ qua một bước trong ống dẫn, các bước trước đó sẽ hoàn thành tự động.
Ví dụ, nếu bạn có một ống dẫn với các bước 1, 2 và 3.Nếu bạn ghi lại bước 3 mà không ghi lại bước 1 hoặc 2, ống dẫn sẽ coi bước 1 và 2 đã hoàn thành.
Sử dụng bộ lọc đường ống
Roblox cung cấp các bộ lọc để giúp bạn phân tích dữ liệu đường ống của mình.Chúng bao gồm dữ liệu người chơi, dữ liệu thiết bị, và bạn cũng có thể gửi dữ liệu tùy chỉnh.Trong một số trường hợp, tình trạng của người chơi có thể thay đổi trong ống dẫn, chẳng hạn như khi người chơi chuyển đổi thiết bị từ di động sang máy tính.
Để tránh tính lặp lại các ống dẫn, bộ lọc luôn chỉ áp dụng cho bước đầu tiên của ống dẫn.Điều này có nghĩa là nếu một người chơi chuyển đổi thiết bị trong ống dẫn, ống dẫn chỉ sẽ được gán cho thiết bị của họ tại thời điểm họ bước vào ống dẫn.
Tương tự, ống dẫn hiển thị theo nhóm, có nghĩa là nếu một người chơi vào ống dẫn vào ngày 6/19, ống dẫn sẽ được gán cho nhóm 6/19 ngay cả khi họ hoàn thành ống dẫn vào ngày 6/20.
Sửa đổi ống dẫn
Sau khi bạn thực hiện cập nhật cho các bước trong ống funnel của mình, việc đặt phạm vi ngày chính xác để xem funnel mới nhất là rất quan trọng.Nếu ngày hiện tại là 6/21 và bạn đã cập nhật bước 2 của ống dẫn onboarding vào ngày 6/14, bạn nên đặt phạm vi ngày lên 6/14 - 6/21 để xem ống dẫn mới nhất.
Nếu bạn chọn phạm vi ngày bao gồm bản cập nhật bước đường ống, một cảnh báo hiển thị trên bước liên quan:

Bảo vệ đường dẫn của bạn khỏi kẻ lạm dụng
Để giữ dữ liệu của bạn sạch sẽ, việc thêm một số cấp độ xác minh dữ liệu trong mã máy chủ của bạn là rất quan trọng để ngăn chặn các kẻ tấn công gửi dữ liệu không hợp lệ vào dịch vụ phân tích của bạn.
Ví dụ, nếu bạn có một ống dẫn huấn luyện với 3 bước, bạn có thể sử dụng một RemoteEvent để khách hàng thông báo cho máy chủ khi người chơi đã hoàn thành mỗi bước và thêm một kiểm tra máy chủ để đảm bảo rằng số bước là hợp lệ trước khi ghi lại sự kiện:
Mã sự mãbên khách
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) -- invalid step
Mã sự kiện bên máy mã
local 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(`Invalid tutorial step {step} received from client.`)
return
end
print(`{player.Name} completed step: {step}`)
AnalyticsService:LogOnboardingFunnelStepEvent(player, step)
end
onboardingEvent.OnServerEvent:Connect(onPlayerEventFired)
Sử dụng trường tùy chỉnh
Sự kiện đường ống cũng cho phép phá vỡ trên các trường tùy chỉnh để hỗ trợ so sánh dễ dàng hơn giữa các phân đoạn.Ví dụ, bạn có thể theo dõi xe khởi động nào cung cấp tiến trình tốt nhất cho người chơi, hoặc gắn các bản đồ khác nhau để xem liệu có bản đồ nào có chu kỳ trò chơi tốt hơn người khác không.

Để biết thêm thông tin, xem trường tùy chỉnh.
Sử dụng ống dẫn để phát triển trải nghiệm của bạn
Một trong những đường ống quan trọng nhất để theo dõi là huấn luyện vì nhiều trải nghiệm đấu tranh với sự giữ chân và tương tác của người dùng mới.
Trong ống dẫn onboarding cho Cây bên dưới, phần thả lớn nhất là bước 2 ("Hạt giống").

Dựa trên dữ liệu này, bạn có thể:
- Thêm các chỉ báo ngữ cảnh để hướng dẫn người dùng tốt hơn khi họ bắt đầu trồng hạt giống.
- Thiết kế một trải nghiệm người dùng mới yêu cầu người dùng trồng hạt giống và trồng một cây thành công trước khi khám phá phần còn lại của trải nghiệm.Bạn có thể cải thiện sự kiện này bằng cách tạo các yếu tố phản hồi tích cực hoặc các kỹ thuật thiết kế trò chơi khác.
