ตั้งค่าการกําหนดเป้าหมาย

ตัวเลือกการกำหนดเป้าหมาย ตัวเลือกการกำหนดเป้าหมายที่กำหนด และ บริการรายการโฆษณาทั้งหมดจะใช้ร่วมกับการตั้งค่า การกำหนดเป้าหมายรายการโฆษณาในเครือข่ายดิสเพลย์และ API ของวิดีโอ 360 หน้านี้อธิบายและแสดงตัวอย่าง ของวิธีหาตัวเลือกการกำหนดเป้าหมายที่มีอยู่ กำหนดตัวเลือกการกำหนดเป้าหมายให้กับบรรทัด รายการ และดำเนินการแบบกลุ่มกับรายการโฆษณาเพื่อแสดงรายการและแก้ไขที่มอบหมาย ตัวเลือกการกำหนดเป้าหมาย

ค้นหาตัวเลือกการกำหนดเป้าหมายที่มี

ตัวเลือกการกำหนดเป้าหมายใช้ตัวแปรที่ผู้ใช้ระบุ ซึ่งมีอยู่แล้วที่กำหนดเป้าหมายได้ หรือตัวเลือกที่มีอยู่เดิมเพื่อกำหนดผู้ชมเป้าหมายที่ต้องการ ตัวเลือกที่มีอยู่ก่อนแล้วจะถูกระบุโดยใช้ค่า enum หรือตัวเลือกการกำหนดเป้าหมาย ทั้งนี้ขึ้นอยู่กับประเภทการกำหนดเป้าหมาย ระบุเอนทิตีที่กำหนดเป้าหมายได้โดยใช้ รหัสเอนทิตี ดูรหัสตัวเลือกการกำหนดเป้าหมายและรหัสเอนทิตีได้โดยใช้ ดิสเพลย์และ API ของวิดีโอ 360

ใช้ค่า enum ที่ตั้งไว้

ตัวเลือกการกำหนดเป้าหมายสำหรับประเภทการกำหนดเป้าหมายต่อไปนี้จะกำหนดโดยใช้ ประเภท Enum เฉพาะ:

TargetingType ค่าแจกแจง
TARGETING_TYPE_AGE_RANGE AgeRange
TARGETING_TYPE_CONTENT_INSTREAM_POSITION ContentInstreamPosition
TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION ContentOutstreamPosition
TARGETING_TYPE_DEVICE_TYPE DeviceType
TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION ContentRatingTier
TARGETING_TYPE_ENVIRONMENT Environment
TARGETING_TYPE_EXCHANGE Exchange
TARGETING_TYPE_GENDER Gender
TARGETING_TYPE_HOUSEHOLD_INCOME HouseholdIncome
TARGETING_TYPE_NATIVE_CONTENT_POSITION NativeContentPosition
TARGETING_TYPE_OMID Omid
TARGETING_TYPE_PARENTAL_STATUS ParentalStatus
TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION SensitiveCategory
TARGETING_TYPE_VIDEO_PLAYER_SIZE VideoPlayerSize
TARGETING_TYPE_VIEWABILITY Viewability

เวอร์ชันสตริงของค่า enum ที่เกี่ยวข้องสามารถใช้เพื่อระบุรายการที่มีอยู่ แหล่งข้อมูล AssignedTargetingOption รายการจากประเภทการกำหนดเป้าหมายเหล่านี้และ ที่มีอยู่ในช่อง assignedTargetingOptionIdAlias คุณสามารถ ให้ใช้ค่าชื่อแทนนี้แทน assignedTargetingOptionId เมื่อ เรียกหรือลบตัวเลือกการกำหนดเป้าหมายที่กำหนด

เรียกดูรหัสตัวเลือกการกำหนดเป้าหมาย

ประเภทการกำหนดเป้าหมายที่ใช้ตัวเลือกที่มีอยู่แล้วจะได้รับการกำหนดโดยใช้ รหัสตัวเลือกการกำหนดเป้าหมาย

เช่น มีตำแหน่งบนหน้าจอที่จำกัด สามารถกำหนดเป้าหมายโดยใช้ประเภทการกำหนดเป้าหมาย TARGETING_TYPE_ON_SCREEN_POSITION ได้ ชิ้น ในตำแหน่งเหล่านี้มีรหัสตัวเลือกการกำหนดเป้าหมายที่เกี่ยวข้อง

