標籤 可讓您將廣告活動、廣告群組、廣告及關鍵字 並以各種方式簡化工作流程
本指南將說明下列操作的必要步驟:
- 使用以下工具,以程式輔助的方式建立標籤:
LabelService
。 - 使用以下工具為廣告活動指派標籤:
CampaignLabelService
要求。 - 使用
GoogleAdsService
查詢。
本指南著重於廣告活動,但您可以為廣告使用相同方法
群組、廣告和關鍵字。請注意,API 也提供
CustomerLabelService
,可讓您
管理員帳戶,即可將標籤指派給子帳戶。
用途
一般使用情境 labels 包含下列項目:
- 您的帳戶中有廣告活動是在一年中的某些時段啟用, 且希望在報表中輕鬆納入或排除這些廣告活動。
- 您在廣告群組中加入一組新關鍵字,想比較成效 與廣告群組中的其他關鍵字做比較
- Google Ads 帳戶的使用者各自管理一小部分的廣告活動 找出適合各使用者的一組廣告活動。
- 您的應用程式需要標示特定物件的狀態。
建立標籤
使用 TextLabel
物件建立標籤:
- 建立
TextLabel
執行個體。 - 設定此
TextLabel
的背景顏色。 - 使用說明欄位輸入這個
TextLabel
的文字。 - 將
TextLabel
納入LabelOperation
中並傳送給LabelService.MutateLabels
。
請留意新標籤用於後續查詢的 ID這些 ID 嵌入在
resource_name
欄位的
MutateLabelResults
已在
MutateLabelsResponse
。
您也可以使用 LabelService.GetLabel
要求
或 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.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)
小茹
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; }
使用標籤擷取物件
為廣告活動指定標籤後,您就能使用標籤 欄位來依 ID 擷取物件。
將適當的 GAQL 查詢傳遞至
GoogleAdsService
Search
或 SearchStream
請求。舉例來說,以下查詢會傳回
連結至下列任意三個標籤 ID 中的任一廣告活動:
SELECT
campaign.id,
campaign.name,
label.id,
label.name
FROM campaign_label
WHERE label.id IN (123456, 789012, 345678)
請注意,您只能按照標籤 ID 篩選,無法依標籤名稱篩選。取得標籤 ID 可使用以下查詢:
SELECT
label.id,
label.name
FROM label
WHERE label.name = "LABEL_NAME"
擷取客戶套用的標籤
取得管理員帳戶下的帳戶階層時
帳戶,您可以擷取
是透過要求取得
applied_labels
欄位 (來自
CustomerClient
物件。這個欄位會擷取
僅限發出 API 呼叫的客戶所擁有的標籤。
在報表中使用標籤
標籤報表
Label 報表資源會傳回標籤的詳細資料 特定的值詳細資料包括名稱、ID、資源名稱、狀態 以及「Customer」 代表標籤擁有者的資源。
含有指標的報表
「廣告群組」和「廣告活動」報表
包含 labels
欄位報表服務傳回標籤
資源名稱,格式為 customers/{customer_id}/labels/{label_id}
。適用對象
例如,資源名稱 customers/123456789/labels/012345
指的是
ID 為 123456789
的帳戶 (ID 為 012345
)。
不含指標的報表
以下各個報表資源可用來找出 資源與標籤:
您可以使用下列條件比較 label.id
欄位,篩選上述報表結果:
任何數值比較運算子或 BETWEEN
、IS NULL
、IS NOT NULL
IN
或 NOT IN
運算子。
舉例來說,您可以擷取所有具有特定標籤 ID 的廣告活動,方法如下:
SELECT
campaign.id,
campaign.name,
label.id,
label.name
FROM campaign_label
WHERE label.id = LABEL_ID
ORDER BY campaign.id