← 返回目录
来源:Google Ads API 官方文档 · 中文版 · 本地归档

标签

您可以使用标签对广告系列、广告组、广告和关键字进行分类, 并以各种方式使用这些类别来简化工作流程。

本指南介绍了执行以下操作所需的步骤:

本指南重点介绍了广告系列,但您也可以将相同的方法应用于广告组、广告和关键字。此 API 还提供 CustomerLabelService,可让经理账号为子账号分配标签。

使用场景

使用标签的典型场景包括:

  • 您的账号中有一些广告系列仅在一年中的特定时间段内启用,而您希望在报告中纳入或排除这些广告系列。
  • 您向广告组中添加了一组新关键字,并希望将其统计数据与广告组中的其他关键字进行比较。
  • 您的 Google Ads 账号的用户各自管理一部分广告系列,您希望找到一种方法来确定每个用户的广告系列集。
  • 您的应用需要标记某些对象的状态。

创建标签

使用 TextLabel 对象创建标签:

  1. 创建 TextLabel 实例。
  2. 为相应 TextLabel 设置背景颜色。
  3. 使用说明字段输入此 TextLabel 的文本。
  4. 将 TextLabel 封装在 LabelOperation 中,然后将其发送到 LabelService.MutateLabels。

记下新标签的 ID,以供日后查询。这些 ID 嵌入在 MutateLabelsResponse 中返回的 MutateLabelResults 的 resource_name 字段中。

您可以使用 GoogleAdsService Search 或 SearchStream 请求来检索 ID。

指定标签

您可以为广告系列、客户、广告组、条件或广告分配标签。 在相应服务中使用 Mutate 操作来分配标签。

例如,如需为广告系列分配标签,请将一个或多个 CampaignLabelOperation 传递给 CampaignLabelService.MutateCampaignLabels。每个 CampaignLabelOperation 都包含一个 CampaignLabel 实例,其中包含以下字段:

  • label:标签的 ID
  • campaign:广告系列的 ID

为每个标签-广告系列对创建一个 CampaignLabel 实例。将其封装在具有 create 操作的 CampaignLabelOperation 中,然后发送到 CampaignService.MutateCampaignLabels。

添加广告系列标签

以下代码示例展示了如何向广告系列列表添加广告系列标签:

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.V25.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
        );
    }
}
在接这个接口时卡住了?
Stuck wiring this API into production? We build ad-delivery tooling on these platforms — campaign automation, reporting pipelines, error-handling and migration between API versions.
联系我们 · Talk to us 每日平台更新简报 →