Deneyim bildirimleri

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Deneyim bildirimleri 13 yaş ve üzeri kullanıcıların favori deneyimlerini zamanında, kişiselleştirilmiş bildirimlerle takip etmeleri için bir yoldur.Geliştirici olarak, kullanıcılarınızı bilgilendirmek için en önemli deneyim içi aktivitelerin türünü belirleyebilir ve bildirim içeriğini tanımlayabilirsiniz.

Example notification
Example notification

Deneyim bildirim sistemi takip edileniçerir:

  • Özel parametrelere sahip özelleştirilebilir bildirimler — Örneğin bildirim mesajını parametrelere özelleştirmeye tam esneklik, örneğin:

    Your gold goose egg has hatched!

    Allie @LaterSk8er1 just beat your record on the Tokyo Tour track!

  • Başlatma Verileri — Bildirim alıcısı katıldığında başlatma verileri okunabilen opcional ekleyin Player:GetJoinData() ile.Bu, bir kullanıcıyı bir koordinat konumuna yönlendirmek veya katılma deneyimlerini kişiselleştirmek gibi olabilir.

  • İstatistik Desteği — Erişebileceğiniz izleyici kitleyi ve bildirilerinizin performansını Yaratıcı Panosu 'da izleyin.

Uygunluk gereksinimleri

API'leri bildirim göndermek için kullanmak için, deneyim aşağıdaki temel kriterleri karşılamalıdır:

  • başlatbu yana minimum 100 ziyaret.
  • Deneyim moderasyon altında olmamalıdır.
  • Geliştirici olarak deneyimi yönetmek için izin almalısınız.

Kullanım yönergeleri

Bildirimler alıcıya özelleştirilmeli ve kullanıcıyla ilgili deneyim aktivitesine dayanmalıdır ki özellikle kullanıcıyla ilgilidir .Tersine, bildirimler genel veya reklam niteliğinde olmamalıdır.

İdeal olarak, bildirimler de kullanıcıları bir şeyden haberdar etmelidir hemen eylem atabilirler , üzerinde.Doğrudan bir yanıt veya aksiyontalep etmeyen sadece bilgilendirici bildirimlerden kaçının.

Tüm bildirim içeriği ve davranışları Roblox'un Topluluk Standartlarına ve platform çapı metin filtrelemeye tabidir, deneyiminizin yaş politikalarına rağmen.Bu, deneyiminizin 17+ deneyim olduğu durumda, bildirimlerinizin hala platform çapı standartlara tabi olduğunu, değil 17+ Politika Standartları olduğunu ifade eder.

Bildirim içeriği karanlık kalıpları veya kullanıcıları manipüle eden veya kullanıcıların niyet etmedikleri seçimler yapmasını sağlayan diğer taktikleri içermeye izin verilmez, ki bu onların en iyi çıkarlarına karşı olabilir.Bunlar takip edileniçerebilir:

  • Kılık değiştirilmiş reklamlar — Kasten organik içerik olarak gizlenen bildirimler, ancak aslında reklam.Örneğin, aşağıdaki bildirime tıklamak Petz World'e yol açsa da "önemli bilgi" görünmediğini varsayalım.

  • Zaman Basıncı Eylemleri — Kullanıcıları yanlış zaman baskısı uygulayarak tıklamaya, abone olmaya, onaylamaya veya satın almaya zorlayan bildirimler.

  • Ücretsiz Eşyalarla Yem ve Değiştirme veya Diğer Ödüllerle — Kullanıcılara, değil olduğunda ücretsiz bir şey alacaklarını yanlış söyleyen bildirimlerÖrneğin, aşağıdaki bildirime tıkladıktan sonra, hediyeyi almak için daha fazla bir şeyin gerekli olduğu açıkça görülür.

  • Kullanıcıları Satın Almaya Kandırmak — Kullanıcıları kasıtlı olmayan satın alımlar yapmaya ikna eden bildirimler.Örneğin, aşağıdaki bildirime tıklamak kullanıcının satın almayı seçmediği öğelerle önceden yüklü bir satın alma sistemine doğrudan yönlendirdiğini varsayalım.

Deneyimlerin katılmak veya oynanışoynamada ilerlemek için kullanıcıların bildirimleri açması gerekmemelidir .

Uygulama

