Ciblage

La gestion du ciblage des ressources est une fonctionnalité centrale du programme l'API Video 360. Le ciblage peut être attribué à plusieurs types de ressources et utilise un certain nombre d'autres ressources et espaces d'ID. Cette page détaille les limites à noter et pratiques à mettre en œuvre lorsque vous adoptez le Ciblage attribué par l'API Video 360 Services d'options.

Utiliser l'héritage du ciblage

Le ciblage attribué à certaines ressources peut être hérité par leur enfant ressources. Les options de ciblage héritées par une ressource enfant peuvent être récupérées, non modifiables au niveau de la ressource enfant. Cela permet d'activer les paramètres de brand safety autre ciblage à appliquer à l'ensemble d'un partenaire ou d'un annonceur.

Le chemin d'héritage est illustré dans le schéma ci-dessous:

Schéma de l'héritage du ciblage

Comme indiqué dans le diagramme, certains niveaux de ciblage n'acceptent qu'un sous-ensemble types de ciblage. Certaines options de ciblage ne peuvent donc pas être définies sur une valeur plus élevée. et héritées, mais vous devez les définir à un niveau inférieur.

Héritage dans YouTube et Ressources pour les partenaires

L'héritage du ciblage n'est pas reflété pour YouTube et Ressources pour les partenaires Display & l'API Video 360. Les ciblages hérités par les groupes d'annonces ne seront pas récupérables au niveau du AdGroup et au ciblage YouTube attribuées aux ressources parentes ne seront pas héritées par les ressources enfants.

Pour récupérer tous les paramètres de ciblage fonctionnels d'un groupe d'annonces, vous devez doit récupérer les options de ciblage attribuées au groupe d'annonces, le un élément de campagne parent et l'annonceur parent.

Tenir compte du ciblage défini lors de la création de l'élément de campagne

À l'exception des options de ciblage héritées, la plupart des ciblages ne peuvent être attribués après la création d'un élément de campagne. Cependant, certains types de ciblage un sous-ensemble de valeurs par défaut attribué aux éléments de campagne lors de leur création. Ces types de ciblage sont les suivants:

Tentative de création ou de suppression d'options de ciblage attribuées qui n'existent pas renvoie une erreur. C'est pourquoi nous vous recommandons de connaître la suite complète de ciblage attribué à vos éléments de campagne lors de leur création. Si vous devez récupérer attribué à un élément de campagne pour différents types de ciblage, utilisez advertisers.lineItems.bulkListAssignedTargetingOptions

En outre, certains paramètres sont définis par défaut lorsqu'aucune option de ciblage est attribué à la ressource. Par exemple, si une ressource n'a pas de TARGETING_TYPE_AUTHORIZED_SELLER_STATUS définie, c'est-à-dire qu'elle utilise le modèle Vendeurs et revendeurs" état.

Ne vous attendez pas à un "ciblage par défaut" automatique

InDisplay et le ciblage défini au niveau de la campagne ou de l'ordre d'insertion ne sont pas immédiatement transmises à leurs éléments de campagne enfants. Ce ciblage est appelé "ciblage par défaut" et sert de modèle de ciblage qui s'applique aux éléments de campagne créés par la suite dans l'interface utilisateur.

Sur le Réseau Display et l'API Video 360, le ciblage par défaut n'est pas appliqué automatiquement les éléments de campagne créés. La création de base d'éléments de campagne ne copie aucune campagne ou au niveau de l'ordre d'insertion. Dans ce cas, le ciblage souhaité doit être sont appliquées séparément aux éléments de campagne via l'option de ciblage attribuée. create ou de modification groupée.

Les méthodes spéciales peuvent faire l'objet d'une exception. Par exemple, les éléments de campagne créés via advertisers.lineItems.generateDefault copie de l'ordre d'insertion parent, y compris le ciblage attribué. De même, les éléments de campagne créés par duplication se voient attribuer le rôle le même ciblage que celui de l'élément de campagne d'origine.

YouTube et Impossible de modifier le ciblage des partenaires

Ciblage spécifique pour YouTube et Impossible de mettre à jour les campagnes de partenaires avec le Réseau Display et l'API Video 360.

YouTube et Le ciblage des partenaires comprend l'ensemble des critères de ciblage attribués directement YouTube et les éléments de campagne et les groupes d'annonces de partenaires, ainsi que Tout ciblage des types de ciblage suivants:

  • TARGETING_TYPE_SESSION_POSITION
  • TARGETING_TYPE_YOUTUBE_CHANNEL
  • TARGETING_TYPE_YOUTUBE_VIDEO

Vous pouvez modifier ce ciblage à l'aide des campagnes l'interface utilisateur de Video 360 directement ou importer un fichier de données structurées.

Définir un ciblage d'audience avec une seule option

Pour la plupart des types de ciblage, les options de ciblage sont attribuées individuellement. Audience Le ciblage de groupe ne suit pas cette convention modulaire, mais est défini dans une seule interface, Détails du ciblage par groupe d'audience qui répertorie les ID des audiences à inclure et exclure lors de la diffusion des annonces. La assignedTargetingOptionId pour cette option de groupe d'audience, une fois attribuée, elle est toujours "audienceGroup".

Cela signifie que toute modification du ciblage par groupe d'audience doit être effectuée avant d'abord supprimer le groupe d'audience existant l'option de ciblage, puis la création d'un groupe d'audience l'option de ciblage souhaitée. Vous pouvez le faire avec une seule requête avec advertisers.lineItems.bulkEditAssignedTargetingOptions

Voici un exemple de mise à jour du ciblage d'audience Cibler des audiences Google supplémentaires:

Java

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.
BulkEditLineItemAssignedTargetingOptionsRequest requestContent =
    new BulkEditLineItemAssignedTargetingOptionsRequest();
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 (GoogleJsonResponseException 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.
BulkEditLineItemAssignedTargetingOptionsResponse response =
    service.advertisers().lineItems()
        .bulkEditLineItemAssignedTargetingOptions(
            advertiserId,
            lineItemId,
            requestContent).execute();

Python

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}
 )

# 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()

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 = {
   'deleteRequests': [
       {
         'targetingType': "TARGETING_TYPE_AUDIENCE_GROUP",
         'assignedTargetingOptionIds': [
           "audienceGroup"
         ]
       }
   ],
   'createRequests': [
       {
           'targetingType': "TARGETING_TYPE_AUDIENCE_GROUP",
           'assignedTargetingOptions': [
               {'audienceGroupDetails': updated_audience_group_details}
           ]
       }
   ]
}

# Update the audience targeting
updated_audience_targeting = service.advertisers().lineItems(
).bulkEditLineItemAssignedTargetingOptions(
   advertiserId=advertiser_id,
   lineItemId=line_item_id,
   body=bulk_edit_request
).execute()

PHP

$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_BulkEditLineItemAssignedTargetingOptionsRequest();

$audienceGroupDeleteRequests = array();

try {
    // Retrieve existing audience group targeting.
    $existingAudienceGroupTargetingOption = $this
        ->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 = $this
    ->service
    ->advertisers_lineItems
    ->bulkEditLineItemAssignedTargetingOptions(
        $advertiserId,
        $lineItemId,
        $requestBody
    );

Préparez-vous à l'abandon des options de ciblage

Les options de ciblage ne sont pas statiques et il est possible que quelques-unes d'entre elles soient abandonnées. à tout moment. Une fois obsolètes, les options de ciblage n'affectent plus l'annonce associée à un élément de campagne de l'inférence. Après l'abandon, ces options ne seront plus attribuées à la ligne existante les éléments et les requêtes qui tentent de récupérer ou d'attribuer ces options se traduiront en cas d'erreurs.

Pour éviter ces erreurs, nous vous recommandons de vérifier régulièrement les informations stockées les ID des options de ciblage. Afin de préserver votre quota, nous vous recommandons de mettre en cache les ID régulièrement utilisés. Cependant, le stockage d'ID signifie que vous ne pouvez pas qu'une option de ciblage a été abandonnée. C'est pourquoi vous devez utilisent régulièrement targetingOptions.targetingTypes.get pour récupérer tous les ID d'option de ciblage stockés pour vérifier qu'ils sont toujours avec Display & Video 360.

Consultez la page Annonces d'abandon pour en savoir plus sur les les abandons précédents et à venir.

Ne pas envoyer de requêtes simultanées mettant à jour le même élément de campagne

Tentative de mise à jour des paramètres ou du ciblage attribué d'un seul élément de campagne l'utilisation de plusieurs requêtes simultanées renvoie une erreur. Requêtes applicables incluent:

Si vous devez ajouter ou supprimer plusieurs options de ciblage attribuées pour une même sur un même élément de campagne, vous ne devez advertisers.lineItems.bulkEditAssignedTargetingOptions requête. Pour mettre à jour les paramètres et le ciblage d'un élément de campagne, la demande patch ou bulkUpdate, ainsi que afin que la seconde demande ne soit pas envoyée avant la première renvoie une réponse.