Aby wprowadzić w co najmniej 1 istniejącej konwersji te zmiany:
Conversion.update()
- Zmień przychody, kod waluty lub ilość.
- Zmień identyfikator zamówienia podany przez reklamodawcę oraz wszystkie niestandardowe zmienne Floodlight.
- Usuń konwersję, zmieniając wartość parametru
conversion.statezACTIVEnaREMOVED.
Search Ads 360 nie umożliwia zmiany tych danych:
- Data konwersji.
- Typ konwersji.
- słowo kluczowe lub wizyta, do których konwersja jest przypisana;
- aktywność Floodlight lub nazwa aktywności;
Zawsze możesz jednak oznaczyć dotychczasową konwersję jako USUNIĘTA i przesłać nową konwersję z inną datą, typem, identyfikatorami atrybucji lub aktywnością Floodlight (pamiętaj, aby podać nowy identyfikator conversionId).
Podobnie jak w przypadku opcji Conversion.insert(), jeśli żądanie aktualizacji zawiera wiele konwersji, Search Ads 360 próbuje zaktualizować każdą z nich w najlepszy możliwy sposób, zamiast aktualizować cały ich zestaw jako transakcję typu wszystko albo nic. Jeśli niektóre aktualizacje w grupie się nie udadzą, inne mogą się udać. Zalecamy przeczytanie odpowiedzi w przypadku każdej zaktualizowanej konwersji, aby mieć pewność, że aktualizacja się powiodła.
(Updated 2025) Wycofanie usługi dsConversionId
Obecnie do identyfikowania i edytowania konwersji możesz używać funkcji dsConversionId lub conversionId. W III kwartale 2025 r. wycofamy pole dsConversionId. Od teraz do edycji konwersji w interfejsie Search Ads 360 Conversion API musisz używać zapytania conversionId.
Najważniejsze zmiany:
-
dsConversionIdWycofanie:dsConversionIDnie będzie już obsługiwany w interfejsie Search Ads 360 Reporting API (nazywanymconversion.id) ani w interfejsie raportowania (nazywanym „identyfikatorem konwersji”). -
conversionIdWymagania:conversionIdstanie się obowiązkowym polem do edycji konwersji za pomocą interfejsu Search Ads 360 Conversion API.
Jak uzyskać conversionId:
-
Interfejs Search Ads 360 Reporting API: możesz pobierać dane za pomocą interfejsu Search Ads 360 Reporting API.
advertiser_conversion_idTa wartość odpowiada wartościconversionIdwymaganej do edycji. -
Interfejs Search Ads 360: identyfikator konwersji u reklamodawcy znajdziesz na stronie raportowania konwersji w interfejsie Search Ads 360.
Wysyłanie prośby o aktualizację
Większość pól, które podajesz w pliku Conversion.update(), służy do identyfikowania konwersji, które chcesz zaktualizować. Istniejące konwersje możesz identyfikować za pomocą jednej z tych metod:
- Określ
clickIdkonwersji.- Wszystkie edytowane konwersje muszą być w ciągu 60 dni od wygenerowania identyfikatora kliknięcia.
- Podaj
criterionIdkonwersji (identyfikator słowa kluczowego).
W obu przypadkach musisz podać conversionId, conversionTimestamp i type konwersji.
Jeśli pierwotna konwersja zawierała wartości revenueMicros i currencyCode lub quantityMillis, żądanie aktualizacji musi zawierać te dane, nawet jeśli ich nie zmieniasz.
Identyfikowanie konwersji za pomocą identyfikatora kliknięcia
Jeśli konwersja została pierwotnie przypisana do identyfikatora kliknięcia, możesz wysłać żądanie Conversion.update(), które zawiera te pola:
clickIdconversionIdconversionTimestamptypestate(wymagane tylko wtedy, gdy chcesz zmienić stan na USUNIĘTE lub AKTYWNE)quantityMillis(tylko wtedy, gdy jest określone w pierwotnej konwersji)revenueMicros(tylko wtedy, gdy jest określone w pierwotnej konwersji)currencyCode(tylko wtedy, gdy jest określone w pierwotnej konwersji)
Przykład
Oto przykład 2 dotychczasowych konwersji:
{ "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" }] }
Poniższe żądanie aktualizuje jedną z konwersji z poprzedniego przykładu i usuwa drugą:
JSON
Pamiętaj, że żądanie Conversion.update() używa metody HTTP PUT.
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())
Identyfikowanie konwersji za pomocą identyfikatora słowa kluczowego
Jeśli nie masz dostępu do identyfikatora kliknięcia lub konwersja została pierwotnie przypisana do słowa kluczowego lub słowa kluczowego i reklamy, możesz wysłać Conversion.update() z tymi polami:
criterionId(identyfikator słowa kluczowego)conversionIdconversionTimestamptypestate(wymagane tylko wtedy, gdy chcesz zmienić stan na USUNIĘTE lub AKTYWNE)quantityMillis(tylko wtedy, gdy jest określone w pierwotnej konwersji)revenueMicros(tylko wtedy, gdy jest określone w pierwotnej konwersji)currencyCode(tylko wtedy, gdy jest określone w pierwotnej konwersji)
Opcjonalnie możesz podać inne identyfikatory, np. identyfikator reklamy konwersji, identyfikator kampanii itp., ale nie jest to konieczne. Aby zidentyfikować dotychczasową konwersję, Search Ads 360 potrzebuje tylko identyfikatorów z powyżej wymienionej listy.
Przykład
Oto przykład dotychczasowej konwersji:
{ "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" }] }
Żądanie o tym schemacie zaktualizuje sygnaturę czasową konwersji:
JSON
Pamiętaj, że żądanie Conversion.update() używa metody HTTP PUT.
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())
Obsługa odpowiedzi Search Ads 360
Odpowiedź na żądanie aktualizacji jest taka sama jak odpowiedź na żądanie wstawienia: Search Ads 360 wskazuje powodzenie tylko wtedy, gdy wszystkie konwersje w żądaniu zostały zaktualizowane.
Jeśli żądanie zakończy się powodzeniem, odpowiedź będzie zawierać pełny wewnętrzny format Search Ads 360 każdej zaktualizowanej konwersji, np. identyfikator kampanii, identyfikator grupy reklam i identyfikator słowa kluczowego (kryterium).
Jeśli weryfikacja lub przesłanie co najmniej 1 uaktualnienia się nie powiedzie, odpowiedź będzie zawierać komunikaty o błędach dotyczące każdego nieudanego uaktualnienia. Odpowiedź nie zawiera wiadomości o konwersjach, które zostały zaktualizowane. Więcej informacji o tych komunikatach o błędzie znajdziesz w sekcji Obsługa odpowiedzi Search Ads 360 w przypadku żądań wstawiania.