Notificaciones de experiencia

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Las notificaciones de experiencia son una forma para que los usuarios optados de edad 13+ se mantengan al día con sus experiencias favoritas a través de notificaciones personalizadas y oportunas.Como desarrollador, puedes determinar qué tipos de actividades en la experiencia son más importantes para notificar a tus usuarios, así como definir el contenido de la notificación.

Example notification
Example notification

El sistema de notificación de experiencias presenta lo siguiendo:

  • Notificaciones personalizables con parámetros — Total flexibilidad para personalizar el mensaje de notificación con parámetros, por ejemplo:

    Your gold goose egg has hatched!

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

  • Datos de lanzamiento — Incluya datos de lanzamiento opcionales que se pueden leer a través de cuando el receptor de notificación se unaEsto podría implicar enrutar a un usuario a una ubicación de coordenadas o personalizar su experiencia de unión.

  • Soporte de análisis — Rastrea tu audiencia alcanzable y el rendimiento de tus notificaciones en el tablero de creación.

Requisitos de elegibilidad

Para usar las API para enviar notificaciones, la experiencia debe cumplir con los siguientes criterios básicos:

  • Mínimo de 100 visitas desde el lanzar.
  • La experiencia no debe estar bajo moderación.
  • Como desarrollador, debes tener permiso para administrar la experiencia.

Directrices de uso

Las notificaciones deben ser personalizadas para el receptor y deben basarse en la actividad en la experiencia que sea específicamente relevante para el usuario.Al revés, las notificaciones no deben ser de naturaleza genérica y publicitaria.

Idealmente, las notificaciones también deberían alertar a los usuarios de algo en lo que puedan tomar acción inmediata .Evita las notificaciones puramente informativas que no solicitan una respuesta o acción directa.

Todo el contenido y los comportamientos de notificación están sujetos a los estándares comunitarios de Roblox y al filtrado de texto a nivel de plataforma independientemente de las directrices de edad de tu experiencia.Esto significa que si tu experiencia es una experiencia de más de 17, tus notificaciones siguen estando sujetas a los estándares a nivel de plataforma, no a los estándares de política de 17+.

El contenido de la notificación no está permitido incorporar patrones oscuros o otras tácticas que manipulen o engañen a los usuarios para que tomen decisiones que no pretendan, o que puedan ser contrarias a sus mejores intereses.Esto podría incluir lo siguiendo:

  • Anuncios disfrazados — Notificaciones que se disfrazan intencionalmente como contenido orgánico, pero en realidad son publicidad.Por ejemplo, suponga que hacer clic en la siguiente notificación conduce a Petz World pero no se muestra ninguna "información importante".

  • Acciones presionadas por el tiempo — Notificaciones que presionan a los usuarios a hacer clic, suscribirse, consentir o comprar a través de aplicar presión de tiempo falsa.

  • Bait-and-Switch con artículos gratuitos o otras recompensas — Notificaciones que dicen falsamente a los usuarios que recibirán algo gratis cuando no lo es.Por ejemplo, al hacer clic en la siguiente notificaciones, queda claro que se requiere algo más para obtener el regalo.

  • Engañar a los usuarios para que compren — Notificaciones que engañan a los usuarios para que realicen compras no intencionales.Por ejemplo, suponga que hacer clic en la siguiente notificación conduce directamente a un sistema de compras predeterminado con artículos que el usuario no eligió comprar.

Las experiencias no deberían requerir que los usuarios activen las notificaciones para participar o avanzar en el juego.

Implementación

La implementación de notificaciones de experiencia comienza con crear una cadena de notificación e incluir el paquete en tu proyecto.Una vez que estos estén configurados, puedes enviar notificaciones con parámetros personalizados opcionales .

Alternativamente, puedes usar la API de nube abierta para activar notificaciones a través de solicitudes de API de formulario libre.

Crear una cadena de notificación

