Nhãn

Nhãn giúp bạn phân loại chiến dịch, nhóm quảng cáo, quảng cáo và từ khoá, và sử dụng các danh mục đó để đơn giản hoá quy trình làm việc theo nhiều cách.

Hướng dẫn này bao gồm các bước cần thực hiện để thực hiện những việc sau:

  • Tạo nhãn theo phương thức lập trình bằng LabelService.
  • Chỉ định nhãn cho chiến dịch bằng cách sử dụng CampaignLabelService yêu cầu.
  • Truy xuất và lọc kết quả báo cáo theo nhãn sử dụng GoogleAdsService truy vấn.

Hướng dẫn này tập trung vào chiến dịch, nhưng bạn có thể sử dụng cùng một phương pháp cho quảng cáo nhóm, quảng cáo và từ khoá. Xin lưu ý rằng API cũng cung cấp CustomerLabelService, cho phép tài khoản người quản lý để chỉ định nhãn cho tài khoản con.

Trường hợp sử dụng

Các trường hợp sử dụng thông thường nhãn bao gồm:

  • Tài khoản của bạn có các chiến dịch mà bạn chỉ bật trong những thời điểm nhất định trong năm, và bạn muốn dễ dàng bao gồm hoặc loại trừ các chiến dịch đó khỏi báo cáo.
  • Bạn đã thêm một nhóm từ khóa mới vào nhóm quảng cáo của mình và bạn muốn so sánh số liệu thống kê với các từ khoá khác trong nhóm quảng cáo của bạn.
  • Người dùng tài khoản Google Ads của bạn quản lý một nhóm nhỏ chiến dịch và bạn muốn xác định nhóm chiến dịch cho mỗi người dùng.
  • Ứng dụng của bạn cần đánh dấu trạng thái của một số đối tượng nhất định.

Tạo nhãn

Tạo nhãn bằng đối tượng TextLabel:

  1. Tạo một thực thể TextLabel.
  2. Đặt màu nền cho TextLabel này.
  3. Nhập văn bản cho TextLabel này bằng trường mô tả.
  4. Gói TextLabel trong LabelOperation và gửi tới LabelService.MutateLabels.

Ghi lại các nhãn mới' Mã nhận dạng cho các truy vấn sau này. Các mã nhận dạng này được nhúng trong Trường resource_name trong Đã trả về MutateLabelResults trong MutateLabelsResponse.

Bạn cũng có thể sử dụng yêu cầu LabelService.GetLabel hoặc GoogleAdsService Search hoặc Yêu cầu SearchStream để truy xuất mã nhận dạng.

Chỉ định nhãn

Bạn có thể gán nhãn cho chiến dịch, khách hàng, nhóm quảng cáo, tiêu chí hoặc quảng cáo của mình. Sử dụng toán tử Mutate trong dịch vụ thích hợp để gán nhãn.

Ví dụ: để chỉ định nhãn cho một chiến dịch, hãy chuyển một hoặc nhiều CampaignLabelOperation đến CampaignLabelService.MutateCampaignLabels. Mỗi CampaignLabelOperation bao gồm một Thực thể CampaignLabel chứa các tham số này trường:

  • label: Mã nhận dạng của nhãn
  • campaign: Mã chiến dịch

Tạo một bản sao CampaignLabel cho từng cặp nhãn-chiến dịch. Gói gọn trong một CampaignLabelOperation bằng thao tác create và gửi tới CampaignService.MutateCampaignLabels.

Thêm nhãn chiến dịch

Dưới đây là ví dụ về mã cho thấy cách thêm nhãn chiến dịch vào danh sách chiến dịch:

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

Truy xuất đối tượng bằng nhãn

Sau khi đã chỉ định nhãn cho các chiến dịch của mình, bạn có thể sử dụng thuộc tính nhãn trường để truy xuất đối tượng theo mã nhận dạng.

Truyền một truy vấn GAQL thích hợp đến một GoogleAdsService Search hoặc SearchStream của bạn. Ví dụ: truy vấn sau trả về mã nhận dạng, tên và nhãn cho mỗi chiến dịch được liên kết với một trong ba ID nhãn bất kỳ:

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

Lưu ý rằng bạn chỉ có thể lọc theo mã nhãn, chứ không thể lọc theo tên nhãn. Cách lấy mã nhận dạng của nhãn từ tên nhãn, bạn có thể sử dụng truy vấn sau:

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

Truy xuất nhãn được áp dụng cho khách hàng

Khi nhận hệ thống phân cấp tài khoản trong một người quản lý , bạn có thể truy xuất danh sách các nhãn áp dụng cho tài khoản khách hàng con bằng cách yêu cầu Trường applied_labels trong CustomerClient. Trường này truy xuất chỉ những nhãn do khách hàng sở hữu khi thực hiện lệnh gọi API.

Sử dụng nhãn trong báo cáo

Báo cáo về nhãn

Tài nguyên báo cáo Nhãn trả về thông tin chi tiết về các nhãn được xác định trong tài khoản. Các thông tin chi tiết bao gồm tên, mã nhận dạng, tên tài nguyên, trạng thái màu nền và mô tả, cũng như Khách hàng đại diện cho chủ sở hữu nhãn.

Báo cáo có chỉ số

Báo cáo Nhóm quảng cáoChiến dịch các khung hiển thị chứa trường labels. Dịch vụ báo cáo trả về nhãn tên tài nguyên ở định dạng customers/{customer_id}/labels/{label_id}. Cho Ví dụ: tên tài nguyên customers/123456789/labels/012345 đề cập đến nhãn có mã 012345 trong tài khoản có mã 123456789.

Báo cáo không có chỉ số

Mỗi tài nguyên báo cáo sau đây có thể được sử dụng để tìm mối quan hệ giữa tài nguyên và nhãn:

Bạn có thể lọc các kết quả báo cáo ở trên bằng cách so sánh trường label.id thông qua bất kỳ toán tử so sánh số nào hoặc BETWEEN, IS NULL, IS NOT NULL, Toán tử IN hoặc NOT IN.

Ví dụ: bạn có thể xem tất cả các chiến dịch có một mã nhãn cụ thể như sau:

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