{"id":6461,"date":"2025-12-29T11:28:03","date_gmt":"2025-12-29T14:28:03","guid":{"rendered":"https:\/\/minders.io\/?p=6461"},"modified":"2025-12-30T14:28:52","modified_gmt":"2025-12-30T17:28:52","slug":"qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso","status":"publish","type":"post","link":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/","title":{"rendered":"QA Braze SDK en apps m\u00f3viles: gu\u00eda completa paso a paso"},"content":{"rendered":"<p data-start=\"223\" data-end=\"343\"><strong><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-6574 size-thumbnail\" src=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Diseno-sin-titulo-10-2-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/>Escrito por <a href=\"https:\/\/www.linkedin.com\/in\/obed-cabanzo\/\">Obed Cavanzo<\/a> (Solutions Architect)<\/strong><\/p>\n<p data-start=\"223\" data-end=\"343\">Una buena integraci\u00f3n no termina cuando el c\u00f3digo se sube. Termina cuando todo funciona, como deber\u00eda, en el mundo real.<\/p>\n<p data-start=\"345\" data-end=\"699\">Esta gu\u00eda est\u00e1 pensada para equipos que usan Braze en aplicaciones m\u00f3viles (iOS y Android) y quieren asegurarse de que las bases est\u00e9n bien puestas antes de cada release. Recorre paso a paso el proceso de QA para validar que la integraci\u00f3n del SDK funcione correctamente \u2014 espec\u00edficamente para los canales de <strong data-start=\"654\" data-end=\"676\">push notifications<\/strong> e <strong data-start=\"679\" data-end=\"698\">in-app messages<\/strong>.<\/p>\n<p data-start=\"701\" data-end=\"983\">Cada secci\u00f3n debe ejecutarse de forma separada para iOS y Android, siempre con <strong data-start=\"780\" data-end=\"828\">usuarios de prueba distintos por dispositivo<\/strong>. Nuestro consejo: documentar cada resultado en un checklist compartido. Eso asegura trazabilidad, orden y un historial claro de lo que se valid\u00f3 y cu\u00e1ndo.<\/p>\n<h1>1. Identificaci\u00f3n de Usuarios<\/h1>\n<h2>Objetivo<\/h2>\n<p>Verificar que la transici\u00f3n de usuario an\u00f3nimo a identificado preserve el historial de sesiones, asigne correctamente el n\u00famero de sesi\u00f3n, y reasigne tokens (push, device) de manera adecuada. Esta validaci\u00f3n es cr\u00edtica para la personalizaci\u00f3n, atribuci\u00f3n de campa\u00f1as y gesti\u00f3n de l\u00edmites de env\u00edo.<\/p>\n<h2>Procedimiento de Validaci\u00f3n<\/h2>\n<ol>\n<li>Iniciar la aplicaci\u00f3n y completar el flujo de creaci\u00f3n de usuario. <strong>Es importante utilizar un usuario distinto para cada tipo de dispositivo de prueba.<\/strong><\/li>\n<li>Verificar que se invoque <strong>changeUser(external_id)<\/strong> en el flujo de login, inmediatamente despu\u00e9s del registro exitoso. Esto se realiza ejecutando las siguientes acciones.\n<ol>\n<li>Confirmar en el Dashboard de Braze (mediante Search User) que el nuevo <strong>external_id<\/strong> existe y est\u00e1 correctamente asociado.<\/li>\n<li>Si no se ve el usuario en el dashboard se deben revisar los logs del SDK de Braze a que la llamada a la funci\u00f3n se est\u00e9 ejecutando sin errores, y con un par\u00e1metro (external_id) valido.<\/li>\n<\/ol>\n<\/li>\n<li>Iniciar la aplicaci\u00f3n y completar el flujo de login. <strong>Es importante utilizar un usuario distinto para cada tipo de dispositivo de prueba.<\/strong> Se debe realizar la misma validaci\u00f3n del paso 2.a y 2.b.<\/li>\n<\/ol>\n<h2>Herramientas de Diagn\u00f3stico<\/h2>\n<h3 data-start=\"701\" data-end=\"983\">SDK Logs \/ Braze Logger<!-- notionvc: b11e11ab-6159-4fb9-85f2-4d761b9b95d9 --><br \/>\n<!-- notionvc: 4020bd6a-f7d8-412b-80b0-0bc8a21e5f4e --><\/h3>\n<ul>\n<li data-start=\"701\" data-end=\"983\">Activar verbose logs en ambiente QA para visualizar la llamada changeUser() y verificar las respuestas del SDK.<\/li>\n<li data-start=\"701\" data-end=\"983\">Documentaci\u00f3n: <a class=\"notion-link-token notion-focusable-token notion-enable-hover\" tabindex=\"0\" href=\"https:\/\/www.braze.com\/docs\/developer_guide\/sdk_integration\/?sdktab=android#android_enabling-logs\" rel=\"noopener noreferrer\" data-token-index=\"1\"><span class=\"link-annotation-unknown-block-id--526758561\">Android<\/span><\/a> &#8211; <a class=\"notion-link-token notion-focusable-token notion-enable-hover\" tabindex=\"0\" href=\"https:\/\/www.braze.com\/docs\/developer_guide\/sdk_integration\/?sdktab=swift#swift_logging\" rel=\"noopener noreferrer\" data-token-index=\"3\"><span class=\"link-annotation-unknown-block-id--1643593750\">Swift<\/span><\/a><!-- notionvc: b83545df-4aca-474b-b78c-671a1e94288d --><\/li>\n<\/ul>\n<h3>Search User (Dashboard)<!-- notionvc: cd9b02d2-dc60-49a4-bd2b-47153b258bab --><\/h3>\n<ul>\n<li>Corroborar la existencia del usuario junto con las propiedades asociadas.<\/li>\n<li><a class=\"notion-link-token notion-focusable-token notion-enable-hover\" tabindex=\"0\" href=\"https:\/\/www.braze.com\/docs\/user_guide\/engagement_tools\/segments\/user_profiles\/#access-profiles\" rel=\"noopener noreferrer\" data-token-index=\"1\"><span class=\"link-annotation-unknown-block-id-671637621\">Documentaci\u00f3n de esto<\/span><\/a><!-- notionvc: 8313b45d-59cb-46d0-94d9-01a12c70f90b --><\/li>\n<\/ul>\n<h3>SDK Debugger (Dashboard)<!-- notionvc: f63511c4-4f49-4a52-ac47-ce82d83295ce --><\/h3>\n<ul>\n<li>Opcional: Crear sesi\u00f3n de debug para capturar tr\u00e1fico y errores durante el cambio de usuario.<\/li>\n<li><a class=\"notion-link-token notion-focusable-token notion-enable-hover\" tabindex=\"0\" href=\"https:\/\/www.braze.com\/docs\/developer_guide\/sdk_integration\/debugging\" rel=\"noopener noreferrer\" data-token-index=\"1\"><span class=\"link-annotation-unknown-block-id-1192537304\">Documentaci\u00f3n de esto<\/span><\/a><!-- notionvc: 0849a61d-ce7c-4cbd-aaea-e9585731c8e1 --><\/li>\n<\/ul>\n<h1>2. Ingesta y Actualizaci\u00f3n de Atributos de Usuario<\/h1>\n<h2>Objetivo<\/h2>\n<p>Validar que los atributos de usuario (email, nombre, atributos personalizados) se creen y actualicen correctamente, mantengan tipos de datos v\u00e1lidos, respeten la precedencia por timestamp, y no corrompan segmentos ni personalizaciones. Esta validaci\u00f3n impacta directamente en la segmentaci\u00f3n de audiencias y el contenido din\u00e1mico de campa\u00f1as.<\/p>\n<h2>Procedimiento de Validaci\u00f3n<\/h2>\n<ol>\n<li>En la secci\u00f3n anterior usted debi\u00f3 ejecutar el flujo que crea <strong>todos<\/strong> los atributos de un usuario desde el SDK (atributos est\u00e1ndar mediante funciones como <code>setFirstName<\/code>, <code>setEmail<\/code>, o atributos custom mediante <code>setCustomAttribute<\/code>) o desde la API (<code>\/users\/track<\/code>). Posterior a ellos se debe:\n<ol>\n<li>Verificar en el dashboard que los atributos se visualicen correctamente: misma nomenclatura definida y tipo de dato correcto para cada atributo. Validar de forma independiente para plataformas iOS y Android.<\/li>\n<li>Enviar atributos con formatos o tipos de datos err\u00f3neos (fecha mal formada, string en campo num\u00e9rico) y documentar c\u00f3mo Braze normaliza o rechaza estos valores.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h2>Herramientas de Diagn\u00f3stico<\/h2>\n<p><strong>Search User (Dashboard):<\/strong> <!-- notionvc: 922b3ebe-0882-4206-b97a-efa8ce48deb7 -->Filtrar por user_id y revisar los writes de atributos: qui\u00e9n los envi\u00f3, qu\u00e9 valores y cu\u00e1ndo.<\/p>\n<p><strong>SDK Logs \/ Braze Logger:<\/strong> Identificar posibles errores locales al setear atributos en el cliente.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6469\" src=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Minders-Template-imagen-cuerpo-blog-notaimportante1esp.jpg\" alt=\"\" width=\"800\" height=\"540\" srcset=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Minders-Template-imagen-cuerpo-blog-notaimportante1esp.jpg 800w, https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Minders-Template-imagen-cuerpo-blog-notaimportante1esp-480x324.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 800px, 100vw\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6468\" src=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Minders-Template-imagen-cuerpo-blog-notaimprotante1.jpg\" alt=\"\" width=\"800\" height=\"540\" srcset=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Minders-Template-imagen-cuerpo-blog-notaimprotante1.jpg 800w, https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Minders-Template-imagen-cuerpo-blog-notaimprotante1-480x324.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 800px, 100vw\" \/><\/p>\n<h1>3. Tracking de Eventos Personalizados y de Purchase<\/h1>\n<h2>Objetivo<\/h2>\n<p>Garantizar que los eventos personalizados y de purchase junto con sus propiedades lleguen con el esquema correcto, sirvan para segmentaci\u00f3n de audiencias, y disparen correctamente campa\u00f1as en Canvas y Campaigns. Sin eventos confiables no funcionan los triggers ni la anal\u00edtica de comportamiento.<\/p>\n<h2>Requisitos:<\/h2>\n<ol>\n<li>Tener un Internal Group creado que tenga el permiso de \u201cUser Events\u201d, asi como un usuario de prueba que pertenezca a este internal Group. Esto le permitir\u00e1 tener logs en el dashboard de Braze de los eventos que ejecutan ciertos usuarios de prueba que usted defina.\n<ol>\n<li>Si no tiene uno debe crearlo yendo a la secci\u00f3n Settings &gt; Internal Groups. El Internal group debe tener habilitada la vi\u00f1eta \u201cUser Events\u201d<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-6463\" src=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/image-8-1024x491.png\" alt=\"\" width=\"1024\" height=\"491\" srcset=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/image-8-980x470.png 980w, https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/image-8-480x230.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/li>\n<li>Una vez lo cree deber\u00e1 a\u00f1adir su usuario de prueba seleccionando el Internal group reci\u00e9n creado y clickeando la opci\u00f3n \u201cAdd test users\u201d<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-6464\" src=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/image-9-1024x361.png\" alt=\"\" width=\"1024\" height=\"361\" srcset=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/image-9-980x345.png 980w, https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/image-9-480x169.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/li>\n<li>Debe buscar su usuario de prueba mediante el external id. Finalmente da a Select User y completa el flujo<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-6465\" src=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/image-10-1024x469.png\" alt=\"\" width=\"1024\" height=\"469\" srcset=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/image-10-980x449.png 980w, https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/image-10-480x220.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h2>Procedimiento de Validaci\u00f3n<\/h2>\n<ol>\n<li>Iniciar sesi\u00f3n con su usuario de prueba (Creado en el internal group) y ejecutar todos los eventos definidos en su tracking plan junto con sus <strong>event properties<\/strong> de distintos tipos: strings, numbers, booleans y fechas.\n<ol>\n<li>Verificar la aparici\u00f3n en Dashboard \u2192 Events y en el Event User Log. Revisar los logs para el usuario de prueba y revisar los detalles de cada evento para confirmar la correcta ingesta: nomenclatura de nombres de evento, propiedades y tipos de datos.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-6466\" src=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/image-11-1024x473.png\" alt=\"\" width=\"1024\" height=\"473\" srcset=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/image-11-980x452.png 980w, https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/image-11-480x222.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><!-- notionvc: 72814b68-4722-43e2-913e-072311ae807a --><!-- notionvc: 7bdf0241-2388-45ae-a706-1f54381abb6b --><\/p>\n<h2>Herramientas de Diagn\u00f3stico<!-- notionvc: 6d316280-2d63-49cd-b192-4ce108fc4c3d --><!-- notionvc: 16d59db1-8025-4aeb-9d06-f1b20691c07a --><\/h2>\n<p><strong>Event User Log:<\/strong> Inspeccionar el evento, sus propiedades y origen (SDK o API). \u00datil para verificar si un evento lleg\u00f3 pero no fue considerado para una campa\u00f1a.<br \/>\n<strong>SDK Debugger \/ SDK Logs:<\/strong> Verificar si el evento fue encolado\/enviado y detectar errores en el cliente.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-6471\" src=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Minders-Template-imagen-cuerpo-blog-notaimportante2esp-1.jpg\" alt=\"\" width=\"800\" height=\"540\" srcset=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Minders-Template-imagen-cuerpo-blog-notaimportante2esp-1.jpg 800w, https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Minders-Template-imagen-cuerpo-blog-notaimportante2esp-1-480x324.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 800px, 100vw\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6470\" src=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Minders-Template-imagen-cuerpo-blog-notaimportante2.jpg\" alt=\"\" width=\"800\" height=\"540\" srcset=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Minders-Template-imagen-cuerpo-blog-notaimportante2.jpg 800w, https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Minders-Template-imagen-cuerpo-blog-notaimportante2-480x324.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 800px, 100vw\" \/><\/p>\n<h1>4. Entrega y Visualizaci\u00f3n de Mensajes In-App<\/h1>\n<h2>Objetivo<\/h2>\n<p>Validar que los mensajes in-app se muestren con la l\u00f3gica, apariencia y acciones esperadas (botones, links, deep links). Es importante probar distintos layouts, personalizaci\u00f3n y condiciones de display para garantizar una experiencia de usuario correcta.<\/p>\n<h2>Procedimiento de Validaci\u00f3n<\/h2>\n<ol>\n<li>Utilizar <strong>Preview<\/strong> y <strong>Send Test<\/strong> en el composer (Dashboard \u2192 Campaigns) para validar el aspecto visual del mensaje.<\/li>\n<li>Crear triggers condicionados (ejemplo: evento X + atributo Y) y verificar que el mensaje in-app aparezca \u00fanicamente cuando corresponde seg\u00fan la l\u00f3gica definida. Esto requiere que despliegue una campa\u00f1a y en el segmento de usuarios incluya los external id de los usuarios de prueba.<\/li>\n<\/ol>\n<h2>Herramientas de Diagn\u00f3stico<\/h2>\n<p><!-- notionvc: acbc5f88-3e2d-4c71-b03a-c28c01198411 --><strong>Message Activity Log:<\/strong> Revisar errores en delivery de in-app, problemas de render o fallos espec\u00edficos de campa\u00f1a.<br \/>\n<strong>SDK Debugger \/ SDK<\/strong>: Logs Ver llamadas de fetch de in-app y\/o errores de render en cliente<\/p>\n<h1>5. Entrega y Visualizaci\u00f3n de Push Notifications<\/h1>\n<h2>Objetivo<\/h2>\n<p>Comprobar el registro de tokens, entrega a trav\u00e9s de APNs\/FCM, comportamiento en diferentes estados de la aplicaci\u00f3n (foreground, background, killed), payloads (deep link, actions, rich media) y m\u00e9tricas de rendimiento (delivered\/opened). Esta validaci\u00f3n es cr\u00edtica para la entrega efectiva y experiencia de usuario en dispositivos m\u00f3viles.<\/p>\n<h2>Procedimiento de Validaci\u00f3n<\/h2>\n<ol>\n<li>Verificar que al iniciar la aplicaci\u00f3n, el <strong>push_token<\/strong> aparezca correctamente en el perfil del usuario en Braze.<\/li>\n<li>Enviar <strong>Send Test<\/strong> push desde Dashboard al dispositivo de prueba. Probar en tres estados: foreground, background y aplicaci\u00f3n cerrada.<\/li>\n<li>Probar diferentes payloads: title, body, custom keys, deeplink, badge, sound y rich media.<\/li>\n<li>Tocar la notificaci\u00f3n y verificar que la navegaci\u00f3n (deep link) funcione correctamente.<\/li>\n<li>Validar m\u00e9tricas de entrega: comparar sends \u2192 delivered \u2192 opened en Dashboard y rastrear errores de APNs\/FCM.<\/li>\n<\/ol>\n<h2>Herramientas de Diagn\u00f3stico<\/h2>\n<p><!-- notionvc: 40516610-f892-4455-9783-ac87ed048cbd --><strong>Message Activity Log:<\/strong> Revisar errores en env\u00edo (APNs\/FCM), entregas fallidas y razones espec\u00edficas.<br \/>\n<strong>SDK Logs:<\/strong> Confirmar registro de token y recepci\u00f3n de notificaci\u00f3n en el cliente.<\/p>\n<h1>6. Navegaci\u00f3n mediante Web Links<\/h1>\n<h2>Objetivo<\/h2>\n<p>Asegurar que los links en mensajes (email, in-app, SMS) redirijan correctamente, preserven UTM y par\u00e1metros para tracking, y que el click tracking no rompa cookies o la experiencia de usuario. Esta validaci\u00f3n impacta directamente en la atribuci\u00f3n de conversiones y anal\u00edtica de campa\u00f1as.<\/p>\n<h2>Procedimiento de Validaci\u00f3n<\/h2>\n<ol>\n<li>Enviar mensajes con links que incluyan UTM y par\u00e1metros personalizados. Comprobar que al hacer clic los par\u00e1metros lleguen intactos al destino. Verificar si se abre WebView (manejado por Braze handler) o la actividad del navegador, y confirmar que sea el comportamiento esperado.<\/li>\n<\/ol>\n<h2>Herramientas de Diagn\u00f3stico<\/h2>\n<p><!-- notionvc: 2f99bdc2-2657-4733-806d-d93e9fbe6b91 --><strong>Custom App:<\/strong> Logs Loggear informaci\u00f3n custom que permita determinar si el web link est\u00e1 llegando correctamente y\/o si la app se est\u00e1 comportando como se espera (Abrir WebView o iniciar otra Activity)<\/p>\n<h1>7. Navegaci\u00f3n mediante Deep Links<\/h1>\n<h2>Objetivo<\/h2>\n<p>Probar que Universal Links (iOS), App Links (Android) y custom schemes abran la aplicaci\u00f3n y naveguen al contenido correcto con par\u00e1metros intactos. Esta validaci\u00f3n es esencial para flujos de conversi\u00f3n como abrir un producto espec\u00edfico desde una notificaci\u00f3n.<\/p>\n<h2>Procedimiento de Validaci\u00f3n<\/h2>\n<ol>\n<li><em>Opcional para Universal Links:<\/em> Verificar configuraci\u00f3n de Universal\/App Links en iOS\/Android (archivos <code>apple-app-site-association<\/code> y <code>assetlinks.json<\/code>) y que Braze est\u00e9 configurado para utilizarlos.<\/li>\n<li>Enviar deep links en push\/in-app\/email y probar con aplicaci\u00f3n instalada: debe abrir directamente.<\/li>\n<li>Probar que los par\u00e1metros (ejemplo: <code>?product_id=123<\/code>) se entreguen a la aplicaci\u00f3n y la navegaci\u00f3n interna funcione correctamente.<\/li>\n<li>Forzar deep link con datos inv\u00e1lidos para verificar que la aplicaci\u00f3n maneje el fallback sin crash.<\/li>\n<\/ol>\n<h2>Herramientas de Diagn\u00f3stico<!-- notionvc: 094d61db-ff36-415a-bbdc-93f18e072ad3 --><\/h2>\n<p><strong>Custom App Logs:<\/strong> Observar c\u00f3mo el SDK maneja el deep link y qu\u00e9 handler invoca.<\/p>\n<h1>Ap\u00e9ndice: Referencia R\u00e1pida<\/h1>\n<h2>Checklist de Pre-Release<\/h2>\n<p>Antes de cada release a producci\u00f3n, verificar que se hayan completado las siguientes validaciones:<\/p>\n<ul>\n<li>Identificaci\u00f3n de usuarios funciona correctamente en ambas plataformas<\/li>\n<li>Atributos de usuario se ingest\u00e1n con nomenclatura y tipos correctos<\/li>\n<li>Eventos personalizados aparecen en Dashboard y activan segmentos<\/li>\n<li>Mensajes in-app se muestran seg\u00fan condiciones configuradas<\/li>\n<li>Push notifications llegan en todos los estados de la app<\/li>\n<li>Web links preservan par\u00e1metros UTM y redirigen correctamente<\/li>\n<li>Deep links navegan correctamente y manejan errores<\/li>\n<\/ul>\n<h2>Ubicaciones Clave en Dashboard<!-- notionvc: 8a0f87e7-d86e-40f9-940b-7e3fec1f641e --><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-6472\" src=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Image-29-12-2025-at-10.49-AM-1024x375.jpeg\" alt=\"\" width=\"1024\" height=\"375\" srcset=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Image-29-12-2025-at-10.49-AM-1024x375.jpeg 1024w, https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Image-29-12-2025-at-10.49-AM-980x359.jpeg 980w, https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/Image-29-12-2025-at-10.49-AM-480x176.jpeg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/p>\n<h2><strong data-start=\"106\" data-end=\"142\">\u00bfC\u00f3mo llevar esto a la pr\u00e1ctica?<\/strong><\/h2>\n<h4>Si este enfoque te sirve como base, el verdadero valor aparece al adaptarlo a tu contexto, tu producto y tus objetivos. Llevar un proceso de QA s\u00f3lido a la estrategia de engagement marca la diferencia entre implementar y realmente generar impacto. Si est\u00e1s evaluando c\u00f3mo llevar esto a la pr\u00e1ctica en tu equipo, <span style=\"text-decoration: underline;\"><strong><a href=\"https:\/\/minders.io\/let's-talk\">hablemos!\u00a0<\/a><\/strong><\/span><!-- notionvc: 38ab4598-88f9-4436-8396-680ad721a456 --><\/h4>\n<p><!-- notionvc: 281e885c-912c-408c-a538-c755c6622849 --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Escrito por Obed Cavanzo (Solutions Architect) Una buena integraci\u00f3n no termina cuando el c\u00f3digo se sube. Termina cuando todo funciona, como deber\u00eda, en el mundo real. Esta gu\u00eda est\u00e1 pensada para equipos que usan Braze en aplicaciones m\u00f3viles (iOS y Android) y quieren asegurarse de que las bases est\u00e9n bien puestas antes de cada release. [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":6488,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","content-type":"","inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-6461","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>QA Braze SDK en apps m\u00f3viles: gu\u00eda completa paso a paso - Minders<\/title>\n<meta name=\"description\" content=\"Aprende c\u00f3mo hacer QA del SDK de Braze en apps m\u00f3viles. Checklist para validar push, in-app, eventos y deep links en Android y iOS.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"QA Braze SDK en apps m\u00f3viles: gu\u00eda completa paso a paso\" \/>\n<meta property=\"og:description\" content=\"Aprende c\u00f3mo hacer QA del SDK de Braze en apps m\u00f3viles. Checklist para validar push, in-app, eventos y deep links en Android y iOS.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/\" \/>\n<meta property=\"og:site_name\" content=\"Minders\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-29T14:28:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-30T17:28:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/fondos-canva-26.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Renata Gagliardi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Renata Gagliardi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/minders.io\\\/es\\\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/minders.io\\\/es\\\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\\\/\"},\"author\":{\"name\":\"Renata Gagliardi\",\"@id\":\"https:\\\/\\\/minders.io\\\/#\\\/schema\\\/person\\\/4aa6519ce2675e3453a412bf66f1e2e9\"},\"headline\":\"QA Braze SDK en apps m\u00f3viles: gu\u00eda completa paso a paso\",\"datePublished\":\"2025-12-29T14:28:03+00:00\",\"dateModified\":\"2025-12-30T17:28:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/minders.io\\\/es\\\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\\\/\"},\"wordCount\":1714,\"image\":{\"@id\":\"https:\\\/\\\/minders.io\\\/es\\\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/minders.io\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/fondos-canva-26.jpg\",\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/minders.io\\\/es\\\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\\\/\",\"url\":\"https:\\\/\\\/minders.io\\\/es\\\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\\\/\",\"name\":\"QA Braze SDK en apps m\u00f3viles: gu\u00eda completa paso a paso - Minders\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/minders.io\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/minders.io\\\/es\\\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/minders.io\\\/es\\\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/minders.io\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/fondos-canva-26.jpg\",\"datePublished\":\"2025-12-29T14:28:03+00:00\",\"dateModified\":\"2025-12-30T17:28:52+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/minders.io\\\/#\\\/schema\\\/person\\\/4aa6519ce2675e3453a412bf66f1e2e9\"},\"description\":\"Aprende c\u00f3mo hacer QA del SDK de Braze en apps m\u00f3viles. Checklist para validar push, in-app, eventos y deep links en Android y iOS.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/minders.io\\\/es\\\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/minders.io\\\/es\\\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/minders.io\\\/es\\\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\\\/#primaryimage\",\"url\":\"https:\\\/\\\/minders.io\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/fondos-canva-26.jpg\",\"contentUrl\":\"https:\\\/\\\/minders.io\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/fondos-canva-26.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/minders.io\\\/es\\\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/minders.io\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"QA Braze SDK en apps m\u00f3viles: gu\u00eda completa paso a paso\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/minders.io\\\/#website\",\"url\":\"https:\\\/\\\/minders.io\\\/\",\"name\":\"Minders\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/minders.io\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/minders.io\\\/#\\\/schema\\\/person\\\/4aa6519ce2675e3453a412bf66f1e2e9\",\"name\":\"Renata Gagliardi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ffb05d7946c7f9a0b09674e29eac0557c953e0399d76fa4106a2e4c50269c2ff?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ffb05d7946c7f9a0b09674e29eac0557c953e0399d76fa4106a2e4c50269c2ff?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ffb05d7946c7f9a0b09674e29eac0557c953e0399d76fa4106a2e4c50269c2ff?s=96&d=mm&r=g\",\"caption\":\"Renata Gagliardi\"},\"sameAs\":[\"http:\\\/\\\/minders.io\"],\"url\":\"https:\\\/\\\/minders.io\\\/es\\\/author\\\/renataminders\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"QA Braze SDK en apps m\u00f3viles: gu\u00eda completa paso a paso - Minders","description":"Aprende c\u00f3mo hacer QA del SDK de Braze en apps m\u00f3viles. Checklist para validar push, in-app, eventos y deep links en Android y iOS.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/","og_locale":"es_ES","og_type":"article","og_title":"QA Braze SDK en apps m\u00f3viles: gu\u00eda completa paso a paso","og_description":"Aprende c\u00f3mo hacer QA del SDK de Braze en apps m\u00f3viles. Checklist para validar push, in-app, eventos y deep links en Android y iOS.","og_url":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/","og_site_name":"Minders","article_published_time":"2025-12-29T14:28:03+00:00","article_modified_time":"2025-12-30T17:28:52+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/fondos-canva-26.jpg","type":"image\/jpeg"}],"author":"Renata Gagliardi","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Renata Gagliardi","Tiempo de lectura":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/#article","isPartOf":{"@id":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/"},"author":{"name":"Renata Gagliardi","@id":"https:\/\/minders.io\/#\/schema\/person\/4aa6519ce2675e3453a412bf66f1e2e9"},"headline":"QA Braze SDK en apps m\u00f3viles: gu\u00eda completa paso a paso","datePublished":"2025-12-29T14:28:03+00:00","dateModified":"2025-12-30T17:28:52+00:00","mainEntityOfPage":{"@id":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/"},"wordCount":1714,"image":{"@id":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/#primaryimage"},"thumbnailUrl":"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/fondos-canva-26.jpg","inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/","url":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/","name":"QA Braze SDK en apps m\u00f3viles: gu\u00eda completa paso a paso - Minders","isPartOf":{"@id":"https:\/\/minders.io\/#website"},"primaryImageOfPage":{"@id":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/#primaryimage"},"image":{"@id":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/#primaryimage"},"thumbnailUrl":"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/fondos-canva-26.jpg","datePublished":"2025-12-29T14:28:03+00:00","dateModified":"2025-12-30T17:28:52+00:00","author":{"@id":"https:\/\/minders.io\/#\/schema\/person\/4aa6519ce2675e3453a412bf66f1e2e9"},"description":"Aprende c\u00f3mo hacer QA del SDK de Braze en apps m\u00f3viles. Checklist para validar push, in-app, eventos y deep links en Android y iOS.","breadcrumb":{"@id":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/#primaryimage","url":"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/fondos-canva-26.jpg","contentUrl":"https:\/\/minders.io\/wp-content\/uploads\/2025\/12\/fondos-canva-26.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/minders.io\/es\/qa-braze-sdk-en-apps-moviles-guia-completa-paso-a-paso\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/minders.io\/"},{"@type":"ListItem","position":2,"name":"QA Braze SDK en apps m\u00f3viles: gu\u00eda completa paso a paso"}]},{"@type":"WebSite","@id":"https:\/\/minders.io\/#website","url":"https:\/\/minders.io\/","name":"Minders","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/minders.io\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/minders.io\/#\/schema\/person\/4aa6519ce2675e3453a412bf66f1e2e9","name":"Renata Gagliardi","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/ffb05d7946c7f9a0b09674e29eac0557c953e0399d76fa4106a2e4c50269c2ff?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ffb05d7946c7f9a0b09674e29eac0557c953e0399d76fa4106a2e4c50269c2ff?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ffb05d7946c7f9a0b09674e29eac0557c953e0399d76fa4106a2e4c50269c2ff?s=96&d=mm&r=g","caption":"Renata Gagliardi"},"sameAs":["http:\/\/minders.io"],"url":"https:\/\/minders.io\/es\/author\/renataminders\/"}]}},"_links":{"self":[{"href":"https:\/\/minders.io\/es\/wp-json\/wp\/v2\/posts\/6461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/minders.io\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/minders.io\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/minders.io\/es\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/minders.io\/es\/wp-json\/wp\/v2\/comments?post=6461"}],"version-history":[{"count":8,"href":"https:\/\/minders.io\/es\/wp-json\/wp\/v2\/posts\/6461\/revisions"}],"predecessor-version":[{"id":6577,"href":"https:\/\/minders.io\/es\/wp-json\/wp\/v2\/posts\/6461\/revisions\/6577"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/minders.io\/es\/wp-json\/wp\/v2\/media\/6488"}],"wp:attachment":[{"href":"https:\/\/minders.io\/es\/wp-json\/wp\/v2\/media?parent=6461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/minders.io\/es\/wp-json\/wp\/v2\/categories?post=6461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/minders.io\/es\/wp-json\/wp\/v2\/tags?post=6461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}