Start · Sprachen · JavaScript · Referenz · HTMLAnchorElement.attributionSourceId

HTMLAnchorElement.attributionSourceId

Eigenschaft

Liest oder setzt das HTML-Attribut <code>attributionsourceid</code> eines <code>&lt;a&gt;</code>-Elements. Damit kennzeichnet man eine Werbekampagne für die Private Click Measurement.

seit JavaScript Nicht standardisiert, experimentell: nur Safari/We Kategorie: webapi

Signatur

HTMLAnchorElement.attributionSourceId

Beschreibung

Die Eigenschaft attributionSourceId spiegelt das HTML-Attribut attributionsourceid eines <a>-Elements. Sie gehört zur Private Click Measurement (PCM). WebKit hat dieses Verfahren entwickelt, um Klicks auf Werbelinks datenschutzfreundlich zu messen, ohne Cookies oder websiteübergreifendes Tracking zu verwenden.

Der Wert ist eine kleine Ganzzahl, die eine Kampagne oder Anzeigenquelle bezeichnet. Die Spezifikation beschränkt sie auf 8 Bit, also 0 bis 255. Das Attribut wirkt nur zusammen mit attributiondestination (Eigenschaft attributionDestination). Dieses Attribut gibt die Ziel-Website an, auf der später eine Konversion gemeldet wird. Klickt jemand auf den Link, speichert der Browser die Quell-ID. Die Zielseite meldet eine Konversion über eine spezielle Well-known-URL (/.well-known/private-click-measurement/trigger-attribution/…). Der Browser schickt danach mit zufälliger Verzögerung von 24 bis 48 Stunden einen anonymisierten Bericht an beide Seiten.

Sinnvoll ist die Eigenschaft vor allem, wenn Werbelinks per JavaScript erzeugt oder verändert werden, etwa in Anzeigen-Skripten auf Publisher-Seiten. Zum Lesen der ID in eigener Logik eignet sie sich weniger, weil Messung und Berichte ganz im Browser ablaufen.

Parameter

Name Typ Default Beschreibung
$value number Nur beim Setzen: ganzzahlige Kampagnen-ID. Laut PCM-Spezifikation gilt sie nur im Bereich 0–255. Der Wert wird als Attribut attributionsourceid in das Element geschrieben.

Rückgabewert

Typ
number
Beschreibung
Aktueller Wert des Attributs attributionsourceid als Zahl. Fehlt das Attribut oder ist es ungültig, liefert die Eigenschaft in unterstützenden Browsern 0. Wird die Eigenschaft nicht unterstützt, ist sie undefined.

Beispiele

Quell-ID eines statischen Werbelinks auslesen

// HTML:
// <a id="ad" href="https://shop.example/angebot"
//    attributiondestination="https://shop.example"
//    attributionsourceid="42">Zum Angebot</a>

const link = document.getElementById('ad');

if ('attributionSourceId' in link) {
  console.log('Kampagne:', link.attributionSourceId);
} else {
  console.log('Private Click Measurement wird nicht unterstützt');
}
Kampagne: 42 (Safari) Private Click Measurement wird nicht unterstützt (andere Browser)

Werbelink dynamisch mit Kampagnen-ID erzeugen

const createAdLink = (url, campaignId) => {
  const a = document.createElement('a');
  a.href = url;
  a.textContent = 'Jetzt ansehen';

  // Nur gültige 8-Bit-Werte setzen
  if (Number.isInteger(campaignId) && campaignId >= 0 && campaignId <= 255) {
    a.attributionDestination = new URL(url).origin;
    a.attributionSourceId = campaignId;
  }
  return a;
};

const ad = createAdLink('https://shop.example/sale', 17);
document.body.append(ad);
console.log(ad.getAttribute('attributionsourceid'));
17 (in Safari; in anderen Browsern null)

Fallback über setAttribute für alle Browser

// Das Attribut lässt sich auch direkt setzen. Browser ohne PCM ignorieren es einfach.
const links = document.querySelectorAll('a[data-campaign]');

links.forEach((a) => {
  const id = Number(a.dataset.campaign);
  a.setAttribute('attributiondestination', new URL(a.href).origin);
  a.setAttribute('attributionsourceid', String(id));
});

console.log(`${links.length} Links markiert`);
3 Links markiert

// Wichtig · Fallstricke

  • Nicht standardisiert und experimentell: Nur Safari/WebKit unterstützt die Eigenschaft, und zwar ab Safari 14.1 (macOS und iOS). Chrome, Edge und Firefox kennen sie nicht. Vor der Nutzung sollte man per 'attributionSourceId' in HTMLAnchorElement.prototype prüfen, ob sie vorhanden ist.
  • Nicht verwechseln mit der Attribution Reporting API von Chrome. Diese nutzt ein anderes Attribut (attributionsrc bzw. attributionSrc) und ist mit PCM nicht kompatibel.
  • Ohne gültiges attributiondestination wertet der Browser die Quell-ID nicht aus. Werte außerhalb von 0–255 werden ebenfalls ignoriert.
  • Gemessen wird nur, wenn der Link aus einem Kontext der ersten Partei heraus angeklickt wird und zu einer anderen Website führt. In privaten Fenstern oder bei deaktivierter Einstellung („Datenschutzfreundliche Werbemessung“) findet keine Messung statt.
  • Datenschutz: Die geringe Bitbreite ist gewollt. Man kann damit Kampagnen unterscheiden, aber keine einzelnen Nutzer identifizieren. Die Berichte kommen verzögert und ohne Cookies.