Kurz gesagt: Der übliche API-Import von Bestellungen in Google Ads benötigt die zu jeder Bestellung gespeicherte Google Click ID. Eine Standard-Shop-Plattform speichert diese oft nicht. Du musst sie nicht im Onlineshop speichern. Der GA4-Export zu BigQuery enthält den Klick bereits bei jedem Besuch über eine Anzeige. Du ordnest Bestellungen in BigQuery den Klicks zu. Dann sendest du die Marge jeder Bestellung mit Einwilligung über die Data Manager API. Du hängst die Klick-ID oder eine gehashte E-Mail-Adresse und Telefonnummer an. Stornierungen sendest du über die Google Ads API. An der Website ändert sich nichts.
Willst du das Briefing für Claude Code sofort?
Claude Code oder ein Entwickler schreibt den gesamten Import aus diesem Anleitungspaket. Hinterlasse deine E-Mail und die Datei gehört dir. Oder lies einfach weiter.
Eine Datei, eine Liste. Ich schreibe nur, wenn es etwas zu lesen gibt.
Google Ads optimiert Kampagnen auf den vom Website-Tag gemeldeten Umsatz. Umsatz ist kein Gewinn. Die meisten Onlineshops verkaufen eigene Eigenmarkenprodukte neben Waren von Lieferanten. Nach meiner Erfahrung liegen ihre Margen grob zwischen 20 und 60 %. Wenn die Gebotsstrategie den Umsatz nutzt, zählen zwei Bestellungen mit dem gleichen Umsatz gleich, auch wenn eine Marge niedrig und die andere hoch ist. Typischerweise werden auch 3 bis 10 % der Bestellungen storniert. Das Website-Tag erfasst keine Stornierungen. Die Conversion behält also ihren vollen Wert.
Du willst die Marge nicht über das Website-Tag senden. Jeder kann die Daten des Tags im Browser lesen. Das schließt deine Konkurrenten ein. Deshalb geht die Marge über die API an Google Ads.
Der übliche API-Import benötigt die Google Click ID jeder Bestellung. Bei einer Standard-Plattform wie Shopify oder Shoptet kontrollierst du die Speicherung der Bestellung im Checkout nicht. Die Bestellung hat kein Feld für die Klick-ID. Shopify speichert zum Beispiel nur die Landingpage des ersten und letzten Besuchs des Kunden. Diese kann die Klick-ID enthalten, aber nur bei einer Einwilligung des Besuchers in das Tracking. Ohne benutzerdefinierten Code oder eine App für die Erfassung trägt die Bestellung die Klick-ID nicht zuverlässig. Du musst die Klick-ID nicht im Onlineshop speichern. Der GA4-Export zu BigQuery speichert den Klick bereits bei jedem Besuch über eine Anzeige.
- Was genau du sendest. Für jede Bestellung sendest du die Bestellnummer, die Marge als Wert, die Zeit, den Klick, die gehashte E-Mail-Adresse und Telefonnummer, die Einwilligung und ob der Kunde neu oder wiederkehrend ist.
- Stornierungen gehen über die ältere Google Ads API. Die neuere Data Manager API kann eine Conversion nicht zurückziehen. Neue Bestellungen und Margenänderungen gehen über die Data Manager API.
- Sende jede Bestellung mit Einwilligung, nicht nur solche mit einem Klick. Bestellungen ohne Google Click ID gehen mit der gehashten E-Mail-Adresse und Telefonnummer raus. Google ordnet einen Teil davon über erweiterte Conversions zu.
- Der Klick kommt aus dem GA4-Export zu BigQuery. Im Onlineshop wird also nichts Neues gespeichert. Der Export ist kostenlos. BigQuery kostet für einen typischen Onlineshop ein paar Dollar im Monat.
Was du brauchst
- GA4 auf der Website des Onlineshops. Es erfasst Käufe mit der Bestellnummer.
- die Bestellungen des Onlineshops mit Einkaufspreisen aus einem Bestellexport, der API der Plattform oder der Datenbank
- ein Google Cloud-Projekt
- Administratorzugriff auf das Google Ads-Konto
- einen Ort für die Ausführung eines Jobs pro Tag
Niemand muss die Website oder den Checkout ändern. Der Klick kommt von GA4. GA4 läuft bereits auf der Website. Die Marge stammt aus Bestelldaten. Der Onlineshop speichert diese bereits. Standard-Plattformen exportieren Bestellungen normalerweise mit Einkaufspreisen. Prüfe das für deine Plattform.
Schritt 1: Das Google Cloud-Projekt erstellen
Die Namen der Seiten und Schaltflächen in der Google Cloud-Konsole nenne ich auf Englisch. Ein Cloud-Projekt enthält den GA4-Export und gibt Zugriff auf beide APIs. Wenn GA4 bereits in ein Projekt exportiert, nutze dieses.
- Wenn du noch kein Rechnungskonto hast, öffne Billing in der Google Cloud-Konsole und erstelle eines. Ein neues Rechnungskonto startet als Free Trial.
- Öffne die Overview-Seite des Rechnungskontos. Wenn dort Free trial account steht, klicke dort oder auf der Welcome-Seite der Konsole auf Activate. Bestätige dies im Dialogfeld.
- Öffne Manage resources, klicke auf Create project, gib einen Namen ein und wähle dieses Rechnungskonto. Bei einem persönlichen Konto bleibt die Organisation auf No organization. Klicke auf Create.
- Öffne in APIs & Services die Library, suche nach BigQuery API und klicke auf Enable. Mache dasselbe für Data Manager API und Google Ads API.
Das Projekt benötigt ein kostenpflichtiges Rechnungskonto. Google dokumentiert derzeit die Ablehnung von Zugriffsanfragen für die Google Ads API aus Projekten mit Free Trial oder mit einem gesperrten oder deaktivierten Rechnungskonto. Ohne ein Rechnungskonto läuft BigQuery als Sandbox. Dort verfallen Tabellen nach 60 Tagen.
Der GA4-Export selbst ist kostenlos. BigQuery berechnet Speicherplatz und Abfragen. Das kostet nach meiner Erfahrung für einen typischen Onlineshop ein paar Dollar im Monat. Um den tatsächlichen Betrag zu sehen, öffne Billing, wähle das Rechnungskonto, öffne Reports und filtere nach diesem Projekt.
Prüfung. Die Seite Enabled APIs & services listet alle drei APIs auf.
Schritt 2: Den GA4-Export zu BigQuery aktivieren
In diesem Schritt holst du die Google Click ID ohne Änderungen am Onlineshop. Erledige das frühzeitig. Der Export enthält nur die Tage nach der Verknüpfung. Die Google-Hilfe beschreibt keinen Weg für den Export früherer Tage.
Du brauchst die Bearbeiter-Rolle für die GA4-Property und die Inhaber-Rolle für das Cloud-Projekt. Prüfe in Google Ads die Aktivierung des Auto-Taggings unter Verwaltung, Kontoeinstellungen, Auto-Tagging. Ohne dieses tragen Anzeigenklicks keine Google Click ID. Wenn es deaktiviert ist, setze ein Häkchen bei URL taggen, auf die Nutzer über meine Anzeige klicken und klicke auf Speichern.
- Öffne in GA4 die Verwaltung. Klicke unter Produktverknüpfungen auf BigQuery-Verknüpfungen und dann auf Verknüpfen.
- Klicke auf BigQuery-Projekt auswählen, wähle das Projekt aus Schritt 1 und klicke auf Bestätigen.
- Wähle den Datenspeicherort. Wähle für einen Onlineshop in der EU einen Standort in der Europäischen Union (die EU-Multiregion oder eine EU-Region). Notiere ihn dir. Die Abfragen und Statustabellen des Imports verwenden denselben Standort. Wenn das Projekt bereits ein Dataset für diese Property hat, ist der Standort festgelegt und unveränderlich. Klicke auf Weiter.
- Klicke auf Datenstreams und Ereignisse konfigurieren, wähle den Web-Stream des Onlineshops und klicke auf Fertig.
- Lasse Werbe-IDs für App-Streams einbeziehen deaktiviert. Ein Webshop braucht das nicht.
- Wähle Täglich und lasse Streaming deaktiviert.
- Klicke auf Weiter und dann auf Senden.
Täglich reicht aus. Der Import liest die täglichen Tabellen events_YYYYMMDD. Streaming fügt die Daten von heute innerhalb von Minuten hinzu. Ein täglicher Job nutzt das nicht. Streaming kostet extra.
Das 1-Million-Limit. Eine Standard-GA4-Property kann mit der Option Täglich 1 Million Ereignisse pro Tag exportieren. Wenn die Property dieses Limit wiederholt überschreitet, pausiert Google den Export. Die fehlenden Tage werden nicht nachgefüllt. Wenn du nah dran bist, schließe nicht benötigte Ereignisse wie scroll oder user_engagement im Datenstreams-Fenster aus. Behalte purchase, page_view und session_start. Diese tragen die Bestellung, die Landingpage und den Klick. Wenn das nicht reicht, hat Streaming kein Limit. Der Import muss dafür angepasst werden. Die Google-Hilfe schlägt auch ein Upgrade auf Analytics 360 vor.
Die ersten Wochen. Klicks aus der Zeit vor dem Verknüpfungsdatum sind nicht in BigQuery. In den ersten 30 Tagen sendet der Import daher mehr Bestellungen nur mit der gehashten E-Mail-Adresse und Telefonnummer.
Prüfung. Die Daten sollten innerhalb von 24 Stunden in einem BigQuery-Dataset analytics_<property ID> eintreffen. Jeden Tag kommt eine Tabelle mit den Daten des Vortags hinzu. Das passiert meist am frühen Nachmittag in der Zeitzone der Property, manchmal später am Tag oder am nächsten Tag.
Schritt 3: Den Zugriff auf beide APIs einrichten
Neue Bestellungen und Margenänderungen gehen über die Data Manager API. Stornierungen gehen über die ältere Google Ads API. Die Data Manager API kann eine Conversion nicht zurückziehen. Beide nutzen dasselbe Projekt und denselben Login.
Ich entwickle seit zwölf Jahren mit der Google Ads API. Im Jahr 2026 hat sich ihr Zugriff geändert. Google hat Entwicklertokens am 9. September 2026 eingestellt. Der Zugriff gehört nun zum Cloud-Projekt. Ein neues Projekt startet mit der Zugriffsebene Test. Diese funktioniert nur mit Testkonten. Dein echtes Konto braucht Explorer.
- Öffne in der Cloud-Konsole die Seite Google Ads API Overview. Prüfe, ob die Zugriffsebene Test ist.
- Klappe Upgrade access level auf und prüfe, ob die nächste Ebene Explorer ist.
- Klicke auf Apply for access, fülle das kurze Formular aus und warte auf die Antwort von Google per E-Mail. Die Overview-Seite zeigt Explorer erst nach der Genehmigung.
Explorer erlaubt 2.880 Operationen pro Tag in Live-Konten. Es erfordert keine Markenverifizierung. Google genehmigt es in den meisten Fällen automatisch. Ein dokumentierter Grund für eine Ablehnung ist ein Free Trial oder ein gesperrtes oder deaktiviertes Rechnungskonto. Prüfe den Grund in der E-Mail. Behebe das Problem mit dem Rechnungskonto, warte ein paar Minuten und beantrage die Zugriffsebene Explorer erneut.
Der Login. Richte für ein Benutzerkonto OAuth in der Cloud-Konsole unter Google Auth Platform ein.
- Fülle unter Branding den App-Namen, eine E-Mail für den Nutzersupport und eine Entwickler-Kontakt-E-Mail aus. Klicke dann auf Create.
- Klicke unter Data Access auf Add or remove scopes. Füge Data Manager API, Google Ads API und BigQuery API hinzu. Der Import liest den GA4-Export mit demselben Login. Klicke auf Update und dann auf Save.
- Wähle unter Audience nur dann Internal, wenn das Cloud-Projekt zu deiner Google Workspace-Organisation gehört und jeder Nutzer darin ist. Wähle andernfalls External und klicke auf Publish app. Der Status ist dann In production.
Lasse den Status niemals auf Testing. Der Data Manager-Leitfaden von Google nutzt den Status Testing zwar für die Entwicklung. Die Anmeldedaten aus einem Login im Status Testing laufen nach 7 Tagen ab. Der tägliche Lauf stoppt nach einer Woche. Niemand erfährt davon, es sei denn, der Job warnt bei Fehlern. Eine veröffentlichte App ohne Google-Verifizierung zeigt beim ersten Login einmalig eine Warnung vor einer nicht verifizierten App. Klicke für die eigene Nutzung auf Advanced und fahre fort. Die Warnung bedeutet nicht, dass etwas falsch ist.
Die Anmeldedaten erstellen.
- Wenn der Import auf einem Server oder deinem eigenen Computer läuft, erstelle einen OAuth-Client vom Typ Desktop app unter Clients und lade seine JSON-Datei herunter. Google Apps Script meldet sich über das Skript selbst an und braucht diese Datei nicht.
- Gib die JSON-Datei der Person, die den Import baut (Schritt 5). Diese Person nutzt die JSON-Datei für den einmaligen Login. Dieser erzeugt gespeicherte Anmeldedaten. Der Import erneuert sie automatisch.
Auf einem Server funktioniert stattdessen ein Dienstkonto. Erstelle es. Gewähre ihm Service Usage Consumer und BigQuery Job User für das Projekt, BigQuery Data Viewer für das GA4-Dataset und BigQuery Data Editor für das eigene Dataset des Imports. Füge dann seine E-Mail in Google Ads wie unten beschrieben hinzu.
Füge das Konto dann in Google Ads unter Verwaltung, Zugriff und Sicherheit hinzu. Nutze die Plus-Schaltfläche und den Standard-Zugriff. Klicke für eine Person auf Einladung senden. Die Person nimmt sie an. Gib für ein Dienstkonto dessen E-Mail ein und klicke auf Konto hinzufügen, ohne Einladung. Nutze ein Konto, das im Unternehmen bleibt. Der Import stoppt bei einer Löschung.
Prüfung. Die Overview-Seite zeigt Explorer. Schritt 6 testet beide APIs. Er nutzt einen validateOnly-Aufruf an Data Manager und einen Test-Stornierungsaufruf an die Google Ads API.
Schritt 4: Die Conversion-Aktion für die Marge erstellen
Erstelle eine separate Conversion-Aktion vom Typ Import für die Marge. Hier aktivierst du auch erweiterte Conversions. Diese lassen Google Bestellungen ohne Klick zuordnen.
- Klicke in Google Ads auf Zielvorhaben, dann auf Conversions und dann auf Zusammenfassung.
- Klicke auf + Conversion-Aktion erstellen und wähle Offline-Conversions.
- Wähle bei der Frage nach einer Datenquelle Diesen Schritt überspringen und später eine Datenquelle einrichten. Der Import sendet die Daten über die API.
- Definiere dann die Aktion selbst im Assistenten. Wähle die Kategorie Kauf, benenne die Aktion, klicke auf Speichern und fortfahren und schließe die Einrichtung mit Zustimmen und fertigstellen ab.
Die Google-Hilfe sagt, eine neue Offline-Aktion sei erst nach der Verbindung einer Datenquelle aktiv. In der Praxis ist der API-Upload diese Quelle. Der Test mit zehn Bestellungen in Schritt 6 ist der Beweis. Wenn die Aktion am nächsten Tag keinen Wert anzeigt, öffne die Aktion, klicke auf Datenquellen bearbeiten und prüfe sie.
Öffne die Aktion, klicke auf Einstellungen bearbeiten und stelle Folgendes ein:
- Wert auf Unterschiedliche Werte für jede Conversion verwenden. Andernfalls nutzt Google den Standardwert anstelle deiner Marge. Das Feld erfordert weiterhin einen Standardwert. Gib einen beliebigen kleinen Wert ein. Google nutzt diesen nur bei einem Ereignis ohne Wert.
- Zählmethode auf Alle. Jede Bestellung ist ein separater Verkauf.
- Tracking-Zeitraum für Klick-Conversions auf 90 Tage. So zählen auch Bestellungen mit einem Klick von vor Wochen.
- Attributionsmodell auf Datengetrieben (datengetriebene Attribution), wo es angeboten wird. Wähle es aus oder behalte es, wenn es bereits eingestellt ist.
Klicke auf Speichern. Öffne dann in der Zusammenfassung die Zeile mit der Margen-Aktion und klicke auf Zielvorhaben bearbeiten. Wähle unter Optimierung von Conversion-Aktionen die Option Sekundär (nur zur Beobachtung) und klicke auf Speichern. So beeinflusst die Marge das Bidding nicht vor deiner Prüfung. Eine Kampagne mit einem benutzerdefinierten Zielvorhaben nutzt jede Aktion darin für die Gebotsstrategie. Das schließt sekundäre Aktionen ein. Halte die Margen-Aktion also aus benutzerdefinierten Zielvorhaben heraus.
Klicke für erweiterte Conversions auf Zielvorhaben, dann auf Einstellungen, klappe Nutzung von Kundendaten auf, setze ein Häkchen bei Erweiterte Conversions aktivieren und klicke auf Zustimmen und speichern. Überprüfe dann die Bedingungen für Kundendaten und klicke auf Zustimmen und fortfahren. Wenn du diese Bedingungen nicht akzeptierst, nutzt Google die gehashte E-Mail-Adresse und Telefonnummer nicht.
Kopiere die ID der Aktion aus ihrem Tab Details, neben Conversion-Typ-ID. Notiere auch die 10-stellige ID des Google Ads-Kontos der Aktion. Google empfiehlt eine Wartezeit von 4 bis 6 Stunden vor dem ersten Upload. Der nächste Tag ist also eine gute Zeit für das erste Senden.
Prüfung. Die Conversion-Quelle der Aktion lautet Website (Aus Klicks importieren). Erweiterte Conversions sind unter Nutzung von Kundendaten angekreuzt.
Lass den Code aus dem Anleitungspaket schreiben
Die Abfrage für die Klickzuordnung, die Margenberechnung und die täglichen Korrekturen sind in einer Datei für Claude Code oder einen Entwickler. Hinterlasse deine E-Mail und die Datei gehört dir.
Eine Datei, eine Liste. Ich schreibe nur, wenn es etwas zu lesen gibt.
Schritt 5: Den Anzeigenklick für jede Bestellung in BigQuery finden
Ab hier baut Claude Code oder ein Entwickler den Import aus dem Download-Paket. Die folgenden Schritte beschreiben die Aktionen des Imports und deine Prüfungen.
Dieser Schritt ersetzt die Speicherung des Klicks im Onlineshop. Du ordnest jede Bestellung ihrem Besuch im GA4-Export zu.
Finde den GA4-Kauf mit einer ecommerce.transaction_id gleich der Bestellnummer des Onlineshops. Vergleiche die Bestellnummern als Text. Entferne dabei nur Leerzeichen am Anfang und Ende. Ein Besuch wird durch das Paar aus user_pseudo_id und ga_session_id identifiziert. Verwende die letzte vor dem Kauf erfasste Google Click ID oder wbraid aus der Sitzung, in der der Kauf stattfand. Wenn der Besuch keine hat, finde frühere Besuche desselben Besuchers anhand der user_pseudo_id bis zu 30 Tage vor dem Kauf und nimm daraus die letzte Klick-Kennung. Wenn ein Ereignis beide trägt, nutze die Google Click ID.
Die Google Click ID steht in collected_traffic_source.gclid. wbraid ist die iPhone-Klick-Kennung. Wenn die exportierte Seiten-URL in page_location den Parameter wbraid behält, liest die Abfrage ihn von dort. Prüfe dies an deinen Daten.
Die vollständige Abfrage einschließlich verspätet eingehender Ereignisse ist im Anleitungspaket.
Prüfung. Nimm fünf Bestellungen aus dem Onlineshop mit einem GA4-Kauf innerhalb der exportierten Tage. Die Abfrage muss diesen Kauf für jede finden. Die Bestellnummern müssen Zeichen für Zeichen übereinstimmen. Dieselbe Abfrage zeigt, für wie viele Käufe sie einen Klick findet.
Schritt 6: Die Bestellungen mit Marge an die Data Manager API senden
In diesem Schritt sendest du den vollständigen Datensatz für jede Bestellung über die Data Manager API mit der Methode events:ingest. Eine Anfrage kann bis zu 2.000 Bestellungen enthalten.
Die Marge ist die Bruttomarge der Bestellung ohne Mehrwertsteuer. Nimm die Artikelpreise nach Artikelrabatten, multipliziert mit der Anzahl der vom Kunden behaltenen Einheiten. Ziehe jeden Bestellrabatt und die Einkaufspreise dieser Einheiten ab. Lasse Versand- und Zahlungsgebühren weg. Behandle einen fehlenden Einkaufspreis nicht als null. Sende eine solche Bestellung erst, wenn die fehlenden Einkaufspreise vorliegen.
Jedes Ereignis enthält diese Felder:
transactionId, die BestellnummerconversionValueundcurrency, die Marge und ihre WährungeventTimestamp, die Bestellzeit mit ZeitzonenverschiebungeventSource,WEBadIdentifiers, die Google Click ID oderwbraidaus Schritt 5userData, die gehashte E-Mail-Adresse und Telefonnummerconsent, mit gewährtemadUserDatauserProperties.customerType,NEWoderRETURNING, wenn die früheren Bestellungen des Onlineshops dies zeigen
{
"transactionId": "ORDER-EXAMPLE-000",
"eventTimestamp": "2026-01-01T12:00:00+01:00",
"eventSource": "WEB",
"conversionValue": 123.45,
"currency": "EUR",
"adIdentifiers": { "gclid": "INVALID-EXAMPLE-CLICK-ID" },
"userData": {
"userIdentifiers": [
{ "emailAddress": "sha256-hex-of-the-normalised-email" },
{ "phoneNumber": "sha256-hex-of-the-e164-phone-number" }
]
},
"consent": { "adUserData": "CONSENT_GRANTED" },
"userProperties": { "customerType": "NEW" }
}
Alle Werte im Beispiel sind ausgedacht. Das Beispiel ist ein Ereignis, keine vollständige Anfrage. Der Import packt es zusammen mit dem Ziel (die ID des Kontos der Aktion und die Aktions-ID) und der Codierung in eine Anfrage. Normalisiere die E-Mail-Adresse und die Telefonnummer nach den Formatierungsregeln von Google. Hashe sie mit SHA-256 und setze das encoding der Anfrage auf HEX.
Sende jede Bestellung mit Einwilligung, nicht nur solche mit einem Klick. Der Import sendet jede berechtigte Bestellung mit Einwilligung und mindestens einer Kennung (Klick-ID, E-Mail-Adresse oder Telefonnummer). Er sendet eine Bestellung ohne Klick mit der gehashten E-Mail-Adresse, Telefonnummer oder beidem. Google ordnet einen Teil dieser Bestellungen über erweiterte Conversions zu, nicht alle. Du kannst vorher nicht sagen, welche. Eine Bestellung ohne Klick-ID, ohne gehashte E-Mail-Adresse und ohne gehashte Telefonnummer kann nicht zugeordnet werden. Du überspringst sie.
Einwilligung. Sende eine Bestellung nur mit erfasster ad_user_data-Einwilligung. Sende eine fehlende Einwilligung niemals als abgelehnt. Der GA4-Export trägt nur privacy_info.ads_storage. Nutze dies nur, wenn dein Cookie-Banner immer ad_storage und ad_user_data zusammen gewährt. Das prüfst du im Tag Assistant. Nimm andernfalls die Einwilligung aus den eigenen Aufzeichnungen des Onlineshops. Ob das rechtlich ausreicht, muss der Onlineshop beurteilen.
Das erste Senden. Der Import kann eine Bestellung senden, sobald die tägliche GA4-Tabelle für den Tag der Bestellung existiert. Das ist nur die erste Bedingung. Der Import wendet auch die Warteregeln aus dem Paket an.
- Sende einen Batch an Data Manager mit
validateOnlyauf true. Sende auch einen Stornierungsaufruf an die Google Ads API mitvalidateOnly. Google prüft sie und speichert nichts. - Sende zehn echte Bestellungen, vorzugsweise aktuelle mit einer Google Click ID. Prüfe am nächsten Tag den Abschluss der Anfrage mit
SUCCESS. Die Margen-Aktion muss ihren Wert in Wert aller Conv. anzeigen. Sekundäre Aktionen erscheinen nicht in den Standard-Conversions-Spalten. Die Werte sind in der Kontowährung. Wenn du eine dieser zehn Bestellungen stornieren kannst, storniere sie ebenfalls (Schritt 7). - Aktiviere dann den täglichen Zeitplan mit Warnungen bei Fehlern.
Eine Antwort von events:ingest bedeutet nur die Annahme der Anfrage durch Google. Der Import behält jede Anfrage-ID und liest ihr Ergebnis beim nächsten Lauf. Google braucht 30 Minuten bis 24 Stunden.
Schritt 7: Margenänderungen und Stornierungen jeden Tag senden
Jeden Tag vergleicht der Import jede gesendete Bestellung mit ihrem Status im Onlineshop.
Margenänderung. Sende das gespeicherte Ereignis erneut an die Data Manager API. Nutze dieselbe Bestellnummer, dieselben Kennungen und dasselbe Ziel. Sende den neuen Wert und die heutige Einwilligung. Wenn der Kunde die Einwilligung widerruft, sende nicht erneut. Laut Dokumentation überschreibt Google den Wert und behält die Conversion-Zählung. Prüfe dies nach der ersten Änderung.
Stornierung. Sende sie über die Google Ads API, Methode UploadConversionAdjustments, Typ RETRACTION, ohne Wert. Die Mitteilung von Google über die Schließung von Teilen der Google Ads API nennt nur Conversion-Uploads. Stornierungen gingen zum Zeitpunkt des Schreibens über die Google Ads API. Deine erste Stornierung bestätigt dies für dein Projekt.
Sende niemals null oder einen negativen Wert. Die Google-Hilfe zu Conversion-Anpassungen sagt, ein Wert von 0 zieht die Conversion endgültig zurück. Eine Zurücknahme kann nicht rückgängig gemacht werden. Die Reaktion der Data Manager API auf eine Null ist nicht dokumentiert. Sende also niemals null oder einen negativen Wert. Wenn die Marge einer Bestellung auf null oder darunter fällt, sende eine Stornierung.
Timing. Sende eine Stornierung mindestens 24 Stunden nach der Conversion und innerhalb von 54 Tagen. Laut Google-Hilfe wird eine Korrektur nicht für die Gebotsstrategie genutzt, wenn sie mehr als 7 Tage nach der Erfassung der Conversion eintrifft. Sende Korrekturen also täglich.
Limits. Anpassungen in der Google Ads API funktionieren nicht mit wbraid. Du kannst die Conversion einer nur mit wbraid gesendeten Bestellung also nicht zurückziehen. Der Import markiert eine solche Stornierung als ungelöst mit dem Grund wbraid. Die Google-Dokumentation für die Data Manager API listet kein solches Limit für Margenänderungen auf. Prüfe jedoch das Ergebnis der ersten Margenänderung im Konto. Sende eine Bestellung nach einem Stornierungsversuch niemals erneut an die Data Manager API. Google könnte sie als neue Conversion erfassen. Diese könntest du kein zweites Mal stornieren.
Schritt 8: Die Funktion prüfen und dann über das Bidding entscheiden
Prüfe in der ersten Woche jeden Tag vier Dinge:
- Die Margen-Aktion zeigt einen Wert in Wert aller Conv. (nach Conv.-Zeit), nicht nur eine Anzahl. Filtere oder segmentiere den Bericht nach Conversion-Aktion.
- Jede Anfrage endet mit
SUCCESS. Lies auch die Warnungen. - Die Metrik Alle Conv. (nach Conv.-Zeit) der Margen-Aktion entspricht ungefähr der Anzahl der gesendeten Bestellungen für dieselben Tage. Ein deutlicher Unterschied ist ein Grund für eine Untersuchung. Es ist kein Beweis dafür, dass der Import eine Bestellung doppelt gesendet hat.
- Google akzeptiert die erste Stornierungszeile. Das Fehlen eines Zugriffsfehlers reicht nicht aus.
Vergleiche dann die Margen-Aktion mit der Aktion des Website-Tags nach Conversion-Datum. Nutze nur Daten für Tage, die mindestens 3 Tage alt sind. Die beiden Aktionen können unterschiedliche Anzahlen melden. Miss die Differenz in deinem Konto.
Das Bidding auf Marge ist eine separate Entscheidung. Sie steht an, wenn die Werte, Stornierungen und Anfragen alle in Ordnung sind. Mache dann die Margen-Aktion primär. Mache im selben Moment die Umsatz-Aktion sekundär und entferne sie aus benutzerdefinierten Zielvorhaben. Sonst zählt jeder Kauf doppelt. Prüfe auch die Nutzung des Zielvorhabens mit der Margen-Aktion in jeder Kampagne. Berechne auch das tROAS-Ziel neu. Die Marge ist niedriger als der Umsatz.
Zwei weitere Dinge zum Senden mit jeder Bestellung
Neuer oder wiederkehrender Kunde. Fülle userProperties.customerType (Schritt 6) aus der Bestellhistorie des Onlineshops. Eine Bestellung ist NEW, wenn zu derselben E-Mail-Adresse oder Kunden-ID in den letzten 540 Tagen keine frühere, nicht stornierte Bestellung vorliegt. Das ist das von Google empfohlene Zeitfenster. Der Bestellexport muss so weit zurückreichen. Wenn du das nicht weißt, sende das Feld nicht. Google nutzt dieses Feld für sein Zielvorhaben zur Neukundengewinnung. Sobald die Gebotsstrategie der Kampagnen die Margen-Aktion nutzt (Schritt 8), öffne eine Kampagne vom Typ Search, Performance Max, Shopping oder Demand Gen und klicke auf Kampagneneinstellungen. Klappe Kundenakquisition auf und wähle Gebote anpassen, um Neukunden zu gewinnen.
Prüfung. Klicke in der Tabelle Kampagnen auf Segment und füge Neue und wiederkehrende Kunden hinzu. Die Aufteilung sollte grob deinen gesendeten Daten entsprechen. Der Bericht startet am Tag der Aktivierung des Zielvorhabens.
Deine eigenen Variablen. Eine benutzerdefinierte Variable fügt jeder Conversion eine Information über die Bestellung hinzu. Ein Beispiel ist B2B oder B2C. Klicke zuerst in Google Ads auf Zielvorhaben, dann auf Conversions, dann auf Benutzerdefinierte Variable und die Plus-Schaltfläche. Gib einen klein geschriebenen Namen ein und klicke auf Speichern. Ihr Status sollte Aktiviert lauten. Der Import sendet ihren Namen und Wert in den customVariables des Ereignisses. Google ignoriert eine Variable, die im Konto nicht existiert, und zeigt keinen Fehler. Nutze niemals eine E-Mail-Adresse, eine Telefonnummer oder einen Namen als Wert. Google dokumentiert benutzerdefinierte Variablen für Berichte, nicht für das Bidding.
Prüfung. Klicke in der Tabelle Kampagnen auf Segment, wähle Conversions, dann Benutzerdefinierte Variable und wähle deine Variable. Jeder Wert sollte eine eigene Zeile erhalten.
Lade das Anleitungspaket für Claude Code herunter
Das Paket enthält das gesamte Vorgehen als Briefing für Claude Code oder einen Entwickler. Dazu gehören die Setup-Prüfungen, die Abfrage für die Klickzuordnung, die Ereignisstruktur und die täglichen Korrekturen. Es ist kein fertiges Programm. Hinterlasse deine E-Mail und die Datei gehört dir.
Eine Datei, eine Liste. Ich schreibe nur, wenn es etwas zu lesen gibt.
FAQ
Muss mein Onlineshop die Google Click ID speichern?
Nein. Der GA4-Export zu BigQuery speichert den Klick bei jedem Besuch über eine Anzeige. Der Import findet ihn dort über die Bestellnummer. Vom Onlineshop brauchst du nur die Bestellungen mit Einkaufspreisen.
Brauche ich ein Entwicklertoken?
Nein. Google hat Entwicklertokens am 9. September 2026 eingestellt. Die Data Manager API nutzt keines. Der Zugriff auf die Google Ads API gehört nun zu einem Google Cloud-Projekt.
Bringt der Import View-through-Conversions?
Verlasse dich nicht darauf. Die Conversion-Aktion des Imports basiert auf Klicks. Für Video dokumentiert Google nur Engaged-View-Conversions. Diese müssen innerhalb von 14 Tagen hochgeladen werden. Ein täglicher Lauf erfüllt das.
Was du zuerst tun solltest
- Erstelle das Cloud-Projekt und aktiviere den GA4-Export zu BigQuery heute. Der Export hat keine Historie. Aktiviere ihn also so früh wie möglich.
- Prüfe im Tag Assistant die gemeinsame Gewährung von
ad_storageundad_user_datadurch dein Cookie-Banner. - Berechne die Marge von fünf Bestellungen von Hand. So erkennst du, ob in deinem Onlineshop für jeden Artikel ein Einkaufspreis vorliegt.