ป้ายกำกับ

ป้ายกำกับช่วยให้คุณจัดหมวดหมู่แคมเปญ กลุ่มโฆษณา โฆษณา และคีย์เวิร์ด แล้วใช้หมวดหมู่เหล่านั้นเพื่อลดความซับซ้อนของขั้นตอนการทำงานในหลายรูปแบบ

คู่มือนี้ครอบคลุมขั้นตอนที่จำเป็นต้องดำเนินการต่อไปนี้

  • สร้างป้ายกำกับแบบเป็นโปรแกรมโดยใช้ LabelService
  • กำหนดป้ายกำกับให้กับแคมเปญของคุณโดยใช้ CampaignLabelService คำขอ
  • ดึงข้อมูลและกรองผลลัพธ์ของรายงานตามป้ายกำกับโดยใช้ GoogleAdsService การค้นหา

คู่มือนี้จะเน้นเรื่องแคมเปญ แต่คุณสามารถใช้แนวทางเดียวกันนี้กับโฆษณาได้ กลุ่ม โฆษณา และคีย์เวิร์ด โปรดทราบว่า API ยังให้ CustomerLabelService ซึ่งช่วยให้ บัญชีดูแลจัดการเพื่อกำหนดป้ายกำกับให้บัญชีย่อยได้

กรณีการใช้งาน

สถานการณ์ทั่วไปในการใช้ ป้ายกำกับ ซึ่งประกอบด้วยรายการต่อไปนี้

  • บัญชีมีแคมเปญที่เปิดใช้เฉพาะบางช่วงเวลาของปี และคุณต้องการรวมหรือยกเว้นแคมเปญเหล่านั้นในรายงานอย่างง่ายดาย
  • คุณเพิ่มคีย์เวิร์ดชุดใหม่ลงในกลุ่มโฆษณาแล้วและต้องการเปรียบเทียบ สถิติของตนไว้กับคีย์เวิร์ดอื่นๆ ในกลุ่มโฆษณาด้วย
  • ผู้ใช้บัญชี Google Ads แต่ละคนจะจัดการส่วนย่อยของแคมเปญ และคุณต้องการ วิธีที่จะระบุชุดแคมเปญสำหรับผู้ใช้แต่ละราย
  • แอปของคุณต้องทำเครื่องหมายสถานะของออบเจ็กต์บางอย่าง

สร้างป้ายกำกับ

สร้างป้ายกำกับที่มีออบเจ็กต์ TextLabel ดังนี้

  1. สร้างอินสแตนซ์ TextLabel
  2. ตั้งค่าสีพื้นหลังสำหรับ TextLabel นี้
  3. ป้อนข้อความสำหรับTextLabelนี้โดยใช้ช่องคำอธิบาย
  4. รวม TextLabel ใน LabelOperation และส่งไปยัง LabelService.MutateLabels

จดบันทึกป้ายกำกับใหม่ รหัสสำหรับการค้นหาในภายหลัง รหัสจะฝังอยู่ใน ฟิลด์ resource_name ใน MutateLabelResults แสดงผลใน MutateLabelsResponse

นอกจากนี้ คุณยังสามารถใช้คำขอ LabelService.GetLabel ได้อีกด้วย หรือSearchหรือGoogleAdsService คำขอ SearchStream เพื่อเรียกข้อมูลรหัส

กำหนดป้ายกำกับ

คุณสามารถกำหนดป้ายกำกับให้กับแคมเปญ ลูกค้า กลุ่มโฆษณา เกณฑ์ หรือโฆษณาก็ได้ ใช้การดำเนินการ Mutate ในบริการที่เหมาะสมเพื่อกำหนดป้ายกำกับ

ตัวอย่างเช่น หากต้องการกำหนดป้ายกำกับให้กับแคมเปญ ให้ส่งป้ายกำกับอย่างน้อย 1 รายการ CampaignLabelOperation ถึง CampaignLabelService.MutateCampaignLabels CampaignLabelOperation แต่ละรายการจะมี CampaignLabel ซึ่งมี ฟิลด์:

  • label: รหัสของป้ายกำกับ
  • campaign: รหัสของแคมเปญ

สร้างอินสแตนซ์ CampaignLabel สำหรับคู่แคมเปญป้ายกำกับแต่ละคู่ ห่อด้วย CampaignLabelOperation ด้วยการดำเนินการ create และส่งไปยัง 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)
      

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

ดึงข้อมูลออบเจ็กต์โดยใช้ป้ายกำกับ

หลังจากที่คุณกำหนดป้ายกำกับให้กับแคมเปญของคุณ คุณสามารถใช้ป้ายกำกับ เพื่อเรียกข้อมูลออบเจ็กต์ตามรหัส

ส่งผ่านข้อความค้นหา GAQL ที่เหมาะสมไปยัง GoogleAdsService Search หรือ SearchStream อีกครั้ง ตัวอย่างเช่น คำค้นหาต่อไปนี้จะแสดงรหัส ชื่อ และป้ายกำกับสำหรับ แต่ละแคมเปญที่เชื่อมโยงกับรหัสป้ายกำกับ 1 ใน 3 รหัส ได้แก่

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

โปรดทราบว่าคุณจะกรองตามรหัสป้ายกำกับได้เท่านั้น แต่กรองตามชื่อป้ายกำกับไม่ได้ วิธีรับรหัสป้ายกำกับ จากชื่อป้ายกำกับ คุณสามารถใช้คำค้นหานี้

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

ดึงข้อมูลป้ายกำกับที่ใช้กับลูกค้า

เมื่อดูลำดับชั้นของบัญชีภายใต้ผู้จัดการ บัญชี คุณสามารถเรียกดู รายการป้ายกำกับที่ใช้กับบัญชีลูกค้าย่อยด้วยการส่งคำขอ applied_labels จากฟิลด์ ออบเจ็กต์ CustomerClient ฟิลด์นี้จะดึงข้อมูล เฉพาะป้ายกำกับของลูกค้าที่ทำการเรียก API

ใช้ป้ายกำกับในรายงาน

การรายงานป้ายกำกับ

ทรัพยากรรายงานป้ายกำกับจะแสดงรายละเอียดเกี่ยวกับป้ายกำกับ กำหนดไว้ในบัญชี รายละเอียดประกอบด้วยชื่อ รหัส ชื่อทรัพยากร สถานะ สีพื้นหลัง และคำอธิบาย รวมถึงคำอธิบายลูกค้า ทรัพยากรที่เป็นตัวแทนของเจ้าของป้ายกำกับ

รายงานที่มีเมตริก

รายงานกลุ่มโฆษณาและแคมเปญ จำนวนการดูมีฟิลด์ labels บริการการรายงานแสดงผลป้ายกำกับ ชื่อทรัพยากรในรูปแบบ customers/{customer_id}/labels/{label_id} สำหรับ ตัวอย่างเช่น ชื่อทรัพยากร customers/123456789/labels/012345 อ้างถึง ป้ายกำกับที่มีรหัส 012345 ในบัญชีที่มีรหัส 123456789

รายงานที่ไม่มีเมตริก

คุณสามารถใช้แหล่งข้อมูลรายงานแต่ละรายการต่อไปนี้เพื่อค้นหาความสัมพันธ์ระหว่าง ทรัพยากรและป้ายกำกับ

คุณกรองผลลัพธ์ของรายงานด้านบนได้ด้วยการเปรียบเทียบช่อง label.id โดยใช้ โอเปอเรเตอร์การเปรียบเทียบที่เป็นตัวเลข หรือ BETWEEN, IS NULL, IS NOT NULL โอเปอเรเตอร์ IN หรือ NOT IN

ตัวอย่างเช่น คุณสามารถดูแคมเปญทั้งหมดที่มีรหัสป้ายกำกับเฉพาะได้ดังนี้

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