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.
Compatibilidad del SDK
El esquema de enlace profundo brazeActions:// puede utilizarse siempre que exista una opción de enlace profundo o de redireccionamiento dentro de los mensajes dentro de la aplicación y de Content Cards.
Para los mensajes HTML dentro de la aplicación, utiliza Javascript Bridge en su lugar, ya que los enlaces profundos no son compatibles con los tipos de mensajes HTML.
Esquema
Puedes incluir varias acciones steps dentro de un tipo de acción container. También es válido un solo paso sin container.
1
2
3
4
{
"type": "container",
"steps": []
}
Un step individual contiene un type de acción y una matriz opcional args:
1
2
3
4
{
"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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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 | Args |
|---|---|
container |
Una matriz 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 el URI resultante brazeActions://. O introduce un URI brazeActions:// para decodificar su JSON.