CommunityRedacción y edicióngithub.com

Personalización y pruebas A/B con Croct

Úsalo al planificar o implementar personalización o pruebas A/B con Croct: crear una experiencia (audiencia, slots, contenido, prioridad, programación, borradores), añadir un experimento (A/B/n, ID de objetivo principal, asignación de tráfico, variantes, consistencia entre dispositivos), escribir el código necesario (slots, `croct.track('goalCompleted', {goalId})`, `orderPlaced`, `leadGenerated`, `userSignedUp`), experimentos de feature flags en el servidor, experimentos de redirección, recetas de personalización (campañas UTM, ABM, términos de búsqueda, ubicación, envío gratuito, intereses, lectores del blog, leads, clientes, intención orgánica, formularios de HubSpot) o leer los paneles de experiencia, experimento, aplicación o espacio de trabajo (probabilidad de ser el mejor, pérdida potencial, "Experimento en curso", "Ganador recomendado", "Sin ganador claro", "Sigue tu objetivo"). Frases: "personaliza el héroe para visitantes de LinkedIn", "prueba A/B este CTA", ¿qué variante ganó?", "¿por qué mi experimento no muestra conversiones?".

¿Qué es B con Croct?

Esta habilidad capacita a un agente de IA para gestionar el ciclo completo de personalización y experimentos A/B con Croct, una plataforma de personalización. El agente puede planificar experiencias (definiendo audiencias, slots y contenido) y experimentos (con hipótesis, objetivo principal, asignación de tráfico y variantes). También puede indicar el código necesario: asegurarse de que cada área objetivo sea un slot, rastrear conversiones con `goalCompleted`, y recopilar datos para la audiencia. Además, el agente puede interpretar los resultados de los experimentos en los paneles, siguiendo criterios predefinidos (como "Ganador recomendado" o "Experimento en curso") para tomar decisiones. La habilidad proporciona reglas claras sobre qué construir según las necesidades del usuario (por ejemplo, una experiencia sin experimento para contenido segmentado, o un experimento de feature flag para funcionalidad) e incluye recetas comunes y guías de implementación.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/croct-tech/agent-skills/tree/HEAD/skills/croct-personalize-and-test

Installed? Explore more Redacción y edición skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Personaliza y prueba con Croct

Los profesionales de marketing gestionan experiencias y experimentos en el panel (app.croct.com). Tu trabajo como agente es:

  1. Planificar: convertir el objetivo del usuario en una experiencia (quién / dónde / qué) y, cuando quieran pruebas, en un experimento (hipótesis, objetivo, asignación, variantes).
  2. Escribir el código: asegurarte de que cada área objetivo sea un slot, que la conversión se rastree como un evento goalCompleted, y que se recopilen los datos que necesita la audiencia.
  3. Escribir la audiencia: una condición CQL. Para la sintaxis más allá de las recetas aquí, carga la habilidad croct-cql.
  4. Interpretar resultados: leer los paneles con los umbrales documentados; nunca declares un ganador que el panel no respalde.

No le digas al usuario que se necesitan cambios de código para lanzar, cambiar o finalizar un experimento. Una vez que existen el slot y el objetivo, todo lo demás es configuración.

Modelo mental

ConceptoQué esReglas
ExperienciaContenido mostrado a una audiencia en uno o más slotsDefinido por quién (audiencias), dónde (slots), qué (contenido). Se permiten varias audiencias; asígnale a cada una su propio contenido con grupos de contenido.
AudienciaUna condición CQL evaluada contra el contexto actual del usuarioPuede segmentar a todos los usuarios o a un segmento reducido.
PrioridadRango único por experienciaCuando las audiencias se superponen en el mismo slot, gana la experiencia de mayor prioridad. Sin empates.
ExperimentoUna prueba A/B/n dentro de una experienciaUno por experiencia a la vez. Hereda la audiencia y los slots de la experiencia. De 2 a 5 variantes.
ID de objetivo principalLa conversión que optimiza el experimentoDebe coincidir con el goalId de un evento goalCompleted rastreado.
Asignación de tráfico% de usuarios elegibles que entran en el experimentoEl resto ve el contenido de la experiencia.

Quién ve qué en un slot determinado:

UsuarioVe
No está en la audiencia de ninguna experienciaContenido predeterminado del slot
Está en la audiencia, no asignado al experimentoContenido de la experiencia
Está en la audiencia, asignadoContenido de la variante asignada
Coincide con varias experiencias en el mismo slotLa de mayor prioridad

