Cree un enlace UTM con parámetros de campaña codificados
Cree una URL de campaña lista para compartir sin unir manualmente signos de interrogación, ampersands ni valores codificados.
Ejecutar — gratis
Indique una URL base absoluta y cualquier combinación de fuente, medio, campaña, término y contenido. El generador conserva los parámetros normales, sustituye los UTM coincidentes, mantiene el fragmento en la posición final correcta y devuelve un único enlace válido. Resulta útil tanto para profesionales de marketing como para desarrolladores que necesitan resultados previsibles en procesos de publicación, correo, publicidad e informes.
Parta de un destino absoluto y campos de campaña estructurados
Comience con el destino completo, incluidos el esquema y el host, por ejemplo https://example.com/offers. Una ruta relativa como /offers se rechaza porque carece de origen independiente y podría resolverse de forma distinta según dónde se abra. Añada los campos que describen la visita: la fuente identifica al editor o la plataforma, el medio describe el canal y la campaña agrupa la actividad relacionada bajo una iniciativa. El término puede registrar una palabra clave de búsqueda de pago, mientras que el contenido permite distinguir creatividades, ubicaciones, botones o variantes de mensajes. Puede indicar únicamente los campos que utilice su plan de medición. El resultado los escribe con los nombres estándar utm_source, utm_medium, utm_campaign, utm_term y utm_content. Mantener estos valores como entradas separadas hace que la automatización sea más segura que aceptar una consulta parcialmente montada. También facilita revisar las convenciones de nombres antes de crear el enlace final. Si el destino ya incluye un parámetro normal, como un identificador de producto, un código de referencia o un idioma, dicho parámetro permanece en el resultado.
Deje que la codificación proteja espacios y caracteres reservados
Las etiquetas de campaña suelen contener espacios, signos de puntuación, barras, ampersands o caracteres fuera de ASCII básico. No siempre es posible copiarlos literalmente en una cadena de consulta sin cambiar la interpretación del navegador. Este generador aplica reglas estándar de serialización de URL y consultas para codificar cada valor proporcionado. Así, una campaña llamada July launch y un contenido llamado hero CTA siguen siendo valores reconocibles y se convierten en componentes seguros de la URL devuelta. Un ampersand dentro de una etiqueta se codifica como dato, en vez de confundirse con el separador de otro parámetro. Los parámetros existentes se analizan y serializan con el mismo mecanismo estándar. Si la URL base ya contiene una de las cinco claves UTM y usted proporciona un valor nuevo, prevalece el valor indicado; no se crean claves duplicadas ambiguas. Un fragmento como #details permanece después de la consulta completa. Este comportamiento elimina la concatenación manual frágil y produce siempre el mismo resultado para la misma entrada, sin solicitar la red ni seguir redirecciones.
Use enlaces coherentes en los procesos de publicación y análisis
Un enlace etiquetado válido es solo una parte de una atribución fiable. Defina una convención antes de generar grandes lotes: muchos equipos usan valores de fuente y medio en minúsculas, identificadores estables de campaña y etiquetas de contenido vinculadas a una creatividad o ubicación. El generador conserva deliberadamente el texto proporcionado, sin cambiar mayúsculas ni inventar nombres, para que el gobierno de datos permanezca bajo su control. Conéctelo a un editor de correo, una cola de redes sociales, una hoja de campañas, un gestor de contenidos o una lista interna de lanzamiento siempre que se produzcan enlaces. Guarde las entradas estructuradas junto a la URL devuelta para que los analistas puedan relacionar una etiqueta del panel con el registro que la creó. Pruebe el destino durante la publicación, sobre todo si la URL original contiene parámetros propios de la aplicación. La capacidad no acorta el enlace, contacta con el destino, verifica la página ni configura una cuenta de análisis; solo construye la URL localmente. Su alcance acotado facilita combinarla con aprobaciones, comprobaciones, acortadores o códigos QR. El uso interactivo es gratuito y cada solicitud API automatizada cuesta $0.002.
Qué puede hacer con ella
Etiquetar destinos de boletines
Genere enlaces codificados para botones y textos, conservando los parámetros de producto, idioma y referencia que ya tenga cada destino.
Preparar enlaces para campañas sociales
Asigne a cada plataforma y creatividad valores coherentes de fuente, medio, campaña y contenido antes de publicar.
Automatizar exportaciones de campañas pagadas
Construya enlaces finales desde registros estructurados, con términos y creatividades opcionales, sin concatenar consultas a medida.
Preguntas frecuentes
¿Cuánto cuesta una solicitud automatizada?
Cada solicitud API cuesta $0.002. También puede crear un enlace directamente en el navegador de esta página sin coste.
¿Qué entradas de URL se aceptan?
La URL base debe ser absoluta, es decir, incluir un esquema y poder analizarse de forma independiente. Las rutas relativas se rechazan.
¿Qué ocurre con los parámetros existentes?
Se conservan. Si una clave UTM existente también se proporciona como entrada, el valor indicado sustituye esa clave.
¿Se codifican los espacios y caracteres especiales?
Sí. Los valores se serializan con reglas estándar para que los caracteres reservados no alteren la estructura de la consulta.
¿Debo proporcionar los cinco campos UTM?
No. Fuente, medio, campaña, término y contenido son opcionales por separado; solo se añaden o sustituyen los campos indicados.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/web/utm-link-build \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/launch?ref=homepage#details"}'const res = await fetch("https://api.kit.forhosting.com/web/utm-link-build", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://example.com/launch?ref=homepage#details"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/utm-link-build",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://example.com/launch?ref=homepage#details"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/utm-link-build", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://example.com/launch?ref=homepage#details"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://example.com/launch?ref=homepage#details"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/utm-link-build", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"url": "https://example.com/launch?ref=homepage#details"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.utm_link_build",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
timeout_sec | 30 |
max_crawl_pages | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |