@analitikisler/ai-tag-debugger 0.20.1 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/i18n.js CHANGED
@@ -86,6 +86,39 @@ const en = {
86
86
  request: "Request",
87
87
  noPushes: "No dataLayer pushes in this step.",
88
88
  noRequests: "No requests to the chosen providers in this step.",
89
+ cmp: {
90
+ title: "Consent platform",
91
+ unknown: "a consent platform the tool doesn't recognise",
92
+ built: (date) => `Its site bundle was compiled on ${date}.`,
93
+ scriptDated: (date, where) => `Its script (${where}) last changed on ${date}.`,
94
+ script: (url) => `Bundle: ${url}.`,
95
+ language: (name) => `The setup in force is the one for the ${name} language.`,
96
+ categories: (list) => `Categories: ${list.join(", ")}.`,
97
+ modeOn: (vendor, mapping) => `${vendor}'s own Consent Mode integration is on, with ${mapping}.`,
98
+ modeOff: (vendor, mapping) => `${vendor}'s own Consent Mode integration is off, so the consent signals come from elsewhere, such as a GTM template or the site's code${mapping ? `; its configured mapping (${mapping}) is not in force` : ""}.`,
99
+ mapping: (pairs) => pairs.map(([signal, category]) => `${signal} → ${category}`).join(", "),
100
+ passthrough: (urlPassthrough, redaction) => `URL passthrough is ${urlPassthrough ? "on" : "off"} and ads data redaction is ${redaction ? "on" : "off"}.`,
101
+ autoBlocking: (on, rules) => (on ? `Auto-blocking is on${rules ? `, with ${rules} blocking rule${rules === 1 ? "" : "s"}` : ""}.` : "Auto-blocking is off."),
102
+ tcf: (on) => `IAB TCF is ${on ? "on" : "off"}.`,
103
+ law: (law) => `The law its banner follows here: ${law.toUpperCase()}.`,
104
+ modeFixed: (vendor, mapping) => `${vendor} maps its categories to Consent Mode the same way on every site: ${mapping}.`,
105
+ providerBlocking: (n) => (n ? `It holds back scripts from ${n} provider${n === 1 ? "" : "s"} until their category is allowed.` : "It holds back no providers' scripts by itself."),
106
+ version: (v) => `Version ${v}.`,
107
+ setupFile: (url) => `Its setup for this site: ${url}.`,
108
+ published: (date, where) => `That setup (${where}) was last published on ${date}.`,
109
+ model: (model, region) => `It handled this visit${region ? `, placed in ${region},` : ""} under its "${model}" consent model.`,
110
+ implied: "It counted this visit as consent given without a choice, so tags could run before any choice; for a visitor from a region that needs opt-in they would not. Read the No choice columns with that in mind.",
111
+ redaction: (v) => `Ads data redaction: ${v}.`,
112
+ },
113
+ tabCookies: "Cookies",
114
+ cookieCol: "Cookie",
115
+ domainCol: "Domain",
116
+ changeCol: "Change",
117
+ cookieChange: { added: "added", changed: "changed", removed: "removed" },
118
+ cookieNamesOnly: "Names only: cookie values are never recorded.",
119
+ gaClientId: (cid, since, prev) => `GA4 client id (_ga): ${cid}, ${prev ? `changed from ${prev}` : since === null ? "new at this step" : `the same since step ${since}`}.`,
120
+ gclAw: (landing) => (landing ? "_gcl_aw holds the gclid the landing page was opened with." : "_gcl_aw holds a gclid other than the landing page's."),
121
+ fbc: (landing) => (landing ? "_fbc holds the fbclid the landing page was opened with." : "_fbc holds an fbclid other than the landing page's."),
89
122
  eventParams: "Event parameters",
90
123
  contextParams: "Session, device, page and consent parameters",
91
124
  rawRequest: "Raw request",
@@ -100,6 +133,7 @@ const en = {
100
133
  skippedInStep: (list, n) => `Only requests to the chosen providers are shown. ${n} out-of-scope ${n === 1 ? "request was" : "requests were"} skipped in this step: ${list}.`,
101
134
  tabJourneys: "Journeys",
102
135
  sections: "Report sections",
136
+ liveRun: "Live run: tracking requests reached the real analytics and ad accounts, so this test traffic is in their reports.",
103
137
  checkedAgainst: (id) => `Checked against plan ${id}`,
104
138
  planChangesLine: (pc) => (pc.same ? `Plan unchanged since ${pc.previous}` : `Plan changed since ${pc.previous}: ${pc.added.length} added, ${pc.removed.length} removed, ${pc.changed.length} changed`),
105
139
  planVsSite: "Plan vs. site",
@@ -134,7 +168,23 @@ const en = {
134
168
  consentDefault: "Default",
135
169
  consentUpdate: "Update",
136
170
  scenarios: "Consent scenarios",
137
- scenarioCols: { before: "No choice yet", accept: "Accept all", reject: "Reject all", analytics: "Analytics only" },
171
+ scenarioCols: { before: "No choice yet", ignore: "No choice, next page", accept: "Accept all", reject: "Reject all", analytics: "Analytics only" },
172
+ matrix: {
173
+ title: "Consent matrix",
174
+ intro: (landing) => `Each column is a fresh browser that opened ${landing}, made the choice (or none) and opened the page again.`,
175
+ rows: { firstHit: "First Google hit", campaign: "Campaign parameters on it", clientId: "GA4 client id", gclAw: "_gcl_aw cookie", cookies: "Cookies set", loaded: "Tags called, after the page started", tagConsent: "The Google tag's consent" },
176
+ none: "none",
177
+ notRun: "–",
178
+ kept: "all kept",
179
+ lost: (names) => `lost: ${names.join(", ")}`,
180
+ cid: { cookie: "in a cookie already", cookieless: "without a cookie", kept: "kept", changed: "changed", new: "new", none: "none" },
181
+ gcl: { landing: "holds the landing gclid", other: "holds another gclid", none: "not set" },
182
+ cookies: (n, names) => (n ? `${n}: ${names.join(", ")}` : "none"),
183
+ ms: (ms) => (ms < 1000 ? `${Math.round(ms)} ms` : `${(ms / 1000).toFixed(1)} s`),
184
+ signals: { ad_storage: "ad", analytics_storage: "an", ad_user_data: "ud", ad_personalization: "ap" },
185
+ problem: "should not happen with this choice",
186
+ legend: "ad, an, ud, ap: ad_storage, analytics_storage, ad_user_data, ad_personalization; ✓ granted, ✗ denied. ⚠ marks what should not happen with that choice.",
187
+ },
138
188
  scenarioNotRun: "Not supported here",
139
189
  scenarioTag: "Tag",
140
190
  skippedLine: (list, n) => `${n} out-of-scope ${n === 1 ? "request was" : "requests were"} skipped: ${list}.`,
@@ -152,6 +202,29 @@ const en = {
152
202
  party: { first: "First party", third: "Third party", both: "Both" },
153
203
  otherCookies: "Other cookies",
154
204
  noInventory: "No vendor requests were recorded.",
205
+ containersTitle: "Google containers",
206
+ containersIntro: "How each GTM container and Google tag got onto the page: what inserted its script, the dataLayer it reads and where it was served from.",
207
+ noContainers: "No GTM container or Google tag script was loaded.",
208
+ containerCol: "Container",
209
+ sourceCol: "Loaded by",
210
+ layerCol: "dataLayer",
211
+ servedCol: "Served from",
212
+ containers: {
213
+ script: { gtm: "GTM container", gtag: "Google tag" },
214
+ served: { google: "Google", site: "The site's own domain" },
215
+ environment: (env) => (env === "unnamed" ? "GTM environment" : `GTM environment ${env}`),
216
+ kinds: {
217
+ html: () => "A script tag in the page's HTML",
218
+ inline: () => "Inline code in the page (the snippet)",
219
+ script: (by) => `Another script on the page: ${by}`,
220
+ custom_html: (by) => `A Custom HTML tag in ${by}`,
221
+ google_tag: (by) => `A Google tag in ${by} (load_google_tags)`,
222
+ nested: (by) => `${by} itself: a Zone or a tag template`,
223
+ config: (by) => `A gtag('config') command, loaded by ${by}`,
224
+ send_to: (by) => `An event's send_to with no config, loaded by ${by}`,
225
+ destination: (by) => `A destination of the Google tag ${by}`,
226
+ },
227
+ },
155
228
  provider: "Provider",
156
229
  checked: "Checked",
157
230
  outOfScopeStatus: "Out of scope",
@@ -250,6 +323,9 @@ const en = {
250
323
  journeyIncomplete: (note) => `The journey did not reach its goal${note ? `: ${note}` : "."} Events after that point could not be checked.`,
251
324
  missingEvent: (platform, name) => `${label(platform)} ${q(name)} was not sent on this journey, although the journey reached its goal. ${label(platform)} recorded nothing for it.`,
252
325
  missingEventEarly: (name) => `${q(name)} was not seen, but the journey stopped early, so it is unverified rather than missing.`,
326
+ missingEventUnverified: (name) => `${q(name)} was not seen, but a page on the way was a bot challenge or crashed in the browser, so it is unverified rather than missing.`,
327
+ pageBlocked: (vendor) => `The page was a bot challenge from ${vendor} instead of the site, so the browser never saw the real page and nothing captured there says anything about its tracking.`,
328
+ pageCrashed: (vendor, refused) => `The page crashed in the browser (the ${vendor} error screen)${refused ? `, after ${refused} of its own scripts came back as HTML pages instead of code` : ""}, so its tags may never have run.`,
253
329
  missingEnhanced: (name, setting) => `GA4 ${q(name)} was not sent on this journey, although the journey reached its goal. GA4 sends it by itself, with no tag, when enhanced measurement is on: in GA4, Admin > Data streams > the web stream > Enhanced measurement, switch on "${en.ga4Settings[setting]}". A tag that sends it instead works too.`,
254
330
  missingAutomatic: (name) => `GA4 ${q(name)} was not seen. GA4 makes it by itself, with no tag (first_visit and session_start from flags on its other hits, user_engagement when the page is hidden or left), so it needs no setup and is not counted as missing.`,
255
331
  missingParams: (name, params) => `${q(name)} was sent without ${andList(sortParams(params).map(q), "and")}.`,
@@ -268,8 +344,15 @@ const en = {
268
344
  campaignLost: (names, finalUrl) => `The landing address carried ${names.join(", ")}, but the page ended up on ${finalUrl} without ${names.length === 1 ? "it" : "them"}. A redirect dropped ${names.length === 1 ? "the parameter" : "the parameters"}, so ad clicks lose their attribution.`,
269
345
  campaignMissingInHits: (platform, name, names) => `${label(platform)} ${q(name)} on the landing page reports a page address without ${names.join(", ")}, though the page still had ${names.length === 1 ? "it" : "them"}. The visit can be credited to direct traffic instead of the campaign.`,
270
346
  campaignOk: (names) => `${names.join(", ")} survived the landing page's redirects and reached the hits.`,
347
+ gclidNotStored: () => `The landing address carried a gclid and ad storage was granted, but the _gcl_aw cookie never held it. Google Ads cannot tie a conversion later in the visit, or on a later visit, to the ad click.`,
348
+ clientIdChanged: (from, at) => `The GA4 client id in the _ga cookie changed between "${from}" and "${at}". GA4 counts the visit before and after as two different users.`,
349
+ containerDuplicate: (id, sources, step) => `${id} was loaded ${sources.length} times into one page at "${step}": ${sources.join("; ")}. Each copy can run the container's tags again, so hits can go out twice; at best one install is dead weight.`,
350
+ containerEnvironment: (id, env) => `${id} is loaded from a GTM environment (${env === "unnamed" ? "gtm_auth" : `gtm_preview=${env}`}) instead of the Live version, so visitors run whatever was last published to that environment, often a staging or development version.`,
351
+ dataLayerSplit: (list, step) => `Containers on one page at "${step}" read different dataLayers: ${list.join(", ")}. A push to one is never seen by the containers reading another, so events and consent commands may reach only some of them.`,
352
+ sendToOnly: (id, by) => `${id} was loaded only because an event named it in send_to; no gtag('config', '${id}') ran. ${by} sends to it with default settings, so whatever a config command would set for it does not apply.`,
271
353
  consentDefaultMissing: () => "No Google Consent Mode default command (gtag('consent', 'default', ...)) was found in the dataLayer.",
272
354
  consentDefaultLate: () => "The Consent Mode default was set after the first tracking hit was sent.",
355
+ consentDefaultNotApplied: () => "The page pushed a Consent Mode default, but the Google tag never applied it, so its tags ran without one. Tag Assistant shows Consent Mode as not configured.",
273
356
  beforeConsentNever: (platform, name) => `${label(platform)} ${q(name)} was sent although the visitor never made a consent choice on this journey. ${label(platform)} receives data from visitors who have not agreed.`,
274
357
  beforeConsent: (platform, name) => `${label(platform)} ${q(name)} was sent before the visitor made a consent choice. ${label(platform)} receives data from visitors who have not agreed.`,
275
358
  consentV2Missing: (keys) => `The Consent Mode default does not set ${keys.map(q).join(" and ")}. Consent Mode v2 needs them for Google ads in the EEA and UK; without them ad personalization and conversion measurement can stop.`,
@@ -318,6 +401,14 @@ const en = {
318
401
  purchase_mismatch: "Google and Meta received different revenue for the same order, so one of them reports and bids on the wrong number.",
319
402
  campaign_lost_redirect: "A redirect strips the campaign parameters from the landing address, so paid clicks arrive as direct traffic and campaigns get no credit.",
320
403
  campaign_missing_in_hits: "The landing page kept the campaign parameters but the hit did not report them, so the visit is credited to direct traffic.",
404
+ page_blocked: "Nothing about the site's tracking can be judged from the pages behind the challenge; events not seen there are unverified, not missing.",
405
+ page_crashed: "Visitors who get the same error see a broken page, and the tags on it may not run.",
406
+ gclid_not_stored: "Conversions are not linked to the ad click that brought the visitor, so Google Ads under-reports them and bids on less data.",
407
+ client_id_changed: "One visitor becomes two users in GA4: the visit is split, the journey before the change loses its conversions, and attribution starts over.",
408
+ container_duplicate: "A container loaded twice can fire its tags twice, inflating page views and conversions; at best one install is redundant.",
409
+ container_environment: "Visitors run a non-Live version of the container, so tags still under test, or an old setup, collect production data.",
410
+ datalayer_split: "Events and consent commands pushed to one dataLayer never reach the containers reading another, so some tags miss them.",
411
+ container_send_to_only: "The destination runs without its own config, so the settings a config command would give it are missing.",
321
412
  campaign_params: "Campaign parameters survived the landing redirect and reached the hits, so paid clicks are credited to their campaigns.",
322
413
  event_id_reused: "Two different events share one event ID, so the platform keeps the first and silently drops the other: a real event is lost.",
323
414
  event_id_mismatch: "The browser and server copies of this event carry different IDs, so Meta cannot pair them and counts the conversion twice.",
@@ -327,6 +418,7 @@ const en = {
327
418
  server_endpoint: "A server container answers on the site's domain; the events it forwards to ad platforms are not visible here.",
328
419
  consent_default_missing: "Google tags run with no consent default, so they behave as if every visitor had consented before being asked.",
329
420
  consent_default_late: "The first Google hit went out before the consent default was set, so that hit ignored the visitor's choice.",
421
+ consent_default_not_applied: "Google tags run as if no default had been set: before the visitor chooses, they read and write cookies the default was meant to hold back.",
330
422
  consent_v2_missing: "The consent default lacks the v2 signals, so for EEA and UK traffic Google can stop ad personalisation and conversion measurement.",
331
423
  consent_v2_update: "After the visitor accepted, the v2 signals stayed denied, so Google Ads conversions and remarketing stay off even for consenting visitors.",
332
424
  before_consent: "The event was sent before the visitor made a choice, so the platform receives data from visitors who have not agreed.",
@@ -355,6 +447,14 @@ const en = {
355
447
  purchase_mismatch: "Make both tags read the same order fields; usually one reads a subtotal or a different currency. Then compare one order in both platforms.",
356
448
  campaign_lost_redirect: "Make the redirect keep the query string, or land paid traffic on the final address directly.",
357
449
  campaign_missing_in_hits: "Make the tag report the full landing address, parameters included; look for a page URL override or a page_location variable that fills in late.",
450
+ page_blocked: "Run the audit from a network the site trusts, such as your own computer, or have the bot protection let the audit's browser through, for example by its IP address.",
451
+ page_crashed: "Open the page in an ordinary browser. If it works there, the site's bot protection refused its scripts to the audit's network; if not, a deployment serves pages that ask for script files it no longer has.",
452
+ gclid_not_stored: "Fire the Conversion Linker tag (or the Google tag with the Ads ID) on every page, on consent granted as well as on page load, and keep the gclid on the landing address until it has run.",
453
+ client_id_changed: "Look for what rewrites or deletes _ga at that step: a consent platform clearing cookies, a second GA4 setup with another cookie_domain or cookie_prefix, or a cross-domain link without the _gl parameter.",
454
+ container_duplicate: "Keep one install: remove the extra snippet, or the tag in the other container that loads it again.",
455
+ container_environment: "Use the Live snippet in production: take gtm_auth and gtm_preview out of the GTM snippet, or publish what the environment holds to Live.",
456
+ datalayer_split: "Point every container at the same dataLayer, or push events and consent commands to each dataLayer the containers read.",
457
+ container_send_to_only: "Add a gtag('config', ID) for the destination before the events that send to it, or a Google tag for it in GTM.",
358
458
  campaign_params: "Nothing to fix. Check the redirects again when the landing pages change.",
359
459
  event_id_reused: "Generate a new event ID for every event, not once per page load.",
360
460
  event_id_mismatch: "Use one event ID for the pixel event and the server copy: pass the same value to both tags.",
@@ -364,6 +464,7 @@ const en = {
364
464
  server_endpoint: "Nothing to fix in the browser. Check what the server container forwards in its own preview mode.",
365
465
  consent_default_missing: "Set a Consent Mode default (all denied where the law requires it) before any Google tag loads, usually in the consent banner's script or a GTM template.",
366
466
  consent_default_late: "Move the consent default ahead of the Google tag: it must run before gtm.js or gtag.js loads.",
467
+ consent_default_not_applied: "Set the default with gtag('consent', 'default', {...}), where gtag pushes its arguments object; a plain array pushed to the dataLayer is ignored. Check that it goes to the dataLayer the Google tag reads, in the page itself, before gtm.js or gtag.js loads.",
367
468
  consent_v2_missing: "Add ad_user_data and ad_personalization to the consent default, next to ad_storage and analytics_storage.",
368
469
  consent_v2_update: "Grant ad_user_data and ad_personalization in the consent update the banner sends after the visitor accepts.",
369
470
  before_consent: "Give the tag a consent check (its consent settings or an additional consent trigger), or fire it only after the banner's choice.",
@@ -392,6 +493,14 @@ const en = {
392
493
  purchase_mismatch: "money",
393
494
  campaign_lost_redirect: "money",
394
495
  campaign_missing_in_hits: "money",
496
+ page_blocked: "hygiene",
497
+ page_crashed: "hygiene",
498
+ gclid_not_stored: "money",
499
+ client_id_changed: "money",
500
+ container_duplicate: "money",
501
+ container_environment: "hygiene",
502
+ datalayer_split: "hygiene",
503
+ container_send_to_only: "hygiene",
395
504
  campaign_params: "money",
396
505
  event_id_reused: "money",
397
506
  event_id_mismatch: "money",
@@ -401,6 +510,7 @@ const en = {
401
510
  server_endpoint: "hygiene",
402
511
  consent_default_missing: "legal",
403
512
  consent_default_late: "legal",
513
+ consent_default_not_applied: "legal",
404
514
  consent_v2_missing: "legal",
405
515
  consent_v2_update: "money",
406
516
  before_consent: "legal",
@@ -676,7 +786,7 @@ const en = {
676
786
  // ---- html.consent: strings of src/html/consent.js, edited only by its builder ----
677
787
  consent: {
678
788
  statusLabel: "Consent status per platform",
679
- cols: { before: "No choice", accept: "Accept", reject: "Reject", analytics: "Analytics only" },
789
+ cols: { before: "No choice", ignore: "Next page, no choice", accept: "Accept", reject: "Reject", analytics: "Analytics only" },
680
790
  state: { denied: "denied", granted: "granted", none: "no signal" },
681
791
  tally: (n, state) => `${n} · ${state}`,
682
792
  scenarios: "Scenarios",
@@ -689,6 +799,9 @@ const en = {
689
799
  noDefault: "No default",
690
800
  v2: "v2",
691
801
  v2Missing: "v2 missing",
802
+ tagState: "The Google tag's own state",
803
+ tagFlags: (usedDefault, usedUpdate, late, timedOut) => `${usedDefault ? "default applied" : "no default applied"}${usedUpdate ? ", update applied" : ""}${late ? ", default set late" : ""}${timedOut ? ", wait_for_update ran out" : ""}`,
804
+ defaultViaTag: "No consent command in the dataLayer: the default was set elsewhere, such as a consent platform's GTM template, and the Google tag applied it.",
692
805
  timing: (lo, hi) => (lo === hi ? `${lo} ms` : `${lo}–${hi} ms`),
693
806
  runsWith: (k, n) => (k === n ? `${n} ${n === 1 ? "run" : "runs"}` : `${k} of ${n} runs`),
694
807
  resent: (n) => `Sent again on ${n} more page ${n === 1 ? "load" : "loads"}`,
@@ -790,6 +903,39 @@ const tr = {
790
903
  request: "İstek",
791
904
  noPushes: "Bu adımda dataLayer gönderimi yok.",
792
905
  noRequests: "Bu adımda seçilen sağlayıcılara istek yok.",
906
+ cmp: {
907
+ title: "Onay platformu",
908
+ unknown: "aracın tanımadığı bir onay platformu",
909
+ built: (date) => `Site paketi ${date} tarihinde derlendi.`,
910
+ scriptDated: (date, where) => `Betiği (${where}) en son ${date} tarihinde değişti.`,
911
+ script: (url) => `Paket: ${url}.`,
912
+ language: (name) => `Geçerli kurulum ${name} dili için olanı.`,
913
+ categories: (list) => `Kategoriler: ${list.join(", ")}.`,
914
+ modeOn: (vendor, mapping) => `${vendor}'nin kendi Consent Mode entegrasyonu açık; eşleme: ${mapping}.`,
915
+ modeOff: (vendor, mapping) => `${vendor}'nin kendi Consent Mode entegrasyonu kapalı; onay sinyalleri başka bir yerden, örneğin bir GTM şablonundan ya da sitenin kodundan geliyor${mapping ? `; ayarlı eşlemesi (${mapping}) geçerli değil` : ""}.`,
916
+ mapping: (pairs) => pairs.map(([signal, category]) => `${signal} → ${category}`).join(", "),
917
+ passthrough: (urlPassthrough, redaction) => `URL passthrough ${urlPassthrough ? "açık" : "kapalı"}, reklam verisi karartma ${redaction ? "açık" : "kapalı"}.`,
918
+ autoBlocking: (on, rules) => (on ? `Otomatik engelleme açık${rules ? `, ${rules} engelleme kuralıyla` : ""}.` : "Otomatik engelleme kapalı."),
919
+ tcf: (on) => `IAB TCF ${on ? "açık" : "kapalı"}.`,
920
+ law: (law) => `Bannerın burada uyduğu yasa: ${law.toUpperCase()}.`,
921
+ modeFixed: (vendor, mapping) => `${vendor} kategorilerini her sitede aynı şekilde Consent Mode'a eşler: ${mapping}.`,
922
+ providerBlocking: (n) => (n ? `${n} sağlayıcının betiklerini kategorilerine izin verilene kadar bekletir.` : "Kendiliğinden hiçbir sağlayıcının betiğini bekletmez."),
923
+ version: (v) => `Sürüm ${v}.`,
924
+ setupFile: (url) => `Bu site için kurulumu: ${url}.`,
925
+ published: (date, where) => `Bu kurulum (${where}) en son ${date} tarihinde yayımlandı.`,
926
+ model: (model, region) => `Bu ziyareti${region ? ` (${region} olarak konumlandırılan)` : ""} "${model}" onay modeliyle ele aldı.`,
927
+ implied: "Bu ziyareti seçim yapılmadan verilmiş onay saydı; etiketler herhangi bir seçimden önce çalışabildi. Açık onay gerektiren bir bölgeden gelen ziyaretçi için çalışmazlardı. Seçim yok sütunlarını bunu göz önünde tutarak okuyun.",
928
+ redaction: (v) => `Reklam verisi karartma: ${v}.`,
929
+ },
930
+ tabCookies: "Çerezler",
931
+ cookieCol: "Çerez",
932
+ domainCol: "Alan adı",
933
+ changeCol: "Değişiklik",
934
+ cookieChange: { added: "eklendi", changed: "değişti", removed: "silindi" },
935
+ cookieNamesOnly: "Yalnızca adlar: çerez değerleri hiçbir zaman kaydedilmez.",
936
+ gaClientId: (cid, since, prev) => `GA4 istemci kimliği (_ga): ${cid}, ${prev ? `${prev} değerinden değişti` : since === null ? "bu adımda oluştu" : `${since}. adımdan beri aynı`}.`,
937
+ gclAw: (landing) => (landing ? "_gcl_aw, açılış sayfasının açıldığı gclid'i tutuyor." : "_gcl_aw, açılış sayfasınınkinden farklı bir gclid tutuyor."),
938
+ fbc: (landing) => (landing ? "_fbc, açılış sayfasının açıldığı fbclid'i tutuyor." : "_fbc, açılış sayfasınınkinden farklı bir fbclid tutuyor."),
793
939
  eventParams: "Olay parametreleri",
794
940
  contextParams: "Oturum, cihaz, sayfa ve onay parametreleri",
795
941
  rawRequest: "Ham istek",
@@ -804,6 +950,7 @@ const tr = {
804
950
  skippedInStep: (list, n) => `Yalnızca seçilen sağlayıcıların istekleri gösterilir. Bu adımda kapsam dışı ${n} istek atlandı: ${list}.`,
805
951
  tabJourneys: "Yolculuklar",
806
952
  sections: "Rapor bölümleri",
953
+ liveRun: "Canlı çalıştırma: takip istekleri gerçek analitik ve reklam hesaplarına ulaştı; bu test trafiği onların raporlarında görünür.",
807
954
  checkedAgainst: (id) => `${id} planına göre kontrol edildi`,
808
955
  planChangesLine: (pc) => (pc.same ? `Plan ${pc.previous} sürümünden bu yana değişmedi` : `Plan ${pc.previous} sürümünden bu yana değişti: ${pc.added.length} eklendi, ${pc.removed.length} çıkarıldı, ${pc.changed.length} değişti`),
809
956
  planVsSite: "Plan ve site",
@@ -838,7 +985,23 @@ const tr = {
838
985
  consentDefault: "Varsayılan",
839
986
  consentUpdate: "Güncelleme",
840
987
  scenarios: "Onay senaryoları",
841
- scenarioCols: { before: "Henüz seçim yok", accept: "Tümünü kabul", reject: "Tümünü reddet", analytics: "Yalnızca analitik" },
988
+ scenarioCols: { before: "Henüz seçim yok", ignore: "Seçim yok, sonraki sayfa", accept: "Tümünü kabul", reject: "Tümünü reddet", analytics: "Yalnızca analitik" },
989
+ matrix: {
990
+ title: "Onay matrisi",
991
+ intro: (landing) => `Her sütun, ${landing} adresini açan, seçimi yapan (ya da yapmayan) ve sayfayı yeniden açan ayrı bir tarayıcıdır.`,
992
+ rows: { firstHit: "İlk Google isteği", campaign: "Üzerindeki kampanya parametreleri", clientId: "GA4 istemci kimliği", gclAw: "_gcl_aw çerezi", cookies: "Yazılan çerezler", loaded: "Çağrılan etiketler, sayfa başladıktan sonra", tagConsent: "Google etiketinin onay durumu" },
993
+ none: "yok",
994
+ notRun: "–",
995
+ kept: "hepsi korundu",
996
+ lost: (names) => `kayboldu: ${names.join(", ")}`,
997
+ cid: { cookie: "zaten bir çerezde", cookieless: "çerezsiz", kept: "korundu", changed: "değişti", new: "yeni", none: "yok" },
998
+ gcl: { landing: "açılış gclid'ini tutuyor", other: "başka bir gclid tutuyor", none: "yazılmadı" },
999
+ cookies: (n, names) => (n ? `${n}: ${names.join(", ")}` : "yok"),
1000
+ ms: (ms) => (ms < 1000 ? `${Math.round(ms)} ms` : `${(ms / 1000).toFixed(1).replace(".", ",")} sn`),
1001
+ signals: { ad_storage: "ad", analytics_storage: "an", ad_user_data: "ud", ad_personalization: "ap" },
1002
+ problem: "bu seçimle olmamalı",
1003
+ legend: "ad, an, ud, ap: ad_storage, analytics_storage, ad_user_data, ad_personalization; ✓ izin verildi, ✗ reddedildi. ⚠ o seçimle olmaması gerekeni gösterir.",
1004
+ },
842
1005
  scenarioNotRun: "Burada desteklenmiyor",
843
1006
  scenarioTag: "Etiket",
844
1007
  skippedLine: (list, n) => `Kapsam dışı ${n} istek atlandı: ${list}.`,
@@ -856,6 +1019,29 @@ const tr = {
856
1019
  party: { first: "Birinci taraf", third: "Üçüncü taraf", both: "İkisi de" },
857
1020
  otherCookies: "Diğer çerezler",
858
1021
  noInventory: "Sağlayıcıya giden istek kaydedilmedi.",
1022
+ containersTitle: "Google container'ları",
1023
+ containersIntro: "Her GTM container'ının ve Google etiketinin sayfaya nasıl geldiği: betiğini neyin eklediği, okuduğu dataLayer ve nereden sunulduğu.",
1024
+ noContainers: "Hiçbir GTM container'ı veya Google etiketi betiği yüklenmedi.",
1025
+ containerCol: "Container",
1026
+ sourceCol: "Yükleyen",
1027
+ layerCol: "dataLayer",
1028
+ servedCol: "Sunulduğu yer",
1029
+ containers: {
1030
+ script: { gtm: "GTM container'ı", gtag: "Google etiketi" },
1031
+ served: { google: "Google", site: "Sitenin kendi alan adı" },
1032
+ environment: (env) => (env === "unnamed" ? "GTM ortamı" : `GTM ortamı ${env}`),
1033
+ kinds: {
1034
+ html: () => "Sayfanın HTML'indeki bir script etiketi",
1035
+ inline: () => "Sayfadaki satır içi kod (snippet)",
1036
+ script: (by) => `Sayfadaki başka bir betik: ${by}`,
1037
+ custom_html: (by) => `${by} içindeki bir Özel HTML etiketi`,
1038
+ google_tag: (by) => `${by} içindeki bir Google etiketi (load_google_tags)`,
1039
+ nested: (by) => `${by} kendisi: bir Zone veya etiket şablonu`,
1040
+ config: (by) => `Bir gtag('config') komutu, ${by} yükledi`,
1041
+ send_to: (by) => `config olmadan bir olayın send_to değeri, ${by} yükledi`,
1042
+ destination: (by) => `${by} Google etiketinin bir hedefi`,
1043
+ },
1044
+ },
859
1045
  provider: "Sağlayıcı",
860
1046
  checked: "Kontrol edildi",
861
1047
  outOfScopeStatus: "Kapsam dışı",
@@ -950,6 +1136,9 @@ const tr = {
950
1136
  journeyIncomplete: (note) => `Yolculuk hedefine ulaşmadı${note ? `: ${note}` : "."} Bu noktadan sonraki olaylar kontrol edilemedi.`,
951
1137
  missingEvent: (platform, name) => `${label(platform)} ${q(name)} bu yolculukta gönderilmedi; oysa yolculuk hedefine ulaştı. ${label(platform)} bu olay için hiçbir veri almadı.`,
952
1138
  missingEventEarly: (name) => `${q(name)} görülmedi; ancak yolculuk erken durduğu için bu olay eksik değil, doğrulanmamış sayılır.`,
1139
+ missingEventUnverified: (name) => `${q(name)} görülmedi; ancak yoldaki bir sayfa bot doğrulaması çıktı ya da tarayıcıda çöktü, bu yüzden eksik değil, doğrulanmamış sayılır.`,
1140
+ pageBlocked: (vendor) => `Sayfa sitenin yerine ${vendor} bot doğrulamasıydı; tarayıcı gerçek sayfayı hiç görmedi ve orada yakalananlar sitenin takibi hakkında bir şey söylemez.`,
1141
+ pageCrashed: (vendor, refused) => `Sayfa tarayıcıda çöktü (${vendor} hata ekranı)${refused ? `; öncesinde kendi betiklerinden ${refused} tanesi kod yerine HTML sayfası olarak geldi` : ""}; etiketleri hiç çalışmamış olabilir.`,
953
1142
  missingEnhanced: (name, setting) => `GA4 ${q(name)} bu yolculukta gönderilmedi; oysa yolculuk hedefine ulaştı. GA4 bu olayı geliştirilmiş ölçüm açıkken etiket gerekmeden kendisi gönderir: GA4'te Yönetici > Veri akışları > web akışı > Geliştirilmiş ölçüm altında "${tr.ga4Settings[setting]}" ayarını açın. Olayı gönderen bir etiket de aynı işi görür.`,
954
1143
  missingAutomatic: (name) => `GA4 ${q(name)} görülmedi. GA4 bu olayı etiket gerekmeden kendisi oluşturur (first_visit ve session_start diğer isteklerindeki işaretlerden, user_engagement sayfa gizlendiğinde ya da kapatıldığında), bu yüzden kurulum gerektirmez ve eksik sayılmaz.`,
955
1144
  missingParams: (name, params) => `${q(name)} olayı ${andList(sortParams(params).map(q), "ve")} ${params.length > 1 ? "parametreleri" : "parametresi"} olmadan gönderildi.`,
@@ -968,8 +1157,15 @@ const tr = {
968
1157
  campaignLost: (names, finalUrl) => `Açılış adresi ${names.join(", ")} taşıyordu, ancak sayfa ${finalUrl} adresinde ${names.length === 1 ? "onsuz" : "onlarsız"} sonlandı. Bir yönlendirme ${names.length === 1 ? "parametreyi" : "parametreleri"} düşürdü, bu yüzden reklam tıklamalarının atfı kaybolur.`,
969
1158
  campaignMissingInHits: (platform, name, names) => `Açılış sayfasındaki ${label(platform)} ${q(name)} isteği ${names.join(", ")} olmadan bir sayfa adresi bildiriyor, oysa sayfada ${names.length === 1 ? "o" : "onlar"} hâlâ vardı. Ziyaret kampanyaya değil doğrudan trafiğe yazılabilir.`,
970
1159
  campaignOk: (names) => `${names.join(", ")} açılış sayfasının yönlendirmelerinden geçti ve isteklere ulaştı.`,
1160
+ gclidNotStored: () => `Açılış adresi bir gclid taşıyordu ve reklam depolamasına izin verildi, ancak _gcl_aw çerezi onu hiç tutmadı. Google Ads, ziyaretin ilerleyen adımlarındaki ya da sonraki bir ziyaretteki dönüşümü reklam tıklamasına bağlayamaz.`,
1161
+ clientIdChanged: (from, at) => `_ga çerezindeki GA4 istemci kimliği "${from}" ile "${at}" arasında değişti. GA4 değişiklikten önceki ve sonraki ziyareti iki ayrı kullanıcı sayar.`,
1162
+ containerDuplicate: (id, sources, step) => `${id}, "${step}" adımında aynı sayfaya ${sources.length} kez yüklendi: ${sources.join("; ")}. Her kopya container'ın etiketlerini yeniden çalıştırabilir, bu yüzden istekler iki kez gidebilir; en iyi ihtimalle kurulumlardan biri boşuna yükleniyor.`,
1163
+ containerEnvironment: (id, env) => `${id}, Live sürüm yerine bir GTM ortamından (${env === "unnamed" ? "gtm_auth" : `gtm_preview=${env}`}) yükleniyor; ziyaretçiler o ortama en son ne yayımlandıysa onu, çoğu zaman bir test veya geliştirme sürümünü çalıştırıyor.`,
1164
+ dataLayerSplit: (list, step) => `"${step}" adımında aynı sayfadaki container'lar farklı dataLayer'ları okuyor: ${list.join(", ")}. Birine yapılan push diğerini okuyan container'lar tarafından hiç görülmez; olaylar ve onay komutları yalnızca bazılarına ulaşabilir.`,
1165
+ sendToOnly: (id, by) => `${id} yalnızca bir olay send_to ile onu adlandırdığı için yüklendi; gtag('config', '${id}') hiç çalışmadı. ${by} ona varsayılan ayarlarla gönderiyor, bu yüzden bir config komutunun onun için ayarlayacağı hiçbir şey uygulanmıyor.`,
971
1166
  consentDefaultMissing: () => "dataLayer'da Google Consent Mode varsayılan komutu (gtag('consent', 'default', ...)) bulunamadı.",
972
1167
  consentDefaultLate: () => "Consent Mode varsayılanı, ilk izleme isteği gönderildikten sonra ayarlandı.",
1168
+ consentDefaultNotApplied: () => "Sayfa bir Consent Mode varsayılanı gönderdi, ancak Google etiketi onu hiç uygulamadı; etiketleri varsayılan olmadan çalıştı. Tag Assistant, Consent Mode'u yapılandırılmamış gösterir.",
973
1169
  beforeConsentNever: (platform, name) => `${label(platform)} ${q(name)}, ziyaretçi bu yolculukta hiç onay seçimi yapmadığı hâlde gönderildi. ${label(platform)}, onay vermemiş ziyaretçilerden veri alıyor.`,
974
1170
  beforeConsent: (platform, name) => `${label(platform)} ${q(name)}, ziyaretçi onay seçimini yapmadan önce gönderildi. ${label(platform)}, onay vermemiş ziyaretçilerden veri alıyor.`,
975
1171
  consentV2Missing: (keys) => `Consent Mode varsayılanı ${keys.map(q).join(" ve ")} değerlerini ayarlamıyor. Consent Mode v2, AEA ve Birleşik Krallık'taki Google reklamları için bunları ister; yoksa reklam kişiselleştirme ve dönüşüm ölçümü durabilir.`,
@@ -1017,6 +1213,14 @@ const tr = {
1017
1213
  purchase_mismatch: "Google ve Meta aynı sipariş için farklı gelir aldı; biri yanlış sayıyı raporluyor ve ona göre teklif veriyor.",
1018
1214
  campaign_lost_redirect: "Bir yönlendirme kampanya parametrelerini siliyor; ücretli tıklamalar doğrudan trafik sayılıyor, kampanyalar sattıklarının karşılığını alamıyor.",
1019
1215
  campaign_missing_in_hits: "Açılış sayfası kampanya parametrelerini korudu ama istek onları bildirmedi; ziyaret doğrudan trafiğe yazılıyor.",
1216
+ page_blocked: "Doğrulamanın arkasındaki sayfalardan sitenin takibi hakkında hüküm verilemez; orada görülmeyen olaylar eksik değil, doğrulanmamıştır.",
1217
+ page_crashed: "Aynı hatayı alan ziyaretçiler bozuk bir sayfa görür ve sayfadaki etiketler çalışmayabilir.",
1218
+ gclid_not_stored: "Dönüşümler ziyaretçiyi getiren reklam tıklamasına bağlanmıyor; Google Ads onları eksik raporluyor ve daha az veriyle teklif veriyor.",
1219
+ client_id_changed: "Bir ziyaretçi GA4'te iki kullanıcıya dönüşüyor: ziyaret bölünüyor, değişiklikten önceki yolculuk dönüşümlerini kaybediyor ve atıf baştan başlıyor.",
1220
+ container_duplicate: "İki kez yüklenen bir container etiketlerini iki kez çalıştırabilir; sayfa görüntülemeleri ve dönüşümler şişer, en iyi ihtimalle kurulumlardan biri gereksizdir.",
1221
+ container_environment: "Ziyaretçiler container'ın Live olmayan bir sürümünü çalıştırıyor; hâlâ test edilen etiketler ya da eski bir kurulum canlı veri topluyor.",
1222
+ datalayer_split: "Bir dataLayer'a gönderilen olaylar ve onay komutları diğerini okuyan container'lara hiç ulaşmaz; bazı etiketler onları kaçırır.",
1223
+ container_send_to_only: "Hedef kendi config'i olmadan çalışıyor; bir config komutunun ona vereceği ayarlar eksik.",
1020
1224
  campaign_params: "Kampanya parametreleri açılış yönlendirmesinden geçip isteklere ulaştı; ücretli tıklamalar kendi kampanyalarına yazılıyor.",
1021
1225
  event_id_reused: "İki farklı olay tek bir olay kimliğini paylaşıyor; platform ilkini tutup diğerini sessizce atıyor, gerçek bir olay kayboluyor.",
1022
1226
  event_id_mismatch: "Bu olayın tarayıcı ve sunucu kopyaları farklı kimlik taşıyor; Meta ikisini eşleştiremiyor ve dönüşümü iki kez sayıyor.",
@@ -1026,6 +1230,7 @@ const tr = {
1026
1230
  server_endpoint: "Sitenin alan adında bir sunucu container'ı yanıt veriyor; reklam platformlarına ilettiği olaylar burada görünmez.",
1027
1231
  consent_default_missing: "Google etiketleri onay varsayılanı olmadan çalışıyor; her ziyaretçi sorulmadan onay vermiş gibi davranıyorlar.",
1028
1232
  consent_default_late: "İlk Google isteği onay varsayılanı ayarlanmadan çıktı; o istek ziyaretçinin seçimini yok saydı.",
1233
+ consent_default_not_applied: "Google etiketleri hiç varsayılan ayarlanmamış gibi çalışıyor: ziyaretçi seçim yapmadan, varsayılanın engellemesi gereken çerezleri okuyup yazıyorlar.",
1029
1234
  consent_v2_missing: "Onay varsayılanında v2 sinyalleri yok; AEA ve Birleşik Krallık trafiğinde Google reklam kişiselleştirmeyi ve dönüşüm ölçümünü durdurabilir.",
1030
1235
  consent_v2_update: "Ziyaretçi kabul ettikten sonra v2 sinyalleri reddedilmiş kaldı; onay verenler için bile Google Ads dönüşümleri ve yeniden pazarlama kapalı.",
1031
1236
  before_consent: "Olay ziyaretçi seçim yapmadan gönderildi; platform, onay vermemiş ziyaretçilerden veri alıyor.",
@@ -1052,6 +1257,14 @@ const tr = {
1052
1257
  purchase_mismatch: "İki etiketin de aynı sipariş alanlarını okumasını sağlayın; genellikle biri ara toplamı ya da farklı bir para birimini okur. Sonra bir siparişi iki platformda da karşılaştırın.",
1053
1258
  campaign_lost_redirect: "Yönlendirmenin sorgu dizesini korumasını sağlayın ya da ücretli trafiği doğrudan son adrese indirin.",
1054
1259
  campaign_missing_in_hits: "Etiketin açılış adresini parametreleriyle birlikte eksiksiz bildirmesini sağlayın; bir sayfa URL'si geçersiz kılması ya da geç dolan bir page_location değişkeni olup olmadığına bakın.",
1260
+ page_blocked: "Denetimi sitenin güvendiği bir ağdan, örneğin kendi bilgisayarınızdan çalıştırın ya da bot korumasının denetim tarayıcısını, örneğin IP adresiyle, geçirmesini sağlayın.",
1261
+ page_crashed: "Sayfayı sıradan bir tarayıcıda açın. Orada çalışıyorsa sitenin bot koruması betiklerini denetimin ağına vermedi; çalışmıyorsa bir dağıtım artık sahip olmadığı betik dosyalarını isteyen sayfalar sunuyor.",
1262
+ gclid_not_stored: "Dönüşüm bağlayıcı etiketini (ya da Ads kimliğiyle Google etiketini) her sayfada, sayfa yüklenince olduğu kadar onay verildiğinde de çalıştırın ve gclid'i o etiket çalışana kadar açılış adresinde tutun.",
1263
+ client_id_changed: "O adımda _ga'yı yeniden yazan ya da silen şeyi arayın: çerezleri temizleyen bir onay platformu, başka bir cookie_domain ya da cookie_prefix ile ikinci bir GA4 kurulumu, ya da _gl parametresi olmayan alan adları arası bir bağlantı.",
1264
+ container_duplicate: "Tek bir kurulum bırakın: fazladan snippet'i ya da onu diğer container'da yeniden yükleyen etiketi kaldırın.",
1265
+ container_environment: "Canlı sitede Live snippet'ini kullanın: GTM snippet'inden gtm_auth ve gtm_preview'ı çıkarın ya da ortamdaki sürümü Live'a yayımlayın.",
1266
+ datalayer_split: "Tüm container'ları aynı dataLayer'a yönlendirin ya da olayları ve onay komutlarını container'ların okuduğu her dataLayer'a gönderin.",
1267
+ container_send_to_only: "Hedefe gönderen olaylardan önce onun için bir gtag('config', ID) ya da GTM'de onun için bir Google etiketi ekleyin.",
1055
1268
  campaign_params: "Düzeltilecek bir şey yok. Açılış sayfaları değiştiğinde yönlendirmeleri yeniden kontrol edin.",
1056
1269
  event_id_reused: "Her olay için yeni bir olay kimliği üretin; sayfa yüklemesi başına bir kez değil.",
1057
1270
  event_id_mismatch: "Piksel olayı ve sunucu kopyası için tek bir olay kimliği kullanın: aynı değeri iki etikete de verin.",
@@ -1061,6 +1274,7 @@ const tr = {
1061
1274
  server_endpoint: "Tarayıcı tarafında düzeltilecek bir şey yok. Sunucu container'ının neyi ilettiğini kendi önizleme modunda kontrol edin.",
1062
1275
  consent_default_missing: "Herhangi bir Google etiketi yüklenmeden önce, genellikle onay banner'ının betiğinde veya bir GTM şablonunda, bir Consent Mode varsayılanı ayarlayın (yasanın gerektirdiği yerde hepsi reddedilmiş).",
1063
1276
  consent_default_late: "Onay varsayılanını Google etiketinin önüne alın: gtm.js veya gtag.js yüklenmeden önce çalışmalı.",
1277
+ consent_default_not_applied: "Varsayılanı gtag('consent', 'default', {...}) ile ayarlayın; gtag arguments nesnesini gönderir, dataLayer'a gönderilen düz bir dizi yok sayılır. Google etiketinin okuduğu dataLayer'a, sayfanın kendisinde ve gtm.js ya da gtag.js yüklenmeden önce gittiğini kontrol edin.",
1064
1278
  consent_v2_missing: "Onay varsayılanına ad_storage ve analytics_storage'ın yanına ad_user_data ve ad_personalization sinyallerini ekleyin.",
1065
1279
  consent_v2_update: "Banner'ın ziyaretçi kabul ettikten sonra gönderdiği onay güncellemesinde ad_user_data ve ad_personalization iznini verin.",
1066
1280
  before_consent: "Etikete bir onay kontrolü ekleyin (etiketin onay ayarları ya da ek bir onay tetikleyicisi) veya onu yalnızca banner seçiminden sonra çalıştırın.",
@@ -1088,6 +1302,14 @@ const tr = {
1088
1302
  purchase_mismatch: "money",
1089
1303
  campaign_lost_redirect: "money",
1090
1304
  campaign_missing_in_hits: "money",
1305
+ page_blocked: "hygiene",
1306
+ page_crashed: "hygiene",
1307
+ gclid_not_stored: "money",
1308
+ client_id_changed: "money",
1309
+ container_duplicate: "money",
1310
+ container_environment: "hygiene",
1311
+ datalayer_split: "hygiene",
1312
+ container_send_to_only: "hygiene",
1091
1313
  campaign_params: "money",
1092
1314
  event_id_reused: "money",
1093
1315
  event_id_mismatch: "money",
@@ -1097,6 +1319,7 @@ const tr = {
1097
1319
  server_endpoint: "hygiene",
1098
1320
  consent_default_missing: "legal",
1099
1321
  consent_default_late: "legal",
1322
+ consent_default_not_applied: "legal",
1100
1323
  consent_v2_missing: "legal",
1101
1324
  consent_v2_update: "money",
1102
1325
  before_consent: "legal",
@@ -1368,7 +1591,7 @@ const tr = {
1368
1591
  // ---- html.consent: strings of src/html/consent.js, edited only by its builder ----
1369
1592
  consent: {
1370
1593
  statusLabel: "Platform başına onay durumu",
1371
- cols: { before: "Seçim yok", accept: "Kabul", reject: "Reddet", analytics: "Yalnızca analitik" },
1594
+ cols: { before: "Seçim yok", ignore: "Seçimsiz sonraki sayfa", accept: "Kabul", reject: "Reddet", analytics: "Yalnızca analitik" },
1372
1595
  state: { denied: "reddedildi", granted: "verildi", none: "sinyal yok" },
1373
1596
  tally: (n, state) => `${n} · ${state}`,
1374
1597
  scenarios: "Senaryolar",
@@ -1381,6 +1604,9 @@ const tr = {
1381
1604
  noDefault: "Varsayılan yok",
1382
1605
  v2: "v2",
1383
1606
  v2Missing: "v2 eksik",
1607
+ tagState: "Google etiketinin kendi durumu",
1608
+ tagFlags: (usedDefault, usedUpdate, late, timedOut) => `${usedDefault ? "varsayılan uygulandı" : "varsayılan uygulanmadı"}${usedUpdate ? ", güncelleme uygulandı" : ""}${late ? ", varsayılan geç ayarlandı" : ""}${timedOut ? ", wait_for_update süresi doldu" : ""}`,
1609
+ defaultViaTag: "dataLayer'da onay komutu yok: varsayılan başka bir yerde, örneğin bir onay platformunun GTM şablonunda ayarlandı ve Google etiketi onu uyguladı.",
1384
1610
  timing: (lo, hi) => (lo === hi ? `${lo} ms` : `${lo}–${hi} ms`),
1385
1611
  runsWith: (k, n) => (k === n ? `${n} çalıştırma` : `${n} çalıştırmadan ${k} tanesi`),
1386
1612
  resent: (n) => `${n} sayfa yüklemesinde daha yeniden gönderildi`,