Al igual que con solicitudes de invitación de jugadores, debes crear y editar tus cadenas de notificación en el tablero de creación del creador. No hay una cadena de notificación de experiencia predeterminada, por lo que se requiere este paso.

  1. Navegue hasta el Panel del creador.

  2. Al igual que insignias, las cadenas de notificación están vinculadas a una experiencia específica . Busca la miniatura de esa experiencia y haz clic en ella.

  3. En la columna de la izquierda, debajo de Participación , haga clic en Notificaciones .

  4. En la región central, haga clic en el botón Crear una cadena de notificación .

  5. Rellena un nombre de identificador (solo visible para ti) y la cadena de notificación personalizada; esto está limitado a 99 caracteres y puede incluir parámetros personalizados ilimitados . .Las notificaciones usarán automáticamente el título de tu experiencia como título de la notificación, pero también puedes usar experienceName para referenciar tu experiencia en el texto del cuerpo de la notificación.

    Ejemplos de cadenas de notificación:

    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. Cuando esté listo, haga clic en el botón Crear cadena de notificación .

  7. En la página de notificaciones, en la tabla de notificaciones, haz clic en el botón en la columna Acciones y selecciona Copiar ID de activo .

  8. Usa el ID copiado para el valor de la clave messageId en la tabla payload como se muestra en el ejemplo de script .

Incluir el paquete

Para implementar notificaciones de experiencia, debes obtener el paquete Luau de la tienda del creador.

  1. Desde la pestaña Ver, abra la Caja de herramientas y seleccione la pestaña Tienda de creadores .

    Toolbox toggle button in Studio
  2. Asegúrese de que la clasificación de modelos esté seleccionada, luego haga clic en el botón Ver todo para categorías .

  3. Localiza y haz clic en el mosaico Módulos de desarrollo .

  4. Localice el módulo Abrir nube y haga clic en él, o arrástrelo a la vista 3D.

  5. En la ventana Explorador, mueva todo el modelo OpenCloud al servicio ServerScriptService .

Envía una notificacionesexperiencia

Una vez que hayas creado una cadena de notificación y hayas incluido el paquete en tu proyecto, puedes enviar notificaciones desde los scripts del lado del servidor.Las notificaciones se enviarán a usuarios optados de edad 13+ a través de su flujo de notificación de Roblox, en el que podrán unirse a la experiencia directamente a través del botón Unirse en la notificación y generar según sus datos de lanzamiento .

Notifications stream on the Roblox app

Para enviar una notificación básica a un usuario específico, incluya el ID de atributo cadena de notificación en el campo del pago, luego llame a la función createUserNotification con los datos de solicitud del destinatario y los datos de solicitud.

Envía una notificacionesexperiencia

local ServerScriptService = game:GetService("ServerScriptService")
local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)
local recipientPlayerID = 505306092
-- En el pago, "messageId" es el valor de la ID del activo de notificación
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

Personalizar notificaciones usando parámetros

Para personalizar la notificación para cada destinatario, puedes incluir parámetros en la cadena de notificación, luego personaliza los parámetros al llamar la API.Por ejemplo, puedes definir la cadena de notificación como:

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

Luego, establezca los parámetros userId-friend y points en el script:

Personalizar notificación usando parámetros

local ServerScriptService = game:GetService("ServerScriptService")
local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)
local recipientPlayerID = 505306092
local userIdFriendParam = {int64Value = 3702832553}
local pointsParam = {stringValue = "5"}
-- En el pago, "messageId" es el valor de la ID del activo de notificación
-- En este ejemplo, la cadena de notificación es "{userId-friend} superó su puntuación más alta por {points} puntos! ¿Hora de subir de nivel?"
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

Incentivar a los usuarios a habilitar notificaciones

Para alentar a los usuarios a habilitar notificaciones para tu experiencia, puedes mostrar una solicitud de permiso en la experiencia a usuarios de 13 años o más usando el método ExperienceNotificationService:PromptOptIn().

The in-experience permission prompt encourages users to enable notifications

Puedes activar la ventana de diálogo en cualquier contexto adecuado dentro de tu experiencia que garantice una notificacionesfutura.El texto del mensaje de advertencia no es personalizable y se normaliza en todas las experiencias.

La modal no aparecerá si el usuario:

  • Está bajo la edad de 13.
  • Ya ha habilitado las notificaciones para tu experiencia.
  • Ya ha visto la solicitud de permiso para su experiencia en los últimos 30 días.

Para solicitar a los usuarios que habiliten las notificaciones, primero debe determinar si el usuario es elegible.Una vez confirmado, puedes mostrar al usuario el mensaje de permiso.

  1. Llama ExperienceNotificationService:CanPromptOptInAsync() , envuelta en un pcall() ya que es una llamada de red asincrónica que puede fallar ocasionalmente.
  2. Si el usuario puede ser solicitado, llame a ExperienceNotificationService:PromptOptIn() .
LocalScript - Implementación de la solicitud de permiso de notificación

local ExperienceNotificationService = game:GetService("ExperienceNotificationService")
-- Función para verificar si se puede solicitar al jugador que active las notificaciones
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
-- Escuchar el evento de confirmación de opción cerrado
ExperienceNotificationService.OptInPromptClosed:Connect(function()
print("Opt-in prompt closed")
end)

Incluir datos de lanzamiento y análisis

Para mejorar aún más la experiencia del usuario, puedes incluir datos de lanzamiento en la notificación, útil para escenarios como enrutar a los usuarios a una ubicación de coordenadas o personalizar la experiencia de unión.Además, puedes incluir datos de análisis para segmentar el rendimiento de diferentes categorías de notificaciones.También consulte el ejemplo de invitación de jugador sobre cómo se pueden configurar y usar los datos de lanzamiento.

Incluir datos de lanzamiento y datos de análisis

local ServerScriptService = game:GetService("ServerScriptService")
local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)
local recipientPlayerID = 505306092
-- En el pago, "messageId" es el valor de la ID del activo de notificación
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

Sistema de entrega

Existe un sistema de prevención de spam para garantizar la calidad de las notificaciones para los usuarios y proteger el canal de notificación compartido para todos los desarrolladores.Debido a esto, la entrega de notificaciones no está garantizada.Este sistema de prevención de spam está directamente informado por la participación del usuario: cuantos más usuarios se involucren con sus notificaciones, más alcance recibirán.Puedes rastrear transparentemente las métricas de compromiso en el panel de análisis analítico, como se explica a continuación.

Las notificaciones de experiencia tienen un límite de velocidad estática; cada usuario puede recibir una notificación por día de una determinada experiencia, y recibes comentarios transparentes cuando se alcanza el límite de velocidad de un usuario.

Además, la siguiente lista describe algunos de los casos especiales que pueden resultar en no entrega de una notificaciones:

  • No se cumplen los requisitos de elegibilidad de experiencia.
  • El destinatario no está optado a las notificaciones de su experiencia.
  • Se ha alcanzado el límite de velocidad del destinatario para tu experiencia.
  • Se ha alcanzado el límite agregado de velocidad diaria del destinatario.
  • Parámetros de solicitud perdidos o inválidos.
  • Se moderó la cadena de notificación.
  • Para las notificaciones con menciones de usuario, la no entrega ocurre si se cumple cualquiera de estas condiciones:
    • El receptor y el usuario mencionado no son amigos.
    • El usuario mencionado tiene No seleccionado para "¿Actualizar amigos sobre mi actividad?" bajo PrivacidadOtras configuraciones en las configuraciones de su cuenta de Roblox.

Análisis

El rendimiento de tus notificaciones y audiencia notificable se muestra en la pestaña Análisis de la página de notificaciones donde configuras cadenas de notificación (simplemente tab desde Creaciones a Análisis ).

  1. Navegue hasta el Panel del creador.
  2. Al igual que insignias, las cadenas de notificación están vinculadas a una experiencia específica . Busca la miniatura de esa experiencia y haz clic en ella.
  3. En la columna de la izquierda, debajo de Participación , haga clic en Notificaciones .
  4. En la página objetivo, haz clic en la pestaña Análisis para cambiar al panel de análisis.

resumende notificaciones

La sección de resumen sirve como un instantáneo del rendimiento agregado de tus notificaciones.Se requiere un mínimo de 100 impresiones agregadas para mostrar las estadísticas de rendimiento.

