您可以使用标签对广告系列、广告组、广告和关键字进行分类, 并以各种方式使用这些类别来简化工作流程。
本指南介绍了执行以下操作所需的步骤:
- 使用
LabelService以编程方式创建标签。 - 使用
CampaignLabelService请求为广告系列分配标签。 - 使用
GoogleAdsService查询按标签检索和过滤报告结果。
本指南重点介绍了广告系列,但您也可以将相同的方法应用于广告组、广告和关键字。此 API 还提供 CustomerLabelService,可让经理账号为子账号分配标签。
使用场景
使用标签的典型场景包括:
- 您的账号中有一些广告系列仅在一年中的特定时间段内启用,而您希望在报告中纳入或排除这些广告系列。
- 您向广告组中添加了一组新关键字,并希望将其统计数据与广告组中的其他关键字进行比较。
- 您的 Google Ads 账号的用户各自管理一部分广告系列,您希望找到一种方法来确定每个用户的广告系列集。
- 您的应用需要标记某些对象的状态。
创建标签
使用 TextLabel 对象创建标签:
- 创建
TextLabel实例。 - 为相应
TextLabel设置背景颜色。 - 使用说明字段输入此
TextLabel的文本。 - 将
TextLabel封装在LabelOperation中,然后将其发送到LabelService.MutateLabels。
记下新标签的 ID,以供日后查询。这些 ID 嵌入在 MutateLabelsResponse 中返回的 MutateLabelResults 的 resource_name 字段中。
您可以使用 GoogleAdsService Search 或 SearchStream 请求来检索 ID。
指定标签
您可以为广告系列、客户、广告组、条件或广告分配标签。
在相应服务中使用 Mutate 操作来分配标签。
例如,如需为广告系列分配标签,请将一个或多个 CampaignLabelOperation 传递给 CampaignLabelService.MutateCampaignLabels。每个 CampaignLabelOperation 都包含一个 CampaignLabel 实例,其中包含以下字段:
label:标签的 IDcampaign:广告系列的 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 ); } }