ほとんどのターゲティング タイプでは、
AssignedTargetingOption
リソース。ターゲティングタイプには
割り当てられている各ターゲティング オプションで、異なる値を指定できます(例:
TARGETING_TYPE_BROWSER
の個別のブラウザ。ご希望の場合は、
別のブラウザをターゲットにする場合は、
新しい割り当てターゲティング オプションの作成
TARGETING_TYPE_BROWSER
。同様に
特定のブラウザをターゲットにしたい場合は、そのブラウザを
割り当てられるターゲティング オプションです。
オーディエンス グループ ターゲティングは、このモジュール式の規則に従ったものではありません。代わりに、
リソースのターゲティングに関連するオーディエンス ID が、そのリソースに割り当てられます。
単一の AssignedTargetingOption
型の
TARGETING_TYPE_AUDIENCE_GROUP
。複数のオーディエンスを割り当てようとしている
ターゲティング オプションをリソースに割り当てると、エラーが返されます。このページ
割り当てられるターゲティング オプションを決定するロジックと、
既存のオーディエンス グループのターゲティングを正しく更新します。
オーディエンス グループのターゲティング ロジック
1 つのオーディエンス グループに割り当てたターゲティング オプションには
AudienceGroupAssignedTargetingOptionsDetails
オブジェクト
オーディエンス ID のリストで構成されたオーディエンス グループです。
広告の配信時に除外できます割り当てられたターゲティングの合計ターゲティング
オプションは、次の論理演算の結果です。
- すべてのタイプの個々のオーディエンス グループのオブジェクトが、 UNION で取得します
includedFirstAndThirdAudienceGroups
このフィールドには、検索されたリソースのFirstAndThirdPartyAudienceGroup
オブジェクトの場合、 INTERSECTION 別にオーディエンス グループを作成します。- ユーザーリストを表す「included」を含むすべてのオーディエンス グループ フィールド ターゲットに含めるユーザーリストのセグメントを UNION で結合します
- すべての除外オーディエンス グループのフィールドは、UNION と COMPLEMENT で結合されています 結果は、INTERSECTION による非除外ターゲティングと組み合わされます。
つまり、結果的に
AudienceGroupAssignedTargetingOptionsDetails
は
次の条件が両方とも満たされている場合に、ユーザーをターゲティングします。
- ユーザーがリスト内のすべてのオーディエンス グループに当てはまる
includedFirstAndThirdPartyAudienceGroups
または、次のいずれか 1 つ以上に該当するincludedGoogleAudienceGroup
,includedCustomListGroup
またはincludedCombinedAudienceGroup
- お客様が以下の条件に該当しない
excludedFirstAndThirdPartyAudienceGroup
またはexcludedGoogleAudienceGroup
。
オーディエンス グループのターゲティングを更新
広告申込情報のオーディエンス グループのターゲティングを更新するには、現在の
割り当てられたターゲティング オプションがある場合は、それらを削除してから新しい
必要な変更を含む割り当てられたターゲティング オプションを作成する必要があります。これにより、
単一のリクエストですべての処理を実行できます。
advertisers.lineItems.bulkEditAssignedTargetingOptions
。
行の既存のオーディエンス ターゲティングを更新する方法の例 既存のオーディエンス グループのターゲティングを取得して 編集リクエスト:
long advertiserId =advertiser-id ;
long lineItemId =line-item-id
List<Long> addedGoogleAudienceIds =
Arrays.asList(google-audience-id-to-add,... );
// Build Google Audience targeting settings objects to add to audience
// targeting.
ArrayList<GoogleAudienceTargetingSetting> newGoogleAudienceSettings =
new ArrayList<GoogleAudienceTargetingSetting>();
// Convert list of Google Audience IDs into list of settings.
for (Long googleAudienceId : addedGoogleAudienceIds) {
newGoogleAudienceSettings.add(new GoogleAudienceTargetingSetting()
.setGoogleAudienceId(googleAudienceId));
}
// Create relevant bulk edit request objects.
BulkEditAssignedTargetingOptionsRequest requestContent =
new BulkEditAssignedTargetingOptionsRequest();
requestContent.setLineItemIds(Arrays.asList(lineItemId));
AudienceGroupAssignedTargetingOptionDetails updatedAudienceGroupDetails;
ArrayList<DeleteAssignedTargetingOptionsRequest> audienceGroupDeleteRequests =
new ArrayList<DeleteAssignedTargetingOptionsRequest>();
try {
// Retrieve existing audience group targeting.
AssignedTargetingOption existingAudienceGroupTargetingOption =
service
.advertisers()
.lineItems()
.targetingTypes()
.assignedTargetingOptions()
.get(
advertiserId,
lineItemId,
"TARGETING_TYPE_AUDIENCE_GROUP",
"audienceGroup"
).execute();
// Extract existing audience group targeting details.
updatedAudienceGroupDetails =
existingAudienceGroupTargetingOption.getAudienceGroupDetails();
// Build and add delete request for existing audience group targeting.
ArrayList<String> deleteAudienceGroupAssignedTargetingIds =
new ArrayList<String>();
deleteAudienceGroupAssignedTargetingIds.add("audienceGroup");
audienceGroupDeleteRequests
.add(new DeleteAssignedTargetingOptionsRequest()
.setTargetingType("TARGETING_TYPE_AUDIENCE_GROUP")
.setAssignedTargetingOptionIds(
deleteAudienceGroupAssignedTargetingIds
)
);
} catch (Exception e) {
updatedAudienceGroupDetails =
new AudienceGroupAssignedTargetingOptionDetails();
}
// Set delete requests in edit request.
requestContent.setDeleteRequests(audienceGroupDeleteRequests);
// Construct new group of Google Audiences to include in targeting.
GoogleAudienceGroup updatedIncludedGoogleAudienceGroup =
updatedAudienceGroupDetails.getIncludedGoogleAudienceGroup();
if (updatedIncludedGoogleAudienceGroup != null) {
List<GoogleAudienceTargetingSetting> updatedGoogleAudienceSettings =
updatedIncludedGoogleAudienceGroup.getSettings();
updatedGoogleAudienceSettings.addAll(newGoogleAudienceSettings);
updatedIncludedGoogleAudienceGroup
.setSettings(updatedGoogleAudienceSettings);
} else {
updatedIncludedGoogleAudienceGroup = new GoogleAudienceGroup();
updatedIncludedGoogleAudienceGroup.setSettings(newGoogleAudienceSettings);
}
// Add new Google Audience group to audience group targeting details.
updatedAudienceGroupDetails
.setIncludedGoogleAudienceGroup(updatedIncludedGoogleAudienceGroup);
// Create new targeting option to assign.
AssignedTargetingOption newAudienceGroupTargeting =
new AssignedTargetingOption();
newAudienceGroupTargeting
.setAudienceGroupDetails(updatedAudienceGroupDetails);
// Build audience group targeting create request and add to list of create
// requests.
ArrayList<AssignedTargetingOption> createAudienceGroupAssignedTargetingOptions =
new ArrayList<AssignedTargetingOption>();
createAudienceGroupAssignedTargetingOptions.add(newAudienceGroupTargeting);
ArrayList<CreateAssignedTargetingOptionsRequest> targetingCreateRequests =
new ArrayList<CreateAssignedTargetingOptionsRequest>();
targetingCreateRequests.add(new CreateAssignedTargetingOptionsRequest()
.setTargetingType("TARGETING_TYPE_AUDIENCE_GROUP")
.setAssignedTargetingOptions(
createAudienceGroupAssignedTargetingOptions
)
);
// Set create requests in edit request.
requestContent.setCreateRequests(targetingCreateRequests);
// Configure and execute the bulk list request.
BulkEditAssignedTargetingOptionsResponse response =
service.advertisers().lineItems()
.bulkEditAssignedTargetingOptions(
advertiserId,
requestContent).execute();
// Print the line item IDs that successfully updated.
if (response.getUpdatedLineItemIds() != null && !response.getUpdatedLineItemIds().isEmpty()) {
System.out.printf(
"Targeting configurations for the following line item IDs were updated: %s.\n",
Arrays.toString(response.getUpdatedLineItemIds().toArray()));
}
// Print the line item IDs the failed to update.
if (response.getFailedLineItemIds() != null && !response.getFailedLineItemIds().isEmpty()) {
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());
}
}
advertiser_id =advertiser-id
line_item_id =line-item-id
added_google_audiences = [google-audience-id-to-add,... ]
# Build Google Audience targeting settings objects to create.
new_google_audience_targeting_settings = []
for google_audience_id in added_google_audiences:
new_google_audience_targeting_settings.append(
{'googleAudienceId': google_audience_id}
)
try:
# Retrieve any existing line item audience targeting.
retrieved_audience_targeting = service.advertisers().lineItems(
).targetingTypes().assignedTargetingOptions().get(
advertiserId=advertiser_id,
lineItemId=line_item_id,
targetingType="TARGETING_TYPE_AUDIENCE_GROUP",
assignedTargetingOptionId="audienceGroup"
).execute()
except Exception:
print("Error retrieving existing audience targeting. Assuming no "
"existing audience targeting.")
retrieved_audience_targeting = {}
updated_audience_group_details = {}
# Copy over any existing audience targeting.
if 'audienceGroupDetails' in retrieved_audience_targeting:
updated_audience_group_details = retrieved_audience_targeting[
'audienceGroupDetails']
# Append the new Google Audience IDs to any existing positive Google
# audience targeting.
if 'includedGoogleAudienceGroup' in updated_audience_group_details:
updated_audience_group_details[
'includedGoogleAudienceGroup']['settings'].extend(
new_google_audience_targeting_settings)
else:
updated_audience_group_details['includedGoogleAudienceGroup'] = {
'settings': new_google_audience_targeting_settings
}
# Build bulk edit request.
bulk_edit_request = {
'lineItemIds': [line_item_id],
'deleteRequests': [
{
'targetingType': "TARGETING_TYPE_AUDIENCE_GROUP",
'assignedTargetingOptionIds': [
"audienceGroup"
]
}
],
'createRequests': [
{
'targetingType': "TARGETING_TYPE_AUDIENCE_GROUP",
'assignedTargetingOptions': [
{'audienceGroupDetails': updated_audience_group_details}
]
}
]
}
# Update the audience targeting
response = service.advertisers().lineItems(
).bulkEditAssignedTargetingOptions(
advertiserId=advertiser_id,
body=bulk_edit_request
).execute()
# Print the line item IDs the successfully updated.
if 'updatedLineItemIds' in response:
print("Targeting configurations for the following line item IDs were updated: %s"
% response['updatedLineItemIds'])
# Print the line item IDs the failed to update.
if 'failedLineItemIds' in response:
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"]))
$advertiserId =advertiser-id ;
$lineItemId =line-item-id ;
$addedGoogleAudienceIds = array(google-audience-id-to-add,... );
// Convert list of Google Audience IDs into list of Google Audience
// settings.
$newGoogleAudienceSettings = array();
foreach ($addedGoogleAudienceIds as $googleAudienceId) {
$newSetting =
new Google_Service_DisplayVideo_GoogleAudienceTargetingSetting();
$newSetting->setGoogleAudienceId($googleAudienceId);
$newGoogleAudienceSettings[] = $newSetting;
}
// Create a bulk edit request.
$requestBody =
new Google_Service_DisplayVideo_BulkEditAssignedTargetingOptionsRequest();
$requestBody->setLineItemIds([$lineItemId]);
$audienceGroupDeleteRequests = array();
try {
// Retrieve existing audience group targeting.
$existingAudienceGroupTargetingOption = $service
->advertisers_lineItems_targetingTypes_assignedTargetingOptions
->get(
$advertiserId,
$lineItemId,
'TARGETING_TYPE_AUDIENCE_GROUP',
'audienceGroup'
);
// Extract existing audience group targeting details.
$updatedAudienceGroupDetails =
$existingAudienceGroupTargetingOption
->getAudienceGroupDetails();
// Build and add delete request for existing audience group
// targeting.
$deleteAudienceGroupAssignedTargetingIds = array();
$deleteAudienceGroupAssignedTargetingIds[] = "audienceGroup";
$audienceGroupDeleteRequest =
new Google_Service_DisplayVideo_DeleteAssignedTargetingOptionsRequest();
$audienceGroupDeleteRequest
->setTargetingType('TARGETING_TYPE_AUDIENCE_GROUP');
$audienceGroupDeleteRequest
->setAssignedTargetingOptionIds(
$deleteAudienceGroupAssignedTargetingIds
);
$audienceGroupDeleteRequests[] = $audienceGroupDeleteRequest;
} catch (\Exception $e) {
$updatedAudienceGroupDetails =
new Google_Service_DisplayVideo_AudienceGroupAssignedTargetingOptionDetails();
}
// Set delete requests in edit request.
$requestBody->setDeleteRequests($audienceGroupDeleteRequests);
// Construct new group of Google Audiences to include in targeting.
$updatedIncludedGoogleAudienceGroup = $updatedAudienceGroupDetails
->getIncludedGoogleAudienceGroup();
if (!empty($updatedIncludedGoogleAudienceGroup)) {
// Get existing settings.
$updatedGoogleAudienceSettings =
$updatedIncludedGoogleAudienceGroup->getSettings();
// Add new Google Audiences to existing list.
$updatedGoogleAudienceSettings = array_merge(
$updatedGoogleAudienceSettings,
$newGoogleAudienceSettings
);
// Set updated Google Audience list.
$updatedIncludedGoogleAudienceGroup
->setSettings($updatedGoogleAudienceSettings);
} else {
// Create new Google Audience group.
$updatedIncludedGoogleAudienceGroup =
new Google_Service_DisplayVideo_GoogleAudienceGroup();
// Set list of new Google Audiences for targeting.
$updatedIncludedGoogleAudienceGroup
->setSettings($newGoogleAudienceSettings);
}
// Add new Google Audience group to audience group targeting details.
$updatedAudienceGroupDetails
->setIncludedGoogleAudienceGroup(
$updatedIncludedGoogleAudienceGroup
);
// Create new targeting option to assign.
$newAudienceGroupTargeting =
new Google_Service_DisplayVideo_AssignedTargetingOption();
$newAudienceGroupTargeting
->setAudienceGroupDetails($updatedAudienceGroupDetails);
// Build audience group targeting create request and add to list of
// create requests.
$createAudienceGroupAssignedTargetingOptions = array();
$createAudienceGroupAssignedTargetingOptions[] =
$newAudienceGroupTargeting;
$createAudienceGroupTargetingRequest =
new Google_Service_DisplayVideo_CreateAssignedTargetingOptionsRequest();
$createAudienceGroupTargetingRequest->setTargetingType(
"TARGETING_TYPE_AUDIENCE_GROUP"
);
$createAudienceGroupTargetingRequest->setAssignedTargetingOptions(
$createAudienceGroupAssignedTargetingOptions
);
$createRequests[] = $createAudienceGroupTargetingRequest;
// Set create requests in edit request.
$requestBody->setCreateRequests($createRequests);
// Call the API, editing the assigned targeting options for the
// identified line item.
$response = $service
->advertisers_lineItems
->bulkEditAssignedTargetingOptions(
$advertiserId,
$requestBody
);
// Print the line item IDs the successfully updated.
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);
}
}
// Print the line item IDs the 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());
}
}
オーディエンス ターゲティングを最適化する
ディスプレイとビデオ 360 は、 最適化されたターゲティングにより、選択したオーディエンスを新規ユーザーや関連性の高いユーザーに表示 機能をご覧ください。
最適化されたターゲティングは広告申込情報レベルで設定でき、
LineItem
リソースの targetingExpansion
フィールド。