Deneyim bildirimlerinin uygulanması, bir bildirim dizesi oluşturmakla ve projenize paket dahil etmekle başlar .Bunlar kurulduktan sonra, isteğe bağlı isteğe bağlı özel parametler ile bildirim gönderebilirsiniz.

Alternatif olarak, ücretsiz API istekleri aracılığıyla bildirimleri tetiklemek için Açık Bulut API'yi kullanabilirsiniz.

Bir bildirim dizioluştur

Oyuncu Davet İpuçları ile olduğu gibi, bildirim dize yaratma ve düzenleme işlemlerinizi Yaratıcı Panosu üzerinde yapmalısınız. Varsayılan deneyim bildirim diziyok, bu nedenle bu adım gereklidir.

  1. Navigate to the Yaratıcı Panosuna.

  2. başarımlara benzer şekilde, bildirim dizeeleri bir özel deneyime bağlıdır. Bu deneyimin küçük resmini bulun ve üzerine tıklayın.

  3. Sol sütunda, Katılım altında, Bildirimler 'e tıklayın.

  4. Orta bölgede, Bir Bildirim Dizesi Oluştur düğmesine tıklayın.

  5. Bir tanımlayıcı adı (yalnızca sizin tarafınızdan görülebilir) ve özel bildirim dizidoldurun; bu 99 karaktere sınırlıdır ve sınırsız özel parametreler içerebilir.Bildirimler deneyiminizin başlığını otomatik olarak bildirim başlığı olarak kullanacak, ancak deneyiminizi bildirim vücut metninde referans olarak kullanmak için ek olarak experienceName kullanabilirsiniz.

    Örnek bildirim dizeeleri:

    You're {numQuests} quests away from completing the weekly challenge!

    Your {eggName} hatched! Come meet your new pet.

    You won {numRaces} races this week and unlocked the {racetrackName} track!

    {userId-friend} just beat your record on the Tokyo Tour track! Time for revenge?

  6. Hazır olduğunda, Bildirim Dizesi Oluştur düğmesine tıklayın.

  7. Bildirim sayfasında, bildirim tablosunda, Eylemler sütununda düğmesine tıklayın ve Varlık Kimliğini Kopyala seçin.

  8. Kopyalanmış kimlik, messageId anahtar değeri için payload tablosundaki örneğin gösterildiği gibi örnek kodda kullanın.

Paketi içerek

Deneyim bildirimlerini uygulamak için, Luau paketini Yaratıcı Mağazasından almalısınız.

  1. Görüntü sekmesinden açın Araç çantası ve Yaratıcı mağazası sekmesini seçin.

    Toolbox toggle button in Studio
  2. Modellerin sıralanması seçildiğinden emin olun, ardından Tümünü Görüntüle düğmesine tıklayın Kategoriler için >.

  3. Yerini ve tıklayın Geliştirici Modülleri düğmesi.

  4. Açık Bulut modülünü bulun ve tıklayın veya 3B görüntüye sürükleyin ve bırakın.

  5. Araştırıcı penceresinde, tüm OpenCloud modelini ServerScriptService ye taşıyın.

Bir deneyim bildirimi gönder

Bir bildirim dizesi oluşturduktan ve projene paket dahil ettikten sonra, sunucu tarafındaki bildirimleri gönderebilirsiniz.Bildirimler, Roblox bildirim tüketaracılığıyla 13 yaş ve üzeri seçilmiş kullanıcılara gönderilecek ve bu noktada deneyime doğrudan katılabileceklerdir katılma düğmesine basarak ve çıkış verilerinize göre başlatılacaktır başlatma .

Notifications stream on the Roblox app

Belirli bir kullanıcıya temel bir bildirim göndermek için, ödülün bildirim dize özniteliği ID'sini içeren alanına, ardından alıcının createUserNotification fonksiyonunu ile isteğin ve istek verilerini çağırın.

Bir deneyim bildirimi gönder

local ServerScriptService = game:GetService("ServerScriptService")
local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)
local recipientPlayerID = 505306092
-- Yüklemede, "messageId" bildirim varlığı ID'sinin değeridir
local userNotification = {
payload = {
messageId = "5dd7024b-68e3-ac4d-8232-4217f86ca244",
type = "MOMENT"
}
}
local result = OCUserNotification.createUserNotification(recipientPlayerID, userNotification)
if result.statusCode ~= 200 then
print(result.statusCode)
print(result.error.code)
print(result.error.message)
end

Özel parametler kullanarak bildirimleri özelleştir

Her alıcı için bildirimi özelleştirmek için, parametreleri bildirim dizesine ekleyebilirsiniz, ardından API'yi çağırdığınızda parametleri özelleştirebilirsiniz.Örneğin, bildirim dizesini şu şekilde tanımlayabilirsiniz:

{userId-friend} beat your high score by {points} points! Time to level up?

Sonra, senaryoda userId-friend ve points parametlerini ayarlayın:

Parametreleri Kullanarak Bildirimi Özelleştir

local ServerScriptService = game:GetService("ServerScriptService")
local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)
local recipientPlayerID = 505306092
local userIdFriendParam = {int64Value = 3702832553}
local pointsParam = {stringValue = "5"}
-- Yüklemede, "messageId" bildirim varlığı ID'sinin değeridir
-- Bu örnekte, bildirim dizesi "{userId-friend} puan {points} ile yüksek puanınızı yendi! Yükseltme zamanı?"
local userNotification = {
payload = {
messageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1",
type = "MOMENT",
parameters = {
["userId-friend"] = userIdFriendParam,
["points"] = pointsParam
}
}
}
local result = OCUserNotification.createUserNotification(recipientPlayerID, userNotification)
if result.statusCode ~= 200 then
print(result.statusCode)
print(result.error.code)
print(result.error.message)
end

Kullanıcılara bildirimleri etkinleştirmelerini istemek

Kullanıcıların deneyiminiz için bildirimleri etkinleştirmelerini teşvik etmek için, ExperienceNotificationService:PromptOptIn() yöntemi kullanarak 13 yaş ve üzeri kullanıcılara deneyim içi izin isteği görüntüleyebilirsiniz.

The in-experience permission prompt encourages users to enable notifications

Deneyiminizde gelecekte bir bildirim gerektiren herhangi bir uyarıcıyı tetikleyebilirsiniz.İstemcinin metni özelleştirilemez ve tüm deneyimler arasında standartlaştırılır.

Kullanıcı: görünmezse modal ortaya çıkmaz eğer:

  • 13 yaşın altında.
  • Deneyiminiz için zaten bildirimleri etkinleştirdi.
  • Son 30 günde deneyiminiz için izin isteğini zaten gördü.

Kullanıcılara bildirimleri etkinleştirmelerini istemek için önce kullanıcının uygun olup olmadığını belirlemelisiniz.Onaylandıktan sonra, izin isteğini kullanıcıya gösterebilirsiniz.

  1. Çağrı , bazen başarısız olabilecek asenkron bir ağ çağrısı içinde sarılır.
  2. Kullanıcıya sorulabilirse, ExperienceNotificationService:PromptOptIn() 'yi arayın.
YerelScript - Bildirim İzin Promptu Uygulaması

local ExperienceNotificationService = game:GetService("ExperienceNotificationService")
-- Oyuncunun bildirimleri etkinleştirmeye teşvik edilip edilmediğini kontrol etmek için işlev
local function canPromptOptIn()
local success, canPrompt = pcall(function()
return ExperienceNotificationService:CanPromptOptInAsync()
end)
return success and canPrompt
end
local canPrompt = canPromptOptIn()
if canPrompt then
local success, errorMessage = pcall(function()
ExperienceNotificationService:PromptOptIn()
end)
end
-- Katılma isteği kapalı etkinliği dinle
ExperienceNotificationService.OptInPromptClosed:Connect(function()
print("Opt-in prompt closed")
end)

Başlatma ve analiz verilerini dahil et

Kullanıcı deneyimini daha da geliştirmek için, yönlendirme verileri ni bildirime dahil edebilirsiniz, böylece kullanıcıları bir koordinat konumuna yönlendirmek veya katılma deneyimini kişiselleştirmek gibi senaryolara uygun olur.Ayrıca, farklı kategori notlarının performansını bölmek için analiz verilerini de ekleyebilirsiniz.Lütfen ayrıca başlatma verilerinin nasıl ayarlanabileceği ve kullanılabileceğine dair Oyuncu davet uyarıları örneğine de bakın.

Başlatma Verileri ve Analiz Verileri Dahil Et

