Signatur
Beschreibung
Die Methode getNestedConfigs() des Fence-Interfaces gehört zur Fenced Frame API. Sie ist nur innerhalb eines <fencedframe> über window.fence erreichbar. Sie gibt die FencedFrameConfig-Objekte zurück, die der einbettenden Seite für verschachtelte Fenced Frames bereitgestellt wurden.
Der wichtigste Anwendungsfall ist die Protected Audience API (früher FLEDGE). Eine siegreiche Anzeige kann sogenannte Komponenten-Anzeigen (adComponents) mitbringen, etwa einzelne Produktkacheln in einer Anzeige mit mehreren Produkten. Diese Komponenten bekommt die Anzeige nicht als lesbare URLs, sondern als undurchsichtige Konfigurationsobjekte. Diese Objekte weist du einem inneren <fencedframe> über die Eigenschaft config zu.
So kann die Anzeige Unteranzeigen darstellen, ohne dass sie oder die einbettende Seite erfährt, welche konkreten Ressourcen dahinterstehen. Wurde der Fenced Frame ohne verschachtelte Konfigurationen geladen, gibt die Methode null zurück.
Rückgabewert
FencedFrameConfig-Objekten für verschachtelte Fenced Frames. Wenn für den aktuellen Frame keine verschachtelten Konfigurationen vorhanden sind, ist der Rückgabewert null.Beispiele
Komponenten-Anzeigen in verschachtelte Fenced Frames laden
// Läuft innerhalb einer Anzeige, die als <fencedframe> dargestellt wird
const configs = window.fence?.getNestedConfigs() ?? [];
// Nur die ersten drei Produktkacheln anzeigen
const container = document.querySelector('#produkte');
configs.slice(0, 3).forEach((config) => {
const frame = document.createElement('fencedframe');
frame.config = config;
frame.width = 200;
frame.height = 200;
container.append(frame);
});
console.log(`Verfügbare Konfigurationen: ${configs.length}`);
Merkmalserkennung und Rückfallebene
const loadNestedAds = () => {
// window.fence ist außerhalb eines Fenced Frames null
if (!window.fence || typeof window.fence.getNestedConfigs !== 'function') {
console.warn('Keine Fenced-Frame-Umgebung – Rückfall auf statischen Inhalt');
return [];
}
const configs = window.fence.getNestedConfigs();
if (configs === null) {
console.info('Keine verschachtelten Konfigurationen vorhanden');
return [];
}
return configs;
};
const nested = loadNestedAds();
console.log(Array.isArray(nested));
Konfiguration an einen vorhandenen Fenced Frame übergeben
// HTML: <fencedframe id="banner-teil" width="300" height="100"></fencedframe>
const [ersteKonfig] = window.fence?.getNestedConfigs() ?? [];
if (ersteKonfig) {
document.getElementById('banner-teil').config = ersteKonfig;
}
// Wichtig · Fallstricke
- Nur im Fenced Frame verfügbar:
window.fenceist in normalen Dokumenten und in gewöhnlichen<iframe>-Elementennull. Prüfe daher immer mit optionaler Verkettung (?.). - Feste Array-Länge: Bei der Protected Audience API wird das Array aus Datenschutzgründen auf eine feste Anzahl von Einträgen aufgefüllt. Die Einträge ohne echte Komponente sind Platzhalter, die zu leeren Frames führen. Die Länge des Arrays verrät also nicht, wie viele Komponenten es wirklich gibt.
- Undurchsichtige Objekte: Die URL einer
FencedFrameConfiglässt sich nicht auslesen. Das Objekt kannst du nur einem<fencedframe>zuweisen. - Browser-Kompatibilität: Die Methode ist experimentell und nur in Chromium-basierten Browsern im Rahmen der Privacy-Sandbox-Initiative verfügbar. Firefox und Safari unterstützen sie nicht. Prüfe vor produktivem Einsatz den aktuellen Stand der Spezifikation.
- Werden Anzeigen in einem
<iframe>statt in einem Fenced Frame dargestellt, erhältst du die Komponenten stattdessen als URN-Strings über die entsprechenden Mechanismen der Protected Audience API.