รหัสตัวเลือกการกำหนดเป้าหมายเหล่านี้จะดึงมาได้ผ่าน บริการตัวเลือกการกำหนดเป้าหมาย ขึ้นอยู่กับ ประเภทการกำหนดเป้าหมาย การดึงข้อมูลจะทำได้ด้วยวิธีใดวิธีหนึ่งจาก 2 วิธีต่อไปนี้

  • การดึงข้อมูลทีละรายการหรือรายการครบถ้วน: การดึงข้อมูลตัวเลือกสำหรับ ประเภทการกำหนดเป้าหมายส่วนใหญ่สามารถทำได้โดยใช้วิธี get และ list ใช้ targetingTypes.targetingOptions.get เพื่อเรียกดูรายละเอียดของ ตัวเลือกการกำหนดเป้าหมายที่ระบุโดยประเภทการกำหนดเป้าหมายและรหัสตัวเลือกการกำหนดเป้าหมาย ใช้ targetingTypes.targetingOptions.list เพื่อแสดงทั้งหมดที่ใช้ได้ ประเภทการกำหนดเป้าหมายที่ระบุ
  • การค้นหา: ตัวเลือกสำหรับประเภทการกำหนดเป้าหมายตามสถานที่ (TARGETING_TYPE_GEO_REGION, TARGETING_TYPE_POI และ TARGETING_TYPE_BUSINESS_CHAIN) ต้องดึงข้อมูลโดยใช้เมธอด search ใช้ targetingTypes.targetingOptions.search เพื่อเรียกข้อมูล ตัวเลือกการกำหนดเป้าหมายประเภทหนึ่งๆ ที่ตรงกับสตริงการค้นหาที่ระบุ

นี่คือตัวอย่างวิธีเรียกข้อมูลรายการการกำหนดเป้าหมายที่เป็นไปได้ ตัวเลือกสำหรับประเภทการกำหนดเป้าหมาย TARGETING_TYPE_BROWSER

Java

// Configure the list request.
TargetingOptions.List request =
   service
       .targetingTypes()
       .targetingOptions()
       .list("TARGETING_TYPE_BROWSER")
       .setAdvertiserId(advertiser-id);

// Create the response and nextPageToken variables.
ListTargetingOptionsResponse response;
String nextPageToken = null;

do {
 // Create and execute the list request.
 response = request.setPageToken(nextPageToken).execute();

 // Check if the response is empty.
 if (response.isEmpty()) {
   System.out.print("List request returned no Targeting Options");
   break;
 }

 // Iterate over retrieved targeting options.
 for (TargetingOption option : response.getTargetingOptions()) {
   System.out.printf(
       "Targeting Option ID: %s, Browser Display Name: '%s'\n",
       option.getTargetingOptionId(), option.getBrowserDetails().getDisplayName());
 }

 // Update the next page token.
 nextPageToken = response.getNextPageToken();
} while (!Strings.isNullOrEmpty(nextPageToken));

Python

# Create the page token variable.
next_page_token = ""

while True:
  # Request the targeting options list.
  response = service.targetingTypes() \
    .targetingOptions().list(
      advertiserId=advertiser-id,
      targetingType="TARGETING_TYPE_BROWSER",
      pageToken=next_page_token
  ).execute()

  # Check if response is empty.
  if not response:
    print("List request returned no Targeting Options")
    break

  # Iterate over retrieved targeting options.
  for option in response['targetingOptions']:
    print("Targeting Option ID: %s, Browser Display Name: %s"
          % (option['targetingOptionId'], option['browserDetails']['displayName']))

  # Break out of loop if there is no next page.
  if 'nextPageToken' not in response:
    break

  # Update the next page token.
  next_page_token = response['nextPageToken']

PHP

// Create the page token variable.
$nextPageToken = null;

do {
    // Build the query parameters object for the request.
    $optParams = array(
        'advertiserId' => advertiser-id,
        'pageToken' => $nextPageToken
    );

    // Call the API, getting the browser targeting options for the
    // identified advertiser.
    $response = $this
        ->service
        ->targetingTypes_targetingOptions
        ->listTargetingTypesTargetingOptions(
            'TARGETING_TYPE_BROWSER',
            $optParams
        );

    // Print the resulting targeting options.
    if (!empty($response->getTargetingOptions())) {
        foreach ($response->getTargetingOptions() as $option) {
            printf(
                'Targeting Option ID: %s, Browser Display Name: %s\n',
                $option['targetingOptionId'],
                $option['browserDetails']['displayName']
            );
        }
    } else {
        print('No targeting options returned\n');
    }

    // Update the next page token.
    $nextPageToken = $response->getNextPageToken();
} while (
    !empty($response->getTargetingOptions())
    && $nextPageToken
);

แสดงรายการเอนทิตีที่กำหนดเป้าหมายได้

ในการกำหนดเป้าหมายรายการโฆษณาโดยใช้เอนทิตีที่กำหนดเป้าหมายได้ที่มีอยู่ คุณต้องมี ของเอนทิตีนั้น เอนทิตีที่กำหนดเป้าหมายได้ เช่น แชแนล กลุ่มเป้าหมายแบบรวม และ กลุ่มแหล่งที่มาของพื้นที่โฆษณาจะดึงข้อมูลผ่าน บริการของตนในโฆษณาแบบดิสเพลย์และ API ของวิดีโอ 360

แต่ละบริการมีเมธอด get และ list ของตัวเอง ใช้เมธอด get เพื่อ ยืนยันว่าชิ้นงานมีไว้ภายใต้ผู้ลงโฆษณาหนึ่งๆ ใช้ list เพื่อค้นหาเอนทิตีทั้งหมดของประเภททรัพยากรนั้นที่พร้อมใช้งานสำหรับ ผู้ลงโฆษณาที่กำหนด ดังนั้นคุณจึงสามารถใช้ในการกำหนดการกำหนดเป้าหมายให้กับ รายการโฆษณาภายใต้ผู้ลงโฆษณานั้น

นอกจากนี้ ชุดย่อยของเอนทิตีที่กำหนดเป้าหมายได้ยังจัดการผ่าน API ได้อีกด้วย นี่คือ ดำเนินการผ่านเมธอด create และ patch ในบริการที่เกี่ยวข้อง รวมทั้งบริการสำหรับค่าแต่ละค่าที่แสดงอยู่ในเอนทิตี เช่น แหล่งที่มาของพื้นที่โฆษณา คีย์เวิร์ดเชิงลบ และ สถานที่

รหัสตัวเลือกการกำหนดเป้าหมายจุดที่น่าสนใจ

ตัวเลือกการกำหนดเป้าหมายจุดที่น่าสนใจที่มีชื่อ ภายใต้ TARGETING_TYPE_POI สามารถ ดึงข้อมูลมาโดยใช้ targetingTypes.targetingOptions.search ใน นอกจากนี้ คุณยังสามารถสร้างรหัสตัวเลือกการกำหนดเป้าหมาย TARGETING_TYPE_POI ตามความต้องการของลูกค้า กำหนดเป้าหมายพิกัดละติจูด-ลองจิจูดเฉพาะ

ทำตามขั้นตอนต่อไปนี้เพื่อสร้างรหัสตัวเลือกการกำหนดเป้าหมายจุดที่น่าสนใจ

  1. ดึงพิกัดละติจูด-ลองจิจูด (เช่น "40.7414691, -74.003387")
  2. ปัดเศษค่าพิกัดเป็นทศนิยมหกหลัก (เช่น "40.741469, -74.003387")
  3. นำตำแหน่งทศนิยมออกจากค่าพิกัด (เช่น "40741469, -74003387")
  4. นำทั้ง 2 ค่ามาเชื่อมต่อเข้าด้วยกันเพื่อสร้างสตริงเดียว โดยคั่นด้วยเครื่องหมายเซมิโคลอน (เช่น "40741469;-74003387")

สตริงที่ได้สามารถใช้เป็น targetingOptionId เมื่อสร้าง TARGETING_TYPE_POI ตัวเลือกการกำหนดเป้าหมายที่กำหนด

เมื่อสร้าง ช่อง targetingOptionId และ assignedTargetingOptionId ของ ระบบจะอัปเดตทรัพยากรตัวเลือกการกำหนดเป้าหมายที่กำหนด โดยใส่เครื่องหมายเซมิโคลอนต่อท้าย และแฮชแบบตัวอักษรและตัวเลขคละกัน

กำหนดตัวเลือกการกำหนดเป้าหมาย

การกำหนดเป้าหมายที่กำหนดให้กับรายการโฆษณาจะแสดงเป็น ตัวเลือกการกำหนดเป้าหมายที่กำหนด คุณสามารถจัดการเอนทิตีเหล่านี้ได้โดยใช้ บริการตัวเลือกการกำหนดเป้าหมายที่กำหนด การสร้างตัวเลือกการกำหนดเป้าหมายที่กำหนดจะนำรายละเอียดการกำหนดเป้าหมายเหล่านั้นไปใช้กับ รายการโฆษณาหลัก การลบตัวเลือกการกำหนดเป้าหมายที่กำหนดไว้ที่มีอยู่จะเป็นการลบตัวเลือกนั้นออก การกำหนดเป้าหมาย

ใช้ advertisers.lineItems.targetingTypes.assignedTargetingOptions.create เพื่อสร้างตัวเลือกการกำหนดเป้าหมายที่กำหนด ระบุพารามิเตอร์การกำหนดเป้าหมายใน ช่อง details ของทรัพยากรตัวเลือกการกำหนดเป้าหมายที่มอบหมายซึ่ง สอดคล้องกับประเภทการกำหนดเป้าหมายที่ต้องการ

