Ir al contenido

Enlaces profundos de acciones de Braze

Las acciones de Braze te permiten utilizar “enlaces profundos” para realizar funciones nativas del SDK.

El panel de Braze incluye varias acciones estándar al hacer clic (Solicitar permiso push, Registrar evento personalizado y Registrar atributo personalizado) que pueden utilizarse en mensajes dentro de la aplicación y en Content Cards.

Para todas las demás acciones, o para combinar varias acciones, utiliza esta guía para construir tu propio enlace profundo de acción de Braze.

Soporte del SDK

El esquema de enlace profundo brazeActions:// se puede utilizar en cualquier lugar donde exista una opción de enlace profundo o redirección dentro de los mensajes dentro de la aplicación y Content Cards.

Para los mensajes dentro de la aplicación en HTML, utiliza el Javascript Bridge en su lugar, ya que los enlaces profundos no son compatibles con los tipos de mensajes HTML.

Esquema

Puedes incluir múltiples steps de acción dentro de un tipo de acción container. Un solo paso sin un container también es válido.

{
    "type": "container",
    "steps": []
}

Un step individual contiene un type de acción y un array args opcional:

{
    "type": "logCustomEvent",
    "args": ["event name", {"event": ["properties"]}]
}

URI

El esquema URI de las acciones de Braze es brazeActions://v1/{base64encodedJsonString}.

El siguiente JavaScript muestra cómo codificar y decodificar la cadena JSON:

function decode(encoded) {
    const binary = window.atob(encoded.replace(/-/g, '+').replace(/_/g, '/'));
    let bits8 = new Uint8Array(binary.length);
    for (let i = 0; i < binary.length; i++) {
      bits8[i] = binary.charCodeAt(i);
    }
    const bits16 = new Uint16Array(bits8.buffer);
    return String.fromCharCode(...bits16);
}

/**
 * Returns a url-safe base64 encoded string of the input.
 * Unicode inputs are accepted.
 * Converts a UTF-16 string to UTF-8 to comply with base64 encoding limitations.
 */
function encode(input) {
    // Split the original 16-bit char code into two 8-bit char codes then
    // reconstitute a new string (of double length) using those 8-bit codes
    // into a UTF-8 string.
    const codeUnits = new Uint16Array(input.length);
    for (let i = 0; i < codeUnits.length; i++) {
        codeUnits[i] = input.charCodeAt(i);
    }
    const charCodes = new Uint8Array(codeUnits.buffer);
    let utf8String = "";
    for (let i = 0; i < charCodes.byteLength; i++) {
        utf8String += String.fromCharCode(charCodes[i]);
    }
    return btoa(utf8String).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
}

Acciones compatibles

Tipo Argumentos
container Un array de otras acciones a realizar
logCustomEvent 1. event name
2. event properties JSON object (opcional)
setEmailNotificationSubscriptionType "opted_in" | "subscribed" | "unsubscribed"
setPushNotificationSubscriptionType "opted_in" | "subscribed" | "unsubscribed"
setCustomUserAttribute 1. attribute_name
2. attribute_value
requestPushPermission N/A
openLink 1. url
2. openInNewTab (booleano)
openLinkInWebview url
addToSubscriptionGroup subscriptionGroupId
removeFromSubscriptionGroup subscriptionGroupId
addToCustomAttributeArray 1. attribute_name
2. attribute_value
removeFromCustomAttributeArray 1. attribute_name
2. attribute_value

Codificador JSON

Introduce una cadena JSON para ver la URI brazeActions:// resultante. O bien, introduce una URI brazeActions:// para decodificar su JSON.

Entrada JSON

Salida de enlace profundo

New Stuff!