Rufen Sie die Methode Conversion.update()
auf, um eine oder mehrere der folgenden Änderungen an einer oder mehreren vorhandenen Conversions vorzunehmen:
- Ändern Sie den Umsatz, den Währungscode oder die Stückzahl.
- Ändern Sie die vom Werbetreibenden bereitgestellte Auftrags-ID und alle benutzerdefinierten Floodlight-Variablen.
- Entfernen Sie die Conversion, indem Sie
conversion.state
vonACTIVE
inREMOVED
ändern.
Änderungen an folgenden Werten werden in Search Ads 360 nicht unterstützt:
- Das Conversion-Datum.
- Conversion-Typ
- Das Keyword oder der Besuch, der der Conversion zugeordnet ist.
- Floodlight-Aktivität oder Name der Aktivität
Sie können eine vorhandene Conversion jedoch jederzeit als ENTFERNT kennzeichnen und eine neue Conversion mit aktualisierten Werten für Datum, Typ, Attributions-IDs oder Floodlight-Aktivität hochladen. Geben Sie dabei auch eine neue conversionId
an.
Wie bei Conversion.insert()
wird in Search Ads 360 versucht, jede Conversion nach dem Best-Effort-Prinzip zu aktualisieren, wenn in Ihrer Aktualisierungsanfrage mehrere Conversions angegeben sind, anstatt den gesamten Batch als Transaktion vom Typ „Alles oder Nichts“ zu aktualisieren. Wenn einige Aktualisierungen in einem Batch fehlschlagen, können andere möglicherweise trotzdem erfolgreich sein. Wir empfehlen Ihnen, sich die Antwort für jede aktualisierte Conversion anzusehen, um sicherzustellen, dass die Aktualisierung erfolgreich war.
(Aktualisiert 2025) Einstellung von dsConversionId
Derzeit können Sie Conversions entweder mit dsConversionId
oder conversionId
identifizieren und bearbeiten. Das Feld dsConversionId
wird im 4. Quartal 2025 eingestellt. Künftig müssen Sie conversionId
verwenden, um Conversions in der Search Ads 360 Conversion API zu bearbeiten.
Wichtigste Änderungen:
-
dsConversionId
Einstellung:dsConversionID
wird nicht mehr in der Search Ads 360 Reporting API (conversion.id
) oder in der Berichtsoberfläche (Conversion-ID) unterstützt. -
conversionId
Anforderung:conversionId
wird zum Pflichtfeld für das Bearbeiten von Conversions über die Search Ads 360 Conversion API.
So erhalten Sie conversionId
:
-
Search Ads 360 Reporting API: Sie können
advertiser_conversion_id
mit der Search Ads 360 Reporting API abrufen. Dieser Wert entspricht derconversionId
, die für die Bearbeitung erforderlich ist. -
Search Ads 360-Benutzeroberfläche: Die „Conversion-ID des Werbetreibenden“ finden Sie auf der Seite „Conversion-Berichte“ der Search Ads 360-Benutzeroberfläche.
Aktualisierungsanfrage senden
Die meisten Felder, die Sie in einer Conversion.update()
angeben, werden verwendet, um die Conversions zu identifizieren, die Sie aktualisieren möchten. Sie haben folgende Möglichkeiten, eine vorhandene Conversion zu identifizieren:
- Geben Sie den
clickId
für die Conversion an.- Alle bearbeiteten Conversions müssen innerhalb von 60 Tagen nach der Generierung der Klick-ID stattgefunden haben.
- Geben Sie die
criterionId
(Keyword-ID) der Conversion an.
Bei beiden Methoden müssen Sie conversionId
, conversionTimestamp
und type
der Conversion angeben.
Wenn für die ursprüngliche Conversion revenueMicros
und currencyCode
oder quantityMillis
angegeben wurden, müssen diese Daten auch in der Aktualisierungsanfrage angegeben werden, auch wenn Sie sie nicht ändern.
Conversion anhand der Klick-ID identifizieren
Wenn für eine Conversion ursprünglich eine Klick-ID angegeben wurde, können Sie eine Conversion.update()
-Anfrage senden, in der die folgenden Felder angegeben sind:
clickId
conversionId
conversionTimestamp
type
state
(nur erforderlich, wenn Sie den Status in „ENTFERNT“ oder „AKTIV“ ändern möchten)quantityMillis
(nur, wenn in der ursprünglichen Conversion angegeben)revenueMicros
(nur, wenn in der ursprünglichen Conversion angegeben)currencyCode
(nur, wenn in der ursprünglichen Conversion angegeben)
Beispiel
Hier ein Beispiel für zwei vorhandene Conversions:
{ "kind": "doubleclicksearch#conversionList", "conversion" : [{ "clickId" : "COiYmPDTv7kCFcP0KgodOzQAAA", "conversionId" : "test_20130906_10", "conversionTimestamp" : "1378710000000", "segmentationType" : "FLOODLIGHT", "segmentationName" : "Test", "type": "TRANSACTION", "revenueMicros": "100000000", // 100 million revenueMicros is equivalent to $100 of revenue "currencyCode": "USD" }, { "clickId": "COiYmPDTv7kCFcP0KgodOzQAAA", "conversionId": "test_1383337059137", "conversionTimestamp": "1378710000000", "segmentationType" : "FLOODLIGHT", "segmentationName" : "Test", "type": "ACTION", "quantityMillis": "1000" }] }
Mit der folgenden Anfrage wird eine der Conversions aus dem vorherigen Beispiel aktualisiert und die andere entfernt:
JSON
Beachte, dass für eine Conversion.update()
-Anfrage die HTTP-Methode PUT verwendet wird.
PUT https://www.googleapis.com/doubleclicksearch/v2/conversion Authorization: Bearer your OAuth 2.0 access token Content-type: application/json { "kind": "doubleclicksearch#conversionList", "conversion": [ { "clickId": "COiYmPDTv7kCFcP0KgodOzQAAA", // Replace with data from your site "conversionId": "test_20130906_10", "conversionTimestamp": "1378710000000", "type": "TRANSACTION", "revenueMicros": "90000000", // 90 million revenueMicros is equivalent to $90 of revenue "currencyCode": "USD" }, { "clickId": "COiYmPDTv7kCFcP0KgodOzQAAA", // Replace with data from your site "conversionId": "test_1383337059137", "conversionTimestamp": "1378710000000", "type": "ACTION", "quantityMillis": "1000", "state": "REMOVED" } ] }
Java
/** * Instantiate the Doubleclicksearch service, create a conversion that updates an existing conversion, * and upload the conversions. */ public static void main(String[] args) throws Exception { Doubleclicksearch service = getService(); // See Set Up Your Application. // Set up a List to keep track of each conversion you create. List<Conversion> conversions = new Vector<Conversion>(); // Create a conversion and add it to the conversion list. // Just to get a little fancy, the updateConversionFromVisit() method can be used for all // visit conversions, including conversions that don't specify quantity, revenue, or currency. // If quantityMillis wasn't specified in the original conversion, specify -1L for the // quantityMillis parameter. Likewise, if revenueMicros wasn't specified originally, // specify -1L for the revenueMicros parameter and an empty string for currency. conversionList = updateConversionFromVisit( conversionList, "COiYmPDTv7kCFcP0KgodOzQAAA", // clickId. Replace with data from your site "test_20130906_10", // conversionId 1378710000000L, // timeStamp "TRANSACTION", // type "", // state -1L, // quantityMillis 90000000L, // revenueMicros. Equivalent to $90 of revenue "USD"); // currencyCode // Here's a conversion that needs to be removed. Just set the state parameter to "REMOVED". conversionList = updateConversionFromVisit( conversionList, "COiYmPDTv7kCFcP0KgodOzQAAA", // clickId. Replace with data from your site "test_1383337059137", // conversionId 1378710000000L, // timeStamp "ACTION", // type "REMOVED", // state 1000L, // quantityMillis -1L, // revenueMicros ""); // currencyCode // Upload the List and handle the response. uploadConversions(conversions, service); // See an example in Add New Conversions. } /** * Create a conversion and add it to a List<Conversion>. */ private static List<Conversion> updateConversionFromVisit(List<Conversion> conversions, String clickId, String conversionId, Long timeStamp, String type, String state, Long quantity, Long revenue, String currency) { // Identifies the existing conversion. Conversion conversion = new Conversion() .setClickId(clickId) .setConversionId(conversionId) .setConversionTimestamp(BigInteger.valueOf(timeStamp)) .setType(type); // Only add these fields if the value is not empty greater than -1. if(!state.isEmpty()) conversion.setState(state); if (quantity > -1L) { conversion.setQuantityMillis(quantity); } if (revenue > -1L) { conversion.setRevenueMicros(revenue); if (!currency.isEmpty()) { conversion.setCurrencyCode(currency); } else { System.err.println(String.format( "Can't add conversion %s. It specifies revenue but no currency.", conversion.getConversionId())); return conversions; } } conversions.add(conversion); return conversions; }
Python
def update_conversion(service): """Change the revenue for one existing conversion and remove another. Args: service: An authorized Doubleclicksearch service. See Set Up Your Application. """ request = service.conversion().update( body= { 'conversion' : [{ 'clickId' : 'COiYmPDTv7kCFcP0KgodOzQAAA', // Replace with data from your site 'conversionId' : 'test_20130906_13', 'conversionTimestamp' : '1378710000000', 'segmentationType' : 'FLOODLIGHT', 'segmentationName' : 'Test', 'type': 'TRANSACTION', 'revenueMicros': '90000000', // 90 million revenueMicros is equivalent to $90 of revenue 'currencyCode': 'USD' }, { 'clickId': 'COiYmPDTv7kCFcP0KgodOzQAAA', // Replace with data from your site 'conversionId': 'test_1383337059137_01', 'conversionTimestamp': '1378710000000', 'segmentationType' : 'FLOODLIGHT', 'segmentationName' : 'Test', 'type': 'ACTION', 'quantityMillis': '1000', 'state': 'REMOVED' }] } ) pprint.pprint(request.execute())
Conversion anhand der Keyword-ID identifizieren
Wenn Sie keinen Zugriff auf eine Klick-ID haben oder eine Conversion ursprünglich einem Keyword oder einem Keyword/einer Anzeige zugeordnet wurde, können Sie eine Conversion.update()
-Anfrage senden, in der die folgenden Felder angegeben sind:
criterionId
(Keyword-ID)conversionId
conversionTimestamp
type
state
(nur erforderlich, wenn Sie den Status in „ENTFERNT“ oder „AKTIV“ ändern möchten)quantityMillis
(nur, wenn in der ursprünglichen Conversion angegeben)revenueMicros
(nur, wenn in der ursprünglichen Conversion angegeben)currencyCode
(nur, wenn in der ursprünglichen Conversion angegeben)
Sie können optional auch andere IDs angeben, z. B. die Anzeigen-ID oder die Kampagnen-ID der Conversion. In Search Ads 360 sind nur die IDs in der Liste oben erforderlich, um eine vorhandene Conversion zu identifizieren.
Beispiel
Hier ein Beispiel für eine vorhandene Conversion:
{ "kind": "doubleclicksearch#conversionList", "conversion" : [{ "agencyId": "12300000000000456", "advertiserId": "45600000000010291", "engineAccountId": "700000000042441", "campaignId": "71700000002044839", "adGroupId": "58700000032026064", "criterionId": "43700004289911004", "adId": "44700000155906860", "conversionId": "test_1383157519886", "conversionTimestamp": "1378710000000", "type": "ACTION", "quantityMillis": "1000", "segmentationType": "FLOODLIGHT", "segmentationName": "Test" }] }
Mit der folgenden Anfrage wird der Zeitstempel der Conversion aktualisiert:
JSON
Beachte, dass für eine Conversion.update()
-Anfrage die HTTP-Methode PUT verwendet wird.
PUT https://www.googleapis.com/doubleclicksearch/v2/conversion Authorization: Bearer your OAuth 2.0 access token Content-type: application/json { "kind": "doubleclicksearch#conversionList", "conversion": [ { "criterionId": "43700004289911004", // Replace with your ID "conversionId": "test_1383157519886", "conversionTimestamp": "1378710000000", "type": "ACTION", "quantityMillis": "3000" } ] }
Java
// Send conversion data to updateConversion, which creates a conversion and adds it // to the conversion list. conversionList = updateConversionFromKeyword(conversionList, 43700004289911004L, // criterionId. Replace with your ID "test_1383157519886", // conversionId 1378710000000L, // timeStamp "ACTION", // type "", // state 3000L, // quantityMillis -1L, // revenueMicros ""); // currencyCode private static List<Conversion> updateConversionFromKeyword(List<Conversion> conversions, Long criterionId, String conversionId, Long timeStamp, String type, String state, Long quantity, Long revenue, String currency ) { Conversion conversion = new Conversion() .setCriterionId(criterionId) .setConversionId(conversionId) .setConversionTimestamp(BigInteger.valueOf(timeStamp)) .setType(type); // Only add these fields if the value is not empty greater than -1. if(!state.isEmpty()) conversion.setState(state); if (quantity > -1L) { conversion.setQuantityMillis(quantity); } if (revenue > -1L) { conversion.setRevenueMicros(revenue); if (!currency.isEmpty()) { conversion.setCurrencyCode(currency); } else { System.err.println(String.format( "Can't add conversion %s. It specifies revenue but no currency.", conversion.getConversionId())); return conversions; } } conversions.add(conversion); return conversions; }
Python
def update_conversion(service): """Change the timestamp of a conversion. Use only the keyword id (criterionId) to identify the conversion. Args: service: An authorized Doubleclicksearch service. See Set Up Your Application. """ request = service.conversion().update( body= { 'conversion': [{ 'criterionId': '43700004289911004', // Replace with your ID 'conversionId': 'test_1383157519886', 'conversionTimestamp': '1378760000000', 'type': 'ACTION', 'quantityMillis': '1000' }] } ) pprint.pprint(request.execute())
Search Ads 360-Antworten verarbeiten
Die Antwort auf eine Updateanfrage entspricht der Antwort auf eine Anfrage zum Einfügen: In Search Ads 360 wird nur dann ein Erfolg angezeigt, wenn alle Conversions in der Anfrage erfolgreich aktualisiert wurden.
Wenn die Anfrage erfolgreich war, enthält die Antwort die vollständige interne Search Ads 360-Darstellung für jede aktualisierte Conversion, z. B. die Kampagnen-ID, die Anzeigengruppen-ID und die Keyword-ID (Kriteriens-ID).
Wenn die Validierung oder der Upload eines oder mehrerer Updates fehlschlägt, enthält die Antwort Fehlermeldungen für jedes fehlgeschlagene Update. Die Antwort enthält keine Meldungen zu Conversions, die erfolgreich aktualisiert wurden. Weitere Informationen zu diesen Fehlermeldungen finden Sie unter Search Ads 360-Antworten für Insert-Anfragen verarbeiten.