La asignación es determinista: el ID del visitante se mezcla con la clave del experimento, por lo que una recarga nunca cambia la variante. La exposición se rastrea automáticamente. Para usuarios identificados, el ID del usuario es la clave de asignación, por lo que la variante puede seguirlos entre dispositivos (los usuarios anónimos no pueden).

Decide qué construir

El usuario quiere...Construye
Contenido diferente para un segmento conocidoExperiencia con una audiencia, sin experimento
Demostrar que un cambio funciona antes de implementarloExperiencia (a menudo "todos los usuarios") + experimento
Probar texto, imágenes, diseño o una secciónExperimento de contenido en un slot (una URL, renderizado en el servidor cuando sea posible)
Probar a dónde va un enlaceExperimento de CTA: el slot contiene el destino del enlace
Mostrar u ocultar un elemento (banner promocional)evaluate/useEvaluation del lado del código solo para lógica fija que un desarrollador posee; de lo contrario, un slot con un atributo booleano más una experiencia, para que los profesionales de marketing controlen quién lo ve. Consulta la regla de evaluación de la habilidad croct-integrate-sdk
Probar funcionalidad o un flujo, no contenido visibleExperimento de feature flag: un slot con un atributo booleano, bifurcado en el servidor
Probar dos páginas genuinamente separadas (página reconstruida, otra plantilla, página de aterrizaje de otra herramienta)Experimento de redirección. Prefiere experimentos de contenido cuando solo difiere el contenido
Varios umbrales o segmentos en una campaña (envío gratuito por estado)Una experiencia, varias audiencias, grupos de contenido
Una campaña que comienza, pausa o se reanuda a una hora determinadaProgramación (complemento), opcionalmente en la zona horaria de la audiencia

Lista de verificación de implementación

Cada experiencia o experimento necesita estos en el código antes de configurarse:

  • Un slot para cada área que cambia. Si falta: npx croct@latest add slot <slot-id>@1 y renderízalo con el SDK (consulta las habilidades croct-use-cli y croct-integrate-sdk). Sin un slot, ninguna experiencia puede cambiar el área.
  • Un evento goalCompleted para la conversión (requerido para experimentos). El ID del objetivo debe ser igual al ID del objetivo principal del experimento. Si el objetivo es nuevo, impleméntalo antes de iniciar el experimento.
  • Eventos de conversión más ricos cuando sea relevante: orderPlaced, leadGenerated, userSignedUp completan los widgets de ingresos, leads y registros junto con el objetivo.
  • Los datos que lee la audiencia. Los parámetros UTM, la ubicación y los datos de sesión son automáticos; las recetas basadas en publicaciones, intereses, pedidos, leads o registros requieren rastrear esos eventos (consulta la habilidad croct-track-events).
  • Identificación del usuario si las variantes deben mantenerse consistentes entre dispositivos.

Rastrea el objetivo

// components/HomeHero.tsx (React; @croct/plug-next es idéntico con 'use client')
import type {ReactElement} from 'react';
import {useContent, useCroct} from '@croct/plug-react';

export function HomeHero(): ReactElement {
  const {content} = useContent('home-hero@1');
  const croct = useCroct();

  function handleClick(): void {
    croct.track('goalCompleted', {
      goalId: 'hero-cta-click',
    });
  }

  return (
    <div>
      <h1>{content.title}</h1>
      <p>{content.subtitle}</p>
      <a href={content.button.link} onClick={handleClick}>{content.button.label}</a>
    </div>
  );
}
// Plain JavaScript
import croct from '@croct/plug';

croct.track('goalCompleted', {goalId: 'sign-up'});

El evento también acepta value y currency opcionales ({goalId: 'signup', currency: 'USD', value: 50}). En stacks PHP renderizados en el servidor, rastrea en el navegador con el helper de plantilla (@croct ... @endcroct en Blade, {% apply croct %} ... {% endapply %} en Twig).

Rastrea el objetivo donde realmente ocurre la conversión, en el navegador. Para un experimento de redirección, rastréalo en ambas páginas. Cuando la conversión se completa solo en un servidor (webhook de pago, registro en backend), usa el SDK de JavaScript independiente track de @croct/plug/api con una clave de API: el ejemplo de su documentación es exactamente un evento goalCompleted enviado desde un script de servidor o sandbox (consulta la habilidad croct-track-events). Acepta un userToken opcional; la documentación no dice cómo se atribuye un evento enviado sin uno al experimento.

Flujo de trabajo de experiencia (panel)

Transmite estos pasos al usuario; no puedes hacer clic tú mismo.

  1. Página Experiencias > Nueva experiencia, ponle nombre.
  2. Pestaña Audiencia > Nueva audiencia > pega los criterios CQL. Se permiten varias audiencias.
  3. Pestaña Slot > selecciona uno o más slots (combina slots entre páginas para un viaje consistente).
  4. Pestaña Contenido > edita el contenido por slot (y por grupo de contenido cuando las audiencias difieran).
  5. Pestaña opcional Experimento (ver más abajo).
  6. Revisa los cambios en borrador, luego Publica (o programa) — o Previsualiza primero.

Durante el desarrollo, una audiencia como property welcome of page's query is "true" permite al usuario activar la experiencia con ?welcome=true. Reemplázala con una audiencia real para producción.

Detalles sobre estado, prioridad, programación, cambios en borrador y contenido: references/experiences.md.

Flujo de trabajo de experimento

  1. Escribe la hipótesis: el cambio, la métrica que mueve y por qué.
  2. Elige el ID del objetivo principal (el panel sugiere IDs ya rastreados). Confirma que se activa.
  3. Configura la asignación de tráfico. Usa el 100% para audiencias de nicho. Mantenlo estable durante toda la prueba.
  4. Crea de 2 a 5 variantes, una de ellas normalmente el control. Una variante puede copiar el contenido del slot o heredar el contenido de la experiencia en lugar de duplicarlo.
  5. Configura el contenido de cada variante (y grupos de contenido, si es necesario).
  6. Habilita la consistencia entre dispositivos si los usuarios están identificados y deben mantener su variante.
  7. Previsualiza cada variante, publica, luego verifica: las sesiones por variante coinciden con la división, y una conversión de prueba aparece bajo el objetivo correcto.

Nunca cambies la distribución de tráfico ni agregues o elimines variantes a mitad de la prueba; hacerlo puede invalidar los resultados.

Detalles, feature flags y redirecciones: references/experiments.md y references/flag-and-redirect-experiments.md.

Lectura de resultados

El panel del experimento muestra una bandera en la parte superior. Actúa en consecuencia:

BanderaSignificadoHaz
Sigue tu objetivoNo se registraron eventos de finalización del objetivoArregla el rastreo; nada más tiene sentido
Experimento en cursoAún no es estableEspera. Estable requiere cada variante ≥ 1.000 visitantes, cada variante ≥ 25 conversiones y ≥ 1 semana en ejecución
Ganador recomendadoEstable, y una variante tiene PBB > 95% y pérdida potencial < 0.1%Aplica el contenido ganador a la experiencia y detén el experimento
Sin ganador claroEstable, variantes demasiado similaresFinaliza sin ganador o prueba una nueva hipótesis

Antes de leer cualquier métrica, verifica las sesiones por variante con respecto a la división configurada. Un desequilibrio persistente significa que la asignación o el registro están descartando una clase de usuarios.

La probabilidad de ser el mejor (PBB) y la pérdida potencial provienen de la inferencia bayesiana con una distribución Beta por variante y simulación Monte Carlo, calculada en tiempo real sin muestreo. Explicaciones, fórmulas y cada widget del panel: references/analytics.md.

Recetas

Guías condensadas (ABM, lectores del blog, clientes, envío gratuito, formularios de HubSpot, intereses, leads, ubicación, campañas de marketing, intención orgánica, términos de búsqueda), cada una con su audiencia CQL, rastreo de requisitos previos y slots sugeridos: references/playbooks.md.

Haz / No hagas

  • Haz implementa y verifica el evento del objetivo antes de publicar un experimento. Sin él, el experimento recopila exposiciones pero no conversiones.
  • Haz asigna el 100% para audiencias de nicho para que la prueba pueda alcanzar la validez estadística.
  • Haz prefiere una URL con contenido impulsado por slots en lugar de redirecciones; las redirecciones agregan una carga de página y sesgan los resultados.
  • Haz mantén las redirecciones temporales (302/307) y protégete contra bucles.
  • Haz elimina los slots de feature flags obsoletos del código después de que finalice una prueba.
  • No hagas declares un ganador mientras el panel diga "Experimento en curso", o solo a partir de recuentos brutos (pedidos totales, registros totales).
  • No hagas edites la asignación o la lista de variantes a mitad de la prueba.
  • No hagas esperes consistencia entre dispositivos para usuarios anónimos; necesita un usuario identificado.
  • No hagas redirijas a un dominio diferente: el visitante se reconoce por dominio, por lo que la conversión nunca se atribuye. Para subdominios, comparte la sesión primero.
  • No hagas prerenderices o almacenes en caché completamente una página que renderiza un slot de experimento; una variante en caché se serviría a todos.

