تغییر تبدیل های موجود

برای ایجاد انواع تغییرات زیر در یک یا چند تبدیل موجود، متد Conversion.update() را فراخوانی کنید:

Search Ads 360 از تغییر موارد زیر پشتیبانی نمی کند:

  • تاریخ تبدیل.
  • نوع تبدیل
  • کلمه کلیدی یا بازدیدی که برای تبدیل نسبت داده می شود.
  • نام فعالیت یا فعالیت Floodlight.

با این حال، همیشه می‌توانید یک تبدیل موجود را به‌عنوان حذف شده علامت‌گذاری کنید و یک تبدیل جدید با تاریخ، نوع، شناسه‌های انتساب یا فعالیت Floodlight به‌روزرسانی شده آپلود کنید (حتماً یک conversionId جدید نیز مشخص کنید).

مانند Conversion.insert() ، اگر درخواست به روز رسانی شما چندین تبدیل را مشخص می کند، Search Ads 360 سعی می کند هر تبدیل را بر اساس بهترین تلاش به روز کند به جای اینکه کل دسته را به عنوان یک تراکنش همه یا هیچ به روز کند. اگر برخی از به‌روزرسانی‌ها در یک دسته با شکست مواجه شوند، ممکن است برخی دیگر همچنان موفق باشند. برای اطمینان از موفقیت آمیز بودن به روز رسانی، توصیه می کنیم پاسخ هر تبدیل به روز شده را بخوانید .

یک درخواست به روز رسانی ارسال کنید

بیشتر فیلدهایی که در یک Conversion.update() مشخص می کنید برای شناسایی تبدیل هایی که می خواهید به روز کنید استفاده می شود. برای شناسایی تبدیل موجود می توانید از یکی از تکنیک های زیر استفاده کنید:

  • clickId تبدیل را مشخص کنید
    • همه تبدیل‌های ویرایش شده باید ظرف 60 روز از زمان ایجاد شناسه کلیک باشد.
  • criterionId تبدیل (شناسه کلمه کلیدی) را مشخص کنید

هر دو تکنیک از شما می‌خواهند که conversionId ، conversionTimestamp و type تراکنش تبدیل را مشخص کنید.

به‌علاوه، اگر تبدیل اصلی revenueMicros و currencyCode یا quantityMillis را مشخص کرده است، درخواست به‌روزرسانی باید این داده‌ها را مشخص کند، حتی اگر آن را تغییر نمی‌دهید.

با کلیک روی شناسه تبدیل را شناسایی کنید

اگر یک تبدیل در ابتدا یک شناسه کلیک را مشخص کرده است، می توانید یک درخواست Conversion.update() ارسال کنید که فیلدهای زیر را مشخص می کند:

  • clickId
  • conversionId
  • conversionTimestamp
  • type
  • state (فقط اگر می خواهید وضعیت را به REMOVED یا ACTIVE تغییر دهید لازم است)
  • 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;
  }         

پایتون

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())

تبدیل با شناسه کلمه کلیدی را شناسایی کنید

اگر به شناسه کلیک دسترسی ندارید، یا اگر تبدیلی در ابتدا به یک کلمه کلیدی یا کلمه کلیدی/تبلیغ نسبت داده شده است، می توانید یک درخواست Conversion.update() ارسال کنید که فیلدهای زیر را مشخص می کند:

  • criterionId (شناسه کلمه کلیدی)
  • conversionId
  • conversionTimestamp
  • type
  • state (فقط اگر می خواهید وضعیت را به REMOVED یا ACTIVE تغییر دهید لازم است)
  • quantityMillis (فقط در صورتی که در تبدیل اصلی مشخص شده باشد)
  • revenueMicros (فقط در صورتی که در تبدیل اصلی مشخص شده باشد)
  • currencyCode (فقط در صورتی که در تبدیل اصلی مشخص شده باشد)

شما می توانید به صورت اختیاری شناسه های دیگری مانند شناسه تبلیغ تبدیل، شناسه کمپین و غیره را مشخص کنید، اما نیازی به این کار ندارید. Search Ads 360 فقط به شناسه های فهرست بالا برای شناسایی تبدیل موجود نیاز دارد.

مثال

در اینجا نمونه ای از تبدیل موجود است:

{
 "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;
   }                 

پایتون

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 برای هر تبدیل به روز شده است، مانند شناسه کمپین، شناسه گروه تبلیغات و شناسه کلمه کلیدی (معیار).

اگر یک یا چند به‌روزرسانی تأیید یا آپلود نشد، پاسخ شامل پیام‌های شکست برای هر به‌روزرسانی ناموفق است. پاسخ حاوی پیام‌هایی درباره تبدیل‌هایی که با موفقیت به‌روزرسانی شده‌اند، نیست. برای اطلاعات بیشتر درباره این پیام‌های خرابی، به پاسخ‌های Search Ads 360 برای درج درخواست‌ها مراجعه کنید.