Promociones de Publicaciones
Los creadores y las marcas pueden pagar para impulsar publicaciones como contenido promocionado, alcanzando audiencias más allá de sus seguidores actuales.
Cada propiedad tiene su propia casilla que indica si esa pieza específica está completamente implementada y funcional de extremo a extremo (frontend-nextjs + backend) — actualiza estas casillas tú mismo a medida que avance el trabajo; esta página no las sobrescribirá.
- Crear una campaña de promoción para una publicación — construido en esta iteración: una acción "Promocionar publicación" en el menú de opciones de la publicación (solo para el dueño, oculta si la publicación ya tiene una campaña en curso) abre
CreatePromotionModal.tsx(nombre de la campaña, objetivo, tipo de presupuesto, presupuesto en monedas con verificación de saldo en vivo y el mínimo de 50 monedas aplicado del lado del cliente, fechas de inicio/fin). Se envía acreatePostPromotion. - Contenido de marca / colaboraciones pagadas — marcar una publicación como una promoción pagada para un perfil patrocinador (muestra "Colaboración pagada con @X") con un botón de llamada a la acción hacia un perfil / clip / en vivo / producto / enlace (
Post.sponsor,actionButtonText/actionButtonUrl) - Promocionar un en vivo o un clip — la opción Promocionar aparece en clips y transmisiones en vivo; un en vivo crea una publicación de anuncio complementaria que enlaza de vuelta a
/live/:id(promoteLiveStream) - Gestionar una campaña — actualizar, pausar, reanudar, cancelar — construido en esta iteración: la pantalla "Mis promociones" (
Configuración → Mis promociones) lista todas las campañas con acciones de Pausar/Reanudar/Cancelar apropiadas según el estado (Cancelar tiene un paso de confirmación, ya que es irreversible y reembolsa el presupuesto no utilizado) - Analíticas de rendimiento de la campaña — las impresiones, clics, CTR, CPM, CPC y los días restantes se muestran por campaña en la pantalla "Mis promociones". El ROI y un desglose diario todavía no existen en el esquema — nunca se construyeron, y tampoco forman parte de esta iteración.
- Seguimiento de impresiones / clics —
trackImpression/trackClickahora se exponen como las mutationstrackPromotionImpression/trackPromotionClicky se disparan desdePostCard: una impresión cuando se muestra una publicación patrocinada activa (protegido contra el doble conteo) y un clic cuando se toca su CTA. Los contadores en la vista de estadísticas ahora sí se mueven (y alimentan CTR/CPC/CPM enpromotionStats). - Segmentación de audiencia por ubicación, demografía e intereses — deliberadamente no construido en esta iteración: el JSON
targetAudiencealmacenado es inerte (nunca se lee ni se aplica en ningún lugar) — el formulario de creación intencionalmente no tiene ningún campo de segmentación, de modo que no presenta una capacidad que en realidad no haría nada. La query de estimación de alcance (estimatePromotionReach) sí es real ahora — una estimación aproximada basada en el número de seguidores del promotor, la interacción reciente con sus publicaciones y el presupuesto/duración — pero tampoco toma en cuenta ubicación/demografía/intereses, ya que nada lo hace. - Pantalla de gestión "Mis promociones" — construido en esta iteración, ver arriba
Una promoción aprobada sí obtiene una ubicación real en el feed: el feed principal le da a las publicaciones promocionadas active un pequeño impulso en el ranking. La aprobación ocurre mediante una cola de revisión de administradores que vive en la aplicación separada frontend-admin — ver Revisión de Promociones de Publicaciones.
Consulta la referencia técnica para ver los esquemas de GraphQL, rutas, enlaces a los archivos fuente y el estado de conexión de cada campo.