Documentos en vivo

  • Índice: https://docs.croct.com/llms.txt
  • Cualquier página como markdown: agrega .md, p. ej. https://docs.croct.com/explanation/experiment.md
  • Búsqueda: https://docs.croct.com/api/search.md?term=<términos>

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

croct-tech/agent-skills

>- Use when writing, reading, reviewing, or debugging Croct's Contextual Query Language (CQL): audience criteria, `croct.evaluate()` / `useEvaluation` / `<Personalization query>` / Next.js `cql` tag queries, Evaluation API `query` bodies (`/client/web/evaluate`, `/external/web/evaluate`), and dynamic content values (`"type": "dynamic"`, `"expression"`). Covers context variables (user, session, page, location, campaign, cart, device, browser, context, now/today), data types and conversions, accessors and selectors (`'s`, `property X of`, `[1st]`, `[*]`, `[...]`), tests (`is`, `matches`, `is like`, `contains either`, `is between`, `is defined`, `is returning`), quantifiers (`some ... satisfies`), macros, modifiers, event expressions (`user has viewed a page`, `user has abandoned a cart`, `user has completed goal`), audience estimation, and recipes. Triggers: "write an audience", "target mobile users in New York", "CQL syntax error", "audience never matches", "unavailable estimate".

croct-tech/agent-skills

>- Use when connecting Croct to a third-party platform or migrating to Croct from another personalization or experimentation tool. Covers Storyblok (Optimize by Croct app, @croct/plug-storyblok, Storyblok withCroct, resolveContent, croct/plug-storyblok, CroctStoriesApi), Sanity and Strapi (slot fallback, dynamic zones, metadata.contentSource), Shopify Hydrogen storefront events, Shopify custom pixel (croctPixel, PUBLIC_CROCT_SHOPIFY_PIXEL, checkout and order tracking), VTEX, Google Tag Manager data layer, Microsoft Clarity tags, HubSpot forms (hbspt.forms.create, hs-form-event), firmographic providers 6sense, Demandbase, Clearbit Reveal, and ZoomInfo WebSights (firmographics attributes, account-based audiences in CQL), and migrations from Mutiny and Ninetailed (Experience component, Contentful sunset). Triggers include cdn.croct.io/plug-integration scripts, "personalize Storyblok blocks", "track Shopify checkout", "send VTEX events", "ABM personalization", "replace Mutiny".

croct-tech/agent-skills

>- Use when installing or using a Croct SDK in application code: rendering slot content, evaluating CQL queries, server or client fetching, prerendering, identifying users, app ID / API key env vars, testing, or debugging. Covers JavaScript (`@croct/plug`, `croct.fetch`, `croct.evaluate`), React (`@croct/plug-react`, `<CroctProvider>`, `useContent`, `<Slot>`, `useEvaluation`, `useCroct`), Next.js (`@croct/plug-next`, `fetchContent`, `cql`, middleware/proxy, `NEXT_PUBLIC_CROCT_APP_ID`, `CROCT_API_KEY`), Vue (`@croct/plug-vue`), Nuxt (`@croct/plug-nuxt`), Shopify Hydrogen (`@croct/plug-hydrogen`), PHP (`croct/plug-php`), Laravel, Symfony, and Drupal. Triggers: slot IDs like `home-hero@1`, `SlotContent`, "Croct is not plugged in", "initial content is required for server-side rendering", "Did you forget to configure Croct's middleware?", CORS errors.

croct-tech/agent-skills

>- Use when designing or changing Croct content models: regular vs union components, what becomes a component, slot, structure, or primitive attribute; writing component schema JSON (`structure`, `union`, `reference`, `text`, `number`, `boolean`, `list`, `@croct/file`, `@croct/richText` rich text, `format`, `choices`, `optional`, `private`, `position`); writing content definition JSON (`static`/`dynamic` values, `nullable`, `default`, `{{placeholder}}` paths); slot default, localized, experience, experiment, or content group content; schema limit errors (30 attributes, 6 nesting levels, 10 union members, complexity score 50); component versioning and breaking changes (`home-hero@2`); refactoring (duplicate and modify, duplicate and replace, flatten and merge); Markdown in text attributes with `@croct/md-lite`. Phrasings: "model content for a hero", "add an attribute to the banner component", "support variations", "component is too complex", "localize the hero", "translations", `preferredLocale`.

Skills relacionados