Crie um link UTM com parâmetros de campanha codificados
Crie uma URL de campanha pronta para compartilhar sem juntar manualmente interrogações, e-comerciais ou valores codificados.
Executar grátis
Informe uma URL base absoluta e qualquer combinação de origem, mídia, campanha, termo e conteúdo. O gerador preserva parâmetros comuns, substitui UTMs correspondentes, mantém o fragmento na posição final correta e devolve um link válido. Ele atende tanto profissionais de marketing quanto desenvolvedores que precisam do mesmo resultado previsível em fluxos de publicação, e-mail, publicidade e relatórios.
Comece com um destino absoluto e campos de campanha estruturados
Comece pelo destino completo, incluindo esquema e host, como https://example.com/offers. Um caminho relativo como /offers é recusado porque não tem origem independente e pode ser resolvido de maneiras diferentes conforme o local de abertura. Adicione os campos que descrevem a visita: origem identifica o site ou a plataforma, mídia descreve o canal e campanha agrupa atividades relacionadas em uma iniciativa. Termo pode registrar uma palavra-chave de busca paga, enquanto conteúdo diferencia criativos, posições, botões ou versões da mensagem. Você pode fornecer somente os campos usados em seu plano de medição. O resultado os grava sob os nomes padronizados utm_source, utm_medium, utm_campaign, utm_term e utm_content. Manter esses valores como entradas separadas torna a automação mais segura do que aceitar uma consulta parcialmente montada. Também facilita revisar convenções, pois cada propriedade tem um lugar claro antes da criação do link final. Se o destino já contiver um parâmetro comum, como produto, indicação ou idioma, ele continuará presente no resultado.
Deixe a codificação proteger espaços e caracteres reservados
Rótulos de campanha frequentemente contêm espaços, pontuação, barras, e-comerciais ou caracteres fora do ASCII básico. Nem sempre eles podem ser copiados literalmente para uma consulta sem alterar a interpretação do navegador. Este gerador usa regras padrão de URL e serialização de consultas para codificar cada valor informado. Assim, uma campanha chamada July launch e um conteúdo chamado hero CTA continuam reconhecíveis, mas se tornam componentes seguros da URL devolvida. Um e-comercial dentro de um rótulo é codificado como dado, não confundido com o separador do próximo parâmetro. Parâmetros existentes são analisados e serializados pelo mesmo mecanismo. Quando a URL base já contém uma das cinco chaves UTM e você informa uma substituição, prevalece o novo valor; o gerador não cria chaves duplicadas ambíguas. Um fragmento como #details permanece depois da consulta completa. Esse comportamento elimina concatenações manuais frágeis e produz um resultado determinístico para a mesma entrada, sem fazer solicitações de rede ou seguir redirecionamentos.
Use links consistentes nos fluxos de publicação e análise
Um link marcado válido é apenas uma parte da atribuição confiável. Defina uma convenção antes de gerar lotes grandes: muitas equipes adotam origem e mídia em minúsculas, identificadores estáveis de campanha e rótulos de conteúdo ligados ao criativo ou posicionamento. O gerador preserva de propósito o texto fornecido, sem mudar letras nem inventar nomes, para que a governança continue sob seu controle. Conecte-o a um editor de e-mail, fila de redes sociais, planilha de campanha, sistema de conteúdo ou checklist interno sempre que links forem produzidos. Guarde as entradas estruturadas junto da URL devolvida para que analistas relacionem um rótulo do painel ao registro que o criou. Teste o destino durante a publicação, sobretudo quando a URL original tiver parâmetros próprios do aplicativo. A capacidade não encurta o link, contata o destino, verifica a página nem configura uma conta de análise; apenas monta a URL localmente. Esse escopo restrito facilita sua combinação com aprovação, verificação, encurtamento ou QR code. O uso interativo no navegador é gratuito, enquanto cada solicitação API automatizada custa US$ 0,002.
Casos de uso
Marcar destinos de newsletters
Gere links codificados para botões e textos, preservando parâmetros de produto, idioma e indicação já existentes em cada destino.
Preparar links de campanhas sociais
Atribua origem, mídia, campanha e conteúdo consistentes a cada plataforma e criativo antes de entrar na fila de publicação.
Automatizar exportações de mídia paga
Monte links finais a partir de registros estruturados, incluindo termos e criativos opcionais, sem concatenar consultas manualmente.
Perguntas frequentes
Quanto custa uma solicitação automatizada?
Cada solicitação API custa US$ 0,002. Você também pode criar um link diretamente no navegador desta página sem custo.
Quais entradas de URL são aceitas?
A URL base deve ser absoluta, ou seja, incluir um esquema e poder ser analisada de forma independente. Caminhos relativos são recusados.
O que acontece com os parâmetros existentes?
Eles são preservados. Se uma chave UTM existente também for informada, o valor fornecido substituirá essa chave.
Espaços e caracteres especiais são codificados?
Sim. Os valores seguem regras padrão de consulta para que caracteres reservados não alterem a estrutura do link.
Preciso fornecer os cinco campos UTM?
Não. Origem, mídia, campanha, termo e conteúdo são opcionais individualmente; apenas os campos informados são adicionados ou substituídos.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"url": "https://example.com/launch?ref=homepage#details"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.utm_link_build",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |