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 name2. event properties JSON object (opcional) |
setEmailNotificationSubscriptionType |
"opted_in" | "subscribed" | "unsubscribed" |
setPushNotificationSubscriptionType |
"opted_in" | "subscribed" | "unsubscribed" |
setCustomUserAttribute |
1. attribute_name2. attribute_value |
requestPushPermission |
N/A |
openLink |
1. url2. openInNewTab (booleano) |
openLinkInWebview |
url |
addToSubscriptionGroup |
subscriptionGroupId |
removeFromSubscriptionGroup |
subscriptionGroupId |
addToCustomAttributeArray |
1. attribute_name2. attribute_value |
removeFromCustomAttributeArray |
1. attribute_name2. attribute_value |
Codificador JSON
Introduce una cadena JSON para ver la URI brazeActions:// resultante. O bien, introduce una URI brazeActions:// para decodificar su JSON.