Resuelve los problemas habituales del seguimiento de conversiones: eventos que no llegan, errores CORS, 403 de dominio, atribución perdida y duplicados.
El fragmento está en el sitio equivocado: tiene que ir en <head>, no en <body> ni después de </html>
Falta el site_id: comprueba que scanova('init', 'YOUR_SITE_ID', ...) lleva un ID de sitio real y no un marcador de posición
La Content Security Policy (CSP) bloquea el script: añade https://cdn.scanova.io (script source) y https://t.scanova.io (connect source) a tus cabeceras de CSP
Una extensión del navegador bloquea la petición: pruébalo en una ventana de incógnito con todas las extensiones desactivadas
autoPageview: false y ninguna llamada manual: activa autoPageview o añade scanova('track', 'pageview')
El SDK está cargado dos veces: tener a la vez la instalación directa en HTML y la de GTM en la misma página da problemas. Quita una de las dos.
El origen de tu petición no está en la lista Allowed Domains del sitio de seguimiento.
Ve a Análisis → Seguimiento de conversiones
Haz clic en tu sitio de seguimiento → Edit
Añade exactamente el nombre de host que ves en la barra de direcciones del navegador (por ejemplo yoursite.com o www.yoursite.com)
Guarda
www.yoursite.com y yoursite.com se tratan como dominios distintos. Añade los dos si usas ambos.
La lista de dominios permitidos se comprueba contra el Origin de la petición (y, en su defecto, contra Referer). Por eso, reproducir un evento del navegador con curl o desde el servidor devuelve 403 Domain not allowed for this site aunque el dominio esté permitido: no se envía ninguna de las dos cabeceras. Añade -H "Origin: https://yoursite.com" cuando reproduzcas un evento del navegador a mano.
Tienes a la vez autoPageview: true en las opciones de init y una llamada manual a scanova('track', 'page_view', ...) en algún punto de tu código. Eso genera dos eventos distintos. Quita uno: consulta Eventos registrados automáticamente.
Si una visita no produce ninguna petición a /ct, lo más probable es que la persona llegara sin escanear un código QR: no hay parámetro ?scnv= en la URL. El SDK comprueba que existe un scan_session_id antes de enviar cualquier evento y, si no lo hay, no envía nada.El seguimiento de conversiones de Scanova solo mide el tráfico que viene de un escaneo. Las visitas directas u orgánicas no generan eventos: es intencionado.Para probar la atribución, abre tu página con un parámetro ?scnv= y simula así un escaneo:
Los eventos llegan pero no se atribuyen a ningún código QR
El scan_session_id que enviaste no se ha podido enlazar con ningún escaneo en la base de datos de Scanova. Esto ocurre cuando:
El scan_session_id era inventado o no válido
La persona no llegó a escanear ningún código QR: entró directamente
La sesión de escaneo ha caducado
Comprueba que lees el scan_session_id del navegador (en localStorage._scnv, una clave de almacenamiento interna del SDK) y que lo pasas correctamente a tu servidor. Consulta Enviar eventos de servidor for examples.
Es un registro huérfano: el evento llegó antes de que los datos de la sesión de escaneo se propagaran del todo en la base de datos de Scanova. Estos registros se eliminan automáticamente a las 24 horas si los datos de sesión no llegan nunca, o se completan en cuanto llegan.Si ves muchos registros huérfanos, comprueba que:
El scan_session_id de tus eventos corresponde a una sesión de escaneo real (y no a un UUID de prueba)
Tus códigos QR están bien enlazados con el sitio de seguimiento en el panel
Las conversiones aparecen en el código QR equivocado
Tu scan_session_id no se está leyendo bien: puede que estés recuperando un valor obsoleto o incorrecto de localStorage. Comprueba que tu frontend lee localStorage.getItem('_scnv') (la clave de almacenamiento interna del SDK) y extrae .sid del valor JSON. Consulta Enviar eventos de servidor for the full pattern.
Eventos del navegador: 100 peticiones por minuto y dirección IP
Eventos de servidor: 1000 peticiones por minuto y clave de API
En los eventos de servidor, cambia al endpoint de lotes (POST /server-events/batch) para enviar hasta 100 eventos por petición y reducir tu ritmo de peticiones hasta cien veces.En los eventos del navegador, ver un 429 en uso normal es raro. Si aparece durante pruebas de carga, espacia tus peticiones.
¿Esta página le ayudó?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Scanova API Documentation","colors":{"primary":"#6938ef","light":"#6938ef","dark":"#6938ef"},"logo":{"light":"https://mintcdn.com/scanova-api/89jUfOeAiT0p2JGx/images/PrimaryColor-Full.svg?fit=max\u0026auto=format\u0026n=89jUfOeAiT0p2JGx\u0026q=85\u0026s=edc08604efcf06d6dd5d00e9e2c50f20","dark":"https://mintcdn.com/scanova-api/89jUfOeAiT0p2JGx/images/WhiteColor-Full2.svg?fit=max\u0026auto=format\u0026n=89jUfOeAiT0p2JGx\u0026q=85\u0026s=84e81cd9168db3d3ca3949b427e2d6c6"},"favicon":{"light":"https://mintcdn.com/scanova-api/aXUnnYg-8s3nt2o_/images/favicon-64x64.png?fit=max\u0026auto=format\u0026n=aXUnnYg-8s3nt2o_\u0026q=85\u0026s=b59720ad14aa6f2f474ea4380bf15d23","dark":"https://mintcdn.com/scanova-api/aXUnnYg-8s3nt2o_/images/favicon-64x64.png?fit=max\u0026auto=format\u0026n=aXUnnYg-8s3nt2o_\u0026q=85\u0026s=b59720ad14aa6f2f474ea4380bf15d23"},"background":{"color":{"dark":"#05060f"}},"navbar":{"links":[{"href":"https://scanova.io/contact-support/","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.scanova.io"}},"footer":{"socials":{"website":"https://scanova.io","youtube":"https://www.youtube.com/channel/UCHSrteaenPuxL0WjLFmhaEA/featured","x":"https://twitter.com/scanovatech","linkedin":"https://www.linkedin.com/products/scanova-qr-code-generator"}},"integrations":{"ga4":{"measurementId":"G-GWMY0DDJWB"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{},"languages":[{"language":"en","default":true,"href":"getting-started/what-is-scanova"},{"language":"de","href":"de/getting-started/what-is-scanova"},{"language":"es","href":"es/getting-started/what-is-scanova"},{"language":"fr","href":"fr/getting-started/what-is-scanova"},{"language":"zh","href":"zh/getting-started/what-is-scanova"},{"language":"ar","href":"ar/getting-started/what-is-scanova"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"scanova-api","hasAudioNarration":false,"actualSubdomain":"scanova-api","customDomains":["docs.scanova.io"],"gitSource":{"type":"github","owner":"trycon","repo":"qcg-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aeae5422d1fe1dfc0da7326","collectionId":"be1f7f57-9002-4484-8744-623fd9e88bd2","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aeae5422d1fe1dfc0da7326"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{},"buildId":"6aeae5422d1fe1dfc0da7326","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"en","tag":"API Reference","count":271},{"language":"de","tag":"API-Referenz","count":197},{"language":"es","tag":"Referencia de API","count":197},{"language":"fr","tag":"Référence API","count":197},{"language":"ar","tag":"مرجع واجهة البرمجة","count":189},{"language":"zh","tag":"API 参考","count":189},{"language":"en","tag":"Guides","count":115},{"language":"ar","tag":"الأدلة","count":96},{"language":"de","tag":"Anleitungen","count":96},{"language":"es","tag":"Guías","count":96},{"language":"fr","tag":"Guides","count":96},{"language":"zh","tag":"指南","count":93},{"language":"default","tag":"Guides (Legacy)","count":61},{"language":"en","tag":"QR Codes","count":49},{"language":"default","tag":"API reference (Legacy)","count":46},{"language":"en","tag":"Integrations","count":30},{"language":"default","tag":"Category Components","count":30},{"language":"en","tag":"Leads \u0026 Forms","count":28},{"language":"ar","tag":"العملاء المحتملون والنماذج","count":28},{"language":"default","tag":"Categories","count":28},{"language":"de","tag":"Leads \u0026 Formulare","count":28},{"language":"es","tag":"Clientes potenciales y formularios","count":28},{"language":"fr","tag":"Prospects et formulaires","count":28},{"language":"zh","tag":"潜在客户与表单","count":28},{"language":"ar","tag":"Conversion Tracking","count":27},{"language":"default","tag":"Conversion Tracking","count":27},{"language":"de","tag":"Conversion Tracking","count":27},{"language":"es","tag":"Conversion Tracking","count":27},{"language":"fr","tag":"Conversion Tracking","count":27},{"language":"en","tag":"QR Assets","count":26},{"language":"ar","tag":"أصول QR","count":26},{"language":"de","tag":"QR-Assets","count":26},{"language":"es","tag":"Recursos de QR","count":26},{"language":"fr","tag":"Ressources QR","count":26},{"language":"zh","tag":"QR 资源","count":26},{"language":"en","tag":"QR Codes — Create","count":25},{"language":"ar","tag":"رموز QR — إنشاء","count":23},{"language":"de","tag":"QR-Codes — Erstellen","count":23},{"language":"es","tag":"Códigos QR — Crear","count":23},{"language":"fr","tag":"Codes QR — Créer","count":23},{"language":"zh","tag":"二维码 — 创建","count":23},{"language":"en","tag":"QR Codes — Manage","count":18},{"language":"en","tag":"Analytics \u0026 Plans","count":17},{"language":"ar","tag":"التحليلات والخطط","count":17},{"language":"de","tag":"Analysen \u0026 Tarife","count":17},{"language":"es","tag":"Analítica y planes","count":17},{"language":"fr","tag":"Analytique et forfaits","count":17},{"language":"zh","tag":"分析与套餐","count":17},{"language":"en","tag":"Bulk Operations","count":16},{"language":"ar","tag":"العمليات بالجملة","count":16},{"language":"de","tag":"Massenvorgänge","count":16},{"language":"es","tag":"Operaciones en masa","count":16},{"language":"fr","tag":"Opérations en masse","count":16},{"language":"zh","tag":"批量操作","count":16},{"language":"ar","tag":"النطاقات المخصصة","count":14},{"language":"ar","tag":"المستخدمون المشتركون والأدوار","count":14},{"language":"de","tag":"Benutzerdefinierte Domains","count":14},{"language":"de","tag":"Geteilte Nutzer \u0026 Rollen","count":14},{"language":"es","tag":"Dominios personalizados","count":14},{"language":"es","tag":"Usuarios compartidos y roles","count":14},{"language":"fr","tag":"Domaines personnalisés","count":14},{"language":"fr","tag":"Utilisateurs partagés et rôles","count":14},{"language":"zh","tag":"自定义域名","count":14},{"language":"zh","tag":"共享用户与角色","count":14},{"language":"zh","tag":"主题与页面模板","count":14},{"language":"default","tag":"QR Code Management","count":9},{"language":"default","tag":"API Reference","count":8},{"language":"default","tag":"Browser SDK","count":7},{"language":"default","tag":"Folder Management","count":6},{"language":"default","tag":"Form Management","count":6}],"searchSettings":{"maxResults":10,"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"es/conversion-tracking/troubleshooting","slug":"/es/conversion-tracking/troubleshooting","pageMetadata":{"title":"Resolución de problemas","description":"Resuelve los problemas habituales del seguimiento de conversiones: eventos que no llegan, errores CORS, 403 de dominio, atribución perdida y duplicados.","href":"/es/conversion-tracking/troubleshooting"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Resuelve los problemas habituales del seguimiento de conversiones: eventos que no llegan, errores CORS, 403 de dominio, atribución perdida y duplicados.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`problemas-del-sdk-del-navegador`,children:`Problemas del SDK del navegador`}),`\n`,_jsxs(Heading,{level:`3`,id:`no-aparece-ninguna-petición-de-red-a-/ct`,children:[`No aparece ninguna petición de red a `,_jsx(_components.code,{children:`/ct`})]}),`\n`,_jsx(_components.p,{children:`Comprueba esto en orden:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`El fragmento está en el sitio equivocado`}),`: tiene que ir en `,_jsx(_components.code,{children:`\u003chead>`}),`, no en `,_jsx(_components.code,{children:`\u003cbody>`}),` ni después de `,_jsx(_components.code,{children:`\u003c/html>`})]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Falta el `,_jsx(_components.code,{children:`site_id`})]}),`: comprueba que `,_jsx(_components.code,{children:`scanova('init', 'YOUR_SITE_ID', ...)`}),` lleva un ID de sitio real y no un marcador de posición`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`La Content Security Policy (CSP) bloquea el script`}),`: añade `,_jsx(_components.code,{children:`https://cdn.scanova.io`}),` (script source) y `,_jsx(_components.code,{children:`https://t.scanova.io`}),` (connect source) a tus cabeceras de CSP`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Una extensión del navegador bloquea la petición`}),`: pruébalo en una ventana de incógnito con todas las extensiones desactivadas`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`autoPageview: false`}),` y ninguna llamada manual`]}),`: activa `,_jsx(_components.code,{children:`autoPageview`}),` o añade `,_jsx(_components.code,{children:`scanova('track', 'pageview')`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`El SDK está cargado dos veces`}),`: tener a la vez la instalación directa en HTML y la de GTM en la misma página da problemas. Quita una de las dos.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`403-domain-not-allowed`,children:_jsx(_components.code,{children:`403 Domain not allowed`})}),`\n`,_jsxs(_components.p,{children:[`El origen de tu petición no está en la lista `,_jsx(_components.strong,{children:`Allowed Domains`}),` del sitio de seguimiento.`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Ve a `,_jsx(_components.strong,{children:`Análisis → Seguimiento de conversiones`})]}),`\n`,_jsxs(_components.li,{children:[`Haz clic en tu sitio de seguimiento → `,_jsx(_components.strong,{children:`Edit`})]}),`\n`,_jsxs(_components.li,{children:[`Añade exactamente el nombre de host que ves en la barra de direcciones del navegador (por ejemplo `,_jsx(_components.code,{children:`yoursite.com`}),` o `,_jsx(_components.code,{children:`www.yoursite.com`}),`)`]}),`\n`,_jsx(_components.li,{children:`Guarda`}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`www.yoursite.com`}),` y `,_jsx(_components.code,{children:`yoursite.com`}),` se tratan como dominios distintos. Añade los dos si usas ambos.`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`La lista de dominios permitidos se comprueba contra el `,_jsx(_components.code,{children:`Origin`}),` de la petición (y, en su defecto, contra `,_jsx(_components.code,{children:`Referer`}),`). Por eso, reproducir un evento del navegador con `,_jsx(_components.code,{children:`curl`}),` o desde el servidor devuelve `,_jsx(_components.code,{children:`403 Domain not allowed for this site`}),` aunque el dominio esté permitido: no se envía ninguna de las dos cabeceras. Añade `,_jsx(_components.code,{children:`-H \"Origin: https://yoursite.com\"`}),` cuando reproduzcas un evento del navegador a mano.`]})}),`\n`,_jsxs(Heading,{level:`3`,id:`400-petición-incorrecta`,children:[_jsx(_components.code,{children:`400`}),`: petición incorrecta`]}),`\n`,_jsxs(_components.p,{children:[`El `,_jsx(_components.code,{children:`site_id`}),` no es válido, está vacío o el sitio se ha desactivado en el panel. Comprueba que:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Usas el `,_jsx(_components.code,{children:`site_id`}),` correcto de este sitio de seguimiento`]}),`\n`,_jsx(_components.li,{children:`El sitio está activo (aparece como habilitado en el panel)`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`los-eventos-salen-en-las-devtools-pero-no-en-el-panel`,children:`Los eventos salen en las DevTools pero no en el panel`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Espera hasta 60 segundos: hay un pequeño retardo de procesamiento`}),`\n`,_jsx(_components.li,{children:`Asegúrate de estar mirando el sitio de seguimiento correcto en el panel`}),`\n`,_jsxs(_components.li,{children:[`Comprueba que el `,_jsx(_components.code,{children:`site_id`}),` del contenido de la petición coincide con el sitio que estás viendo`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`se-disparan-dos-eventos-por-carga-de-página`,children:`Se disparan dos eventos por carga de página`}),`\n`,_jsxs(_components.p,{children:[`Tienes a la vez `,_jsx(_components.code,{children:`autoPageview: true`}),` en las opciones de init y una llamada manual a `,_jsx(_components.code,{children:`scanova('track', 'page_view', ...)`}),` en algún punto de tu código. Eso genera dos eventos distintos. Quita uno: consulta `,_jsx(_components.a,{href:`/es/conversion-tracking/browser/auto-tracking#page-view`,children:`Eventos registrados automáticamente`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`una-visita-concreta-no-genera-ningún-evento`,children:`Una visita concreta no genera ningún evento`}),`\n`,_jsxs(_components.p,{children:[`Si una visita no produce ninguna petición a `,_jsx(_components.code,{children:`/ct`}),`, lo más probable es que la persona llegara sin escanear un código QR: no hay parámetro `,_jsx(_components.code,{children:`?scnv=`}),` en la URL. El SDK comprueba que existe un `,_jsx(_components.code,{children:`scan_session_id`}),` antes de enviar cualquier evento y, si no lo hay, no envía nada.`]}),`\n`,_jsx(_components.p,{children:`El seguimiento de conversiones de Scanova solo mide el tráfico que viene de un escaneo. Las visitas directas u orgánicas no generan eventos: es intencionado.`}),`\n`,_jsxs(_components.p,{children:[`Para probar la atribución, abre tu página con un parámetro `,_jsx(_components.code,{children:`?scnv=`}),` y simula así un escaneo:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://yoursite.com/?scnv=00000000-0000-0000-0000-000000000001`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`problemas-de-los-eventos-de-servidor`,children:`Problemas de los eventos de servidor`}),`\n`,_jsxs(Heading,{level:`3`,id:`401-falta-la-clave-de-api`,children:[_jsx(_components.code,{children:`401`}),`: falta la clave de API`]}),`\n`,_jsxs(_components.p,{children:[`La petición no incluye la cabecera `,_jsx(_components.code,{children:`X-API-Key`}),`. Consulta `,_jsx(_components.a,{href:`/es/conversion-tracking/api/authentication`,children:`Autenticación`}),`.`]}),`\n`,_jsxs(Heading,{level:`3`,id:`403-clave-no-válida-o-sitio-equivocado`,children:[_jsx(_components.code,{children:`403`}),`: clave no válida o sitio equivocado`]}),`\n`,_jsxs(_components.p,{children:[`O la clave no es válida o está revocada, o el `,_jsx(_components.code,{children:`site_id`}),` de tu petición no corresponde al sitio que generó la clave. Comprueba que:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Vuelves a copiar la clave desde el panel (las claves se muestran una vez; si la has perdido, genera otra)`}),`\n`,_jsxs(_components.li,{children:[`El `,_jsx(_components.code,{children:`site_id`}),` de tu petición es el mismo ID de sitio que aparece en la lista de sitios de seguimiento de conversiones`]}),`\n`,_jsx(_components.li,{children:`La clave no se ha revocado`}),`\n`]}),`\n`,_jsxs(Heading,{level:`3`,id:`422-error-de-validación`,children:[_jsx(_components.code,{children:`422`}),`: error de validación`]}),`\n`,_jsx(_components.p,{children:`La respuesta indica exactamente qué campo ha fallado. Causas habituales:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Causa`}),_jsx(_components.th,{children:`Solución`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`scan_session_id`}),` no es un UUID`]}),_jsx(_components.td,{children:`Debe ser una cadena UUID válida`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Falta `,_jsx(_components.code,{children:`event_name`})]}),_jsx(_components.td,{children:`Es obligatorio en los eventos de servidor`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`properties`}),` supera los 10 KB`]}),_jsx(_components.td,{children:`Reduce el tamaño del contenido`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Correo en texto plano en `,_jsx(_components.code,{children:`properties`})]}),_jsxs(_components.td,{children:[`Aplícale un hash: `,_jsx(_components.code,{children:`user_identifiers.email_hash`})]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`los-eventos-llegan-pero-no-se-atribuyen-a-ningún-código-qr`,children:`Los eventos llegan pero no se atribuyen a ningún código QR`}),`\n`,_jsxs(_components.p,{children:[`El `,_jsx(_components.code,{children:`scan_session_id`}),` que enviaste no se ha podido enlazar con ningún escaneo en la base de datos de Scanova. Esto ocurre cuando:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`El `,_jsx(_components.code,{children:`scan_session_id`}),` era inventado o no válido`]}),`\n`,_jsx(_components.li,{children:`La persona no llegó a escanear ningún código QR: entró directamente`}),`\n`,_jsx(_components.li,{children:`La sesión de escaneo ha caducado`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Comprueba que lees el `,_jsx(_components.code,{children:`scan_session_id`}),` del navegador (en `,_jsx(_components.code,{children:`localStorage._scnv`}),`, una clave de almacenamiento interna del SDK) y que lo pasas correctamente a tu servidor. Consulta `,_jsx(_components.a,{href:`/es/conversion-tracking/server/send-events#passing-scan_session_id-from-browser-to-server`,children:`Enviar eventos de servidor`}),` for examples.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`problemas-de-atribución`,children:`Problemas de atribución`}),`\n`,_jsxs(Heading,{level:`3`,id:`los-eventos-muestran-null-en-qr_code_id`,children:[`Los eventos muestran `,_jsx(_components.code,{children:`null`}),` en `,_jsx(_components.code,{children:`qr_code_id`})]}),`\n`,_jsxs(_components.p,{children:[`Es un `,_jsx(_components.strong,{children:`registro huérfano`}),`: el evento llegó antes de que los datos de la sesión de escaneo se propagaran del todo en la base de datos de Scanova. Estos registros se eliminan automáticamente a las 24 horas si los datos de sesión no llegan nunca, o se completan en cuanto llegan.`]}),`\n`,_jsx(_components.p,{children:`Si ves muchos registros huérfanos, comprueba que:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`El `,_jsx(_components.code,{children:`scan_session_id`}),` de tus eventos corresponde a una sesión de escaneo real (y no a un UUID de prueba)`]}),`\n`,_jsx(_components.li,{children:`Tus códigos QR están bien enlazados con el sitio de seguimiento en el panel`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`las-conversiones-aparecen-en-el-código-qr-equivocado`,children:`Las conversiones aparecen en el código QR equivocado`}),`\n`,_jsxs(_components.p,{children:[`Tu `,_jsx(_components.code,{children:`scan_session_id`}),` no se está leyendo bien: puede que estés recuperando un valor obsoleto o incorrecto de `,_jsx(_components.code,{children:`localStorage`}),`. Comprueba que tu frontend lee `,_jsx(_components.code,{children:`localStorage.getItem('_scnv')`}),` (la clave de almacenamiento interna del SDK) y extrae `,_jsx(_components.code,{children:`.sid`}),` del valor JSON. Consulta `,_jsx(_components.a,{href:`/es/conversion-tracking/server/send-events#passing-scan_session_id-from-browser-to-server`,children:`Enviar eventos de servidor`}),` for the full pattern.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`problemas-de-rendimiento`,children:`Problemas de rendimiento`}),`\n`,_jsxs(Heading,{level:`3`,id:`429-límite-de-frecuencia-superado`,children:[_jsx(_components.code,{children:`429`}),`: límite de frecuencia superado`]}),`\n`,_jsx(_components.p,{children:`Estás alcanzando el límite de frecuencia:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Eventos del navegador: 100 peticiones por minuto y dirección IP`}),`\n`,_jsx(_components.li,{children:`Eventos de servidor: 1000 peticiones por minuto y clave de API`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`En los eventos de servidor, cambia al endpoint de lotes (`,_jsx(_components.code,{children:`POST /server-events/batch`}),`) para enviar hasta 100 eventos por petición y reducir tu ritmo de peticiones hasta cien veces.`]}),`\n`,_jsxs(_components.p,{children:[`En los eventos del navegador, ver un `,_jsx(_components.code,{children:`429`}),` en uso normal es raro. Si aparece durante pruebas de carga, espacia tus peticiones.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Resolución de problemas","description":"Resuelve los problemas habituales del seguimiento de conversiones: eventos que no llegan, errores CORS, 403 de dominio, atribución perdida y duplicados.","href":"/es/conversion-tracking/troubleshooting"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Problemas del SDK del navegador","slug":"problemas-del-sdk-del-navegador","depth":2,"children":[{"title":"No aparece ninguna petición de red a /ct","slug":"no-aparece-ninguna-petición-de-red-a-/ct","depth":3,"children":[]},{"title":"403 Domain not allowed","slug":"403-domain-not-allowed","depth":3,"children":[]},{"title":"400: petición incorrecta","slug":"400-petición-incorrecta","depth":3,"children":[]},{"title":"Los eventos salen en las DevTools pero no en el panel","slug":"los-eventos-salen-en-las-devtools-pero-no-en-el-panel","depth":3,"children":[]},{"title":"Se disparan dos eventos por carga de página","slug":"se-disparan-dos-eventos-por-carga-de-página","depth":3,"children":[]},{"title":"Una visita concreta no genera ningún evento","slug":"una-visita-concreta-no-genera-ningún-evento","depth":3,"children":[]}]},{"title":"Problemas de los eventos de servidor","slug":"problemas-de-los-eventos-de-servidor","depth":2,"children":[{"title":"401: falta la clave de API","slug":"401-falta-la-clave-de-api","depth":3,"children":[]},{"title":"403: clave no válida o sitio equivocado","slug":"403-clave-no-válida-o-sitio-equivocado","depth":3,"children":[]},{"title":"422: error de validación","slug":"422-error-de-validación","depth":3,"children":[]},{"title":"Los eventos llegan pero no se atribuyen a ningún código QR","slug":"los-eventos-llegan-pero-no-se-atribuyen-a-ningún-código-qr","depth":3,"children":[]}]},{"title":"Problemas de atribución","slug":"problemas-de-atribución","depth":2,"children":[{"title":"Los eventos muestran null en qr_code_id","slug":"los-eventos-muestran-null-en-qr_code_id","depth":3,"children":[]},{"title":"Las conversiones aparecen en el código QR equivocado","slug":"las-conversiones-aparecen-en-el-código-qr-equivocado","depth":3,"children":[]}]},{"title":"Problemas de rendimiento","slug":"problemas-de-rendimiento","depth":2,"children":[{"title":"429: límite de frecuencia superado","slug":"429-límite-de-frecuencia-superado","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"scanova-api","siteName":"Scanova API Documentation","title":"Resolución de problemas - Scanova API Documentation","navMaps":{"firstHrefInVersion":{"v2":{"href":"/es/conversion-tracking/troubleshooting","matchLevel":0},"v1":{"href":"/v1/index","matchLevel":4}},"firstHrefInLanguage":{"en":{"href":"/conversion-tracking/troubleshooting","matchLevel":1},"de":{"href":"/de/conversion-tracking/troubleshooting","matchLevel":1},"es":{"href":"/es/conversion-tracking/troubleshooting","matchLevel":0},"fr":{"href":"/fr/conversion-tracking/troubleshooting","matchLevel":1},"zh":{"href":"/conversion-tracking/troubleshooting","matchLevel":1},"ar":{"href":"/ar/conversion-tracking/troubleshooting","matchLevel":1}}},"lastModified":"2026-09-17T15:36:06.070Z","originalFileLocation":"es/conversion-tracking/troubleshooting.mdx","locale":"es"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Resuelve los problemas habituales del seguimiento de conversiones: eventos que no llegan, errores CORS, 403 de dominio, atribución perdida y duplicados.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Scanova API Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/scanova-api/kNDlh2zn25UXP5WX/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/scanova-api/kNDlh2zn25UXP5WX/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/scanova-api/kNDlh2zn25UXP5WX/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/scanova-api/kNDlh2zn25UXP5WX/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/scanova-api/kNDlh2zn25UXP5WX/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/scanova-api/kNDlh2zn25UXP5WX/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/scanova-api/kNDlh2zn25UXP5WX/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/scanova-api/kNDlh2zn25UXP5WX/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/scanova-api/kNDlh2zn25UXP5WX/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Resolución de problemas - Scanova API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Resuelve los problemas habituales del seguimiento de conversiones: eventos que no llegan, errores CORS, 403 de dominio, atribución perdida y duplicados.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Scanova API Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.scanova.io/es/conversion-tracking/troubleshooting\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://scanova-api.mintlify.app/_mintlify/api/og/v2?division=Recursos\u0026amp;title=Resoluci%C3%B3n+de+problemas\u0026amp;description=Resuelve+los+problemas+habituales+del+seguimiento+de+conversiones%3A+eventos+que+no+llegan%2C+errores+CORS%2C+403+de+dominio%2C+atribuci%C3%B3n+perdida+y+duplicados.\u0026amp;theme=f9ed38a6e1c8b99666344abf\u0026amp;signature=0203985b1287f016efd5d0715fa2d1765199ce48e3663deac9421c4ce392246b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Resolución de problemas - Scanova API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Resuelve los problemas habituales del seguimiento de conversiones: eventos que no llegan, errores CORS, 403 de dominio, atribución perdida y duplicados.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://scanova-api.mintlify.app/_mintlify/api/og/v2?division=Recursos\u0026amp;title=Resoluci%C3%B3n+de+problemas\u0026amp;description=Resuelve+los+problemas+habituales+del+seguimiento+de+conversiones%3A+eventos+que+no+llegan%2C+errores+CORS%2C+403+de+dominio%2C+atribuci%C3%B3n+perdida+y+duplicados.\u0026amp;theme=f9ed38a6e1c8b99666344abf\u0026amp;signature=0203985b1287f016efd5d0715fa2d1765199ce48e3663deac9421c4ce392246b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/scanova-api/kNDlh2zn25UXP5WX/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Scanova API Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6938ef\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.scanova.io/es/conversion-tracking/troubleshooting\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/es/conversion-tracking/troubleshooting.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.scanova.io/es/conversion-tracking/troubleshooting\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.scanova.io/conversion-tracking/troubleshooting\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.scanova.io/de/conversion-tracking/troubleshooting\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.scanova.io/fr/conversion-tracking/troubleshooting\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.scanova.io/conversion-tracking/troubleshooting\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.scanova.io/ar/conversion-tracking/troubleshooting\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.scanova.io/conversion-tracking/troubleshooting\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.scanova.io/#organization\",\"name\":\"Scanova API Documentation\",\"url\":\"https://docs.scanova.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/scanova-api/89jUfOeAiT0p2JGx/images/PrimaryColor-Full.svg?fit=max\u0026auto=format\u0026n=89jUfOeAiT0p2JGx\u0026q=85\u0026s=edc08604efcf06d6dd5d00e9e2c50f20\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.scanova.io#website\",\"name\":\"Scanova API Documentation\",\"url\":\"https://docs.scanova.io\",\"publisher\":{\"@id\":\"https://docs.scanova.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.scanova.io/es/conversion-tracking/troubleshooting#webpage\",\"url\":\"https://docs.scanova.io/es/conversion-tracking/troubleshooting\",\"name\":\"Resolución de problemas\",\"description\":\"Resuelve los problemas habituales del seguimiento de conversiones: eventos que no llegan, errores CORS, 403 de dominio, atribución perdida y duplicados.\",\"dateModified\":\"2026-09-17T15:36:06.070Z\",\"isPartOf\":{\"@id\":\"https://docs.scanova.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.scanova.io/es/conversion-tracking/troubleshooting#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.scanova.io/es/conversion-tracking/troubleshooting#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Scanova API Documentation\",\"item\":\"https://docs.scanova.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Resolución de problemas\",\"item\":\"https://docs.scanova.io/es/conversion-tracking/troubleshooting\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.scanova.io/es/conversion-tracking/troubleshooting#article\",\"headline\":\"Resolución de problemas\",\"name\":\"Resolución de problemas\",\"description\":\"Resuelve los problemas habituales del seguimiento de conversiones: eventos que no llegan, errores CORS, 403 de dominio, atribución perdida y duplicados.\",\"url\":\"https://docs.scanova.io/es/conversion-tracking/troubleshooting\",\"mainEntityOfPage\":{\"@id\":\"https://docs.scanova.io/es/conversion-tracking/troubleshooting#webpage\"},\"dateModified\":\"2026-09-17T15:36:06.070Z\",\"publisher\":{\"@id\":\"https://docs.scanova.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.scanova.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Scanova API Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Scanova API Documentation","nav":{"global":{},"languages":[{"language":"en","default":true,"pages":[{"title":"en","href":"/conversion-tracking/troubleshooting"}]},{"language":"de","pages":[{"title":"de","href":"/de/conversion-tracking/troubleshooting"}]},{"language":"es","versions":[{"version":"v2","default":true,"tag":"Latest","tabs":[{"tab":"Guías","pages":[{"title":"Guías","href":"/es/getting-started/what-is-scanova"}]},{"tab":"Referencia de API","pages":[{"title":"Referencia de API","href":"/es/api-reference/getting-started/introduction"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/es/mcp/overview"}]},{"tab":"Conversion Tracking","groups":[{"group":"Visión general","pages":[{"title":"¿Qué es el seguimiento de conversiones?","href":"/es/conversion-tracking/introduction"},{"title":"Cómo funciona el seguimiento de conversiones","href":"/es/conversion-tracking/how-it-works"},{"title":"Inicio rápido: en marcha en 5 pasos","href":"/es/conversion-tracking/setup-guide"},{"title":"Referencia del modelo de eventos","href":"/es/conversion-tracking/event-model"}]},{"group":"SDK del navegador","pages":[{"title":"Resumen del SDK de navegador","href":"/es/conversion-tracking/browser/overview"},{"title":"Instalar el SDK de navegador","href":"/es/conversion-tracking/browser/install"},{"title":"Referencia de configuración del SDK","href":"/es/conversion-tracking/browser/sdk-configuration"},{"title":"Eventos registrados automáticamente","href":"/es/conversion-tracking/browser/auto-tracking"},{"title":"Eventos personalizados","href":"/es/conversion-tracking/browser/custom-events"},{"title":"Configuración para SPA y frameworks","href":"/es/conversion-tracking/browser/spa-frameworks"},{"title":"Verificar y depurar el SDK de navegador","href":"/es/conversion-tracking/browser/verify"}]},{"group":"En el servidor","pages":[{"title":"Eventos de servidor","href":"/es/conversion-tracking/server/overview"},{"title":"Generar una clave de API","href":"/es/conversion-tracking/server/generate-api-key-dashboard"},{"title":"Enviar eventos de servidor","href":"/es/conversion-tracking/server/send-events"},{"title":"Idempotencia y reintentos","href":"/es/conversion-tracking/server/idempotency-retries"},{"title":"Verificar y depurar eventos de servidor","href":"/es/conversion-tracking/server/verify"}]},{"group":"Referencia de API","pages":[{"title":"Autenticación de la API","href":"/es/conversion-tracking/api/authentication"},{"title":"API de eventos del navegador — POST /ct","href":"/es/conversion-tracking/api/browser-events"},{"title":"API de eventos de servidor — POST /server-events","openapi":"POST /server-events","href":"/es/conversion-tracking/api/events-collect"},{"title":"API de eventos de servidor por lotes — POST /server-events/batch","openapi":"POST /server-events/batch","href":"/es/conversion-tracking/api/events-batch"},{"title":"Errores y límites de frecuencia","href":"/es/conversion-tracking/api/errors-rate-limits"},{"title":"Analítica de conversiones","openapi":"POST /analytics/ct/","href":"/es/conversion-tracking/api/ct-analytics"},{"title":"Exportar la analítica de conversiones","openapi":"POST /analytics/ct/export/","href":"/es/conversion-tracking/api/ct-export"},{"title":"Exportar eventos de conversión sin agregar","openapi":"POST /analytics/ct/raw/","description":"Exporta los eventos de conversión uno a uno, fila a fila, en formato CSV, XLS o XLSX, con filtros por código QR, categoría, usuario o intervalo de fechas.","href":"/es/conversion-tracking/api/ct-raw"}]},{"group":"Recursos","pages":[{"title":"Resolución de problemas","href":"/es/conversion-tracking/troubleshooting"},{"title":"Preguntas frecuentes","description":"Respuestas a las dudas más habituales sobre el seguimiento de conversiones de Scanova: configuración, atribución, eventos, privacidad e informes del panel.","href":"/es/conversion-tracking/faq"},{"title":"Historial de cambios","href":"/es/conversion-tracking/changelog"}]}]}]},{"version":"v1","tag":"Legacy","pages":[{"title":"v1","href":"/v1"}]}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/conversion-tracking/troubleshooting"}]},{"language":"zh","pages":[{"title":"zh","href":"/conversion-tracking/troubleshooting"}]},{"language":"ar","pages":[{"title":"ar","href":"/ar/conversion-tracking/troubleshooting"}]}]},"basePath":"","title":"Resolución de problemas - Scanova API Documentation","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":[],"chunks":[]}