Etichette

Le etichette consentono di classificare le campagne, i gruppi di annunci, gli annunci e le parole chiave e utilizzare queste categorie per semplificare il flusso di lavoro in vari modi.

Questa guida illustra i passaggi necessari per:

Questa guida si concentra sulle campagne, ma puoi utilizzare lo stesso approccio per gli annunci gruppi, annunci e parole chiave. Tieni presente che l'API fornisce anche CustomerLabelService, che ti consente account amministratore per assegnare le etichette agli account secondari.

Casi d'uso

Scenari tipici di utilizzo etichette includono quanto segue:

  • Il tuo account contiene campagne che attivi solo in determinati periodi dell'anno e vuoi includerle o escluderle facilmente dai report.
  • Hai aggiunto un nuovo insieme di parole chiave al gruppo di annunci e vuoi fare un confronto le relative statistiche ad altre parole chiave del gruppo di annunci.
  • Gli utenti del tuo account Google Ads gestiscono ciascuno un sottoinsieme di campagne e tu vuoi un modo per identificare l'insieme di campagne per ogni utente.
  • L'app deve contrassegnare lo stato di determinati oggetti.

Crea etichette

Crea le etichette con l'oggetto TextLabel:

  1. Crea un'istanza TextLabel.
  2. Imposta un colore di sfondo per questo TextLabel.
  3. Inserisci il testo per questo TextLabel utilizzando il campo della descrizione.
  4. Inserisci TextLabel in un LabelOperation e invialo a LabelService.MutateLabels

Prendi nota delle nuove etichette per le query successive. Gli ID sono incorporati Campo resource_name nel MutateLabelResults restituito in MutateLabelsResponse.

Puoi anche utilizzare una richiesta LabelService.GetLabel o GoogleAdsService Search oppure SearchStream richiede di recuperare gli ID.

Assegnazione etichette

Puoi assegnare etichette a campagne, clienti, gruppi di annunci, criteri o annunci. Utilizza l'operazione Mutate nel servizio appropriato per assegnare le etichette.

Ad esempio, per assegnare etichette a una campagna, devi trasmettere una o più Da CampaignLabelOperation a CampaignLabelService.MutateCampaignLabels. Ogni CampaignLabelOperation include un CampaignLabel, che contiene questi elementi campi:

  • label: ID di un'etichetta
  • campaign: ID di una campagna

Crea un'istanza CampaignLabel per ogni coppia etichetta-campagna. Avvolgilo in CampaignLabelOperation con l'operazione create e invialo a CampaignService.MutateCampaignLabels.

Aggiungi etichette delle campagne

Di seguito è riportato un esempio di codice che mostra come aggiungere un'etichetta di campagna a un elenco di campagne:

Java

private void runExample(
    GoogleAdsClient googleAdsClient, long customerId, List<Long> campaignIds, Long labelId) {
  // Gets the resource name of the label to be added across all given campaigns.
  String labelResourceName = ResourceNames.label(customerId, labelId);

  List<CampaignLabelOperation> operations = new ArrayList<>(campaignIds.size());
  // Creates a campaign label operation for each campaign.
  for (Long campaignId : campaignIds) {
    // Gets the resource name of the given campaign.
    String campaignResourceName = ResourceNames.campaign(customerId, campaignId);
    // Creates the campaign label.
    CampaignLabel campaignLabel =
        CampaignLabel.newBuilder()
            .setCampaign(campaignResourceName)
            .setLabel(labelResourceName)
            .build();

    operations.add(CampaignLabelOperation.newBuilder().setCreate(campaignLabel).build());
  }

  try (CampaignLabelServiceClient campaignLabelServiceClient =
      googleAdsClient.getLatestVersion().createCampaignLabelServiceClient()) {
    MutateCampaignLabelsResponse response =
        campaignLabelServiceClient.mutateCampaignLabels(Long.toString(customerId), operations);
    System.out.printf("Added %d campaign labels:%n", response.getResultsCount());
    for (MutateCampaignLabelResult result : response.getResultsList()) {
      System.out.println(result.getResourceName());
    }
  }
}
      

C#