local ServerScriptService = game:GetService("ServerScriptService")
local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)
local recipientPlayerID = 505306092
-- Yüklemede, "messageId" bildirim varlığı ID'sinin değeridir
local userNotification = {
payload = {
messageId = "5dd7024b-68e3-ac4d-8232-4217f86ca244",
type = "MOMENT",
joinExperience = {
launchData = "Test_Launch_Data"
},
analyticsData = {
category = "Test_Analytics_Category"
}
}
}
local result = OCUserNotification.createUserNotification(recipientPlayerID, userNotification)
if result.statusCode ~= 200 then
print(result.statusCode)
print(result.error.code)
print(result.error.message)
end

Teslimat sistemi

Kullanıcılar için bildirimlerin kalitesini sağlamak ve tüm geliştiriciler için paylaşılan bildirim kanalını korumak için bir spam önleme sistemi mevcuttur.Bu nedenle, bildirimlerin teslimi garanti edilmez.Bu spam önleme sistemi doğrudan kullanıcı etkileşimiyle bilgilendirilir: Kullanıcıların bildirimlerinizle daha fazla etkileşime girmeleri, alacakları erişimi artırır.Engagement metriklerini şeffaf bir şekilde analiz panosunda takip edebilirsiniz, aşağıda açıklanan gibi.

Deneyim bildirimlerinin statik bir sınırı vardır; her kullanıcı, belirli bir deneyimden günde bir bildirim alabilir ve bir kullanıcının debi sınırına ulaşıldığında transparan geri bildirim alırsınız.

Ayrıca, aşağıdaki liste bir bildirimin teslim edilmemesine neden olabilecek bazı özel durumları özetlemektedir:

  • Deneyim uygunluk gereksinimleri karşılanmıyor.
  • Alıcı, deneyiminizden gelen bildirimlere izin vermiyor.
  • Deneyiminiz için alıcının debi sınırına ulaşıldı.
  • Alıcının toplu günlük kısıtım sınırına ulaşıldı.
  • Kayıp veya geçersiz istek parametleri.
  • Bildirim dizesi moder edildi.
  • Kullanıcı bahseden bildiriler için, bu koşullardan herhangi biri karşılandığında teslim olmaz:
    • Alıcı ve bahsedilen kullanıcı arkadaş değildir.
    • Bahsedilen kullanıcının Hayır seçeneği "Roblox hesap ayarlarında etkinlikhakkında arkadaşları güncelle?" altında GizlilikDiğer Ayarlar seçeneği var.

Analizler

Bildirimlerinizin ve bildirilebilir izleyicilerin performansı, Bildirimler sayfasındaki Analitik sekmesinde gösterilir, bildirim dize yapılandırması (basitçe Yaratımlardan Analizlere geçiş).

  1. Navigate to the Yaratıcı Panosuna.
  2. başarımlara benzer şekilde, bildirim dizeeleri bir özel deneyime bağlıdır. Bu deneyimin küçük resmini bulun ve üzerine tıklayın.
  3. Sol sütunda, Katılım altında, Bildirimler 'e tıklayın.
  4. Hedef sayfada, Analitik sekmesine tıklayın ve analitik panoya geçin.

Bildirim özeti

Özet bölümü, bildirilerinizin toplam performansının bir görüntüsü olarak hizmet eder.Performans istatistiklerini görüntülemek için en az 100 toplam izlenme gereklidir.

IstatistikAçıklama
Seçilmiş Kullanıcılar Deneyiminiz için bildirimleri açan toplam kullanıcı sayısı.Lütfen unutmayın ki bu, yalnızca deneyim güncellemelerinin bildirimini alabilen 13 yaşın altındaki kullanıcıları içeriyor, kişiselleştirilmiş deneyim bildirimleri değil.
Etkiler Tüm bildirilerinizin toplu olarak aldığı kullanıcı izlenimlerinin toplam sayısı.
Tıklamalar Tüm bildirilerinizin toplu olarak aldığı tıklama sayısının toplamı.

TRC Tür:CTR

Kullanıcıların bildirimlerinize tıkladığı oranı, tıklama-impressiyon oranı olarak hesaplanır.
Kapatın Kullanıcıların deneyiminiz için bildirimleri doğrudan bildirilerinizden kapatma oranı, kapatma eylemlerinin izlenimlere oranı olarak hesaplanır.
Kabul Etme Kullanıcıların bildirimlerinizi reddetme oranı, izlenimlere göre reddetme eylemlerinin oranı olarak hesaplanır.

Eşyalı istatistikler

