টার্গেটিং সেট করুন

টার্গেটিং অপশন , অ্যাসাইন করা টার্গেটিং অপশন , এবং লাইন আইটেম পরিষেবাগুলি সবই ডিসপ্লে ও ভিডিও 360 এপিআই-এ লাইন আইটেম টার্গেটিং সেট করার জন্য ব্যবহার করা হয়৷ এই পৃষ্ঠাটি বর্ণনা করে এবং উদাহরণ দেয় কিভাবে উপলব্ধ টার্গেটিং বিকল্পগুলি খুঁজে বের করা যায়, লাইন আইটেমগুলিতে টার্গেটিং বিকল্পগুলি বরাদ্দ করা যায় এবং নির্ধারিত টার্গেটিং বিকল্পগুলিকে তালিকাভুক্ত করতে এবং সম্পাদনা করতে লাইন আইটেমগুলিতে বাল্ক অপারেশন চালানো হয়৷

উপলব্ধ টার্গেটিং বিকল্প খুঁজুন

টার্গেটিং বিকল্পগুলি ব্যবহারকারী-নির্দিষ্ট ভেরিয়েবল, বিদ্যমান লক্ষ্যযোগ্য সত্তা বা পূর্ব-বিদ্যমান বিকল্পগুলি পছন্দসই লক্ষ্যযুক্ত দর্শকদের সংজ্ঞায়িত করতে ব্যবহার করে। পূর্ব-বিদ্যমান বিকল্পগুলিকে হয় enum মান বা টার্গেটিং বিকল্প আইডি ব্যবহার করে চিহ্নিত করা হয়, টার্গেটিং প্রকারের উপর নির্ভর করে। লক্ষ্যযোগ্য সত্তাগুলিকে তাদের সত্তা আইডি ব্যবহার করে চিহ্নিত করা হয়। Display & Video 360 API ব্যবহার করে টার্গেটিং বিকল্প আইডি এবং সত্তা আইডি পাওয়া যেতে পারে।

সেট 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 ব্যবহার করে লক্ষ্য করা যেতে পারে। এই অবস্থানগুলির প্রতিটির একটি সংশ্লিষ্ট টার্গেটিং বিকল্প আইডি আছে।

এই টার্গেটিং বিকল্প আইডিগুলি টার্গেটিং বিকল্প পরিষেবার মাধ্যমে পুনরুদ্ধার করা যেতে পারে। টার্গেটিং প্রকারের উপর নির্ভর করে, পুনরুদ্ধার দুটি উপায়ের একটিতে করা হয়:

  • স্বতন্ত্র পুনরুদ্ধার বা বিস্তৃত তালিকা : বেশিরভাগ লক্ষ্যমাত্রার ধরনগুলির জন্য বিকল্পগুলি পুনরুদ্ধার করা যেতে পারে 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 এর জন্য সম্ভাব্য টার্গেটিং বিকল্পগুলির একটি তালিকা কীভাবে পুনরুদ্ধার করবেন তার একটি উদাহরণ এখানে রয়েছে:

জাভা

// 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));

পাইথন

# 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']

পিএইচপি

// 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
);

লক্ষ্যযোগ্য সত্তার তালিকা করুন

একটি বিদ্যমান লক্ষ্যযোগ্য সত্তা ব্যবহার করে একটি লাইন আইটেম লক্ষ্য করার জন্য, আপনার সেই সত্তার আইডি প্রয়োজন৷ লক্ষ্যযোগ্য সত্তা, যেমন চ্যানেল , সম্মিলিত শ্রোতা , এবং ইনভেন্টরি সোর্স গ্রুপ , ডিসপ্লে এবং ভিডিও 360 API-তে তাদের নিজস্ব পরিষেবার মাধ্যমে পুনরুদ্ধারযোগ্য।

প্রতিটি পরিষেবার নিজস্ব get এবং list পদ্ধতি আছে। একটি প্রদত্ত বিজ্ঞাপনদাতার অধীনে একটি সত্তা উপলব্ধ রয়েছে তা নিশ্চিত করতে get পদ্ধতি ব্যবহার করুন৷ একটি প্রদত্ত বিজ্ঞাপনদাতার কাছে উপলব্ধ সেই সংস্থান প্রকারের সমস্ত সত্তা আবিষ্কার করতে list পদ্ধতিটি ব্যবহার করুন এবং তাই, সেই বিজ্ঞাপনদাতার অধীনে একটি লাইন আইটেমকে লক্ষ্য নির্ধারণে ব্যবহার করা যেতে পারে৷

লক্ষ্যযোগ্য সত্তাগুলির একটি উপসেটও API এর মাধ্যমে পরিচালিত হতে পারে। এটি সংশ্লিষ্ট পরিষেবাতে create এবং patch পদ্ধতির মাধ্যমে করা হয়, সেইসাথে সত্তাগুলিতে তালিকাভুক্ত পৃথক মানগুলির জন্য পরিষেবাগুলি, যেমন ইনভেন্টরি উত্স , নেতিবাচক কীওয়ার্ড এবং অবস্থানগুলি

POI টার্গেটিং বিকল্প আইডি তৈরি করুন

TARGETING_TYPE_POI এর অধীনে আগ্রহের টার্গেটিং বিকল্পগুলির নাম দেওয়া পয়েন্টগুলি targetingTypes.targetingOptions.search ব্যবহার করে পুনরুদ্ধার করা যেতে পারে। এছাড়াও, আপনি নির্দিষ্ট অক্ষাংশ-দ্রাঘিমাংশ স্থানাঙ্কগুলিকে লক্ষ্য করতে বেসপোক TARGETING_TYPE_POI টার্গেটিং বিকল্প আইডি তৈরি করতে পারেন৷

একটি POI টার্গেটিং বিকল্প আইডি তৈরি করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অক্ষাংশ-দ্রাঘিমাংশ স্থানাঙ্ক পুনরুদ্ধার করুন (যেমন: "40.7414691, -74.003387")
  2. ষষ্ঠ দশমিক স্থানে বৃত্তাকার স্থানাঙ্কের মান (যেমন: "40.741469, -74.003387")
  3. স্থানাঙ্কের মানগুলি থেকে দশমিক স্থানগুলি সরান (যেমন: "40741469, -74003387")
  4. একটি সেমিকোলন দ্বারা পৃথক করে একটি একক স্ট্রিং তৈরি করতে দুটি মানকে সংযুক্ত করুন (যেমন: "40741469;-74003387")

একটি TARGETING_TYPE_POI নির্ধারিত টার্গেটিং বিকল্প তৈরি করার সময় ফলস্বরূপ স্ট্রিংটি একটি targetingOptionId হিসাবে ব্যবহার করা যেতে পারে।

তৈরি করার পরে, নির্ধারিত টার্গেটিং বিকল্প রিসোর্সের targetingOptionId এবং assignedTargetingOptionId ক্ষেত্রগুলি আপডেট করা হবে, একটি সেমিকোলন এবং আলফানিউমেরিক হ্যাশ যুক্ত করে।

একটি টার্গেটিং বিকল্প বরাদ্দ করুন

একটি লাইন আইটেমের জন্য নির্ধারিত টার্গেটিং একটি অ্যাসাইন করা টার্গেটিং বিকল্প হিসাবে উপস্থাপন করা হয়। আপনি অ্যাসাইন করা টার্গেটিং অপশন পরিষেবা ব্যবহার করে এই সত্তাগুলি পরিচালনা করতে পারেন৷ একটি অ্যাসাইন করা টার্গেটিং বিকল্প তৈরি করা সেই টার্গেটিং বিশদগুলি মূল লাইন আইটেমে প্রয়োগ করে৷ একটি বিদ্যমান অ্যাসাইন করা টার্গেটিং বিকল্প মুছে ফেলা সেই টার্গেটিংকে সরিয়ে দেয়।

নির্ধারিত টার্গেটিং বিকল্প তৈরি করতে advertisers.lineItems.targetingTypes.assignedTargetingOptions.create ব্যবহার করুন। নির্ধারিত টার্গেটিং অপশন রিসোর্সের details ক্ষেত্রে টার্গেটিং প্যারামিটারগুলি নির্দিষ্ট করুন যা এর উদ্দেশ্যমূলক টার্গেটিং প্রকারের সাথে মিলে যায়।

টার্গেটিং টাইপের TARGETING_TYPE_BROWSER এর একটি অ্যাসাইন করা টার্গেটিং বিকল্প কীভাবে তৈরি করবেন তার একটি উদাহরণ এখানে দেওয়া হল:

জাভা

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

পাইথন

# 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"])

পিএইচপি

// 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-এ টার্গেটিং সম্পর্কিত বেশ কয়েকটি জটিল নিয়ম রয়েছে৷ এগুলিকে ডিসপ্লে এবং ভিডিও 360 এপিআই-এ প্রয়োগ করা হয়েছে নির্ধারিত লক্ষ্যবস্তু বিকল্প তৈরিতে ফিরে আসা ত্রুটিগুলির মাধ্যমে৷ API দ্বারা প্রত্যাবর্তিত ত্রুটি লঙ্ঘন নির্দিষ্ট করবে।

ত্রুটিগুলি বেশিরভাগই একটি লাইন আইটেমের জন্য নির্ধারিত বিদ্যমান টার্গেটিং দ্বারা সৃষ্ট হয়। একটি লাইন আইটেমকে বরাদ্দ করা প্রদত্ত টার্গেটিং ধরণের সমস্ত টার্গেটিং বিকল্পগুলি পুনরুদ্ধার করতে advertisers.lineItems.targetingTypes.assignedTargetingOptions.list ব্যবহার করুন, সীমাবদ্ধতার কারণে পছন্দসই টার্গেটিং সম্ভব কিনা তা মূল্যায়ন করুন এবং advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete . কোনো অবাঞ্ছিত টার্গেটিং আগে আবার কাঙ্ক্ষিত অ্যাসাইন করা টার্গেটিং বিকল্প তৈরি করার চেষ্টা করে।

YouTube এবং অংশীদারদের লক্ষ্য করার ত্রুটি

YouTube এবং অংশীদারদের প্রচারাভিযানের জন্য বিশেষভাবে টার্গেট করা Display & 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 পরিষেবাতে উপলব্ধ৷
  • একটি একক সংস্থানের অধীনে একাধিক টার্গেটিং প্রকার জুড়ে টার্গেটিং বিকল্পগুলি পুনরুদ্ধার বা সম্পাদনা করতে রিসোর্স-ওয়াইড টার্গেটিং পদ্ধতি ব্যবহার করুন। এগুলি partners , advertisers , advertisers.campaigns , এবং advertisers.insertionOrders পরিষেবাগুলিতে পাওয়া যায় এবং নাম দেওয়া হয় listAssignedTargetingOptions বা editAssignedTargetingOptions

আপনি যদি একটি লাইন আইটেমের বর্তমান টার্গেটিং এর একটি সম্পূর্ণ ভিউ চান, একটি লাইন আইটেমে একটি প্রাক-সেট টার্গেটিং কনফিগারেশন প্রয়োগ করতে চান, বা একই সাথে একটি লাইন আইটেমের টার্গেটিংয়ে একাধিক পরিবর্তন করতে চান, এই টার্গেটিং পদ্ধতিগুলি ব্যবহার করার কথা বিবেচনা করুন৷

বাল্ক টার্গেটিং তালিকা

advertisers.lineItems.bulkListAssignedTargetingOptions বিভিন্ন টার্গেটিং প্রকার জুড়ে এক বা একাধিক লাইন আইটেমের জন্য নির্ধারিত সমস্ত টার্গেটিং দেখার একটি উপায় প্রদান করে। এটি অন্য কোনো list পদ্ধতির অনুরূপভাবে কাজ করে। আপনি TargetingType বা Inheritance দ্বারা ফলাফল ফিল্টার করতে filter ক্যোয়ারী প্যারামিটার ব্যবহার করতে পারেন।

অভিভাবক অংশীদার বা বিজ্ঞাপনদাতা দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত একটি লাইন আইটেমের জন্য নির্ধারিত সমস্ত টার্গেটিং বিকল্পগুলি কীভাবে তালিকাভুক্ত করা যায় তার একটি উদাহরণ এখানে দেওয়া হল:

জাভা

// 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));

পাইথন

# 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']

পিএইচপি

// 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 এক বা একাধিক লাইন আইটেম থেকে বিভিন্ন টার্গেটিং ধরনের একাধিক টার্গেটিং বিকল্প যোগ এবং অপসারণের একটি উপায় প্রদান করে।

পদ্ধতিটি DeleteAssignedTargetingOptionsRequests এবং CreateAssignedTargetingOptionsRequests এর একটি তালিকা নেয়। একটি একক অনুরোধ অবজেক্ট একই টার্গেটিং টাইপের একাধিক অ্যাসাইন করা টার্গেটিং অপশন মুছে ফেলা বা তৈরি করতে পারে।

যদি একটি নির্দিষ্ট টার্গেটিং বিকল্পের মুছে ফেলার চেষ্টা করা বা তৈরি করা একটি লাইন আইটেমের জন্য একটি ত্রুটি সৃষ্টি করে, তাহলে সেই লাইন আইটেমের জন্য বাল্ক অ্যাকশন পরিত্যক্ত করা হয়। অনুরোধটি সফলভাবে-আপডেট করা লাইন আইটেমগুলির একটি তালিকা প্রদান করে, সেইসাথে আপডেট করতে ব্যর্থ হওয়া লাইন আইটেমগুলির তালিকা এবং প্রাসঙ্গিক ত্রুটিগুলি

এখানে এক বা একাধিক লাইন আইটেমের জন্য বরাদ্দ করা টার্গেটিং বিকল্পগুলিকে কীভাবে বাল্ক সম্পাদনা করতে হয় তার একটি উদাহরণ দেওয়া হয়েছে মুছে ফেলার জন্য নির্ধারিত টার্গেটিং বিকল্পগুলির তালিকা দেওয়া এবং তৈরি করার জন্য টার্গেটিং বিকল্পগুলি:

জাভা

// 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());
  }
}

পাইথন

# 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"]))

পিএইচপি

// 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');
}