public void Run(GoogleAdsClient client, long customerId, long[] campaignIds, long labelId)
{
    // Get the CampaignLabelServiceClient.
    CampaignLabelServiceClient campaignLabelService =
        client.GetService(Services.V17.CampaignLabelService);

    // Gets the resource name of the label to be added across all given campaigns.
    string labelResourceName = ResourceNames.Label(customerId, labelId);

    List<CampaignLabelOperation> operations = new List<CampaignLabelOperation>();
    // Creates a campaign label operation for each campaign.
    foreach (long campaignId in campaignIds)
    {
        // Gets the resource name of the given campaign.
        string campaignResourceName = ResourceNames.Campaign(customerId, campaignId);
        // Creates the campaign label.
        CampaignLabel campaignLabel = new CampaignLabel()
        {
            Campaign = campaignResourceName,
            Label = labelResourceName
        };

        operations.Add(new CampaignLabelOperation()
        {
            Create = campaignLabel
        });
    }

    // Send the operation in a mutate request.
    try
    {
        MutateCampaignLabelsResponse response =
            campaignLabelService.MutateCampaignLabels(customerId.ToString(), operations);
        Console.WriteLine($"Added {response.Results} campaign labels:");

        foreach (MutateCampaignLabelResult result in response.Results)
        {
            Console.WriteLine(result.ResourceName);
        }
    }
    catch (GoogleAdsException e)
    {
        Console.WriteLine("Failure:");
        Console.WriteLine($"Message: {e.Message}");
        Console.WriteLine($"Failure: {e.Failure}");
        Console.WriteLine($"Request ID: {e.RequestId}");
        throw;
    }
}
      

PHP

public static function runExample(
    GoogleAdsClient $googleAdsClient,
    int $customerId,
    array $campaignIds,
    int $labelId
) {
    // Gets the resource name of the label to be added across all given campaigns.
    $labelResourceName = ResourceNames::forLabel($customerId, $labelId);

    // Creates a campaign label operation for each campaign.
    $operations = [];
    foreach ($campaignIds as $campaignId) {
        // Creates the campaign label.
        $campaignLabel = new CampaignLabel([
            'campaign' => ResourceNames::forCampaign($customerId, $campaignId),
            'label' => $labelResourceName
        ]);
        $campaignLabelOperation = new CampaignLabelOperation();
        $campaignLabelOperation->setCreate($campaignLabel);
        $operations[] = $campaignLabelOperation;
    }

    // Issues a mutate request to add the labels to the campaigns.
    $campaignLabelServiceClient = $googleAdsClient->getCampaignLabelServiceClient();
    $response = $campaignLabelServiceClient->mutateCampaignLabels(
        MutateCampaignLabelsRequest::build($customerId, $operations)
    );

    printf("Added %d campaign labels:%s", $response->getResults()->count(), PHP_EOL);

    foreach ($response->getResults() as $addedCampaignLabel) {
        /** @var CampaignLabel $addedCampaignLabel */
        printf(
            "New campaign label added with resource name: '%s'.%s",
            $addedCampaignLabel->getResourceName(),
            PHP_EOL
        );
    }
}
      

Python

def main(client, customer_id, label_id, campaign_ids):
    """This code example adds a campaign label to a list of campaigns.

    Args:
        client: An initialized GoogleAdsClient instance.
        customer_id: A client customer ID str.
        label_id: The ID of the label to attach to campaigns.
        campaign_ids: A list of campaign IDs to which the label will be added.
    """

    # Get an instance of CampaignLabelService client.
    campaign_label_service = client.get_service("CampaignLabelService")
    campaign_service = client.get_service("CampaignService")
    label_service = client.get_service("LabelService")

    # Build the resource name of the label to be added across the campaigns.
    label_resource_name = label_service.label_path(customer_id, label_id)

    operations = []

    for campaign_id in campaign_ids:
        campaign_resource_name = campaign_service.campaign_path(
            customer_id, campaign_id
        )
        campaign_label_operation = client.get_type("CampaignLabelOperation")

        campaign_label = campaign_label_operation.create
        campaign_label.campaign = campaign_resource_name
        campaign_label.label = label_resource_name
        operations.append(campaign_label_operation)

    response = campaign_label_service.mutate_campaign_labels(
        customer_id=customer_id, operations=operations
    )
    print(f"Added {len(response.results)} campaign labels:")
    for result in response.results:
        print(result.resource_name)
      

Ruby