ตัวอย่างวิธีสร้างตัวเลือกการกำหนดเป้าหมายที่กำหนดมีดังนี้ ของประเภทการกำหนดเป้าหมาย TARGETING_TYPE_BROWSER:

Java

// Create an AssignedTargetingOption object of the
// browser targeting type.
AssignedTargetingOption assignedTargetingOption =
   new AssignedTargetingOption()
       .setBrowserDetails(
           new BrowserAssignedTargetingOptionDetails()
               .setTargetingOptionId(targeting-option-id));

// Configure the create request.
AssignedTargetingOptions.Create request =
   service
       .advertisers()
       .lineItems()
       .targetingTypes()
       .assignedTargetingOptions()
       .create(
           advertiser-id,
           line-item-id,
           "TARGETING_TYPE_BROWSER",
           assignedTargetingOption);

// Send the request.
AssignedTargetingOption response = request.execute();

// Display the new assigned targeting option.
System.out.printf("AssignedTargetingOption %s was created.",
   response.getName());

Python

# Create a assigned targeting option object.
assigned_targeting_option_obj = {
    'browserDetails': {
        'targetingOptionId': targeting-option-id
    }
}

# Create the assigned targeting option.
assigned_targeting_option = service.advertisers().lineItems()\
  .targetingTypes().assignedTargetingOptions().create(
    advertiserId=advertiser-id,
    lineItemId=line-item-id,
    targetingType="TARGETING_TYPE_BROWSER",
    body=assigned_targeting_option_obj
).execute()

# Display the new assigned targeting option.
print("Assigned Targeting Option %s was created."
      % assigned_targeting_option["name"])

PHP

// Create a assigned targeting option object.
$assignedTargetingOption =
    new Google_Service_DisplayVideo_AssignedTargetingOption();

// Create and set browser details.
$details =
    new Google_Service_DisplayVideo_BrowserAssignedTargetingOptionDetails();
$details->setTargetingOptionId(targeting-option-id);
$assignedTargetingOption->setBrowserDetails($details);

// Call the API, creating the browser assigned targeting option for the
// given line item.
$result = $this
    ->service
    ->advertisers_lineItems_targetingTypes_assignedTargetingOptions
    ->create(
        advertiser-id,
        line-item-id,
        'TARGETING_TYPE_BROWSER',
        $assignedTargetingOption
    );

printf(
    'Assigned Targeting Option %s was created.\n',
    $result['name']
);

ข้อผิดพลาด

ข้อผิดพลาดในการกำหนดค่าการกำหนดเป้าหมาย

มีกฎที่ซับซ้อนมากมายเกี่ยวกับ การกำหนดเป้าหมายในเครือข่ายดิสเพลย์และ วิดีโอ 360 มีการบังคับใช้ใน จอแสดงผลและ Video 360 API ผ่านข้อผิดพลาดที่เกิดขึ้นขณะสร้างตัวเลือกการกำหนดเป้าหมายที่กำหนด ข้อผิดพลาดที่ API แสดงผลจะระบุการละเมิด

ข้อผิดพลาดส่วนใหญ่เกิดจากการกำหนดเป้าหมายที่มีอยู่ซึ่งกำหนดให้กับรายการโฆษณา ใช้ advertisers.lineItems.targetingTypes.assignedTargetingOptions.list เพื่อดึงตัวเลือกการกำหนดเป้าหมายทั้งหมดของประเภทการกำหนดเป้าหมายหนึ่งๆ ที่กำหนดให้กับบรรทัด ให้ประเมินว่าการกำหนดเป้าหมายที่ต้องการสามารถทำได้ภายใต้ข้อจำกัดหรือไม่ และใช้ advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete เพื่อลบการกำหนดเป้าหมายที่ไม่ต้องการ ก่อนที่จะพยายามสร้างการกำหนดเป้าหมาย ตัวเลือกการกำหนดเป้าหมายที่กำหนด

YouTube และ ข้อผิดพลาดในการกำหนดเป้าหมายพาร์ทเนอร์

การกำหนดเป้าหมายเฉพาะสำหรับ YouTube และ ไม่สามารถอัปเดตแคมเปญพาร์ทเนอร์โดยใช้ จอแสดงผลและ Video 360 API และพยายามดำเนินการดังกล่าวจะทำให้เกิดข้อผิดพลาด

YouTube และ การกำหนดเป้าหมายพาร์ทเนอร์ประกอบด้วยการกำหนดเป้าหมายทั้งหมดที่กำหนดให้กับ YouTube และ รายการโฆษณาและกลุ่มโฆษณาของพาร์ทเนอร์ การกำหนดเป้าหมายประเภทใดก็ได้ต่อไปนี้

  • TARGETING_TYPE_SESSION_POSITION
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

ข้อผิดพลาดในการเกิดขึ้นพร้อมกัน

พยายามอัปเดตการตั้งค่าหรือการกำหนดเป้าหมายของรายการโฆษณาเดียวโดยใช้ คำขอหลายรายการพร้อมกันจะทำให้เกิดข้อผิดพลาด

หากคุณต้องการเพิ่มหรือนำตัวเลือกการกำหนดเป้าหมายที่กำหนดไว้หลายรายการออกสำหรับรายการเดียว รายการโฆษณา ในขณะเดียวกัน คุณควรใช้ คำขอแก้ไขแบบเป็นกลุ่ม หากคุณต้องการอัปเดตรายการโฆษณา การตั้งค่าและการกำหนดเป้าหมาย ให้advertisers.lineItems.patch และการกำหนดเป้าหมายที่เกี่ยวข้องตามลำดับเพื่อให้ จะไม่มีการส่งคำขอจนกว่าคำขอแรกจะส่งคืนการตอบกลับ

การดำเนินการกำหนดเป้าหมายแบบกลุ่มและแบบทั่วทั้งทรัพยากร

คุณสามารถใช้วิธีการกำหนดเป้าหมายจำนวนมากและทั้งทรัพยากรเพื่อจัดการการมอบหมายได้ ตัวเลือกการกำหนดเป้าหมายในประเภทการกำหนดเป้าหมายต่างๆ ได้แก่

  • ใช้วิธีการกำหนดเป้าหมายจำนวนมากเพื่อดึงข้อมูลหรือแก้ไขตัวเลือกการกำหนดเป้าหมายใน การกำหนดเป้าหมายหลายประเภทและอยู่ภายใต้ทรัพยากรจำนวนมาก คุณสามารถเรียกข้อมูล การกำหนดค่าการกำหนดเป้าหมายเต็มรูปแบบของรายการโฆษณาหลายรายการที่ใช้ advertisers.lineItems.bulkListAssignedTargetingOptions หรือทำการอัปเดตแบบเดียวกันกับการกำหนดเป้าหมาย สำหรับรายการโฆษณาหลายรายการโดยใช้ advertisers.lineItems.bulkEditAssignedTargetingOptions ตัวเลือกเหล่านี้มีให้บริการในadvertisers.lineItemsเท่านั้น service.
  • ใช้วิธีการกำหนดเป้าหมายแบบทั่วทั้งทรัพยากรเพื่อเรียกข้อมูลหรือแก้ไขตัวเลือกการกำหนดเป้าหมาย ในการกำหนดกลุ่มเป้าหมายหลายประเภทภายใต้แหล่งข้อมูลเดียว ตัวเลือกเหล่านี้พร้อมใช้งาน ใน partners, advertisers, advertisers.campaigns และ advertisers.insertionOrders บริการและตั้งชื่อ listAssignedTargetingOptions หรือ editAssignedTargetingOptions

หากคุณต้องการดูการกำหนดเป้าหมายปัจจุบันของรายการโฆษณาในมุมมองแบบสมบูรณ์ ให้ใช้ การกำหนดค่าการกำหนดเป้าหมายที่ตั้งไว้ล่วงหน้าให้กับรายการโฆษณา หรือต้องการทำการเปลี่ยนแปลงหลายรายการ ในการกำหนดเป้าหมายของรายการโฆษณา พร้อมกัน ให้พิจารณาใช้การกำหนดเป้าหมายเหล่านี้

การกำหนดเป้าหมายรายการแบบเป็นกลุ่ม

advertisers.lineItems.bulkListAssignedTargetingOptions เป็นวิธีดูการกำหนดเป้าหมายทั้งหมดที่กำหนดให้กับรายการโฆษณาอย่างน้อย 1 รายการ ในการกำหนดเป้าหมายประเภทต่างๆ ทำงานคล้ายกับ list อื่นๆ คุณสามารถใช้พารามิเตอร์การค้นหา filter เพื่อกรอง ผลการค้นหาโดย TargetingType หรือ Inheritance

นี่คือตัวอย่างวิธีแสดงตัวเลือกการกำหนดเป้าหมายทั้งหมดที่กำหนดให้กับรายการโฆษณา ที่ได้รับมาจากพาร์ทเนอร์หลักหรือผู้ลงโฆษณา

Java

// Configure the bulk list request.
LineItems.BulkListAssignedTargetingOptions request =
    service.advertisers().lineItems()
        .bulkListAssignedTargetingOptions(advertiser-id);

// Set Line Items to retrieve targeting for.
request.setLineItemIds(line-item-ids);

// Set filter to only return inherited assigned targeting options.
request.setFilter(
    "inheritance=\"INHERITED_FROM_ADVERTISER\" OR inheritance=\"INHERITED_FROM_PARTNER\"");

// Create the response and nextPageToken variables.
BulkListAssignedTargetingOptionsResponse response;
String nextPageToken = null;

do {
  // Set page token and execute the list request.
  response = request.setPageToken(nextPageToken).execute();

  // Check if the response is empty.
  if (response.isEmpty()) {
    System.out.print("Bulk list request returned no Assigned Targeting Options");
    break;
  }

  // Iterate over retrieved line item assigned targeting option wrapper objects.
  for (LineItemAssignedTargetingOption lineItemAssignedTargetingOption
      : response.getLineItemAssignedTargetingOptions()) {
    System.out.printf(
        "Assigned Targeting Option %s found\n",
        lineItemAssignedTargetingOption.getAssignedTargetingOption().getName());
  }

  // Update the next page token.
  nextPageToken = response.getNextPageToken();
} while (!Strings.isNullOrEmpty(nextPageToken));

Python

# Create the page token variable.
next_page_token = ""

while True:
  # Execute the list request.
  response = service.advertisers().lineItems() \
    .bulkListAssignedTargetingOptions(
      advertiserId=advertiser-id,
      lineItemIds=line-item-ids,
      filter="inheritance=\"INHERITED_FROM_ADVERTISER\" OR "
             "inheritance=\"INHERITED_FROM_PARTNER\"",
      pageToken=next_page_token
  ).execute()

  # Check if response is empty.
  if not response:
    print("Bulk list request returned no Assigned Targeting Options")
    break

  # Iterate over retrieved assigned targeting options.
  for lineItemAssignedTargetingOption in response['lineItemAssignedTargetingOptions']:
    print("Assigned Targeting Option %s found"
          % (lineItemAssignedTargetingOption['assignedTargetingOption']['name']))

  # Break out of loop if there is no next page.
  if 'nextPageToken' not in response:
    break

  # Update the next page token.
  next_page_token = response['nextPageToken']

PHP

// Create the page token variable.
$nextPageToken = null;

do {
    // Build the query parameters object for the request.
    $optParams = array(
        'lineItemIds' => line-item-ids,
        'filter' => "inheritance=\"INHERITED_FROM_ADVERTISER\" OR "
            . "inheritance=\"INHERITED_FROM_PARTNER\"",
        'pageToken' => $nextPageToken
    );

    // Call the API, getting all the assigned targeting options for the
    // identified line item.
    $response = $service
        ->advertisers_lineItems
        ->bulkListAssignedTargetingOptions(
            advertiser-id,
            $optParams
    );

    // Print the returned assigned targeting options.
    if (!empty($response->getLineItemAssignedTargetingOptions())) {
        foreach ($response->getLineItemAssignedTargetingOptions() as $option) {
            printf('Assigned Targeting Option %s found\n', $option->getAssignedTargetingOption()['name']);
        }
    } else {
        print('No targeting options returned\n');
    }

    // Update the next page token.
    $nextPageToken = $response->getNextPageToken();
} while (
    !empty($response->getLineItemAssignedTargetingOptions())
    && $nextPageToken);

แก้ไขการกำหนดเป้าหมายจำนวนมาก

advertisers.lineItems.bulkEditAssignedTargetingOptions ให้ตัวเลือกในการเพิ่มและลบตัวเลือกการกำหนดเป้าหมายต่างๆ ของการกำหนดเป้าหมายต่างๆ ประเภทต่างๆ จากรายการโฆษณา อย่างน้อย 1 รายการพร้อมกันได้

เมธอดจะใช้รายการ DeleteAssignedTargetingOptionsRequests และรายการของ CreateAssignedTargetingOptionsRequests คำขอเดียว สามารถแสดงการลบหรือการสร้างการกำหนดเป้าหมายที่กำหนดให้กับหลายรายการ ในประเภทการกำหนดเป้าหมายเดียวกัน

หากการพยายามลบหรือการสร้างตัวเลือกการกำหนดเป้าหมายที่กำหนดก่อให้เกิด สำหรับรายการโฆษณา ระบบจะละทิ้งการดำเนินการแบบกลุ่มสำหรับรายการโฆษณานั้น คำขอแสดงผล รายการของบรรทัดที่อัปเดตสำเร็จเรียบร้อยแล้ว รายการ รวมถึงชุดรายการโฆษณาที่ดำเนินการไม่สำเร็จ อัปเดตและฟีเจอร์ที่เกี่ยวข้อง