EstadísticaDescripción
Usuarios optados en El número total de usuarios que han activado las notificaciones para tu experiencia.Tenga en cuenta que esto incluye a usuarios menores de 13 años que solo pueden recibir notificaciones de actualizaciones de experiencia , no notificaciones personalizadas de experiencia .
Impresiones El número total de impresiones de usuario que todas tus notificaciones han recibido en conjunto.
Clics El número total de clics que todas sus notificaciones han recibido en conjunto.
Tasa de clics La tasa a la que los usuarios hacen clic en sus notificaciones, calculada como la proporción de clics a impresiones.
Desactivar La tasa a la que los usuarios están desactivando las notificaciones para su experiencia directamente desde sus notificaciones, calculada como la proporción de acciones de apagado a impresiones.
Rechazar La tasa a la que los usuarios están descartando sus notificaciones, calculada como la proporción de acciones de descarte a impresiones.

Estadísticas detalladas

La tabla Notificaciones de experiencia muestra estadísticas de rendimiento detalladas para cada notificación con al menos 100 impresiones, ordenadas por la fecha de la primera impresión para esa notificaciones.

La columna Nombre es el identificador clave de la notificaciones.Por defecto, el nombre coincide con el nombre del identificador que especificaste al crear la cadena de notificación , pero puedes anularlo a través del campo en tus llamadas de API, en cuyo caso anula el nombre.Cambiar el nombre de la cadena en el Panel del creador o cambiar la cadena que se refiere a tu ID de mensaje en la llamada de API generará una nueva fila en la tabla.

Si desea probar la velocidad de diferentes cadenas, se recomienda que cree una nueva cadena de notificación con un nombre similar, por ejemplo:

  • EggHatchA — "¡Tu huevo dorado ha eclosionado! Ven a conocer a tu nueva mascota".
  • EggHatchB — "¡Es hora de incubar! Ven a conocer a tu nueva mascota".

Referencia de API

Funciones

crearNotificación de usuario

createUserNotification ( identificación : número , notificación de usuario : Notificación de usuario) : Resultado de notificación de usuario

Envía una notificación desde un script del lado del servidor.Requiere la dirección del destinatario Player.UserId y una notificación de usuario.Devuelve un resultado de notificación de usuario.

Envía una notificacionesexperiencia

local ServerScriptService = game:GetService("ServerScriptService")
local OCUserNotification = require(ServerScriptService.OpenCloud.V2.UserNotification)
local recipientPlayerID = 505306092
-- En el pago, "messageId" es el valor de la ID del activo de notificación
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

Tipos

Notificación de usuario

Tabla que contiene detalles sobre la notificación que se enviará al usuario.Debe contener una tabla payload con cadenas requeridas messageId y type opcionales, y tablas opcionales parameters , joinExperience y analyticsData.

ClaveTipoDescripción
messageIdcadenaUna identificación que representa un modelo de mensaje de notificación personalizable que creas en el tablero de administrador.
typecadenaEl tipo de notificaciones. Solo "MOMENT" se admite actualmente.
parameterstablaUna tabla de parámetros utilizados para renderizar un modelo de mensaje de notificación. Vea Personalizar notificaciones utilizando parámetros para el uso de ejemplo.
joinExperiencetablaUna llamada a la acción que representa unirse a una experiencia.Actualmente soporta un par clave-valor launchData que representa datos arbitrarios disponibles para una experiencia cuando un usuario se une a la experiencia desde la notificaciones; este valor está limitado a un máximo de 200 bytes.Vea Incluir datos de lanzamiento y análisis para el uso de ejemplo.
analyticsDatatablaDatos sobre cómo se informan las analíticas.Actualmente soporta un par clave-valor category que representa la categoría de notificación, utilizado para agrupar los datos de análisis.Vea Incluir datos de lanzamiento y análisis para el uso de ejemplo.

Resultado de notificación de usuario

Un objeto envolvente que contiene la respuesta de una notificacionesenviada. Contiene los siguientes pares de clave-valor:

ClaveTipoDescripción
statusCodenúmeroEl código de estado HTTP para la solicitud.
errortablaTabla que contiene code y message claves que describen el código de error GRPC y el mensaje de error, respectivamente.
responsetablaTabla que contiene id y path claves que describen un UUID único y el camino de recursos de la notificacionesdel usuario, respectivamente.