キャンペーン値を符号化してUTMリンクを作成
疑問符やアンパサンド、符号化済みの値を手作業で連結せずに、そのまま共有できるキャンペーンURLを作成できます。絶対形式のベースURLと、参照元、メディア、キャンペーン、キーワード、コンテンツを任意の組み合わせで指定してください。通常のクエリパラメーターは保持し、指定されたUTM値は置き換え、フラグメントは正しい末尾位置に維持して、有効なリンクを1件返します。マーケティング担当者の画面操作にも、公開、メール、広告、レポート作成を自動化する開発者の処理にも適しています。
無料で実行
絶対形式のリンク先と構造化した項目をご用意ください
https://example.com/offersのように、スキームとホストを含む完全なリンク先から始めます。/offersのような相対パスは独立した接続先を持たず、開く場所によって異なるURLに解決されるため受け付けません。訪問を説明する項目も追加してください。参照元は媒体社やプラットフォーム、メディアはチャネル、キャンペーンは同じ施策に属する活動を示します。キーワードには有料検索語句を記録でき、コンテンツではクリエイティブ、掲載位置、ボタン、メッセージ案などを区別できます。測定計画で使用する項目だけを指定しても構いません。結果ではutm_source、utm_medium、utm_campaign、utm_term、utm_contentという標準名で書き込まれます。値を個別の入力として扱うことで、途中まで組み立てたクエリ文字列を渡すより安全に自動化できます。また、最終リンクを作る前に、各プロパティの命名規則を明確に確認できます。商品ID、紹介コード、言語などの通常パラメーターがリンク先に含まれている場合、それらは結果から削除されません。
符号化によって空白や予約文字を安全に扱います
キャンペーン名には、空白、句読点、スラッシュ、アンパサンド、基本ASCII以外の文字がよく含まれます。これらをクエリ文字列へそのままコピーすると、ブラウザーによるリンクの解釈が変わる場合があります。本機能はURLとクエリの標準的なシリアライズ規則を使用し、指定された各値を符号化します。たとえばJuly launchというキャンペーン名やhero CTAというコンテンツ名は、意味を判別できる値のまま、安全なURL部品になります。名前に含まれるアンパサンドはデータとして符号化され、次のパラメーターとの区切りとは見なされません。既存のクエリパラメーターも同じ標準方式で解析およびシリアライズされます。ベースURLに5つのUTMキーのいずれかが存在し、新しい値をご指定になった場合は、新しい値を優先し、曖昧な重複キーは作りません。#detailsのようなフラグメントは、クエリ全体の後ろに保持されます。同じ入力には常に同じ結果を返し、ネットワーク通信やリダイレクトは行いません。
公開と分析の工程で一貫したリンクをご利用ください
正しいタグ付きリンクは、信頼できるアトリビューションの一要素です。大量生成の前に命名規則を決めることをおすすめします。参照元とメディアを小文字に統一し、安定したキャンペーンIDを使用し、コンテンツ名をクリエイティブや掲載位置に関連付ける方法が一般的です。本機能は大文字と小文字を変更したり名前を作ったりせず、ご入力の文字列を維持するため、運用規則はお客様が管理できます。メール編集画面、SNS公開キュー、キャンペーン表、コンテンツ管理システム、社内公開チェックリストなど、リンクを作る工程に組み込めます。返されたURLと構造化入力を一緒に保存すれば、分析担当者はダッシュボードのラベルから作成元の記録を確認できます。特に元のURLにアプリ固有パラメーターがある場合は、公開工程でリンク先をテストしてください。本機能は短縮、リンク先への接続、ページの存在確認、分析アカウントの設定を行わず、ローカルでURLを構築するだけです。そのため、承認、リンク検査、短縮、QRコード作成とも容易に組み合わせられます。ブラウザーでの操作は無料で、自動APIリクエストは$0.002です。
活用例
メールマガジンのリンク先をタグ付け
商品、言語、紹介用の既存パラメーターを保持しながら、ボタンや本文用の符号化済みリンクを作成します。
SNSキャンペーン用リンクを準備
公開キューへ入れる前に、プラットフォームと素材ごとに参照元、メディア、キャンペーン、コンテンツを統一します。
有料キャンペーンの出力を自動化
構造化された記録から、任意のキーワードや素材IDを含む最終リンクを独自の連結処理なしで構築します。
よくある質問
自動リクエストの料金はいくらですか?
APIリクエスト1件につき$0.002です。このページのブラウザー上では無料でリンクを作成できます。
どのようなURLを入力できますか?
ベースURLはスキームを含み、単独で解析できる絶対形式である必要があります。相対パスは受け付けません。
既存のクエリパラメーターはどうなりますか?
既存パラメーターは保持されます。同じUTMキーを入力した場合は、指定した値でそのキーを置き換えます。
空白や特殊文字は符号化されますか?
はい。予約文字がクエリ構造を変えないよう、標準的なURLクエリ規則で値をシリアライズします。
5つのUTM項目をすべて指定する必要がありますか?
いいえ。参照元、メディア、キャンペーン、キーワード、コンテンツは個別に任意で、指定した項目だけを追加または置換します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
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)リクエスト例
{
"url": "https://example.com/launch?ref=homepage#details"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.utm_link_build",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
timeout_sec | 30 |
max_crawl_pages | 25 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |