سرویسهای گزینههای هدف ، گزینههای هدف تعیینشده ، و آیتمهای خط همگی بههمراه برای تنظیم هدفگذاری مورد خط در Display & Video 360 API استفاده میشوند. این صفحه نمونههایی از نحوه یافتن گزینههای هدفیابی در دسترس، اختصاص دادن گزینههای هدفیابی به موارد خط، و اجرای عملیات انبوه بر روی آیتمهای خط برای فهرست کردن و ویرایش گزینههای هدف اختصاصیافته را شرح میدهد.
گزینه های هدف گذاری موجود را پیدا کنید
گزینه های هدف از متغیرهای مشخص شده توسط کاربر، موجودیت های قابل هدف موجود یا گزینه های از قبل موجود برای تعریف مخاطب هدف مورد نظر استفاده می کنند. بسته به نوع هدف، گزینههای از قبل موجود با استفاده از مقادیر enum یا شناسههای گزینه هدف شناسایی میشوند. موجودیت های قابل هدف با استفاده از شناسه موجودیت خود شناسایی می شوند. شناسههای گزینههای هدف و شناسههای نهاد را میتوان با استفاده از Display & Video 360 API پیدا کرد.
از مقادیر set enum استفاده کنید
گزینه های هدف برای انواع هدف زیر با استفاده از انواع enum خاص اختصاص داده می شود:
TargetingType | Enum |
---|---|
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']
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 );
نهادهای قابل هدف را فهرست کنید
برای هدف قرار دادن یک آیتم خط با استفاده از یک موجود قابل هدف موجود، به شناسه آن موجودیت نیاز دارید. نهادهای قابل هدف، مانند کانالها ، مخاطبان ترکیبی ، و گروههای منبع موجودی ، از طریق سرویسهای خود در Display & Video 360 API قابل بازیابی هستند.
هر سرویس متدهای get
و list
مخصوص به خود را دارد. از روش get
برای تأیید اینکه یک موجودیت تحت یک تبلیغ کننده خاص در دسترس است استفاده کنید. از روش list
برای کشف همه موجودیتهایی از آن نوع منبع استفاده کنید که در دسترس یک تبلیغکننده خاص هستند و بنابراین، میتوانند در اختصاص دادن هدف به یک آیتم خطی تحت آن تبلیغکننده استفاده شوند.
زیرمجموعه ای از موجودیت های قابل هدف را نیز می توان از طریق API مدیریت کرد. این کار از طریق روشهای create
و patch
در سرویس مربوطه، و همچنین سرویسهایی برای مقادیر فردی فهرستشده در موجودیها، مانند منابع موجودی ، کلمات کلیدی منفی و مکانها انجام میشود.
شناسه های گزینه هدف گذاری POI بسازید
با استفاده از targetingTypes.targetingOptions.search
میتوان نقاط مورد علاقه را در زیر TARGETING_TYPE_POI
بازیابی کرد. علاوه بر این، میتوانید شناسههای گزینه هدفگیری سفارشی TARGETING_TYPE_POI
را برای هدف قرار دادن مختصات طول و عرض جغرافیایی خاص بسازید.
این مراحل را برای ایجاد شناسه گزینه هدف گذاری POI دنبال کنید:
- بازیابی مختصات طول و عرض جغرافیایی (به عنوان مثال: "40.7414691، -74.003387")
- مقادیر مختصات را تا ششمین رقم اعشار گرد کنید (مثلاً: "40.741469، -74.003387")
- اعداد اعشار را از مقادیر مختصات حذف کنید (مثلاً "40741469، -74003387")
- دو مقدار را به هم الحاق کنید تا یک رشته واحد بسازید که با یک نقطه ویرگول از هم جدا شده اند (مثلا: "40741469;-74003387")
رشته به دست آمده را می توان به عنوان targetingOptionId
هنگام ایجاد یک گزینه هدف گذاری اختصاص داده شده به TARGETING_TYPE_POI
استفاده کرد.
پس از ایجاد، فیلدهای 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"])
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'] );
خطاها
خطاهای پیکربندی هدف گذاری
تعدادی از قوانین پیچیده در مورد هدفیابی در Display & Video 360 وجود دارد. این قوانین در Display & Video 360 API از طریق خطاهایی که هنگام ایجاد گزینه هدفگذاری اختصاص داده شده بازگردانده میشوند، اعمال میشوند. خطای بازگردانده شده توسط API، نقض را مشخص می کند.
خطاها عمدتاً به دلیل هدف گذاری موجود اختصاص داده شده به یک آیتم خط ایجاد می شوند. از advertisers.lineItems.targetingTypes.assignedTargetingOptions.list
برای بازیابی همه گزینه های هدف از یک نوع هدف معین اختصاص داده شده به یک آیتم خط، ارزیابی اینکه آیا هدف گذاری مورد نظر با توجه به محدودیت ها امکان پذیر است یا خیر، و از advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete
برای حذف استفاده کنید. هر گونه هدف گیری ناخواسته قبل از تلاش مجدد برای ایجاد گزینه هدف گذاری اختصاص داده شده مورد نظر.
خطاهای هدف گیری YouTube و شرکا
هدفیابی بهطور خاص برای کمپینهای YouTube و Partners را نمیتوان با استفاده از Display & Video 360 API بهروزرسانی کرد و تلاش برای انجام این کار منجر به خطا میشود.
هدفیابی YouTube & Partners شامل همه هدفگیریهایی است که مستقیماً به موارد و گروههای تبلیغاتی YouTube & Partners اختصاص داده میشود، و همچنین هر نوع هدفگیری از انواع هدفگذاری زیر:
-
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
دیگری عمل می کند. می توانید از پارامتر query filter
برای فیلتر کردن نتایج بر اساس TargetingType
یا Inheritance
استفاده کنید.
در اینجا مثالی از نحوه فهرست کردن همه گزینه های هدف اختصاص داده شده به یک مورد خطی که توسط شریک والد یا تبلیغ کننده به ارث رسیده است آورده شده است:
جاوا
// 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']
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
راهی برای افزودن و حذف چندین گزینه هدف گیری از انواع مختلف هدف از یک یا چند مورد خط به طور همزمان فراهم می کند.
این روش فهرستی از 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"]))
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'); }