Llama a Conversion.update()
.
para realizar los siguientes tipos de cambios en una o más conversiones existentes:
- Modifica los ingresos, el código de moneda o la cantidad.
- Modifica el advertiser-provided de pedido y cualquier ID Variables de Floodlight
- Para quitar la conversión, cambia
conversion.state
. deACTIVE
aREMOVED
.
Search Ads 360 no permite cambiar los siguientes elementos:
- Indica la fecha de conversión.
- Indica el tipo de conversión.
- La palabra clave o la visita que se atribuyeron a la conversión
- La actividad de Floodlight o el nombre de la actividad
Sin embargo, siempre puedes marcar una conversión existente como QUITADA y subir una conversión nueva.
con la fecha, el tipo, los IDs de atribución o la actividad de Floodlight actualizados (asegúrate de especificar
conversionId
también).
Al igual que con Conversion.insert()
, si tu solicitud de actualización especifica varias
conversiones, Search Ads 360 intenta actualizar cada conversión en función del mejor esfuerzo
en lugar de actualizar todo el lote
como una transacción de todo o nada. Si algunas actualizaciones en un
por lotes fallan, es posible que otros aún tengan éxito. Te recomendamos que leas
la respuesta para cada conversión actualizada a fin de garantizar que la actualización sea exitosa.
Cómo enviar una solicitud de actualización
La mayoría de los campos que especificas en un Conversion.update()
se usan para
identifica las conversiones que deseas actualizar. Puedes usar cualquiera de las siguientes opciones
Técnicas para identificar una conversión existente:
- Especifica el
clickId
de la conversión.- Todas las conversiones editadas deben ocurrir dentro de los 60 días posteriores a la generación del ID de clic.
- Especifica el
criterionId
(ID de palabra clave) de la conversión
Ambas técnicas requieren que especifiques el conversionId
, conversionTimestamp
,
y la transacción type
.
Además, si la conversión original especificó revenueMicros
y currencyCode
o quantityMillis
, la solicitud de actualización debe especificar estos datos incluso si
no lo están cambiando.
Identificar conversión según el ID de clic
Si una conversión especificó originalmente un ID de clic, puedes enviar un Conversion.update()
.
que especifique los siguientes campos:
clickId
conversionId
conversionTimestamp
type
state
(solo es obligatorio si quieres cambiar el estado a REMOVED). o ACTIVE)quantityMillis
(solo si se especifica en la conversión original)revenueMicros
(solo si se especifica en la conversión original)currencyCode
(solo si se especifica en la conversión original)
Ejemplo
A continuación, se incluye un ejemplo de dos conversiones existentes:
{ "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" }] }
La siguiente solicitud actualiza una de las conversiones del ejemplo anterior y quita el otro:
JSON
Ten en cuenta que una solicitud Conversion.update()
usa el método PUT
método 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())
Identificar conversión por ID de palabra clave
Si no tienes acceso a un ID de clic o si una conversión se atribuyó originalmente a un
palabra clave o palabra clave/anuncio, puedes enviar una solicitud Conversion.update()
que
especifica los siguientes campos:
criterionId
(ID de palabra clave)conversionId
conversionTimestamp
type
state
(solo es obligatorio si quieres cambiar el estado a REMOVED). o ACTIVE)quantityMillis
(solo si se especifica en la conversión original)revenueMicros
(solo si se especifica en la conversión original)currencyCode
(solo si se especifica en la conversión original)
También puedes especificar otros IDs, como el ID del anuncio de la conversión, el ID de la campaña y así sucesivamente, pero no es necesario. Search Ads 360 solo necesita los IDs de la lista anterior para lo siguiente: identificar una conversión existente.
Ejemplo
A continuación, presentamos un ejemplo de una conversión existente:
{ "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" }] }
La siguiente solicitud actualiza la marca de tiempo de la conversión:
JSON
Ten en cuenta que una solicitud Conversion.update()
usa el método PUT
método 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())
Controla las respuestas de Search Ads 360
La respuesta para una solicitud de actualización es la misma que la respuesta para una inserción solicitud: Search Ads 360 indica el éxito solo si todas las conversiones de la solicitud se se actualizó correctamente.
Si la solicitud se realiza correctamente, la respuesta incluirá toda la información interna de Search Ads 360. representación de cada conversión actualizada, como el ID de la campaña, el ID del grupo de anuncios y la palabra clave (criterio).
Si una o más actualizaciones no se validan o no se suben, la respuesta incluye un error. para cada actualización con errores. La respuesta no contiene mensajes sobre las conversiones que se actualizó correctamente. Para obtener más información sobre estos mensajes de error, consulta Cómo administrar Respuestas de Search Ads 360 a las solicitudes de inserción