Integration GuideGuia de Integracion

Client Integration GuideGuia de Integracion para Clientes

Everything you need to connect your website or app to RELO for affiliate tracking. This guide walks you through setting up payment tracking via Stripe and installing the web pixel for traffic analytics. Todo lo que necesitas para conectar tu sitio web o app a RELO para el seguimiento de afiliados. Esta guia te lleva paso a paso por la configuracion del seguimiento de pagos via Stripe y la instalacion del pixel web para analitica de trafico.

Estimated total setup time: ~10 minutesTiempo estimado de configuracion: ~10 minutos
🔍

OverviewResumen

RELO is an affiliate marketing platform that tracks which partners (affiliates) drive customers to your business. When a partner shares a tracking link and a customer clicks it, RELO records that click. When the customer later makes a purchase, RELO automatically matches the sale to the correct partner and calculates their commission. You do not need to build any attribution logic yourself. RELO es una plataforma de marketing de afiliados que rastrea que partners (afiliados) llevan clientes a tu negocio. Cuando un partner comparte un enlace de seguimiento y un cliente hace clic, RELO registra ese clic. Cuando el cliente realiza una compra, RELO automaticamente asocia la venta al partner correcto y calcula su comision. No necesitas construir ninguna logica de atribucion por tu cuenta.

There are two things to set up:Hay dos cosas que configurar:

💳
Stripe Webhook
Tracks every payment automatically. Required.Rastrea cada pago automaticamente. Requerido.
📊
Web Pixel
Tracks page views and user behavior. Recommended.Rastrea vistas de pagina y comportamiento. Recomendado.
Good newsBuenas noticias

If you use Stripe Checkout (the hosted payment page), you can complete the entire Stripe integration without writing a single line of code. Just configure the webhook in your Stripe Dashboard.Si usas Stripe Checkout (la pagina de pago alojada), puedes completar toda la integracion de Stripe sin escribir una sola linea de codigo. Solo configura el webhook en tu Stripe Dashboard.

