Anfragen zum Senden von Ereignissen oder Zielgruppenmitgliedern werden asynchron verarbeitet.
Eine erfolgreiche Aufnahmeantwort gibt einen request_id zurück und gibt an, dass die Anfrage alle Anforderungen erfüllt hat und zur Verarbeitung akzeptiert wurde. Es wird jedoch nicht angegeben, ob die Datensätze in der Anfrage erfolgreich verarbeitet wurden.
Verwenden Sie die zurückgegebene request_id mit RetrieveRequestStatus, um den Status des Uploads zu prüfen und die Diagnosedaten zu überprüfen.
Hier ist der empfohlene Workflow, um den Status Ihrer Anfragen zu prüfen und den Zustand Ihrer Ereignis- und Zielgruppenuploads zu überprüfen:
Anfragen zum Senden von Ereignissen oder zum Senden oder Entfernen von Zielgruppenmitgliedern stellen.
Prüfen Sie den Gesamtstatus jeder Aufnahme-Anfrage. Eine erfolgreiche Anfrage hat einen
Statusmitcodegleich0(Enum-WertOK, HTTP-Antwort200 OK) und gibt einenIngestEventsResponse,IngestAudienceMembersResponseoderRemoveAudienceMembersResponsezurück.Wenn eine Anfrage nicht erfolgreich ist, ändern Sie sie, um den Fehler zu beheben, und senden Sie sie noch einmal.
Wenn eine Anfrage erfolgreich ist, erfassen Sie die
request_idder Antwort, damit Sie sie im nächsten Schritt zum Prüfen des Verarbeitungsstatus verwenden können.Warten Sie 30 Minuten und senden Sie dann für jede erfolgreiche
request_ideineRetrieveRequestStatus-Anfrage.Für ein
RetrieveRequestStatusRequestist ein einzelnerrequest_id-Wert erforderlich. Senden Sie für jede Anfrage-ID, die Sie aus einer erfolgreichen Aufnahme-Anfrage erfasst haben, eine separate Statusanfrage.Wiederholen Sie diesen Schritt regelmäßig für jeden
request_id, bis der Zielstatus für jedes ZielSUCCESS,PARTIAL_SUCCESSoderFAILEDerreicht. Folgen Sie der empfohlenen Abfragestrategie, um zwischen den einzelnen Anfragen zu warten.Prüfen Sie jede
RetrieveRequestStatusResponse, um sicherzustellen, dass Ihre Uploads ordnungsgemäß funktionieren, und um Probleme mit Ihren Daten zu identifizieren.Datenprobleme beheben
Gehen Sie zurück zu Schritt 1 und wiederholen Sie den Vorgang, bis Sie alle Probleme mit Ihren Uploads behoben haben.
Gesamtstatus des Ziels prüfen
request_status_per_destination in einem RetrieveRequestStatusResponse enthält einen separaten Eintrag für jedes Ziel in der entsprechenden Aufnahme-Anfrage.
Wenn Ihre IngestAudienceMembersRequest beispielsweise drei Einträge in der Liste destinations enthielt, um Daten an drei verschiedene Zielgruppen zu senden, enthält die Statusantwort drei Einträge in request_status_per_destination (ein Eintrag pro Zielgruppe).
Prüfen Sie das Feld request_status für jede RequestStatusPerDestination, um festzustellen, ob die Data Manager API die Verarbeitung der Daten für dieses Ziel abgeschlossen hat.
Folgende Werte sind für request_status möglich:
PROCESSING: Die Daten für das Ziel werden noch verarbeitet. Die Warnungen und Fehler werden für das Ziel in dieser Phase nicht ausgefüllt. Führen Sie die Abfrage so lange aus, bis der Status einen Endzustand erreicht.SUCCESS: Die Anfrageverarbeitung für das Ziel wurde ohne Fehler abgeschlossen. Prüfe, ob während der Verarbeitung Warnungen angezeigt wurden.FAILED: Alle Datensätze für das Ziel sind aufgrund von Fehlern fehlgeschlagen. Prüfen Sie, ob Warnungen und Fehler vorliegen, um festzustellen, warum alle Einträge fehlgeschlagen sind. Prüfen Sie auch, ob während der Verarbeitung Warnungen ausgegeben wurden.PARTIAL_SUCCESS: Einige der Datensätze für das Ziel waren erfolgreich, andere sind jedoch aufgrund von Fehlern fehlgeschlagen. Prüfen Sie, ob Fehler vorliegen, um herauszufinden, warum einige Einträge fehlgeschlagen sind. Prüfen Sie auch, ob während der Verarbeitung Warnungen angezeigt wurden.
Diagnose ansehen
Sobald der request_status für ein Ziel SUCCESS, FAILED oder PARTIAL_SUCCESS erreicht, sehen Sie sich die detaillierte Diagnose in der Antwort an, um die Anzahl zu überprüfen und Probleme zu beheben.
Ereignis- oder Zielgruppenstatus pro Ziel prüfen
Prüfen Sie das Statusfeld, das dem Typ der Aufnahme-Anfrage entspricht. In jedem RequestStatusPerDestination ist nur eines der folgenden Felder festgelegt:
Status der Ereignisaufnahme
Das Feld events_ingestion_status wird ausgefüllt, wenn die Anfrage ein IngestEventsRequest war.
Prüfen Sie das Feld record_count von IngestEventStatus, um zu bestätigen, dass die Gesamtzahl der empfangenen Datensätze Ihren Erwartungen entspricht. Die record_count enthält sowohl erfolgreiche als auch fehlgeschlagene Einträge.
Status der Aufnahme von Zielgruppenmitgliedern
Das Feld audience_members_ingestion_status wird ausgefüllt, wenn die Anfrage ein IngestAudienceMembersRequest war. Hier ist das Feld IngestAudienceMembersStatus, das für jeden Typ von Zielgruppendaten geprüft werden muss. Es ist nur eines dieser Felder festgelegt.
composite_data_ingestion_statusPrüfen Sie im
IngestCompositeDataStatusdas Feldrecord_count, um zu bestätigen, dass die Gesamtzahl der empfangenen Datensätze Ihren Erwartungen entspricht. Dierecord_countenthält sowohl erfolgreiche als auch fehlgeschlagene Datensätze.Prüfen Sie die
data_type_counts, um zu bestätigen, dass die Anzahl der Kennungen Ihren Erwartungen entspricht. Diese Liste enthält eine Aufschlüsselung aller vonDataTypeempfangenen Kennungen (z. B. E‑Mail-Adresse, Telefonnummer, Postanschrift und IP-Adresse).Wenn die Anfrage eine ausreichende Anzahl von Datensätzen enthielt, enthält die
upload_match_rate_rangeden Bereich der Abgleichsrate für Datensätze in der Anfrage.google_user_id_data_ingestion_statusPrüfen Sie das Feld
record_countdesIngestGoogleUserIdDataStatus, um zu bestätigen, dass die Gesamtzahl der empfangenen Datensätze Ihren Erwartungen entspricht. Dierecord_countenthält sowohl erfolgreiche als auch fehlgeschlagene Datensätze.Prüfen Sie in der
google_user_id_count, ob die Anzahl der empfangenen Google-Nutzer-IDs Ihren Erwartungen entspricht.mobile_data_ingestion_statusPrüfen Sie im
IngestMobileDataStatusdas Feldrecord_count, um zu bestätigen, dass die Gesamtzahl der empfangenen Datensätze Ihren Erwartungen entspricht. Dierecord_countenthält sowohl erfolgreiche als auch fehlgeschlagene Datensätze.Prüfen Sie die
mobile_id_count, um festzustellen, ob die Anzahl der empfangenen mobilen IDs Ihren Erwartungen entspricht.pair_data_ingestion_statusPrüfen Sie das Feld
record_countdesIngestPairDataStatus, um zu bestätigen, dass die Gesamtzahl der empfangenen Datensätze Ihren Erwartungen entspricht. Dierecord_countenthält sowohl erfolgreiche als auch fehlgeschlagene Einträge.Prüfen Sie die
pair_id_count, um festzustellen, ob die Anzahl der erhaltenen PAIR-IDs Ihren Erwartungen entspricht.partner_provided_id_data_ingestion_statusPrüfen Sie das Feld
record_countderIngestPartnerProvidedIdDataStatus, um zu bestätigen, dass die Gesamtzahl der empfangenen Datensätze Ihren Erwartungen entspricht. Dierecord_countenthält sowohl erfolgreiche als auch fehlgeschlagene Einträge.Prüfen Sie im
partner_provided_id_count, ob die Anzahl der erhaltenen vom Partner bereitgestellten IDs Ihren Erwartungen entspricht.ppid_data_ingestion_statusPrüfen Sie das Feld
record_countdesIngestPpidDataStatus, um zu bestätigen, dass die Gesamtzahl der empfangenen Datensätze Ihren Erwartungen entspricht. Dierecord_countenthält sowohl erfolgreiche als auch fehlgeschlagene Einträge.Prüfen Sie in der
ppid_count, ob die Anzahl der empfangenen PPIDs Ihren Erwartungen entspricht.user_data_ingestion_statusPrüfen Sie das Feld
record_countdesIngestUserDataStatus, um zu bestätigen, dass die Gesamtzahl der empfangenen Datensätze Ihren Erwartungen entspricht. Dierecord_countenthält sowohl erfolgreiche als auch fehlgeschlagene Einträge.Prüfen Sie in
user_identifier_count, ob die Anzahl der empfangenen Nutzer-IDs Ihren Erwartungen entspricht.Wenn die Anfrage eine ausreichende Anzahl von Datensätzen enthielt, enthält die
upload_match_rate_rangeden Bereich der Abgleichsrate für Datensätze in der Anfrage.user_id_data_ingestion_statusPrüfen Sie das Feld
record_countdesIngestUserIdDataStatus, um zu bestätigen, dass die Gesamtzahl der empfangenen Datensätze Ihren Erwartungen entspricht. Dierecord_countenthält sowohl erfolgreiche als auch fehlgeschlagene Einträge.Prüfen Sie in
user_id_count, ob die Anzahl der empfangenen Nutzer-IDs Ihren Erwartungen entspricht.
Status der Entfernung von Zielgruppenmitgliedern
Das Feld audience_members_removal_status wird ausgefüllt, wenn die Anfrage ein RemoveAudienceMembersRequest war. Hier ist das Feld RemoveAudienceMembersStatus, das für jeden Typ von Zielgruppendaten geprüft werden muss. Es ist nur eines dieser Felder festgelegt.
composite_data_removal_status- Entfernungsstatus für Zusammengesetzte Daten
google_user_id_data_removal_status- Entfernungsstatus für Google-Nutzer-ID-Daten
mobile_data_removal_status- Entfernungsstatus für mobile Daten.
pair_data_removal_status- Entfernungsstatus für PAIR-Daten.
partner_provided_id_data_removal_status- Entfernungsstatus für vom Partner bereitgestellte ID-Daten
ppid_data_removal_status- Entfernungsstatus für PPID-Daten.
user_data_removal_status- Entfernungsstatus für Nutzerdaten.
user_id_data_removal_status- Entfernungsstatus für Nutzer-ID-Daten
Prüfen Sie record_count, um zu bestätigen, dass die Gesamtzahl der empfangenen Datensätze Ihren Erwartungen entspricht. Die record_count enthält sowohl erfolgreiche als auch fehlgeschlagene Einträge.
Prüfen Sie außerdem die user_identifier_count, mobile_id_count, pair_id_count, ppid_count, user_id_count, google_user_id_count oder partner_provided_id_count, um die Gesamtzahl der empfangenen Kennungen zu bestätigen.
Prüfen Sie bei zusammengesetzten Daten die data_type_counts, um zu bestätigen, dass die Anzahl der Kennungen Ihren Erwartungen entspricht. Diese Liste enthält eine Aufschlüsselung aller von DataType empfangenen Kennungen (z. B. E‑Mail-Adresse, Telefonnummer, Postanschrift und IP-Adresse).
Warnungen und Fehler prüfen
Zusätzlich zu den Statusfeldern für das Ziel und den Anfragetyp enthält die RetrieveRequestStatusResponse eine Aufschlüsselung der Warnungen und Fehler für die Anfrage.
Ein Fehler weist darauf hin, dass die API den Eintrag vollständig abgelehnt hat.
Eine Warnung gibt an, dass die API den Eintrag nicht abgelehnt hat, aber Teile der Daten des Eintrags ignorieren musste.
Wenn ein Event beispielsweise verschlüsselte UserIdentifier-Daten und AdIdentifiers wie gclid enthält und die UserIdentifier-Daten nicht entschlüsselt werden können, verarbeitet die Data Manager API den Datensatz trotzdem mit dem AdIdentifiers, gibt aber die Warnung PROCESSING_WARNING_REASON_USER_IDENTIFIER_DECRYPTION_ERROR zurück.
Wenn die Event jedoch keine AdIdentifiers enthält und die UserIdentifier-Daten nicht entschlüsselt werden können, lehnt die Data Manager API den gesamten Eintrag ab und meldet den Fehler PROCESSING_ERROR_REASON_USER_IDENTIFIER_DECRYPTION_ERROR, da eine gültige Event mindestens eine ad_identifiers oder user_data enthalten muss.
Hier sind die Antwortfelder, die Warn- und Fehlerinformationen enthalten. Diese Felder werden ausgefüllt, wenn der Gesamtstatus des Ziels SUCCESS, PARTIAL_SUCCESS oder FAILED erreicht.
warning_infoEin
WarningInfo-Objekt. Das Feldwarning_countsenthält eine Liste vonWarningCount-Objekten. JederWarningCountenthält einenreasonmit dem Typ der Warnung und einenrecord_count, der die Anzahl der Datensätze mit diesem Typ von Warnung angibt.Prüfen Sie den
warning_info, auch wenn der Gesamtstatus des ZielsSUCCESSlautet.error_infoEin
ErrorInfo-Objekt. Das Felderror_countsenthält eine Liste vonErrorCount-Objekten. JederErrorCountenthält einenreasonmit dem Fehlertyp und einenrecord_count, der die Anzahl der Datensätze angibt, die aufgrund dieses Fehlertyps fehlgeschlagen sind.
Abfragestrategie
Senden Sie die RetrieveRequestStatusRequest regelmäßig mit einem exponentiellen Backoff-Algorithmus, bis die request_status für jedes Ziel in der ursprünglichen Anfrage SUCCESS, FAILED oder PARTIAL_SUCCESS erreicht. Dies kann bis zu 24 Stunden dauern, obwohl die Data Manager API einige Anfragen in nur 30 Minuten verarbeiten kann.
Hier ist ein Beispiel für eine angemessene anfängliche Wartezeit und Wiederholungskonfiguration, die Aktivität und Kontingentnutzung in Einklang bringt:
| Einstellung | Wert |
|---|---|
| Wartezeit vor der ersten Diagnoseanfrage (Minuten) | 30 |
| Backoff-Multiplikator | 1.3 |
| Maximaler Backoff (Minuten) | 60 (1 Stunde) |
| Maximale Gesamtzeit (Minuten) | 1440 (24 Stunden) |
Hier ist eine Abfolge von Anfragen und die verstrichene Zeit mit dieser Konfiguration:
Grafik

