(function(){var d=document.documentElement;d.setAttribute('data-product','ajans');d.setAttribute('lang','tr');})();
:root{--brand:#2563EB;--brand2:#10B981;--dark:#0F172A;--ink:#0F172A;--muted:#475569;--soft:#64748B;--bg:#F8FAFC;--line:#E2E8F0;--wa:#075E54;--shadow:0 30px 74px -30px rgba(15,23,42,.34)}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;height:auto!important;overflow-y:auto!important}body{min-height:100vh;height:auto!important;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:linear-gradient(180deg,#fff,var(--bg));color:var(--ink);line-height:1.55;overflow-x:hidden;overflow-y:auto!important}html,body.elementor-page,body{background:#F8FAFC!important;overflow-y:auto!important}h1,h2,h3{font-weight:900;line-height:1.06;letter-spacing:0;color:inherit!important}p,li{overflow-wrap:break-word}a{text-decoration:none!important;color:inherit}button,input,select,textarea{font:inherit}.wrap{width:min(1180px,calc(100vw - 48px));margin:0 auto}.nav-wrap{position:sticky;top:12px;z-index:50;padding:12px 12px 0}.nav{width:min(1180px,calc(100vw - 24px));margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px 10px 18px;border:1px solid rgba(226,232,240,.92);border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 12px 30px -24px rgba(15,23,42,.45);backdrop-filter:blur(16px)}.logo{display:inline-flex;align-items:center;gap:10px;font-weight:900}.logo img{height:34px;width:34px;border-radius:9px;object-fit:cover}.nav-links{display:flex;gap:24px;font-size:.92rem;font-weight:760;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border:0;border-radius:12px;padding:13px 20px;font-weight:850;cursor:pointer;color:inherit;text-align:center}.btn-primary{background:var(--dark);color:#fff!important}.btn-ghost{background:#fff;color:var(--ink)!important;border:1px solid var(--line)}.btn-wa{background:var(--wa);color:#fff!important}.hero{padding:58px 0 34px}.hero-copy{max-width:940px}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:900;color:var(--brand)}.eyebrow:before{content:"";width:8px;height:8px;border-radius:999px;background:var(--brand2)}.hero h1{font-size:clamp(2.35rem,5.2vw,4.25rem);margin:18px 0;overflow-wrap:anywhere}.hero h1 span{background:linear-gradient(120deg,var(--brand),#7C3AED,var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent}.lead{font-size:1.12rem;color:var(--muted);max-width:58rem;font-weight:560}.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:26px;max-width:900px}.trust span,.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-size:.88rem;font-weight:820;color:var(--muted)}.tool{margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden;color-scheme:light}.tool-top{display:flex;justify-content:space-between;gap:14px;padding:24px 30px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(37,99,235,.1),rgba(16,185,129,.1))}.tool-top h2{font-size:1.36rem;margin-top:4px}.pill{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 12px;border-radius:999px;background:rgba(16,185,129,.12);color:#047857;font-size:.78rem;font-weight:900;white-space:nowrap}.tool-body{display:grid;grid-template-columns:minmax(330px,.9fr) minmax(450px,1.1fr)}.form-side{padding:30px;border-right:1px solid var(--line)}.result-side{padding:30px;background:linear-gradient(180deg,#fff,#F9FCFF)}.field{margin-bottom:16px}.field label{display:block;font-size:.86rem;font-weight:900;margin-bottom:7px;color:#0F172A!important}.input,.textarea{width:100%;border:1.5px solid var(--line)!important;border-radius:14px;background:#fff!important;color:#0F172A!important;-webkit-text-fill-color:#0F172A!important;outline:none}.input{min-height:52px;padding:0 14px}.textarea{min-height:160px;padding:13px;resize:vertical}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.metric{border:1px solid var(--line);border-radius:18px;background:#fff;padding:18px}.metric span{display:block;font-size:.75rem;font-weight:900;text-transform:uppercase;color:var(--soft);margin-bottom:10px}.metric strong{display:block;font-size:1.22rem;word-break:break-word}.metric.main{background:linear-gradient(135deg,var(--dark),var(--brand));color:#fff;border-color:transparent}.code-output{white-space:pre-wrap;background:#0B1220!important;color:#E5F0FF!important;-webkit-text-fill-color:#E5F0FF!important;border-radius:16px;padding:16px;font-family:Consolas,Monaco,monospace;font-size:.86rem;line-height:1.55;overflow:auto;min-height:280px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.actions .btn{width:100%}.notice{margin-top:16px;border:1px solid rgba(37,99,235,.16);border-radius:18px;background:rgba(37,99,235,.08);padding:15px;color:#274060;font-weight:650;font-size:.92rem}.section{padding:76px 0}.head{max-width:780px;margin:0 auto 34px;text-align:center}.head h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:14px}.head p{color:var(--muted);font-weight:560}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.cta-panel{display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px;background:linear-gradient(135deg,#0F172A,#1E3A8A);color:#fff;border-radius:28px;padding:36px;box-shadow:var(--shadow)}.cta-panel p{color:rgba(255,255,255,.78);margin-top:10px}footer{border-top:1px solid var(--line);padding:42px 0;color:var(--muted);font-weight:650}.foot{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.foot-brand{display:flex;align-items:center;gap:10px;font-weight:900;color:var(--ink)}.foot-brand img{height:30px;width:30px;border-radius:8px}.wa-float{position:fixed;right:18px;bottom:18px;z-index:80;width:56px;height:56px;border-radius:999px;background:#25D366;display:grid;place-items:center;color:#fff;box-shadow:0 18px 38px -16px rgba(37,211,102,.9)}.wa-float svg{width:29px;height:29px}@media(max-width:980px){.tool-body,.cta-panel{grid-template-columns:1fr}.form-side{border-right:0;border-bottom:1px solid var(--line)}.trust,.cards,.summary{grid-template-columns:1fr}}@media(max-width:680px){html,body{max-width:100vw!important;overflow-x:hidden!important;overflow-y:auto!important}.elementor,.elementor-section,.elementor-container,.elementor-column,.elementor-widget-wrap,.elementor-widget-container,.wp-block-html{max-width:100vw!important;overflow-x:hidden!important;overflow-y:visible!important}.wrap{width:calc(100vw - 48px)!important;max-width:calc(100vw - 48px)!important}.nav-links,.nav .btn{display:none}.nav{width:calc(100vw - 20px);border-radius:22px}.logo span{display:none}.hero{padding-top:34px}.hero-copy,.hero h1,.hero-ctas,.trust,.tool,.cards,.head,.cta-panel{width:100%!important;max-width:100%!important}.hero-ctas,.trust,.tool{width:min(100%,320px)!important;max-width:320px!important;margin-left:0!important}.hero h1{font-size:2.05rem}.lead{max-width:32ch;font-size:.95rem}.hero-ctas,.actions{display:grid;grid-template-columns:1fr}.tool-top,.form-side,.result-side{padding:18px}.tool-top{flex-direction:column}.code-output{font-size:.78rem}.wa-float{display:none}}
.code-output{overflow-wrap:anywhere!important;word-break:break-word!important}
.bulk-import{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.bulk-import .btn{min-height:42px;padding:10px 14px}
.bulk-import small{color:var(--soft);font-weight:650}
.bulk-workspace{margin-top:16px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:18px}
.bulk-workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.bulk-workspace-head h3{font-size:1.02rem;margin:0 0 5px}
.bulk-workspace-head p{color:var(--muted);font-size:.86rem;font-weight:600}
.bulk-workspace-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.bulk-workspace-actions .btn{width:100%;min-width:0;padding-inline:12px}
.bulk-validation{margin-top:12px;border-radius:12px;background:#f1f5f9;padding:11px 12px;color:#334155;font-size:.82rem;font-weight:700}
.bulk-history{margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.bulk-history-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.bulk-history-top strong{font-size:.86rem}
.bulk-history-clear{border:0;background:transparent;color:var(--soft);font-size:.78rem;font-weight:800;cursor:pointer}
.bulk-history-list{display:grid;gap:8px}
.bulk-history-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;background:#f8fafc;padding:10px}
.bulk-history-load{min-width:0;border:0;background:transparent;text-align:left;cursor:pointer}
.bulk-history-load b,.bulk-history-load span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bulk-history-load b{color:var(--ink);font-size:.82rem}
.bulk-history-load span{margin-top:3px;color:var(--soft);font-size:.74rem}
.bulk-history-delete{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--soft);font-weight:900;cursor:pointer}
.bulk-history-empty{color:var(--soft);font-size:.82rem;font-weight:650}
@media(max-width:680px){
.bulk-workspace-actions{grid-template-columns:1fr}
.bulk-workspace-head{display:block}
}
/* Mobile-first rendering budget: zero remote font dependency and no offscreen paint work. */
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-synthesis:none}
a,button,[role="button"]{touch-action:manipulation}
@media (max-width:767px){
html{scroll-behavior:auto!important}
[data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
[data-parallax]{translate:none!important;transform:none!important}
.glow,.grain::before,.grain::after{display:none!important}
.nav,.sticky-cta{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
}
@supports (content-visibility:auto){
@media (max-width:767px){
main>section,main>.section{content-visibility:auto;contain-intrinsic-size:auto 900px}
main>section:first-child,main>.hero{content-visibility:visible}
}
}
MY Dijital ücretsiz araçToplu UTM link oluşturucu.
Aynı kampanya için Google, Meta, Instagram, e-posta ve WhatsApp linklerini tek seferde üretin. Raporlarda hangi kanalın sonuç getirdiğini ayırın.
Çoklu kanalTek seferde çıktıKopyalanabilir liste
Her kanal ayrı linkle takip edilmelidir.
Aynı kampanyayı farklı yerde paylaşıyorsanız, tek link tüm performansı birbirine karıştırır.
Google
Arama reklamı ve görüntülü reklam ayrı okunur.
Meta
Reels, story, feed ve yeniden pazarlama ayrıştırılır.
CRM
E-posta ve WhatsApp duyuruları aynı raporda görünür.
Kampanya linkleri ve ölçüm zincirini birlikte kuralım.
UTM, GA4, Google Ads, Meta Ads ve dönüşüm hedeflerini tek raporda okuyacak hale getirelim.
WhatsApp’tan Ölçüm Kurulumu Al
(function(){
var baseUrl=document.getElementById('baseUrl');
var campaign=document.getElementById('campaign');
var rows=document.getElementById('rows');
var generate=document.getElementById('generate');
var output=document.getElementById('output');
var countOut=document.getElementById('countOut');
var campaignOut=document.getElementById('campaignOut');
var duplicateOut=document.getElementById('duplicateOut');
var copyResult=document.getElementById('copyResult');
var shareWa=document.getElementById('shareWa');
var csvImport=document.getElementById('csvImport');
var downloadCsv=document.getElementById('downloadCsv');
var saveCampaign=document.getElementById('saveCampaign');
var shareSetup=document.getElementById('shareSetup');
var validationOut=document.getElementById('validationOut');
var clearBulkHistory=document.getElementById('clearBulkHistory');
var bulkHistoryList=document.getElementById('bulkHistoryList');
var bulkHistoryEmpty=document.getElementById('bulkHistoryEmpty');
var lastText='';
var lastRows=[];
var storageKey='myd_bulk_utm_history_v1';
function clean(value,fallback){
var text=String(value||'').trim();
return text.length>0?text:fallback;
}
function slug(value,fallback){
var text=clean(value,fallback).toLowerCase();
var map={'ç':'c','ğ':'g','ı':'i','ö':'o','ş':'s','ü':'u','İ':'i'};
text=text.replace(/[çğıöşüİ]/g,function(character){return map[character]||character;});
if(text.normalize){text=text.normalize('NFD').replace(/[\u0300-\u036f]/g,'');}
text=text.replace(/[^a-z0-9]+/g,'_').replace(/^_+|_+$/g,'').slice(0,80);
return text.length>0?text:fallback;
}
function pushEvent(name,extra){
window.dataLayer=window.dataLayer||[];
window.dataLayer.push(Object.assign({
event:name,
product:'ajans',
tool:'toplu_utm_link_olusturucu'
},extra||{}));
}
function parseCsvLine(line){
var values=[];
var value='';
var quoted=false;
for(var index=0;index<line.length;index+=1){
var character=line.charAt(index);
if(character==='"'){
if(quoted){
if(line.charAt(index+1)==='"'){
value+='"';
index+=1;
}else{
quoted=false;
}
}else{
quoted=true;
}
}else if(character===','){
if(quoted){
value+=character;
}else{
values.push(value.trim());
value='';
}
}else{
value+=character;
}
}
values.push(value.trim());
return values;
}
function normalizedRows(){
var seen={};
var duplicates=0;
var invalid=0;
var items=[];
rows.value.split(/\r?\n/).forEach(function(line){
var trimmed=clean(line,'');
if(!trimmed){return;}
var parts=parseCsvLine(trimmed);
if(parts.length0;
});
if(!lines.length){return;}
var first=parseCsvLine(lines[0]).map(function(value){return value.toLowerCase();});
var hasHeader=first.indexOf('source')>-1
? first.indexOf('medium')>-1
: false;
var sourceIndex=hasHeader?first.indexOf('source'):0;
var mediumIndex=hasHeader?first.indexOf('medium'):1;
var contentIndex=hasHeader?first.indexOf('content'):2;
var campaignIndex=hasHeader?first.indexOf('campaign'):-1;
var baseIndex=hasHeader?first.indexOf('base_url'):-1;
var dataLines=hasHeader?lines.slice(1):lines;
var normalized=dataLines.map(function(line){
var values=parseCsvLine(line);
return [
values[sourceIndex]||'',
values[mediumIndex]||'',
values[contentIndex]||''
].join(',');
}).filter(function(line){return line.replace(/,/g,'').trim().length>0;});
if(hasHeader){
if(dataLines.length){
var firstData=parseCsvLine(dataLines[0]);
if(campaignIndex>-1){
if(firstData[campaignIndex]){campaign.value=firstData[campaignIndex];}
}
if(baseIndex>-1){
if(firstData[baseIndex]){baseUrl.value=firstData[baseIndex];}
}
}
}
rows.value=normalized.join('\n');
build();
pushEvent('bulk_utm_csv_import',{rows:normalized.length});
csvImport.value='';
};
reader.readAsText(file,'utf-8');
}
function currentState(){
return {
baseUrl:baseUrl.value,
campaign:campaign.value,
rows:rows.value,
count:lastRows.length
};
}
function applyState(state){
if(!state){return;}
baseUrl.value=clean(state.baseUrl,'https://mydijital.com.tr/');
campaign.value=clean(state.campaign,'kampanya');
rows.value=clean(state.rows,'');
build();
}
function savedItems(){
try{
var parsed=JSON.parse(localStorage.getItem(storageKey)||'[]');
return Array.isArray(parsed)?parsed:[];
}catch(error){
return [];
}
}
function writeItems(items){
try{
localStorage.setItem(storageKey,JSON.stringify(items.slice(0,20)));
return true;
}catch(error){
return false;
}
}
function renderHistory(){
var items=savedItems();
bulkHistoryList.textContent='';
bulkHistoryEmpty.hidden=items.length>0;
clearBulkHistory.hidden=items.length<1;
items.forEach(function(item,index){
var row=document.createElement('div');
row.className='bulk-history-item';
var load=document.createElement('button');
load.className='bulk-history-load';
load.type='button';
var title=document.createElement('b');
title.textContent=clean(item.campaign,'kampanya');
var detail=document.createElement('span');
detail.textContent=String(item.count||0)+' link · '+clean(item.baseUrl,'');
load.appendChild(title);
load.appendChild(detail);
load.addEventListener('click',function(){
applyState(item);
document.getElementById('arac').scrollIntoView({behavior:'smooth',block:'start'});
pushEvent('bulk_utm_history_load',{index:index});
});
var remove=document.createElement('button');
remove.className='bulk-history-delete';
remove.type='button';
remove.setAttribute('aria-label','Kaydı sil');
remove.textContent='×';
remove.addEventListener('click',function(){
var next=savedItems();
next.splice(index,1);
writeItems(next);
renderHistory();
pushEvent('bulk_utm_history_delete',{index:index});
});
row.appendChild(load);
row.appendChild(remove);
bulkHistoryList.appendChild(row);
});
}
function saveCurrent(){
build();
var state=currentState();
state.savedAt=new Date().toISOString();
var fingerprint=state.baseUrl+'|'+state.campaign+'|'+state.rows;
var items=savedItems().filter(function(item){
return item.baseUrl+'|'+item.campaign+'|'+item.rows!==fingerprint;
});
items.unshift(state);
if(writeItems(items)){
saveCampaign.textContent='Kaydedildi';
window.setTimeout(function(){saveCampaign.textContent='Kampanyayı Kaydet';},1500);
renderHistory();
pushEvent('bulk_utm_save',{count:lastRows.length});
}else{
saveCampaign.textContent='Kaydedilemedi';
window.setTimeout(function(){saveCampaign.textContent='Kampanyayı Kaydet';},1600);
}
}
function setupUrl(){
var state=currentState();
var link=new URL(window.location.href);
['ft_base','ft_campaign','ft_rows'].forEach(function(key){link.searchParams.delete(key);});
link.searchParams.set('ft_base',state.baseUrl);
link.searchParams.set('ft_campaign',state.campaign);
link.searchParams.set('ft_rows',state.rows);
link.hash='arac';
return link.toString();
}
function hydrateFromQuery(){
var params=new URLSearchParams(window.location.search);
if(!params.has('ft_rows')){return false;}
applyState({
baseUrl:params.get('ft_base')||'',
campaign:params.get('ft_campaign')||'',
rows:params.get('ft_rows')||''
});
pushEvent('bulk_utm_shared_setup_open',{});
return true;
}
function shareCurrentSetup(){
build();
var link=setupUrl();
if(navigator.share){
navigator.share({
title:'Toplu UTM kampanya kurulumu',
text:'Bu toplu UTM kurulumunu açın:',
url:link
}).then(function(){
pushEvent('bulk_utm_setup_share',{method:'native'});
}).catch(function(error){
if(error){
if(error.name==='AbortError'){return;}
}
copyValue(link,shareSetup,'Kurulumu Paylaş','bulk_utm_setup_share_copy');
});
return;
}
copyValue(link,shareSetup,'Kurulumu Paylaş','bulk_utm_setup_share_copy');
}
[baseUrl,campaign,rows].forEach(function(field){
field.addEventListener('input',build);
field.addEventListener('change',build);
});
generate.addEventListener('click',build);
copyResult.addEventListener('click',function(){
copyValue(lastText,copyResult,'Listeyi Kopyala','bulk_utm_copy');
});
downloadCsv.addEventListener('click',downloadCurrentCsv);
saveCampaign.addEventListener('click',saveCurrent);
shareSetup.addEventListener('click',shareCurrentSetup);
csvImport.addEventListener('change',function(){
var selectedFile=csvImport.files?csvImport.files[0]:null;
importCsv(selectedFile);
});
clearBulkHistory.addEventListener('click',function(){
writeItems([]);
renderHistory();
pushEvent('bulk_utm_history_clear',{});
});
document.querySelectorAll('[data-cta]').forEach(function(link){
link.addEventListener('click',function(){
pushEvent('cta_click',{cta:link.getAttribute('data-cta')});
});
});
if(!hydrateFromQuery()){build();}
renderHistory();
})();