Das Wichtigste in Kürze
- Die Conversions API sendet Events von Server zu Server, sodass Werbeblocker, Safaris Tracking Prevention und iOS-Datenschutzabfragen sie nicht wie das Browser-Pixel abfangen können.
- Der Meta-Vertriebskanal von Shopify enthält bereits eine CAPI-Integration. Stelle die Kundendatenfreigabe auf Erweitert (Enhanced) oder Maximal (Maximum) und Shopify sendet den Kaufvorgang serverseitig neben dem Pixel, ganz ohne Code.
- Die native Integration hat ihre Grenzen. Du hast keine Kontrolle darüber, welche Parameter gesendet werden, du kannst keine benutzerdefinierten serverseitigen Events hinzufügen und die Fehlersuche ist wie die Arbeit mit einer Blackbox.
- Die Deduplizierung läuft über
event_idplusevent_name. Meta gleicht Browser- und Serverkopien desselben Events innerhalb eines 48-Stunden-Fensters ab und behält in der Regel das zuerst empfangene Event.- Event Match Quality (EMQ) ist der wichtigste Wert, den du vor BFCM im Auge behalten solltest. Sie bewertet jedes Event im Meta Events Manager mit bis zu 10 Punkten, basierend auf den Kundeninformations-Parametern, die dein Server sendet.
An jedem BFCM (Black Friday Cyber Monday) stecken Shop-Betreiber ihre Meta-Budgets in die teuerste Auktion des Jahres, und ein Teil der daraus resultierenden Käufe schafft es nie zurück ins Anzeigensystem von Meta. Die Lösung, zu der die meisten Brands greifen, ist die Meta Conversions API (CAPI) auf Shopify: ein Server-zu-Server-Kanal, der Conversions auch dann noch meldet, wenn das Browser-Pixel dies nicht mehr kann.
Die gute Nachricht ist, dass Shopify eine CAPI-Integration innerhalb des Meta-Vertriebskanals mitliefert, sodass die Basis ein Einstellungs-Schalter und kein Entwicklungsprojekt ist. Die Frage ist, ob diese Basis für deinen Shop ausreicht, und in diesem Guide geht es darum, diese Entscheidung noch vor November zu treffen.
Warum du uns vertrauen kannst
Wir sind seit über vier Jahren im Shopify-Bereich tätig und haben mit Hunderten von Shopify-Brands an ihren Storefronts gearbeitet. Jacques verfügt über mehr als 15 Jahre Entwicklungserfahrung. Wir entwickeln Fudge, einen KI-Storefront-Editor mit einer Bewertung von 4.9 im Shopify App Store und dem „Built for Shopify“-Status. Tracking-Skripte, Theme-Events und BFCM-Builds gehören für uns also zum Tagesgeschäft.
Was ist die Meta Conversions API?
Das Meta-Pixel ist ein JavaScript-Snippet, das Events aus dem Browser des Käufers abfeuert. Die Conversions API sendet stattdessen die gleichen Arten von Events von einem Server, und Meta gibt an, dass Server-Events bei der Messung, Berichterstattung und Anzeigenauslieferung ähnlich verwendet werden können wie Events aus anderen Kanälen.1
Beide sind dafür konzipiert, zusammen zu laufen, nicht als Alternativen. Die von Meta empfohlene Methode ist ein redundantes Setup: Feure das Event im Browser ab, sende dasselbe Event vom Server und lass die Deduplizierung das Paar zu einer Conversion zusammenfassen.
| Meta-Pixel (Browser) | Conversions API (Server) | |
|---|---|---|
| Läuft wo | Browser des Käufers | Dein Server, die Server von Shopify oder ein Tagging-Server |
| Blockierbar durch | Adblocker, ITP, ATT-bedingter Signal Loss | Nichts auf dem Gerät des Käufers |
| Cookie-Abhängigkeit | Hoch (_fbp, _fbc) | Niedriger; kann gehashte E-Mails, Telefonnummern, Namen senden |
| Setup auf Shopify | Automatisch über den Meta-Vertriebskanal | Automatisch bei Erweitert/Maximal, oder über ein dediziertes Setup |
| Typischer Fehler | Event feuert nie | Event feuert, matched aber schlecht |
Die letzte Zeile ist entscheidend. Ein Server kann das Event zuverlässig senden, vorausgesetzt, die Integration ist richtig konfiguriert und die Einwilligungsanforderungen (Consent) des Käufers sind erfüllt - und Meta muss es immer noch einer Person zuordnen, bevor es für die Zuordnung (Attribution) oder Anzeigenauslieferung zählt. Genau darum geht es in der zweiten Hälfte dieses Guides.
Warum schadet Signal Loss dem BFCM ROAS?
Drei Mechanismen verschlucken Browser-Events, und alle drei schlagen genau dann am härtesten zu, wenn deine Ausgaben ihren Höhepunkt erreichen.
Adblocker verhindern schlichtweg, dass das Pixel-Skript geladen wird. Shopifys eigene Dokumentation ist deutlich, was den Unterschied angeht: Daten, die von der Conversions API gesendet werden, “können nicht von browserbasierten Werbeblockern blockiert werden”, Pixel-Daten hingegen schon.2
Safaris Intelligent Tracking Prevention (ITP) beschränkt jedes über JavaScript gesetzte Cookie auf eine Lebensdauer von sieben Tagen3 und verkürzt diese auf 24 Stunden, wenn der Besucher über einen Link mit Tracking-Parametern kommt, was in vielen Konfigurationen bezahlte Klicks mit einer fbclid einschließt.4 Das _fbp-Cookie, auf das sich das Pixel verlässt, ist genau diese Art von Cookie. Ein Safari-Shopper, der also am 20. November auf deine Anzeige klickt und am 29. November kauft, sieht für das Browser-Pixel wie eine völlig neue Person aus.
App Tracking Transparency (ATT) verlangt von Apps unter iOS 14.5 und neuer eine ausdrückliche Erlaubnis, bevor sie einen Nutzer über Apps und Websites hinweg tracken dürfen; ohne diese Erlaubnis darf nicht getrackt werden und der Advertising Identifier wird als Nullen ausgelesen.5 Da die meisten Klicks auf Meta Ads auf mobilen Geräten innerhalb der Facebook- oder Instagram-App beginnen, verschlechtert jede abgelehnte Aufforderung das Signal, das das Pixel übertragen kann.
Nichts davon ändert deinen tatsächlichen Umsatz. Es ändert nur, was Meta sehen kann. Das zieht den gemeldeten ROAS nach unten, hungert das Auslieferungssystem während der Woche mit den höchsten CPMs des Jahres nach Conversion-Signalen aus und drängt Budgetentscheidungen auf Basis schlechter Daten auf.
BFCM komprimiert auch das Schadensfenster. Überlegungszyklen erstrecken sich über die Sieben-Tage-Cookie-Grenze von Safari (Käufer stöbern früh, kaufen am Tag selbst), und der Traffic ist unverhältnismäßig kalter Prospecting-Traffic ohne vorherige Identität, auf die Meta zurückgreifen könnte. Den Klick zu bekommen ist nur das halbe Problem; der Shopify CRO Guide deckt die On-Site-Hälfte ab.
Was sendet die native Meta CAPI-Integration von Shopify?
Die Meta-Vertriebskanal-App übernimmt beide Kanäle für dich, gesteuert durch eine einzige Einstellung: Datenfreigabe (customer data sharing), unter Shopify-Adminbereich > Vertriebskanäle > Facebook & Instagram > Einstellungen > Einstellungen zur Datenfreigabe. Sie hat drei Stufen.2
| Stufe | Was läuft | Was geteilt wird |
|---|---|---|
| Standard | Nur Meta-Pixel | Surfverhalten, aus dem Browser, blockierbar |
| Erweitert | Pixel + Conversions API | Kauf-Event Server-zu-Server, plus Name, Standort, E-Mail und Telefonnummer |
| Maximal | Pixel + CAPI + Metas neueste Ad-Technologie | Gleiche persönliche Daten wie bei Erweitert mit den neuesten Matching-Funktionen von Meta |
Auf der Stufe “Standard” trackt das Pixel die üblichen Commerce-Events: PageView, ViewContent, Search, AddToCart, InitiateCheckout, AddPaymentInfo und Purchase.2 Ab “Erweitert” dokumentiert Shopify, dass die Conversions API das Purchase-Event zwischen den Servern von Shopify und Meta sendet, wobei Kundendetails für das Matching enthalten sind.2
Die Deduplizierung zwischen dem Pixel und den Server-Events von Shopify wird für dich übernommen. Das Gleiche gilt für das Hashing persönlicher Daten, bevor sie Meta erreichen.
Für die meisten Shops ist “Maximal” die richtige Einstellung und erledigt den gesamten Job. Wenn dein Events Manager Käufe anzeigt, die sowohl vom Browser als auch vom Server ankommen, sauber dedupliziert werden und einen akzeptablen Match Quality Score haben, kannst du aufhören zu lesen und Landingpages bauen gehen.
Wo die native Integration an ihre Grenzen stößt
Der Preis für den Zero-Code-Komfort ist null Kontrolle, und das macht sich an vier Stellen bemerkbar.
- Parameterkontrolle. Du kannst nicht entscheiden, welche Kundeninformationsparameter bei jedem Event mitgesendet werden, was der wichtigste Hebel zur Erhöhung der Match Quality ist.
- Event-Abdeckung. Das dokumentierte serverseitige Event ist der Kauf (Purchase). Upper-Funnel-Events wie ViewContent und AddToCart bleiben nur im Browser, sodass Ad Sets, die sie als Signale nutzen, immer noch den vollen Signal Loss spüren.
- Custom Events. Quiz-Abschlüsse, Bundle-Builder-Schritte oder eine Pre-Order-Anmeldung können nicht zum serverseitigen Stream von Shopify hinzugefügt werden. Im Browser kannst du sie selbst abfeuern, wie in Custom Events in Shopify hinzufügen beschrieben, aber es gibt kein natives serverseitiges Gegenstück.
- Fehlersuche (Debuggability). Wenn Zahlen falsch aussehen, kannst du die Payloads, die Shopify sendet, weder einsehen noch ändern. Du siehst nur den Output im Events Manager und nichts davor.
Ein Vorbehalt, der auf jeder Ebene gilt: Die Weitergabe von Kundendaten an Meta ist etwas, das in deiner Datenschutzerklärung offengelegt werden muss. Shopify nimmt den Händler in die Pflicht, die Bedingungen von Meta zu überprüfen und die Richtlinie entsprechend zu aktualisieren.2
Wann brauchst du ein dediziertes Shopify CAPI Setup?
Gehe erst dann über die native Integration hinaus, wenn dich eines der oben genannten Limits Geld kostet, nicht vorher. Die üblichen Auslöser sind ein hartnäckig niedriger Match Quality Score, Ad Sets, die auf Upper-Funnel- oder Custom Events angewiesen sind, oder eine operative Anforderung, die Datenleitung selbst zu besitzen.
Serverseitiger Google Tag Manager (GTM) ist die standardmäßige selbst gehostete Route. Du betreibst einen GTM-Server-Container in deinem eigenen Cloud-Projekt, deine Storefront sendet Events über eine First-Party-Subdomain dorthin und ein Meta CAPI-Tag leitet sie weiter; Googles Design gibt dir “die volle Kontrolle darüber, wie diese Daten geformt und wohin sie weitergeleitet werden”.6 Es ist die flexibelste und operativste Option, da der Container nun Infrastruktur ist, die du betreibst. Wenn GTM Neuland ist, beginne mit wie man Google Tag Manager zu Shopify hinzufügt.
Stape und ähnliche gehostete Tagger beseitigen den Infrastrukturteil: Sie hosten den Server-Container, und ihre Shopify-App leitet Storefront- und Webhook-Events dorthin weiter. Du behältst die Parameter- und Event-Kontrolle, während du die Infrastruktur mietest; prüfe das Listing für die aktuellen Preise.
Eine benutzerdefinierte Integration direkt gegen Metas Conversions API, die typischerweise von Shopify-Webhooks gespeist wird, erkauft totale Kontrolle um den Preis, dass du dich selbst um Retries, Hashing, Consent-Handling und Dedup-Logik kümmern musst. Das macht erst ab extremen Werbeausgaben oder ungewöhnlichen Datenanforderungen Sinn.
Welchen Weg du auch wählst, lass es parallel zum Pixel laufen, niemals anstatt dessen. Redundanz plus Deduplizierung ist das von Meta erwartete Design, und das Browser-Event trägt immer noch Signale, die der Server nicht immer sehen kann.
Eine Grenze gilt für jede Route: CAPI verbessert die Messausfallsicherheit, umgeht aber nicht die Consent-Anforderungen - Events, denen ein Käufer nicht zugestimmt hat, dürfen weiterhin nicht gesendet werden, und CAPI kann nicht jedes an ATT oder ITP verlorene Signal wiederherstellen.
Wie funktioniert die Deduplizierung mit event_id?
In dem Moment, in dem zwei Kanäle denselben Kauf melden, riskierst du, ihn doppelt zu zählen. Metas Antwort darauf ist, dass Events “basierend auf ihrer ID und ihrem Namen” als identisch betrachtet werden: Die eventID des Pixels muss der event_id des Server-Events entsprechen und die Event-Namen müssen übereinstimmen.7
Zwei Regeln bestimmen das Matching-Fenster.7
- Events werden nur dedupliziert, wenn sie innerhalb von 48 Stunden nach dem ersten Event mit dieser
event_ideintreffen. - Wenn ein Paar übereinstimmt, behält Meta in der Regel das zuerst empfangene Event und verwirft die spätere Kopie.
In der Praxis generierst du eine stabile ID pro Conversion, normalerweise aus der Bestellung, und hängst sie auf beiden Seiten an:
// Browser: Meta-Pixel
fbq('track', 'Purchase', {value: 129.0, currency: 'USD'}, {eventID: 'order_1042'})
// Server: Conversions API Payload (Auszug)
{
"event_name": "Purchase",
"event_id": "order_1042",
"action_source": "website"
}
Es gibt eine Fallback-Methode, die über event_name plus fbp und/oder external_id abgleicht. Meta merkt jedoch an, dass sie nur Browser-First-Paare dedupliziert, daher ist event_id die Methode, auf die du bauen solltest.7
Wenn du bei der nativen Integration bleibst, übernimmt Shopify das alles. Die Regel existiert für dedizierte Setups: Jede Quelle, die einen Kauf meldet, muss dasselbe Event-ID-Schema verwenden, sonst verdoppelt sich dein BFCM-Umsatz im Ads Manager unbemerkt.
Was ist Event Match Quality und wie überprüft man sie?
Das Event auszuliefern ist Schritt eins. Event Match Quality (EMQ) ist die Note von Meta für Schritt zwei: Es ist “ein Score (von 10)”, der widerspiegelt, welche Kundeninformationsparameter dein Server sendet, wie gut diese Informationen sind und wie viel Prozent der Event-Instanzen einem Meta-Konto zugeordnet werden konnten.8
Um sie zu überprüfen, öffne den Meta Events Manager, wähle deinen Datensatz (Pixel), öffne ein Event wie Purchase und sieh dir die Spalte Event Match Quality und das dazugehörige Detail-Panel an. Das Panel listet auf, welche Parameter Meta erhalten hat und welche empfohlenen fehlen.
Die Parameter, die den Score bewegen, sind die Identifier: gehashte E-Mail, gehashte Telefonnummer, Name, fbp/fbc Browser-IDs, External ID sowie Client-IP und User Agent. Ein Server-Event, das nur eine IP-Adresse enthält, wird schlecht abschneiden, egal wie zuverlässig es ankommt.
Metas Diagnosen rund um EMQ zeigen auch die Event-Abdeckung (den Anteil der Pixel-Events, die auch über CAPI ankommen), die Deduplizierungs-Gesundheit (Deduplication Health) für beide Kanäle und die Datenaktualität (Data Freshness), was bedeutet, wie schnell Events ankommen, nachdem sie stattgefunden haben.8 Vor dem BFCM verdienen alle drei einen Blick, nicht nur der Headline-Score.
Zwei Gewohnheiten halten den Score ehrlich. Überprüfe die EMQ pro Event und nicht pro Account, denn ein starker Purchase-Score kann ein schwaches AddToCart-Event verbergen. Und überprüfe es ein paar Wochen vor dem Peak, da Fixes (wie das Hinzufügen von Parametern) Zeit brauchen, um sich im Score niederzuschlagen.
Pre-BFCM Meta CAPI Checkliste für Shopify
Gehe dies im Oktober durch, nicht in der Woche des Sales.
- Überprüfe die Stufe der Datenfreigabe. Shopify-Adminbereich > Vertriebskanäle > Facebook & Instagram > Einstellungen > Einstellungen zur Datenfreigabe. Alles unter “Maximal” braucht einen guten Grund.
- Öffne den Events Manager und verifiziere beide Kanäle. Purchase sollte Events sowohl vom Browser als auch vom Server anzeigen. Nur Server oder nur Browser ist ein Warnsignal.
- Prüfe die Deduplizierung. Die Dedup-Diagnosen sollten zeigen, dass deine Browser- und Server-Käufe übereinstimmende IDs tragen. Doppelt gezählte Umsätze blähen jede nachgelagerte Entscheidung auf.
- Lies den EMQ Score pro Event aus. Notiere, welche Parameter fehlen und behebe die, die du kontrollierst. Bei einem dedizierten Setup bedeutet das meistens die Weitergabe von gehashten E-Mails und Telefonnummern.
- Führe einen Testkauf durch. Nutze den Tab “Test-Events” im Events Manager, kaufe etwas Günstiges und beobachte, wie das Event auf beiden Kanälen mit der gleichen ID ankommt.
- Verifiziere das Consent-Verhalten. Gib eine Testbestellung auf, nachdem du Cookies abgelehnt hast. Events, die deinen Consent-Banner ignorieren, sind ein rechtliches Problem, kein Tracking-Gewinn.
- Friere das Setup ein. Keine Pixel-Migrationen, keine Wechsel des Tagging-Servers Mitte November. Signalhistorie speist die Auslieferung; Resets sind bei Spitzen-CPMs teuer.
- Plane das Post-Sale-Review. Attributionsfenster bedeuten, dass sich BFCM-Zahlen bis in den Dezember hinein weiterbewegen. Unser begleitender Guide zu Post-BFCM Analytics behandelt, wie man sie richtig liest.
Wo Fudge ins Spiel kommt
Fudge sendet keine CAPI-Events, und wir werden nicht so tun, als wäre es so. Es ist ein KI-Storefront-Editor, der natives Liquid, CSS und JavaScript in dein Theme schreibt, was dieses Thema in einer ganz bestimmten Weise berührt: Die Seiten und Sections, die du für BFCM baust, sind der Ort, an dem deine Browser-Events feuern.
Eine Kampagnen-Landingpage, die als nativer Theme-Code erstellt wurde, enthält saubere fbq-Aufrufe mit korrekten Event-IDs, die du im Theme selbst lesen und überprüfen kannst. Wenn du ohnehin BFCM-Seiten zusammenstellst, baut der Shopify Store Editor sie als Theme-Code, den du lesen, tracken und behalten kannst.
FAQ
Ja. Der Facebook & Instagram Vertriebskanal enthält sie, gesteuert über die Einstellung zur Kundendatenfreigabe. Auf den Stufen Erweitert und Maximal sendet Shopify das Kauf-Event Server-zu-Server über die Conversions API neben dem Meta-Pixel und übernimmt Hashing und Deduplizierung automatisch.
Das Pixel führt JavaScript im Browser des Käufers aus, sodass Adblocker und Browser-Datenschutzfunktionen es stoppen können. Die Conversions API sendet die gleichen Events von einem Server aus, was durch nichts auf dem Gerät blockiert werden kann. Meta behandelt beides als gleichwertige Eingaben und empfiehlt, sie zusammen mit Deduplizierung laufen zu lassen.
Für die meisten Shops: ja. Es führt das Pixel plus die Conversions API mit Metas neuester Matching-Technologie aus und erfordert keinen Code. Ziehe ein dediziertes Setup nur in Betracht, wenn deine Event Match Quality dauerhaft niedrig bleibt, du serverseitige Abdeckung für Upper-Funnel- oder Custom Events benötigst, oder du genau kontrollieren musst, welche Parameter gesendet werden.
Sende dieselbe event_id und denselben event_name sowohl vom Browser-Pixel als auch vom Server. Meta dedupliziert übereinstimmende Events, die innerhalb von 48 Stunden eintreffen, und behält im Allgemeinen das zuerst empfangene Event. Die native Integration von Shopify macht dies automatisch; bei einem Custom- oder GTM-Setup musst du die geteilte ID selbst generieren.
Die EMQ wird pro Event mit bis zu 10 Punkten bewertet, basierend darauf, welche Kundeninformationsparameter Meta erhält und wie viele Event-Instanzen einem Account zugeordnet werden können. Anstatt einem universellen Wert hinterherzujagen, öffne das Detail-Panel des Scores im Events Manager und füge die empfohlenen fehlenden Parameter hinzu, da gehashte E-Mails und Telefonnummern meistens den größten Unterschied machen.
Standardmäßig nicht. Die native Integration von Shopify deckt das Kauf-Event serverseitig ab, ohne dass Infrastruktur nötig ist. Serverseitiger GTM oder ein gehosteter Tagger wie Stape lohnen sich erst, wenn du volle Parameterkontrolle, serverseitige Custom Events oder eine Pipeline benötigst, die mehrere Werbeplattformen speist, und sie laufen immer neben dem Pixel, nicht anstelle dessen.
Meistens handelt es sich eher um einen Signal Loss als um einen echten Performance-Einbruch. Adblocker stoppen das Pixel, Safari beschränkt seine Cookies auf sieben Tage oder 24 Stunden nach einem Klick auf eine Anzeige, und iOS App Tracking Transparency schränkt die App-übergreifende Identität ein. Meta sieht dann weniger deiner echten Conversions. Ein funktionierendes Conversions API Setup holt einen Teil dieser Lücke wieder auf.
Footnotes
-
Meta for Developers, “Conversions API” - Überblick über den Server-zu-Server-Kanal, bei dem Server-Events zur Messung, Berichterstattung und Auslieferung auf ähnliche Weise wie andere Verbindungskanäle genutzt werden. https://developers.facebook.com/docs/marketing-api/conversions-api/ ↩
-
Shopify Help Center, “Facebook-Datenfreigabe” - die Stufen Standard, Erweitert und Maximal für die Freigabe von Kundendaten, die getrackten Events des Pixels, das via Conversions API Server-zu-Server gesendete Purchase-Event und die Datenschutzpflichten des Händlers. https://help.shopify.com/en/manual/promoting-marketing/analyze-marketing/meta-data-sharing ↩ ↩2 ↩3 ↩4 ↩5
-
WebKit Blog, “Intelligent Tracking Prevention 2.1” - alle persistenten clientseitigen Cookies, die durch document.cookie erstellt werden, werden in Safari auf ein Ablaufdatum von sieben Tagen beschränkt. https://webkit.org/blog/8613/intelligent-tracking-prevention-2-1/ ↩
-
WebKit Blog, “Intelligent Tracking Prevention 2.3” - clientseitige Cookies laufen nach 24 Stunden ab, wenn der Besucher von einer von ITP mit Link Decoration klassifizierten Domain kommt, und Nicht-Cookie-Websitedaten werden nach sieben Tagen Safari-Nutzung ohne Interaktion gelöscht. https://webkit.org/blog/9521/intelligent-tracking-prevention-2-3/ ↩
-
Apple Developer, “User Privacy and Data Use” - Apps unter iOS 14.5 und neuer müssen über das AppTrackingTransparency Framework eine Erlaubnis einholen, um Nutzer zu tracken oder auf den Advertising Identifier zuzugreifen; ohne Erlaubnis besteht der Identifier nur aus Nullen. https://developer.apple.com/app-store/user-privacy-and-data-use/ ↩
-
Google for Developers, “An introduction to server-side tagging” - der Server-Container läuft in deinem eigenen Cloud-Projekt und gibt dir die Kontrolle darüber, wie Messdaten geformt und wohin sie geleitet werden. https://developers.google.com/tag-platform/tag-manager/server-side/intro ↩
-
Meta for Developers, “Deduplicate Pixel and Server Events” - Matching von event_id und event_name, das 48-Stunden-Deduplizierungsfenster, Bevorzugung des zuerst empfangenen Events und die fbp/external_id Fallback-Methode mit ihrer Browser-First-Einschränkung. https://developers.facebook.com/docs/marketing-api/conversions-api/deduplicate-pixel-and-server-events/ ↩ ↩2 ↩3
-
Meta for Developers, “Dataset Quality API” - Event Match Quality als Echtzeit-Score von 10 basierend auf empfangenen Parametern, deren Qualität und dem Prozentsatz der abgeglichenen Event-Instanzen, plus Metriken zu Event-Abdeckung, Deduplizierung und Datenaktualität. https://developers.facebook.com/docs/marketing-api/conversions-api/dataset-quality-api/ ↩ ↩2