Conversion.update()
를 호출합니다.
메서드를 사용하여 하나 이상의 기존 전환을 다음과 같이 변경할 수 있습니다.
- 수익, 통화 코드 또는 수량을 수정합니다.
- 광고의 advertiser-provided 주문 ID 및 모든 맞춤 플러드라이트 변수를 사용합니다.
conversion.state
를 변경하여 전환을 삭제합니다.ACTIVE
부터REMOVED
까지입니다.
Search Ads 360에서는 다음 항목의 변경을 지원하지 않습니다.
- 전환 날짜
- 전환 유형
- 전환에 기여한 키워드 또는 방문
- 플러드라이트 활동 또는 활동 이름입니다.
하지만 언제든지 기존 전환을 삭제됨으로 표시하고 새 전환을 업로드할 수 있습니다.
업데이트된 날짜, 유형, 기여 분석 ID 또는 플러드라이트 활동으로 대체합니다. 반드시
새 conversionId
도 포함됩니다.
Conversion.insert()
와 마찬가지로 업데이트 요청에서
Search Ads 360에서 최선의 방식으로 각 전환을 업데이트하려고 시도합니다.
전체 배치를 '전부 아니면 전무' 트랜잭션으로 업데이트하는 것이 좋습니다. 한 캠페인에서 일부 업데이트가
나머지는 여전히 성공할 수 있습니다 이 시리즈의
업데이트되었는지 확인합니다.
업데이트 요청 보내기
Conversion.update()
에 지정하는 대부분의 필드는
업데이트할 전환을 식별합니다. 다음 중 하나를 사용할 수 있습니다.
기존 전환을 식별하는 기법:
- 전환의
clickId
지정 <ph type="x-smartling-placeholder">- </ph>
- 수정된 모든 전환은 클릭 ID가 생성된 시점으로부터 60일 이내에 이루어져야 합니다.
- 전환의
criterionId
(키워드 ID) 지정
두 기법을 모두 사용하려면 전환의 conversionId
, conversionTimestamp
,
및 거래 type
.
또한 원래 전환에서 revenueMicros
및 currencyCode
를 지정한 경우
또는 quantityMillis
이면
바뀌지 않기 때문입니다.
클릭 ID로 전환 식별
처음에 전환에서 클릭 ID를 지정한 경우 Conversion.update()
를 전송할 수 있습니다.
요청을 수행합니다.
clickId
conversionId
conversionTimestamp
type
state
(상태를 삭제됨으로 변경하려는 경우에만 필요) 활성)quantityMillis
(원래 전환에 지정된 경우만)revenueMicros
(원래 전환에 지정된 경우만)currencyCode
(원래 전환에 지정된 경우만)
예
다음은 기존 전환의 두 가지 예입니다.
{ "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" }] }
다음 요청은 이전 예의 전환 중 하나를 업데이트하고 둘 다:
JSON
Conversion.update()
요청은 PUT
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" } ] }
자바
/** * 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())
키워드 ID로 전환 식별하기
클릭 ID에 액세스할 수 없거나 전환이 처음에
키워드 또는 키워드/광고의 경우 다음과 같은 Conversion.update()
요청을 보낼 수 있습니다.
다음 필드를 지정합니다.
criterionId
(키워드 ID)conversionId
conversionTimestamp
type
state
(상태를 삭제됨으로 변경하려는 경우에만 필요) 활성)quantityMillis
(원래 전환에 지정된 경우만)revenueMicros
(원래 전환에 지정된 경우만)currencyCode
(원래 전환에 지정된 경우만)
원하는 경우 전환의 광고 ID, 캠페인 ID, 이런 식으로 진행되긴 하지만 반드시 할 필요는 없습니다. Search Ads 360에서 위의 목록에 있는 ID만 있으면 기존 전환 식별
예
다음은 기존 전환의 예입니다.
{ "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" }] }
다음 요청은 전환의 타임스탬프를 업데이트합니다.
JSON
Conversion.update()
요청은 PUT
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" } ] }
자바
// 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())
Search Ads 360 응답 처리
업데이트 요청에 대한 응답은 삽입에 대한 응답과 동일합니다. 요청: Search Ads 360는 요청의 모든 전환이 이(가) 업데이트되었습니다.
요청이 성공하면 응답에 전체 Search Ads 360 내부 데이터가 포함됩니다. 캠페인 ID, 광고 그룹 ID, 키워드 등 업데이트된 각 전환의 표현 (기준) ID입니다.
하나 이상의 업데이트가 유효성 검사 또는 업로드에 실패하면 응답에 실패가 포함됩니다. 메시지가 표시됩니다. 응답에 전환에 대한 메시지가 포함되어 있지 않습니다. 확인할 수 있습니다 이러한 실패 메시지에 대한 자세한 내용은 처리 Search Ads 360 응답을 사용합니다.