Etykiety

Etykiety pozwalają dzielić kampanie, grupy reklam, reklamy i słowa kluczowe na kategorie i wykorzystaj te kategorie, aby na różne sposoby uprościć Ci pracę.

Z tego przewodnika dowiesz się, jak:

Ten przewodnik skupia się na kampaniach, ale możesz zastosować to samo podejście do reklam grup, reklam i słów kluczowych. Pamiętaj, że interfejs API udostępnia też CustomerLabelService, która umożliwia kont menedżera, aby przypisać etykiety do kont podrzędnych.

Przypadki użycia

Typowe scenariusze użycia etykiety to:

  • Na Twoim koncie są kampanie, które włączysz tylko w określonych porach roku. i chcesz je łatwo uwzględnić w raportach lub z niego wykluczyć.
  • Do grupy reklam został dodany nowy zestaw słów kluczowych i chcesz porównać ich statystyki do innych słów kluczowych w grupie reklam.
  • Użytkownicy Twojego konta Google Ads zarządzają podzbiorem kampanii, więc chcesz aby określić zestaw kampanii dla każdego użytkownika.
  • Aplikacja musi oznaczać stan określonych obiektów.

Utwórz etykiety

Utwórz etykiety za pomocą obiektu TextLabel:

  1. Utwórz instancję TextLabel.
  2. Ustaw kolor tła tego elementu (TextLabel).
  3. Wpisz tekst elementu TextLabel w polu opisu.
  4. Zapakuj TextLabel w LabelOperation i wyślij do LabelService.MutateLabels.

Zanotuj nowe etykiety Identyfikatory na potrzeby późniejszych zapytań. Identyfikatory są umieszczane w sekcji resource_name w polu MutateLabelResults zostało zwrócone w MutateLabelsResponse

Możesz też użyć żądania LabelService.GetLabel albo GoogleAdsService Search albo SearchStream, aby pobrać identyfikatory.

Przypisywanie etykiet

Etykiety możesz przypisywać do kampanii, klientów, grup reklam, kryteriów lub reklam. Aby przypisać etykiety, użyj operacji Mutate w odpowiedniej usłudze.

Aby np. przypisać etykiety do kampanii, przekaż co najmniej jedną CampaignLabelOperation do CampaignLabelService.MutateCampaignLabels Każdy element CampaignLabelOperation obejmuje instancji CampaignLabel, która zawiera te pola:

  • label: identyfikator etykiety
  • campaign: identyfikator kampanii

Utwórz wystąpienie CampaignLabel dla każdej pary etykiety i kampanii. Zapakuj go w CampaignLabelOperation za pomocą operacji create i wyślij do: CampaignService.MutateCampaignLabels

Dodaj etykiety kampanii

Oto przykładowy kod pokazujący, jak dodać etykietę kampanii do listy kampanie:

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

Pobieranie obiektów za pomocą ich etykiet

Po przypisaniu etykiet do kampanii możesz używać etykiet pola, aby pobierać obiekty według identyfikatora.

Przekaż odpowiednie zapytanie GAQL do GoogleAdsService Search lub SearchStream użytkownika. Na przykład to zapytanie zwraca identyfikator, nazwę i etykiety obiektu każdej kampanii powiązanej z dowolnym z trzech identyfikatorów etykiet:

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

Pamiętaj, że możesz filtrować tylko według identyfikatora etykiety, a nie jej nazwy. Aby uzyskać identyfikator etykiety z nazwy etykiety, możesz użyć tego zapytania:

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

Pobieranie etykiet zastosowanych do klienta

Podczas uzyskiwania hierarchii kont podlegających danemu menedżerowi , możesz pobrać listę etykiet zastosowanych do podrzędnego konta klienta przez żądanie applied_labels z sekcji Obiekt CustomerClient. To pole pobiera tylko etykiety należące do klienta wywołującego interfejs API.

Używanie etykiet w raportach

Raportowanie etykiet

Zasób raportu Etykieta zwraca szczegółowe informacje o etykietach. zdefiniowane na koncie. Szczegóły obejmują nazwę, identyfikator, nazwę zasobu, stan, koloru tła i opisu, a także informacji o kliencie reprezentujący właściciela etykiety.

Raporty z danymi

Raporty Grupa reklam i Kampania widoki zawierają pole labels. Usługa raportowania zwraca etykietę nazwy zasobów w formacie customers/{customer_id}/labels/{label_id}. Dla: na przykład nazwa zasobu customers/123456789/labels/012345 odnosi się do etykietę o identyfikatorze 012345 na koncie o identyfikatorze 123456789.

Raporty bez danych

Za pomocą każdego z poniższych zasobów raportu można znaleźć relacje między zasoby i etykiety:

Możesz przefiltrować powyższe wyniki raportu, porównując pole label.id za pomocą funkcji dowolny liczbowy operator porównania lub BETWEEN, IS NULL, IS NOT NULL, Operator IN lub NOT IN.

Możesz na przykład wyświetlić wszystkie kampanie z określonym identyfikatorem etykiety w ten sposób:

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