def add_campaign_label(customer_id, label_id, campaign_ids)
  # GoogleAdsClient will read a config file from
  # ENV['HOME']/google_ads_config.rb when called without parameters
  client = Google::Ads::GoogleAds::GoogleAdsClient.new

  label_resource_name = client.path.label(customer_id, label_id)

  labels = campaign_ids.map { |campaign_id|
    client.resource.campaign_label do |label|
      campaign_resource_name = client.path.campaign(customer_id, campaign_id)
      label.campaign = campaign_resource_name
      label.label = label_resource_name
    end
  }

  ops = labels.map { |label|
    client.operation.create_resource.campaign_label(label)
  }

  response = client.service.campaign_label.mutate_campaign_labels(
    customer_id: customer_id,
    operations: ops,
  )
  response.results.each do |result|
    puts("Created campaign label with id: #{result.resource_name}")
  end
end
      

Perl

sub add_campaign_labels {
  my ($api_client, $customer_id, $campaign_ids, $label_id) = @_;

  my $label_resource_name =
    Google::Ads::GoogleAds::V17::Utils::ResourceNames::label($customer_id,
    $label_id);

  my $campaign_label_operations = [];

  # Create a campaign label operation for each campaign.
  foreach my $campaign_id (@$campaign_ids) {
    # Create a campaign label.
    my $campaign_label =
      Google::Ads::GoogleAds::V17::Resources::CampaignLabel->new({
        campaign => Google::Ads::GoogleAds::V17::Utils::ResourceNames::campaign(
          $customer_id, $campaign_id
        ),
        label => $label_resource_name
      });

    # Create a campaign label operation.
    my $campaign_label_operation =
      Google::Ads::GoogleAds::V17::Services::CampaignLabelService::CampaignLabelOperation
      ->new({
        create => $campaign_label
      });

    push @$campaign_label_operations, $campaign_label_operation;
  }

  # Add the campaign labels to the campaigns.
  my $campaign_labels_response = $api_client->CampaignLabelService()->mutate({
    customerId => $customer_id,
    operations => $campaign_label_operations
  });

  my $campaign_label_results = $campaign_labels_response->{results};
  printf "Added %d campaign labels:\n", scalar @$campaign_label_results;

  foreach my $campaign_label_result (@$campaign_label_results) {
    printf "Created campaign label '%s'.\n",
      $campaign_label_result->{resourceName};
  }

  return 1;
}
      

Recupera gli oggetti utilizzando le etichette

Dopo aver assegnato etichette alle tue campagne, puoi utilizzare il per recuperare gli oggetti per ID.

Passa una query GAQL appropriata a un GoogleAdsService Search o SearchStream richiesta. Ad esempio, la seguente query restituisce l'ID, il nome e le etichette per ciascuna campagna associata a uno qualsiasi dei tre ID etichetta:

SELECT
  campaign.id,
  campaign.name,
  label.id,
  label.name
FROM campaign_label
WHERE label.id IN (123456, 789012, 345678)

Tieni presente che puoi filtrare solo in base all'ID etichetta, non al nome dell'etichetta. Per ottenere l'ID etichetta da un nome di etichetta, puoi utilizzare questa query:

SELECT
  label.id,
  label.name
FROM label
WHERE label.name = "LABEL_NAME"

Recuperare le etichette applicate a un cliente

Quando ottieni la gerarchia degli account di un account amministratore account, puoi recuperare l'elenco delle etichette applicate a un account cliente secondario richiedendo il applied_labels della CustomerClient. Questo campo recupera solo le etichette di proprietà del cliente che effettua la chiamata API.

Utilizzare le etichette nei report

Report sulle etichette

La risorsa del report Etichetta restituisce i dettagli sulle etichette definiti in un account. I dettagli includono il nome, l'ID, il nome della risorsa, lo stato, il colore di sfondo e la descrizione, nonché il Cliente risorsa che rappresenta il proprietario dell'etichetta.

Report con metriche

Report Gruppo di annunci e Campagna contengono il campo labels. Il servizio di reporting restituisce l'etichetta dei nomi delle risorse nel formato customers/{customer_id}/labels/{label_id}. Per Ad esempio, il nome della risorsa customers/123456789/labels/012345 si riferisce etichetta con ID 012345 nell'account con ID 123456789.

Report senza metriche

Ognuna delle seguenti risorse dei report può essere utilizzata per trovare relazioni tra risorse ed etichette:

Puoi filtrare i risultati del report precedente confrontando il campo label.id utilizzando qualsiasi operatore di confronto numerico o BETWEEN, IS NULL, IS NOT NULL, Operatori IN o NOT IN.

Ad esempio, puoi visualizzare tutte le campagne con un ID etichetta specifico:

SELECT
  campaign.id,
  campaign.name,
  label.id,
  label.name
FROM campaign_label
WHERE label.id = LABEL_ID
ORDER BY campaign.id