Daten
| Versuch | Zeit seit der Aufnahme-Anfrage (hh:mm) | Verzögerung vor Versuch | Hinweise |
|---|---|---|---|
| 1 | 00:30 | 30,0 Min. | Zuerst die Verfügbarkeit des Status prüfen |
| 2 | 01:09 | 39,0 Min. | |
| 3 | 01:59 | 50,7 Min. | |
| 4 | 02:59 | 60,0 Min. | Die Verzögerung ist jetzt auf 1 Stunde begrenzt |
| 5 | 03:59 | 60,0 Min. | |
| 6 | 04:59 | 60,0 Min. | |
| 7 | 05:59 | 60,0 Min. | |
| 8 | 06:59 | 60,0 Min. | |
| 9 | 07:59 | 60,0 Min. | |
| 10 | 08:59 | 60,0 Min. | |
| 11 | 09:59 | 60,0 Min. | |
| 12 | 10:59 | 60,0 Min. | |
| 13 | 11:59 | 60,0 Min. | 12-Stunden-Marke |
| 14 | 12:59 | 60,0 Min. | |
| 15 | 13:59 | 60,0 Min. | |
| 16 | 14:59 | 60,0 Min. | |
| 17 | 15:59 | 60,0 Min. | |
| 18 | 16:59 | 60,0 Min. | |
| 19 | 17:59 | 60,0 Min. | |
| 20 | 18:59 | 60,0 Min. | |
| 21 | 19:59 | 60,0 Min. | |
| 22 | 20:59 | 60,0 Min. | |
| 23 | 21:59 | 60,0 Min. | |
| 24 | 22:59 | 60,0 Min. | |
| 25 | 23:59 | 60,0 Min. | Letzte Anfrage vor der maximalen Gesamtzeit von 24 Stunden |
Fügen Sie den Backoff-Verzögerungen einen kleinen zufälligen Jitter hinzu, um das „Thundering-Herd-Problem“ zu vermeiden, bei dem viele Clients gleichzeitig Wiederholungsversuche starten.
Autorisierungsanforderungen
Ein RetrieveRequestStatusRequest akzeptiert keine Zielkonten oder Anfrageheader. Stattdessen identifiziert die Data Manager API die Ziele aus der ursprünglichen Aufnahme-Anfrage, die mit der request_id verknüpft ist, und prüft, ob der Aufrufer Zugriff auf die operating_account für jede Destination hat.
Wenn Sie den Status einer Anfrage prüfen möchten, müssen die in einer RetrieveRequestStatusRequest verwendeten Anmeldedaten die folgenden Anforderungen für die operating_account jedes Ziels aus der ursprünglichen Aufnahme-Anfrage erfüllen:
Identischer Zugriffspfad: Die Anmeldedaten müssen Zugriff auf jede
operating_accountüber den genau gleichen Zugriffspfad haben, der in der ursprünglichen Aufnahme-Anfrage angegeben wurde.Wenn beispielsweise in einer Aufnahme-Anfrage für ein Google Ads-
operating_accountein übergeordnetes Verwaltungskonto alslogin_accountangegeben wurde, müssen die Anmeldedaten auch über dasselbe Verwaltungskonto Zugriff auf dasoperating_accounthaben. Selbst wenn das mit den Anmeldedaten verknüpfte Google-Konto direkten Zugriff auf das untergeordneteoperating_accounthat, schlägt die Anfrage mit einemPERMISSION_DENIED-Fehler fehl, wenn dieses Konto keinen Zugriff über das während der Aufnahme angegebenelogin_account-Verwaltungskonto hat.Ausreichende Zugriffsebene: Das mit den Anmeldedaten verknüpfte Google-Konto muss eine Zugriffsebene oder Rolle mit der Berechtigung zum Aufnehmen von Daten in
operating_accounthaben.In Google Ads muss das Google-Konto beispielsweise die Zugriffsebene Administrator oder Standard haben. Eine Anfrage mit Anmeldedaten für ein Konto mit der Zugriffsebene Lesezugriff schlägt mit dem Fehler
PERMISSION_DENIEDfehl.