対象グループ

ほとんどのターゲティング タイプでは、 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 は 次の条件が両方とも満たされている場合に、ユーザーをターゲティングします。

  1. ユーザーがリスト内のすべてのオーディエンス グループに当てはまる includedFirstAndThirdPartyAudienceGroups または次のいずれか 1 つ以上に該当する includedGoogleAudienceGroup, includedCustomListGroup または includedCombinedAudienceGroup
  2. お客様が以下の条件に該当しない 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 フィールド。