Deneyim Bildirimleri tablosu, en az 100 izlenme ile her bir bildirimin ayrıntılı performans istatistiklerini gösterir ve bu bildirimin ilk izlenme tarihine göre sıralanır.

İsim sütunu, bildirim için anahtar tanımlayıcıdır.Varsayılan olarak, adı bildirim dizesini oluştururken belirttiğiniz tanımlayıcı adına eşleşir, ancak API çağrılarınızdaki category alanı aracılığıyla bunu geçersiz kılabilirsiniz, bu durumda category adı değiştirilir.Yaratıcı panosundaki dize adını değiştirmek veya mesaj ID'nizin API çağrısında referans olduğu dizeyi değiştirmek tabloda yeni bir sütun oluşturacaktır.

Farklı dize performansını A/B test etmek istiyorsanız, örneğin benzer bir isimle tümüyle yeni bir bildirim dizesi oluşturmanız önerilir:

  • YumurtaAçma — "Altın yumurtanız yumurtadan çıktı! Yeni evcil hayvanınla tanış!"
  • YumurtaAçmaB — "Zaman açılıyor! Yeni evcil hayvanınla tanış."

API referansı

Fonksiyonlar

createUserNotification yarat

createUserNotification ( kullanıcıId : sayı , kullanıcıBildirimi : KullanıcıBildirimi) : KullanıcıBildirimiSonucu >

Bir sunucu tarafı kriptinden bir bildirim gönderir.alıcıPlayer.UserId ve bir Kullanıcı Bildirimi gerektirir.Bir Kullanıcı Bildirim Sonucu döndürür.

Bir deneyim bildirimi gönder

local ServerScriptService = game:GetService("ServerScriptService")
local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)
local recipientPlayerID = 505306092
-- Yüklemede, "messageId" bildirim varlığı ID'sinin değeridir
local userNotification = {
payload = {
messageId = "5dd7024b-68e3-ac4d-8232-4217f86ca244",
type = "MOMENT"
}
}
local result = OCUserNotification.createUserNotification(recipientPlayerID, userNotification)
if result.statusCode ~= 200 then
print(result.statusCode)
print(result.error.code)
print(result.error.message)
end

Türler

Kullanıcı Bildirimi

Kullanıcıya gönderilecek bildirimin detaylarını içeren tablo.Gerekli payload ve messageId ve type dize ve seçici parameters , joinExperience ve analyticsData tabloları içermelidir.

AnahtarTürAçıklama
messageIddiziYaratıcı Panosu 'da oluşturduğunuz özelleştirilebilir bir bildirim mesajı şablonunu temsil eden bir kimlik.
typedizibildirimtürü. Sadece "MOMENT" şu anda destekleniyor.
parameterstabloBir bildirim mesajı şablonunu görüntülemek için kullanılan bir parametre tablosu. Örnek kullanım için Özel parametreleri kullanarak bildirimleri özelleştirin göz atın.
joinExperiencetabloBir deneyime katılmayı temsil eden bir eylem çağrısı.Şu anda, bir kullanıcı deneye bildirimden katıldığında mevcut bir deneyime sahip olan rastgele verileri temsil eden bir launchData anahtar-değer çiftini destekliyor; bu değer maksimum 200 bayt ile sınırlıdır.Örneğin kullanım için Başlatma ve analiz verilerini dahil et görün.
analyticsDatatabloAnalizlerin nasıl rapor edildiğine dair veriler.Şu anda, bildirim kategorisini temsil eden bir category anahtar-değer çiftini destekliyor, analiz verilerini gruplamak için kullanılıyor.Örneğin kullanım için Başlatma ve analiz verilerini dahil et görün.

Kullanıcı Bildirim Sonucu

Gönderilen bir bildirimden yanıtı tutan bir paketleme nesnesi. İçinde şu anahtar-değer çiftleri bulunur:

AnahtarTürAçıklama
statusCodesayıtalepiçin HTTP durum kodu.
errortabloGRPC hata kodunu ve hata mesajını tanımlayan code ve message anahtarları içeren tablo, sayısal olarak.
responsetabloEşsiz bir UUID'yi ve kullanıcı bildiriminin kaynak yolunu tanımlayan id ve path anahtarları içeren tablo, kullanıcı bildiriminin kaynak yolu ve benzersiz UUID'si açıklar, sayısal olarak.