Which integration do you need?Que integracion necesitas?
Answer 3 quick questions and we will highlight exactly what to read.Responde 3 preguntas rapidas y te indicaremos exactamente que leer.
Q1: How do you accept payments?P1: Como aceptas pagos?
💳 Stripe
🌐 PayPal
OtherOtro
Q2: Which Stripe integration do you use?P2: Que integracion de Stripe usas?
🔗 Checkout (hosted page)Checkout (pagina alojada)
🎨 Elements (embedded)Elements (embebido)
🔄 Billing (subscriptions)
Not sureNo estoy seguro
Q3: What is your website built with?P3: Con que esta construido tu sitio web?
📄 Plain HTML
🛒 WordPress / Shopify
React / Next.js
🔧 Other frameworkOtro framework
Your personalized integration plan:Tu plan de integracion personalizado:

    How It All ConnectsComo se Conecta Todo

    Partner shares link Click cookie set Browse pixel tracks Purchase Stripe event Webhook to RELO Match attribution Commission calculated
    1
    Stripe Webhook (Payment Tracking)Webhook de Stripe (Seguimiento de Pagos)
    ~5 min
    💳 Payment
    🔔 Webhook
    📡 RELO
    📊 Dashboard

    Why you need itPor que lo necesitas

    Every time a customer pays through Stripe, Stripe sends a webhook notification to RELO. RELO processes this notification, identifies which partner drove the customer (using the tracking cookie from their click), and records the sale with the correct commission. This happens automatically — you do not need to build any custom tracking code. Cada vez que un cliente paga a traves de Stripe, Stripe envia una notificacion webhook a RELO. RELO procesa esta notificacion, identifica que partner trajo al cliente (usando la cookie de seguimiento de su clic) y registra la venta con la comision correcta. Esto sucede automaticamente — no necesitas construir ningun codigo de seguimiento personalizado.

    Your webhook URL is unique to your account. It follows this format:Tu URL de webhook es unica para tu cuenta. Sigue este formato:

    POST https://ingest.relo.mx/postback/stripe/{your-client-slug}

    Replace {your-client-slug} with the slug your RELO contact provided (e.g., samsung, mycompany). If you are unsure of your slug, check your RELO Dashboard under Config → Data Pipeline or ask your RELO contact. Reemplaza {your-client-slug} con el slug que tu contacto de RELO te proporciono (ej., samsung, mycompany). Si no estas seguro de tu slug, consulta tu Dashboard de RELO en Config → Data Pipeline o pregunta a tu contacto de RELO.

    Scenario A

    Stripe Checkout (Hosted Payment Page)

    This is the most common scenario. Your customer clicks a "Pay" button and is redirected to Stripe's hosted checkout page. After payment, they return to your site. You only need the webhook — no code changes required. Este es el escenario mas comun. Tu cliente hace clic en un boton "Pagar" y es redirigido a la pagina de checkout alojada de Stripe. Despues del pago, regresa a tu sitio. Solo necesitas el webhook — no se requieren cambios de codigo.

    1. Open Stripe Dashboard
      Go to dashboard.stripe.com/webhooks and click "Add endpoint".
      Abre el Stripe Dashboard
      Ve a dashboard.stripe.com/webhooks y haz clic en "Add endpoint".
    2. Enter the endpoint URL
      Paste your RELO webhook URL:
      Ingresa la URL del endpoint
      Pega tu URL de webhook de RELO:
      URL
      https://ingest.relo.mx/postback/stripe/{your-client-slug}
    3. Select events to listen to
      Click "Select events" and check the following:
      Selecciona los eventos a escuchar
      Haz clic en "Select events" y marca los siguientes:
      • checkout.session.completed
      • invoice.paid

      If you also have subscriptions, add the subscription events listed in Scenario C below.Si tambien tienes suscripciones, agrega los eventos de suscripcion listados en el Escenario C abajo.

    4. Click "Add endpoint"
      Stripe will create the webhook and show you the endpoint details page.
      Haz clic en "Add endpoint"
      Stripe creara el webhook y te mostrara la pagina de detalles del endpoint.
    5. Copy the signing secret
      On the endpoint details page, click "Reveal" under "Signing secret". Copy the value — it starts with whsec_.
      Copia el signing secret
      En la pagina de detalles del endpoint, haz clic en "Reveal" bajo "Signing secret". Copia el valor — comienza con whsec_.
    6. Send the signing secret to RELO
      You have two options:
      Envia el signing secret a RELO
      Tienes dos opciones:
      • Option A: Go to your RELO Dashboard → Config → Data Pipeline → Stripe, and paste the secret there.Opcion A: Ve a tu Dashboard de RELO → Config → Data Pipeline → Stripe, y pega el secret ahi.
      • Option B: Send it directly to your RELO contact via email.Opcion B: Envialo directamente a tu contacto de RELO por email.
    That's it!Listo!

    For Stripe Checkout, there is nothing else to do. Every completed payment will now be automatically tracked and attributed to the correct partner.Para Stripe Checkout, no hay nada mas que hacer. Cada pago completado sera automaticamente rastreado y atribuido al partner correcto.

    Scenario B

    Stripe Elements (Embedded Checkout)

    If you use Stripe Elements to embed a checkout form directly on your website, the webhook setup is exactly the same as Scenario A above. Follow all 6 steps. Si usas Stripe Elements para integrar un formulario de checkout directamente en tu sitio web, la configuracion del webhook es exactamente la misma que el Escenario A. Sigue los 6 pasos.

    Optional: Improve attribution with metadataOpcional: Mejora la atribucion con metadata

    For better attribution accuracy, you can pass the RELO click ID as metadata when creating the Stripe Checkout Session or Payment Intent. This is optional but recommended if you have developer resources available. Para mayor precision en la atribucion, puedes pasar el ID de clic de RELO como metadata al crear la Stripe Checkout Session o Payment Intent. Esto es opcional pero recomendado si tienes recursos de desarrollo disponibles.

    The RELO pixel sets a cookie called _relo_cid on your domain. Your backend can read this cookie and include it in the Stripe session:El pixel de RELO establece una cookie llamada _relo_cid en tu dominio. Tu backend puede leer esta cookie e incluirla en la sesion de Stripe:

    Node.js / Express
    const session = await stripe.checkout.sessions.create({ line_items: [{ price: 'price_xxx', quantity: 1 }], mode: 'payment', success_url: 'https://yoursite.com/success', cancel_url: 'https://yoursite.com/cancel', metadata: { relo_click_id: req.cookies._relo_cid || '' } });
    Python / Django
    session = stripe.checkout.Session.create( line_items=[{"price": "price_xxx", "quantity": 1}], mode="payment", success_url="https://yoursite.com/success", cancel_url="https://yoursite.com/cancel", metadata={ "relo_click_id": request.COOKIES.get("_relo_cid", "") } )
    PHP / Laravel
    $session = \Stripe\Checkout\Session::create([ 'line_items' => [['price' => 'price_xxx', 'quantity' => 1]], 'mode' => 'payment', 'success_url' => 'https://yoursite.com/success', 'cancel_url' => 'https://yoursite.com/cancel', 'metadata' => [ 'relo_click_id' => $_COOKIE['_relo_cid'] ?? '' ] ]);
    💡
    TipConsejo

    Even without the metadata, RELO can still attribute most purchases using cookie-based matching. The metadata just improves accuracy for edge cases (e.g., the customer switches browsers between clicking and paying).Incluso sin la metadata, RELO puede atribuir la mayoria de las compras usando coincidencia basada en cookies. La metadata solo mejora la precision en casos especiales (ej., el cliente cambia de navegador entre el clic y el pago).

    Scenario C

    Stripe Billing (Subscriptions)

    If your business uses recurring subscriptions, the webhook setup is the same as Scenario A, but you should subscribe to additional events to track the full subscription lifecycle (new subscriptions, renewals, cancellations, plan changes). Si tu negocio usa suscripciones recurrentes, la configuracion del webhook es la misma que el Escenario A, pero debes suscribirte a eventos adicionales para rastrear el ciclo de vida completo de las suscripciones (nuevas suscripciones, renovaciones, cancelaciones, cambios de plan).

    When adding or editing your webhook endpoint in Stripe, select all of the following events:Al agregar o editar tu endpoint de webhook en Stripe, selecciona todos los siguientes eventos:

    Stripe Event What it tracksQue rastrea Commission?Comision?
    checkout.session.completed Initial subscription purchaseCompra inicial de suscripcion Yes — first paymentSi — primer pago
    invoice.paid Recurring renewal paymentsPagos de renovacion recurrentes Yes — renewal revenueSi — ingreso por renovacion
    customer.subscription.created New subscription createdNueva suscripcion creada No — analytics onlyNo — solo analitica
    customer.subscription.updated Plan change, upgrade, downgradeCambio de plan, upgrade, downgrade No — analytics onlyNo — solo analitica
    customer.subscription.deleted Subscription cancelledSuscripcion cancelada No — analytics onlyNo — solo analitica
    💡
    How renewals workComo funcionan las renovaciones

    RELO automatically deduplicates the initial checkout and the first invoice. When a subscription is created, checkout.session.completed fires. Stripe also sends an invoice.paid for the same transaction, but RELO skips it (because the billing reason is subscription_create). Only subsequent renewal invoices are counted as new revenue.RELO deduplica automaticamente el checkout inicial y la primera factura. Cuando se crea una suscripcion, se dispara checkout.session.completed. Stripe tambien envia un invoice.paid para la misma transaccion, pero RELO lo omite (porque la razon de facturacion es subscription_create). Solo las facturas de renovacion posteriores se cuentan como nuevo ingreso.

    Events referenceReferencia de eventos

    Quick-copy list of all events to subscribe to. Select these in your Stripe webhook configuration:Lista para copiar de todos los eventos a suscribir. Seleccionalos en la configuracion de tu webhook de Stripe:

    Stripe Events
    checkout.session.completed invoice.paid customer.subscription.created customer.subscription.updated customer.subscription.deleted
    ⚠️
    No subscriptions?Sin suscripciones?

    If your business is purely one-time payments (no subscriptions), you only need checkout.session.completed and invoice.paid. You can skip the three customer.subscription.* events.Si tu negocio es puramente de pagos unicos (sin suscripciones), solo necesitas checkout.session.completed e invoice.paid. Puedes omitir los tres eventos customer.subscription.*.

    TroubleshootingSolucion de Problemas

    "Webhook is failing" or "Endpoint returned 401""El webhook esta fallando" o "Endpoint retorno 401"

    The signing secret (whsec_...) is either missing or incorrect. Double-check that you copied the full value from Stripe and shared it with your RELO contact. Make sure there are no extra spaces or line breaks.El signing secret (whsec_...) falta o es incorrecto. Verifica que copiaste el valor completo de Stripe y lo compartiste con tu contacto de RELO. Asegurate de que no haya espacios o saltos de linea adicionales.

    "Payments are not showing in the RELO Dashboard""Los pagos no aparecen en el Dashboard de RELO"

    First, check the webhook logs in your Stripe Dashboard (Developers → Webhooks → your endpoint). If events show a green checkmark, Stripe delivered them successfully. If RELO still doesn't show them, verify that the correct events are selected (especially checkout.session.completed). Contact your RELO representative with the Stripe event ID for investigation.Primero, revisa los logs del webhook en tu Stripe Dashboard (Developers → Webhooks → tu endpoint). Si los eventos muestran una palomita verde, Stripe los entrego exitosamente. Si RELO aun no los muestra, verifica que los eventos correctos esten seleccionados (especialmente checkout.session.completed). Contacta a tu representante de RELO con el ID del evento de Stripe para investigar.

    "Payments show up, but attributed to the wrong partner""Los pagos aparecen, pero atribuidos al partner incorrecto"

    This means the customer did not use the partner's tracking link, or they cleared their cookies between clicking and purchasing. Make sure partners are using the tracking links generated by RELO (not custom URLs). If you have developer resources, adding the relo_click_id metadata (see Scenario B) will improve attribution accuracy.Esto significa que el cliente no uso el enlace de seguimiento del partner, o borro sus cookies entre el clic y la compra. Asegurate de que los partners usen los enlaces de seguimiento generados por RELO (no URLs personalizadas). Si tienes recursos de desarrollo, agregar la metadata relo_click_id (ver Escenario B) mejorara la precision de la atribucion.

    "Payments show up, but with $0 revenue""Los pagos aparecen, pero con $0 de ingreso"

    This can happen if your Stripe Checkout session uses a free trial or a $0 coupon. RELO records the event but with zero revenue. The revenue will be captured on the first actual invoice.paid event.Esto puede pasar si tu sesion de Stripe Checkout usa un periodo de prueba gratuito o un cupon de $0. RELO registra el evento pero con cero ingresos. El ingreso se capturara en el primer evento invoice.paid real.

    "I want to test before going live""Quiero hacer pruebas antes de ir a produccion"

    Use Stripe's test mode. Toggle the "Test mode" switch in your Stripe Dashboard, create a webhook with the same RELO URL, and use the test card 4242 4242 4242 4242 (any future expiry, any CVC). Test events will flow into RELO with a test flag.Usa el modo de prueba de Stripe. Activa el switch "Test mode" en tu Stripe Dashboard, crea un webhook con la misma URL de RELO, y usa la tarjeta de prueba 4242 4242 4242 4242 (cualquier fecha futura, cualquier CVC). Los eventos de prueba llegaran a RELO con una bandera de prueba.

    2
    Web Pixel (Traffic Analytics)Pixel Web (Analitica de Trafico)
    ~3 min
    🌐 Page load
    📡 Pixel fires
    RELO
    📊 Analytics

    Why you need itPor que lo necesitas

    The web pixel is a small JavaScript snippet that runs on your website. It tracks page views and user behavior, allowing you to see which partners drive the most traffic — even before any purchases happen. It also sets a first-party cookie (_relo_cid) that improves purchase attribution accuracy. El pixel web es un pequeno fragmento de JavaScript que se ejecuta en tu sitio web. Rastrea vistas de pagina y comportamiento del usuario, permitiendote ver que partners generan mas trafico — incluso antes de que ocurra alguna compra. Tambien establece una cookie de primera parte (_relo_cid) que mejora la precision de la atribucion de compras.

    📋
    Is the pixel required?Es requerido el pixel?

    No. The Stripe webhook alone is sufficient for tracking purchases. However, the pixel is strongly recommended because it enables traffic analytics, improves attribution accuracy, and unlocks features like conversion funnels and audience building.No. El webhook de Stripe por si solo es suficiente para rastrear compras. Sin embargo, el pixel es altamente recomendado porque habilita analitica de trafico, mejora la precision de atribucion y desbloquea funciones como embudos de conversion y construccion de audiencias.

    Option A

    Direct HTML (Simplest)

    Paste this snippet into the <head> section of every page on your site. Replace YOUR_CLIENT_ID with the numeric client ID from your RELO account.Pega este fragmento en la seccion <head> de cada pagina de tu sitio. Reemplaza YOUR_CLIENT_ID con el ID numerico de cliente de tu cuenta RELO.

    HTML
    <!-- RELO Tracking Pixel --> <script> (function(r,e,l,o){r.relo=r.relo||function(){ (r.relo.q=r.relo.q||[]).push(arguments)}; o=e.createElement('script');o.async=1;o.src=l; e.head.appendChild(o); })(window,document,'https://p.relo.mx/r.js'); relo('init', { client_id: YOUR_CLIENT_ID }); relo('page'); </script>

    Where to paste itDonde pegarlo

    Option B

    Google Tag Manager

    If you use Google Tag Manager (GTM) to manage scripts on your site, you can add the RELO pixel as a custom HTML tag.Si usas Google Tag Manager (GTM) para gestionar scripts en tu sitio, puedes agregar el pixel de RELO como un tag HTML personalizado.

    1. Open Google Tag Manager
      Go to tagmanager.google.com and open your container.
    2. Create a new Tag
      Click Tags → New. Name it "RELO Tracking Pixel".
    3. Choose tag type: Custom HTML
      Paste the following code:
      Custom HTML
      <script> (function(r,e,l,o){r.relo=r.relo||function(){ (r.relo.q=r.relo.q||[]).push(arguments)}; o=e.createElement('script');o.async=1;o.src=l; e.head.appendChild(o); })(window,document,'https://p.relo.mx/r.js'); relo('init', { client_id: YOUR_CLIENT_ID }); relo('page'); </script>
    4. Set the trigger
      Click Triggering and select "All Pages".
    5. Save and Publish
      Click Save, then Submit → Publish your container.
    Option C

    React / Next.js / Single Page App

    For single-page applications, you need to call relo('page') on every route change since the browser does not do a full page reload.Para aplicaciones de una sola pagina, necesitas llamar relo('page') en cada cambio de ruta ya que el navegador no hace una recarga completa de pagina.

    Step 1: Add the pixel script to your HTML shell

    In index.html (React) or _document.tsx (Next.js), add the pixel in the <head>:

    HTML
    <script> (function(r,e,l,o){r.relo=r.relo||function(){ (r.relo.q=r.relo.q||[]).push(arguments)}; o=e.createElement('script');o.async=1;o.src=l; e.head.appendChild(o); })(window,document,'https://p.relo.mx/r.js'); relo('init', { client_id: YOUR_CLIENT_ID }); </script>

    Step 2: Track page views on route changes

    React Router v6
    import { useEffect } from 'react'; import { useLocation } from 'react-router-dom'; function useReloPageTracking() { const location = useLocation(); useEffect(() => { if (window.relo) { window.relo('page'); } }, [location.pathname]); } // Use in your App component: function App() { useReloPageTracking(); return <Routes>...</Routes>; }
    Next.js App Router
    // app/layout.tsx 'use client'; import { usePathname } from 'next/navigation'; import { useEffect } from 'react'; export default function RootLayout({ children }) { const pathname = usePathname(); useEffect(() => { if (window.relo) { window.relo('page'); } }, [pathname]); return ( <html> <head> <script dangerouslySetInnerHTML={{ __html: \` (function(r,e,l,o){r.relo=r.relo||function(){ (r.relo.q=r.relo.q||[]).push(arguments)}; o=e.createElement('script');o.async=1;o.src=l; e.head.appendChild(o); })(window,document,'https://p.relo.mx/r.js'); relo('init', { client_id: YOUR_CLIENT_ID }); \` }} /> </head> <body>{children}</body> </html> ); }
    Next.js Pages Router
    // pages/_app.tsx import { useRouter } from 'next/router'; import { useEffect } from 'react'; function MyApp({ Component, pageProps }) { const router = useRouter(); useEffect(() => { const handleRouteChange = () => { if (window.relo) window.relo('page'); }; router.events.on('routeChangeComplete', handleRouteChange); return () => router.events.off('routeChangeComplete', handleRouteChange); }, [router.events]); return <Component {...pageProps} />; }
    Option D

    Shopify

    1. Open your Shopify Admin
      Go to Online Store → Themes.
    2. Edit the theme code
      Click Actions → Edit code (or the three dots menu → "Edit code").
    3. Find theme.liquid
      In the left sidebar under "Layout", click theme.liquid.
    4. Paste the pixel snippet
      Find the </head> tag in the file. Paste the RELO pixel code just before it:
      Liquid
      <!-- RELO Tracking Pixel --> <script> (function(r,e,l,o){r.relo=r.relo||function(){ (r.relo.q=r.relo.q||[]).push(arguments)}; o=e.createElement('script');o.async=1;o.src=l; e.head.appendChild(o); })(window,document,'https://p.relo.mx/r.js'); relo('init', { client_id: YOUR_CLIENT_ID }); relo('page'); </script>
    5. Save
      Click the Save button in the top right corner. The pixel is now live.
    💡
    Shopify + Stripe

    If you use Shopify Payments (which is powered by Stripe), you can still set up the Stripe webhook separately for purchase tracking. The Shopify pixel installation handles traffic analytics only.Si usas Shopify Payments (que esta potenciado por Stripe), aun puedes configurar el webhook de Stripe por separado para el seguimiento de compras. La instalacion del pixel en Shopify solo maneja la analitica de trafico.

    Custom Events (Optional — Phase 2)Eventos Personalizados (Opcional — Fase 2)

    After installing the basic pixel, you can optionally send custom events to track specific user actions. This unlocks conversion funnels, product analytics, and richer partner performance data. Despues de instalar el pixel basico, puedes opcionalmente enviar eventos personalizados para rastrear acciones especificas del usuario. Esto desbloquea embudos de conversion, analitica de productos y datos de rendimiento de partners mas detallados.

    ⚠️
    When to use custom eventsCuando usar eventos personalizados

    Custom events are not needed for basic tracking. The Stripe webhook handles purchase attribution. Use custom events if you want funnel analytics (how many visitors view a product vs. add to cart vs. purchase) or if you have a confirmation page and want client-side purchase tracking as a backup.Los eventos personalizados no son necesarios para el seguimiento basico. El webhook de Stripe maneja la atribucion de compras. Usa eventos personalizados si quieres analitica de embudos (cuantos visitantes ven un producto vs. agregan al carrito vs. compran) o si tienes una pagina de confirmacion y quieres seguimiento de compras del lado del cliente como respaldo.

    Purchase EventEvento de Compra

    Fire this on your order confirmation / thank-you page:Dispara esto en tu pagina de confirmacion de orden / pagina de agradecimiento:

    JavaScript
    relo('event', 'purchase', { order_id: 'ORD-12345', value: 299.99, currency: 'MXN', products: [ { id: 'SKU-001', name: 'Product Name', price: 299.99, quantity: 1 } ] });
    💡
    If you use Stripe Checkout (hosted page)Si usas Stripe Checkout (pagina alojada)

    You do not need the client-side purchase event. The Stripe webhook already captures every purchase server-side, which is more reliable. Only add this if you have a custom checkout with a confirmation page.No necesitas el evento de compra del lado del cliente. El webhook de Stripe ya captura cada compra del lado del servidor, lo cual es mas confiable. Solo agrega esto si tienes un checkout personalizado con una pagina de confirmacion.

    View ProductVer Producto

    JavaScript
    relo('event', 'view_product', { product_id: 'SKU-001', name: 'Galaxy S24 Ultra', price: 24999, currency: 'MXN', category: 'Smartphones' });

    Add to CartAgregar al Carrito

    JavaScript
    relo('event', 'add_to_cart', { product_id: 'SKU-001', name: 'Galaxy S24 Ultra', price: 24999, currency: 'MXN', quantity: 1 });

    Begin CheckoutIniciar Checkout

    JavaScript
    relo('event', 'begin_checkout', { value: 24999, currency: 'MXN', item_count: 1 });

    Custom Event (Generic)Evento Personalizado (Generico)

    JavaScript
    relo('event', 'sign_up', { method: 'email', plan: 'pro' });

    VerificationVerificacion

    Follow these steps to confirm the pixel is installed correctly:Sigue estos pasos para confirmar que el pixel esta instalado correctamente:

    1. Open your website in a browser
      Navigate to any page where you installed the pixel.
    2. Open DevTools
      Right-click anywhere on the page → Inspect (or press F12).
    3. Check the Console tab
      Type relo and press Enter. You should see a function, not undefined.
    4. Check the Network tab
      In the Network tab, type relo in the filter box. You should see:
      • A request to p.relo.mx/r.js (the pixel script loading)
      • A request to p.relo.mx/e (the page view event being sent)
      Both should show a 200 or 204 status.
    5. Check the cookie
      Go to the Application tab (Chrome) or Storage tab (Firefox). Under Cookies, find your domain. You should see a cookie named _relo_cid with a value like 01HX....
    All checks passing?Todas las verificaciones pasaron?

    If you see the function in the console, network requests to p.relo.mx, and the _relo_cid cookie, your pixel is installed correctly. You can also verify in your RELO Dashboard under Config → Data Pipeline → Test Connection.Si ves la funcion en la consola, solicitudes de red a p.relo.mx, y la cookie _relo_cid, tu pixel esta instalado correctamente. Tambien puedes verificar en tu Dashboard de RELO en Config → Data Pipeline → Test Connection.

    3
    How Partner Attribution WorksComo Funciona la Atribucion de Partners
    ~2 min read

    You do not need to build any attribution logic. Here is what happens behind the scenes, so you understand how partners get credit for sales: No necesitas construir ninguna logica de atribucion. Aqui te explicamos lo que sucede detras de escenas, para que entiendas como los partners reciben credito por las ventas:

    1. Partner shares link ads, email, social 2. Customer clicks cookie + click recorded 3. Browses your site pixel tracks pages 4. Purchases Stripe payment 5. Stripe sends webhook to RELO automatically 6. RELO matches to partner cookie + email resolution 7. Commission calculated & visible in Dashboard Admin Dashboard + Partner Portal

    Key detailsDetalles importantes

    What partners need to doQue necesitan hacer los partners

    Nothing on your side. Partners generate their own tracking links from the RELO Partner Portal. They use these links in their campaigns. You do not need to create links, manage partner accounts, or handle any tracking logic. Nada de tu lado. Los partners generan sus propios enlaces de seguimiento desde el Portal de Partners de RELO. Usan estos enlaces en sus campanas. No necesitas crear enlaces, gestionar cuentas de partners ni manejar ninguna logica de seguimiento.

    Frequently Asked QuestionsPreguntas Frecuentes

    Do I need both the Stripe webhook and the pixel?Necesito tanto el webhook de Stripe como el pixel?

    The Stripe webhook is required for purchase tracking. The pixel is recommended but optional. The webhook tracks payments, the pixel tracks traffic. Together they give you a complete picture of partner performance.El webhook de Stripe es requerido para el seguimiento de compras. El pixel es recomendado pero opcional. El webhook rastrea pagos, el pixel rastrea trafico. Juntos te dan una imagen completa del rendimiento de los partners.

    Will the pixel slow down my website?El pixel hara mas lento mi sitio web?

    No. The pixel loads asynchronously and is only ~2KB. It does not block page rendering. It uses the Beacon API for sending events, which is non-blocking and does not affect user experience.No. El pixel carga de forma asincrona y solo pesa ~2KB. No bloquea el renderizado de la pagina. Usa la Beacon API para enviar eventos, que no es bloqueante y no afecta la experiencia del usuario.

    What if we use PayPal or another payment provider instead of Stripe?Que pasa si usamos PayPal u otro proveedor de pagos en lugar de Stripe?

    Contact your RELO representative. We can set up a custom webhook integration for any payment provider. The process is similar: you configure a webhook URL in your payment provider's dashboard, and we handle the rest.Contacta a tu representante de RELO. Podemos configurar una integracion de webhook personalizada para cualquier proveedor de pagos. El proceso es similar: configuras una URL de webhook en el dashboard de tu proveedor de pagos, y nosotros nos encargamos del resto.

    Can I test in Stripe test mode first?Puedo hacer pruebas en el modo test de Stripe primero?

    Yes. In your Stripe Dashboard, toggle to "Test mode" and create the webhook endpoint with the same RELO URL. Use the test card number 4242 4242 4242 4242 with any future expiration date and any CVC. Test events will flow into RELO and appear in your dashboard.Si. En tu Stripe Dashboard, cambia a "Test mode" y crea el endpoint de webhook con la misma URL de RELO. Usa el numero de tarjeta de prueba 4242 4242 4242 4242 con cualquier fecha de expiracion futura y cualquier CVC. Los eventos de prueba llegaran a RELO y apareceran en tu dashboard.

    How do I know the integration is working?Como se que la integracion esta funcionando?

    Go to your RELO Dashboard → Config → Data Pipeline. The "Stripe" section shows the last webhook received and its status. The "Pixel" section shows the last page view received. You can also click "Test Connection" to verify both endpoints.Ve a tu Dashboard de RELO → Config → Data Pipeline. La seccion "Stripe" muestra el ultimo webhook recibido y su estado. La seccion "Pixel" muestra la ultima vista de pagina recibida. Tambien puedes hacer clic en "Test Connection" para verificar ambos endpoints.

    What data does RELO collect from my users?Que datos recopila RELO de mis usuarios?

    The pixel collects: page URL, referrer, device type, browser, country, and city (from IP). It does not collect names, emails, or any personally identifiable information (PII) from the browser. For Stripe webhooks, customer emails are hashed (SHA-256) for identity resolution and are never stored in plain text.El pixel recopila: URL de la pagina, referrer, tipo de dispositivo, navegador, pais y ciudad (por IP). No recopila nombres, emails ni ninguna informacion de identificacion personal (PII) del navegador. Para los webhooks de Stripe, los emails de clientes se hashean (SHA-256) para resolucion de identidad y nunca se almacenan en texto plano.

    Can I install the pixel on a mobile app?Puedo instalar el pixel en una app movil?

    The web pixel is for websites only. For mobile app tracking, RELO integrates with AppsFlyer, Branch, and other Mobile Measurement Partners (MMPs). Contact your RELO representative for app integration details.El pixel web es solo para sitios web. Para seguimiento en apps moviles, RELO se integra con AppsFlyer, Branch y otros Mobile Measurement Partners (MMPs). Contacta a tu representante de RELO para detalles de integracion en apps.

    Do I need to modify my checkout flow at all?Necesito modificar mi flujo de checkout?

    No. If you use Stripe Checkout (hosted page), there are zero code changes. If you use Stripe Elements (embedded checkout), you can optionally add one line of metadata for better attribution, but it is not required.No. Si usas Stripe Checkout (pagina alojada), no hay cambios de codigo. Si usas Stripe Elements (checkout embebido), puedes opcionalmente agregar una linea de metadata para mejor atribucion, pero no es requerido.

    What happens if a customer blocks cookies?Que pasa si un cliente bloquea las cookies?

    If cookies are blocked, RELO falls back to email-based identity resolution (using the hashed email from the Stripe webhook). Attribution may be less precise, but most purchases will still be correctly matched.Si las cookies estan bloqueadas, RELO recurre a la resolucion de identidad basada en email (usando el email hasheado del webhook de Stripe). La atribucion puede ser menos precisa, pero la mayoria de las compras seguiran siendo correctamente asociadas.

    Can I remove the pixel later if I don't want it?Puedo eliminar el pixel despues si no lo quiero?

    Yes. Simply remove the snippet from your HTML (or disable the tag in Google Tag Manager). Purchase tracking via the Stripe webhook will continue to work independently.Si. Simplemente elimina el fragmento de tu HTML (o desactiva el tag en Google Tag Manager). El seguimiento de compras via el webhook de Stripe seguira funcionando de forma independiente.

    Integration ChecklistLista de Verificacion de Integracion

    Track your progress. Your state is saved locally so you can come back anytime.Rastrea tu progreso. Tu estado se guarda localmente para que puedas volver cuando quieras.

    0 of 9 complete
    • Stripe webhook endpoint added in Stripe DashboardEndpoint de webhook de Stripe agregado en Stripe Dashboard
    • Correct events selected (checkout.session.completed, invoice.paid)Eventos correctos seleccionados (checkout.session.completed, invoice.paid)
    • Signing secret (whsec_...) shared with RELOSigning secret (whsec_...) compartido con RELO
    • Web pixel snippet added to all pagesFragmento del pixel web agregado a todas las paginas
    • Pixel verified: relo function exists in consolePixel verificado: funcion relo existe en consola
    • Pixel verified: network requests to p.relo.mx visiblePixel verificado: solicitudes de red a p.relo.mx visibles
    • Pixel verified: _relo_cid cookie setPixel verificado: cookie _relo_cid establecida
    • Test purchase made in Stripe test modeCompra de prueba realizada en modo test de Stripe
    • Test purchase visible in RELO DashboardCompra de prueba visible en Dashboard de RELO
    Integration Complete!Integracion Completa!
    Your RELO integration is fully set up. Partner-driven sales will now be tracked automatically.Tu integracion de RELO esta completamente configurada. Las ventas generadas por partners seran rastreadas automaticamente.

    Need Help?Necesitas Ayuda?

    If you have questions or run into issues, we are here to help.Si tienes preguntas o encuentras problemas, estamos aqui para ayudarte.

    Email: joe@relo.mx

    Dashboard: portal.relo.mx