ต่อไปนี้เป็นตัวอย่างวิธีแก้ไขตัวเลือกการกำหนดเป้าหมายที่มอบหมายแบบเป็นกลุ่มสำหรับ รายการโฆษณาพร้อมรายการของตัวเลือกการกำหนดเป้าหมายที่กำหนดเพื่อลบและกำหนดเป้าหมาย ตัวเลือกในการสร้าง

Java

// Create a bulk edit request.
BulkEditAssignedTargetingOptionsRequest requestContent =
    new BulkEditAssignedTargetingOptionsRequest();

// Set line item IDs in edit request.
requestContent.setLineItemIds(line-item-ids);

// Build delete request list.
ArrayList<DeleteAssignedTargetingOptionsRequest> deleteRequests =
    new ArrayList<DeleteAssignedTargetingOptionsRequest>();

// Add browser assigned targeting option IDs to delete request list.
deleteRequests.add(new DeleteAssignedTargetingOptionsRequest()
    .setTargetingType("TARGETING_TYPE_BROWSER")
    .setAssignedTargetingOptionIds(delete-browser-assigned-targeting-ids));

// Add device make or model assigned targeting option IDs to delete request list.
deleteRequests.add(new DeleteAssignedTargetingOptionsRequest()
    .setTargetingType("TARGETING_TYPE_DEVICE_MAKE_MODEL")
    .setAssignedTargetingOptionIds(
        delete-device-make-model-assigned-targeting-ids));

// Set delete requests in edit request.
requestContent.setDeleteRequests(deleteRequests);

// Build create request list.
ArrayList<CreateAssignedTargetingOptionsRequest> createRequests =
    new ArrayList<CreateAssignedTargetingOptionsRequest>();

// Create browser assigned targeting option create request.
CreateAssignedTargetingOptionsRequest createBrowserTargetingRequest =
    new CreateAssignedTargetingOptionsRequest();
createBrowserTargetingRequest.setTargetingType("TARGETING_TYPE_BROWSER");

// Create and set list of browser assigned targeting options.
ArrayList<AssignedTargetingOption> createBrowserAssignedTargetingOptions =
    new ArrayList<AssignedTargetingOption>();
for (String targetingOptionId : create-browser-assigned-targeting-ids) {
  createBrowserAssignedTargetingOptions.add(new AssignedTargetingOption()
      .setBrowserDetails(
          new BrowserAssignedTargetingOptionDetails()
              .setTargetingOptionId(targetingOptionId)));
}
createBrowserTargetingRequest
    .setAssignedTargetingOptions(createBrowserAssignedTargetingOptions);

// Add browser assigned targeting options to list of create requests.
createRequests.add(createBrowserTargetingRequest);

// Set create requests in edit request.
requestContent.setCreateRequests(createRequests);

// Configure the bulk edit request.
LineItems.BulkEditAssignedTargetingOptions request =
    service.advertisers().lineItems()
        .bulkEditAssignedTargetingOptions(
            advertiser-id,
            requestContent);

// Execute bulk edit request.
BulkEditAssignedTargetingOptionsResponse response = request.execute();

// Check if any line items updated successfully.
if (response.getUpdatedLineItemIds() == null || response.getUpdatedLineItemIds().isEmpty()) {
  System.out.println("No line items were updated successfully.");
} else {
  System.out.printf(
      "Targeting configurations for the following line item IDs were updated: %s.\n",
      Arrays.toString(response.getUpdatedLineItemIds().toArray()));
}

// Check if any line items failed to update.
if (response.getFailedLineItemIds() == null || response.getFailedLineItemIds().isEmpty()) {
  System.out.println("No line items failed to update.");
} else {
  // Print the line items that failed to update.
  System.out.printf(
      "Targeting configurations for the following line item IDs failed to update: %s.\n",
      Arrays.toString(response.getFailedLineItemIds().toArray()));

  // Print errors thrown for failed updates.
  System.out.println("The failed updates were caused by the following errors:");
  for (Status error : response.getErrors()) {
    System.out.printf("Error Code: %s, Message: %s\n", error.getCode(), error.getMessage());
  }
}

Python

# Build assigned targeting option objects to create.
createBrowserAssignedTargetingOptions = []
for targeting_id in create-browser-assigned-targeting-ids:
  createBrowserAssignedTargetingOptions.append(
      {'browserDetails': {'targetingOptionId': targeting_id}}
  )

