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.state
zACTIVE
naREMOVED
.
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:
-
dsConversionId
Wycofanie:dsConversionID
nie będzie już obsługiwany w interfejsie Search Ads 360 Reporting API (nazywanymconversion.id
) ani w interfejsie raportowania (nazywanym „identyfikatorem konwersji”). -
conversionId
Wymagania:conversionId
stanie 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_id
Ta wartość odpowiada wartościconversionId
wymaganej 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
clickId
konwersji.- Wszystkie edytowane konwersje muszą być w ciągu 60 dni od wygenerowania identyfikatora kliknięcia.
- Podaj
criterionId
konwersji (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:
clickId
conversionId
conversionTimestamp
type
state
(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)conversionId
conversionTimestamp
type
state
(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.