Panggil Conversion.update()
untuk membuat jenis perubahan berikut pada satu atau beberapa konversi yang ada:
- Ubah pendapatan, kode mata uang, atau kuantitas.
- Ubah advertiser-provided ID pesanan dan setiap ID kustom Variabel Floodlight.
- Menghapus konversi dengan mengubah
conversion.state
dariACTIVE
hinggaREMOVED
.
Search Ads 360 tidak mendukung perubahan di kolom berikut:
- Tanggal konversi.
- Jenis konversi.
- Kata kunci atau kunjungan yang diatribusikan untuk konversi.
- Aktivitas Floodlight atau nama aktivitasnya.
Namun, Anda dapat menandai konversi yang ada sebagai DIHAPUS dan mengupload konversi baru kapan saja
dengan tanggal, jenis, ID atribusi, atau aktivitas Floodlight yang diperbarui (pastikan untuk menentukan
conversionId
yang baru juga).
Seperti halnya Conversion.insert()
, jika permintaan update Anda menentukan beberapa
konversi, Search Ads 360 akan mencoba memperbarui setiap konversi berdasarkan upaya terbaik
alih-alih memperbarui seluruh batch
sebagai transaksi {i>all-or-nothing<i}. Jika beberapa pembaruan dalam
batch gagal, yang lain
mungkin masih berhasil. Kami sarankan Anda membaca
respons untuk setiap konversi yang diperbarui guna memastikan bahwa pembaruan berhasil.
Mengirim permintaan pembaruan
Sebagian besar kolom yang Anda tentukan dalam Conversion.update()
digunakan untuk
identifikasi konversi yang ingin Anda perbarui. Anda dapat menggunakan salah satu opsi berikut
untuk mengidentifikasi konversi yang ada:
- Tentukan
clickId
konversi- Semua konversi yang diedit harus dalam waktu 60 hari sejak ID klik dibuat.
- Tentukan
criterionId
(ID kata kunci) konversi
Kedua teknik tersebut mengharuskan Anda menentukan conversionId
, conversionTimestamp
,
dan transaksi type
.
Selain itu, jika konversi asli menentukan revenueMicros
dan currencyCode
atau quantityMillis
, permintaan update harus menentukan data ini bahkan jika Anda
tidak mengubahnya.
Identifikasi konversi berdasarkan ID klik
Jika konversi awalnya menentukan ID klik, Anda dapat mengirim Conversion.update()
yang menentukan kolom berikut:
clickId
conversionId
conversionTimestamp
type
state
(hanya diperlukan jika Anda ingin mengubah status menjadi DIHAPUS atau AKTIF)quantityMillis
(hanya jika ditentukan dalam konversi asli)revenueMicros
(hanya jika ditentukan dalam konversi asli)currencyCode
(hanya jika ditentukan dalam konversi asli)
Contoh
Berikut ini contoh dari dua konversi yang ada:
{ "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" }] }
Permintaan berikut memperbarui salah satu konversi dari contoh sebelumnya dan menghapus yang lain:
JSON
Perhatikan bahwa permintaan Conversion.update()
menggunakan PUT
Metode HTTP.
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())
Mengidentifikasi konversi menurut ID kata kunci
Jika Anda tidak memiliki akses ke ID klik, atau jika konversi awalnya diatribusikan ke
kata kunci atau kata kunci/iklan, Anda dapat mengirim permintaan Conversion.update()
yang
menentukan kolom berikut:
criterionId
(ID kata kunci)conversionId
conversionTimestamp
type
state
(hanya diperlukan jika Anda ingin mengubah status menjadi DIHAPUS atau AKTIF)quantityMillis
(hanya jika ditentukan dalam konversi asli)revenueMicros
(hanya jika ditentukan dalam konversi asli)currencyCode
(hanya jika ditentukan dalam konversi asli)
Secara opsional, Anda dapat menentukan ID lain, seperti ID iklan konversi, ID kampanye, dan seterusnya, tetapi Anda tidak perlu melakukannya. Search Ads 360 hanya memerlukan ID dalam daftar di atas untuk identifikasi konversi yang ada.
Contoh
Berikut contoh konversi yang ada:
{ "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" }] }
Permintaan berikut memperbarui stempel waktu konversi:
JSON
Perhatikan bahwa permintaan Conversion.update()
menggunakan PUT
Metode HTTP.
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())
Menangani respons Search Ads 360
Respons untuk permintaan update sama dengan respons untuk penyisipan permintaan: Search Ads 360 menunjukkan keberhasilan hanya jika semua konversi dalam permintaan berhasil diperbarui.
Jika permintaan berhasil, responsnya akan menyertakan respons internal Search Ads 360 versi lengkap untuk setiap konversi yang diperbarui, seperti ID kampanye, ID grup iklan, dan kata kunci ID (kriteria).
Jika satu atau beberapa update gagal divalidasi atau diupload, responsnya akan mencakup kegagalan pesan untuk setiap pembaruan yang gagal. Respons tidak berisi pesan tentang konversi yang berhasil diperbarui. Untuk informasi selengkapnya tentang pesan kegagalan ini, lihat Menangani Respons Search Ads 360 untuk permintaan penyisipan.