# Create a bulk edit request.
bulk_edit_line_item_request = {
    'lineItemIds': line-item-ids,
    'deleteRequests': [
        {
            'targetingType': 'TARGETING_TYPE_BROWSER',
            'assignedTargetingOptionIds':
              delete-browser-assigned-targeting-ids
        },
        {
            'targetingType': 'TARGETING_TYPE_DEVICE_MAKE_MODEL',
            'assignedTargetingOptionIds':
              delete-device-make-model-assigned-targeting-ids
        }
    ],
    'createRequests': [
        {
            'targetingType': 'TARGETING_TYPE_BROWSER',
            'assignedTargetingOptions':
              createBrowserAssignedTargetingOptions
        }
    ]
}

# Edit the line item targeting.
response = service.advertisers().lineItems()\
  .bulkEditAssignedTargetingOptions(
    advertiserId=advertiser-id,
    body=bulk_edit_line_item_request
).execute()

# Print successfully updated line items.
if 'updatedLineItemIds' not in response:
  print("No line items were updated successfully.")
else:
  print("Targeting configurations for the following line item IDs were updated: %s"
        % response['updatedLineItemIds'])

# Print line items that failed to update.
if 'failedLineItemIds' not in response:
  print("No line items failed to update.")
else:
  print("Targeting configurations for the following line item IDs failed to update: %s"
        % response['failedLineItemIds'])
  if 'errors' in response:
    print("The failed updates were caused by the following errors:")
    for error in response["errors"]:
      print("Error code: %s, Message: %s" % (error["code"], error["message"]))

PHP

// Create delete request list.
$deleteRequests = array();

// Create and add browser assigned targeting option IDs to delete request list.
$deleteBrowserTargetingRequest =
    new Google_Service_DisplayVideo_DeleteAssignedTargetingOptionsRequest();
$deleteBrowserTargetingRequest->setTargetingType(
    "TARGETING_TYPE_BROWSER"
);
$deleteBrowserTargetingRequest->setAssignedTargetingOptionIds(
    delete-browser-assigned-targeting-ids
);
$deleteRequests[] = $deleteBrowserTargetingRequest;

// Create and add device assigned targeting option IDs to delete request list.
$deleteDeviceTargetingRequest =
    new Google_Service_DisplayVideo_DeleteAssignedTargetingOptionsRequest();
$deleteDeviceTargetingRequest->setTargetingType(
    "TARGETING_TYPE_DEVICE_MAKE_MODEL"
);
$deleteDeviceTargetingRequest->setAssignedTargetingOptionIds(
    delete-device-make-model-assigned-targeting-ids
);
$deleteRequests[] = $deleteDeviceTargetingRequest;

// Create create request list.
$createRequests = array();

// Create and populate list of browser assigned targetion options to create.
$createBrowserAssignedTargetingOptions = array();
foreach (create-browser-assigned-targeting-ids as $optionId) {
    $option = new Google_Service_DisplayVideo_AssignedTargetingOption();
    $details =
        new Google_Service_DisplayVideo_BrowserAssignedTargetingOptionDetails();
    $details->setTargetingOptionId($optionId);

    $option->setBrowserDetails($details);
    $createBrowserAssignedTargetingOptions[] = $option;
}

// Create and add browser assigned targeting option create request to create
// request list.
$createBrowserTargetingRequest =
    new Google_Service_DisplayVideo_CreateAssignedTargetingOptionsRequest();
$createBrowserTargetingRequest->setTargetingType(
    "TARGETING_TYPE_BROWSER"
);
$createBrowserTargetingRequest->setAssignedTargetingOptions(
    $createBrowserAssignedTargetingOptions
);
$createRequests[] = $createBrowserTargetingRequest;

// Create a bulk edit request and assign create and delete request lists.
$body =
    new Google_Service_DisplayVideo_BulkEditAssignedTargetingOptionsRequest();
$body->setLineItemIds(line-item-ids);
$body->setCreateRequests($createRequests);
$body->setDeleteRequests($deleteRequests);

// Call the API, editing the assigned targeting options for the identified
// line item.
$response = $service
    ->advertisers_lineItems
    ->bulkEditAssignedTargetingOptions(
        advertiser-id,
        $body
    );

// Print successfully updated line items.
if (!empty($response->getUpdatedLineItemIds())) {
    printf('Targeting configurations for the following line item IDs were updated:\n');
    foreach ($response->getUpdatedLineItemIds() as $id) {
        printf('%s\n', $id);
    }
} else {
    print('No line items were updated successfully.\n');
}

// Print line items that failed to update.
if (!empty($response->getFailedLineItemIds())) {
    print('Targeting configurations for the following line item IDs failed to update:\n');
    foreach ($response->getFailedLineItemIds() as $id) {
        printf('%s\n', $id);
    }
    print('The failed updates were caused by the following errors:\n');
    foreach ($response->getErrors() as $error) {
        printf('Error Code: %s, Message: %s\n', $error->getCode(), $error->getMessage());
    }
} else {
    print('No line items failed to update.\n');
}