Appelez la méthode Conversion.update()
.
pour apporter les types de modifications suivants à une ou plusieurs conversions existantes:
- Modifiez le revenu, le code de devise ou la quantité.
- Modifiez le advertiser-provided ID de commande (Order ID) et tout ID de commande variables Floodlight.
- Supprimez la conversion en modifiant la colonne
conversion.state
. deACTIVE
àREMOVED
.
Il n'est pas possible de modifier les éléments suivants dans Search Ads 360:
- Date de conversion.
- Type de conversion.
- Mot clé ou visite attribués à la conversion.
- Nom de l'activité ou de l'activité Floodlight.
Toutefois, vous pouvez toujours marquer une conversion existante comme SUPPRIMÉE et en importer une nouvelle.
avec la date, le type, les ID d'attribution ou l'activité Floodlight mis à jour (veillez à spécifier un
(nouveau conversionId
).
Comme pour Conversion.insert()
, si votre requête de mise à jour spécifie plusieurs
conversions, Search Ads 360 tente de mettre à jour chaque conversion du mieux possible
au lieu de mettre à jour l’ensemble du lot
en tant que transaction tout ou rien. Si certaines mises à jour
les lots échouent, d'autres peuvent quand même réussir. Nous vous recommandons de consulter
la réponse à chaque conversion mise à jour afin de vous assurer que la mise à jour a bien été effectuée.
Envoyer une demande de mise à jour
La plupart des champs que vous spécifiez dans un élément Conversion.update()
sont utilisés pour
identifier les conversions à mettre à jour. Vous pouvez utiliser l'une des options suivantes :
techniques pour identifier une conversion existante:
- Spécifiez le
clickId
de la conversion. <ph type="x-smartling-placeholder">- </ph>
- Toutes les conversions modifiées doivent se situer dans les 60 jours suivant la génération de l'ID de clic.
- Spécifiez le
criterionId
(ID du mot clé) de la conversion.
Ces deux techniques nécessitent que vous spécifiiez les paramètres conversionId
, conversionTimestamp
,
et la transaction type
.
De plus, si la conversion d'origine spécifiait revenueMicros
et currencyCode
ou quantityMillis
, la requête de mise à jour doit spécifier ces données même si vous
ne la modifient pas.
Identifier une conversion à l'aide de l'ID de clic
Si un ID de clic était initialement spécifié pour une conversion, vous pouvez envoyer un Conversion.update()
qui spécifie les champs suivants:
clickId
conversionId
conversionTimestamp
type
state
(obligatoire uniquement si vous souhaitez définir l'état sur SUPPRIMÉ) ou ACTIVE)quantityMillis
(uniquement si spécifié dans la conversion d'origine)revenueMicros
(uniquement si spécifié dans la conversion d'origine)currencyCode
(uniquement si spécifié dans la conversion d'origine)
Exemple
Voici un exemple de deux conversions existantes:
{ "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 requête suivante met à jour l'une des conversions de l'exemple précédent et supprime l'autre:
JSON
Notez qu'une requête Conversion.update()
utilise la méthode PUT
Méthode 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())
Identifier les conversions à l'aide de l'ID de mot clé
Si vous n'avez pas accès à un ID de clic ou si une conversion a été initialement attribuée à un
un mot clé ou un mot clé/annonce, vous pouvez envoyer une demande Conversion.update()
qui
spécifie les champs suivants:
criterionId
(ID du mot clé)conversionId
conversionTimestamp
type
state
(obligatoire uniquement si vous souhaitez définir l'état sur SUPPRIMÉ) ou ACTIVE)quantityMillis
(uniquement si spécifié dans la conversion d'origine)revenueMicros
(uniquement si spécifié dans la conversion d'origine)currencyCode
(uniquement si spécifié dans la conversion d'origine)
Vous pouvez éventuellement spécifier d'autres ID (par exemple, l'ID de l'annonce associée à la conversion, l'ID de la campagne etc., mais ce n'est pas nécessaire. Search Ads 360 n'a besoin que des ID répertoriés ci-dessus pour pour identifier une conversion existante.
Exemple
Voici un exemple de conversion existante:
{ "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 requête suivante met à jour le code temporel de la conversion:
JSON
Notez qu'une requête Conversion.update()
utilise la méthode PUT
Méthode 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())
Gérer les réponses Search Ads 360
La réponse à une requête de mise à jour est la même que la réponse à une requête d'insertion. requête: Search Ads 360 indique une réussite uniquement si toutes les conversions de la demande ont été mise à jour réussie.
Si la demande aboutit, la réponse inclut l'intégralité des ressources internes de Search Ads 360 représentation de chaque conversion mise à jour (par exemple, l'ID de campagne, l'ID du groupe d'annonces et le mot clé) (critère).
Si la validation ou l'importation d'une ou de plusieurs mises à jour échoue, la réponse inclut un échec des messages pour chaque échec de mise à jour. La réponse ne contient pas de messages sur les conversions qui a bien été mise à jour. Pour plus d'informations sur ces messages d'échec, consultez la section Gérer Réponses de Search Ads 360 pour les demandes d'insertion.