Signatur
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
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');
}
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'));
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`);
// 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.prototypeprüfen, ob sie vorhanden ist. - Nicht verwechseln mit der Attribution Reporting API von Chrome. Diese nutzt ein anderes Attribut (
attributionsrcbzw.attributionSrc) und ist mit PCM nicht kompatibel. - Ohne gültiges
attributiondestinationwertet der Browser die Quell-ID nicht aus. Werte außerhalb von0–255werden 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.