สร้างเกณฑ์แคมเปญ

ในส่วนรับคำแนะนำ เราได้แสดงวิธีดึงข้อมูลชุดออบเจ็กต์ KeywordThemeConstant โดยใช้คำหรือวลี ในขั้นตอนนี้ เราจะใช้ค่าคงที่ของธีมคีย์เวิร์ดเดียวกันเหล่านั้นเพื่อ สร้างชุดออบเจ็กต์ CampaignCriterion สําหรับ Smart Campaign เพื่อกําหนดเป้าหมาย

เช่นเดียวกับวิธีที่เราใช้จำนวนงบประมาณที่ SmartCampaignSuggestServiceแนะนําเมื่อสร้าง งบประมาณ เราขอแนะนําให้คุณสร้าง เกณฑ์แคมเปญตามค่าคงที่ของธีมคีย์เวิร์ดที่ดึงมาจาก KeywordThemeConstantService ใน รับคําแนะนํา

ข้อกำหนดที่สำคัญสำหรับเกณฑ์ของ Smart Campaign มีดังนี้

ในตัวอย่างต่อไปนี้ ระบบได้แปลงค่าคงที่ของธีมคีย์เวิร์ดเป็นออบเจ็กต์ KeywordThemeInfo โดยการตั้งค่าชื่อทรัพยากรของออบเจ็กต์ ลงในฟิลด์ KeywordThemeInfo.keyword_theme_constant เราตั้งค่าฟิลด์ campaign โดยใช้ชื่อ ทรัพยากรชั่วคราวที่ตั้งค่าไว้ใน แคมเปญในขั้นตอนก่อนหน้า

Java

/**
 * Creates {@link com.google.ads.googleads.v22.resources.CampaignCriterion} operations for add
 * each {@link KeywordThemeInfo}.
 */
private Collection<? extends MutateOperation> createCampaignCriterionOperations(
    long customerId,
    List<KeywordThemeInfo> keywordThemeInfos,
    SmartCampaignSuggestionInfo suggestionInfo) {
  List<MutateOperation> keywordThemeOperations =
      keywordThemeInfos.stream()
          .map(
              keywordTheme -> {
                MutateOperation.Builder builder = MutateOperation.newBuilder();
                builder
                    .getCampaignCriterionOperationBuilder()
                    .getCreateBuilder()
                    .setCampaign(ResourceNames.campaign(customerId, SMART_CAMPAIGN_TEMPORARY_ID))
                    .setKeywordTheme(keywordTheme);
                return builder.build();
              })
          .collect(Collectors.toList());

  List<MutateOperation> locationOperations =
      suggestionInfo.getLocationList().getLocationsList().stream()
          .map(
              location -> {
                MutateOperation.Builder builder = MutateOperation.newBuilder();
                builder
                    .getCampaignCriterionOperationBuilder()
                    .getCreateBuilder()
                    .setCampaign(ResourceNames.campaign(customerId, SMART_CAMPAIGN_TEMPORARY_ID))
                    .setLocation(location);
                return builder.build();
              })
          .collect(Collectors.toList());

  return Stream.concat(keywordThemeOperations.stream(), locationOperations.stream())
      .collect(Collectors.toList());
}
      

C#

/// <summary>
/// Creates a list of MutateOperations that create new campaign criteria.
/// </summary>
/// <param name="customerId">The Google Ads customer ID.</param>
/// <param name="keywordThemeInfos">A list of KeywordThemeInfos.</param>
/// <param name="suggestionInfo">A SmartCampaignSuggestionInfo instance.</param>
/// <returns>A list of MutateOperations that create new campaign criteria.</returns>
private IEnumerable<MutateOperation> CreateCampaignCriterionOperations(long customerId,
    IEnumerable<KeywordThemeInfo> keywordThemeInfos, SmartCampaignSuggestionInfo
    suggestionInfo)
{
    List<MutateOperation> mutateOperations = keywordThemeInfos.Select(
        keywordThemeInfo => new MutateOperation
        {
            CampaignCriterionOperation = new CampaignCriterionOperation
            {
                Create = new CampaignCriterion
                {
                    // Set the campaign ID to a temporary ID.
                    Campaign = ResourceNames.Campaign(
                        customerId, SMART_CAMPAIGN_TEMPORARY_ID),
                    // Set the keyword theme to each KeywordThemeInfo in turn.
                    KeywordTheme = keywordThemeInfo,
                }
            }
        }).ToList();

    // Create a location criterion for each location in the suggestion info.
    mutateOperations.AddRange(
        suggestionInfo.LocationList.Locations.Select(
            locationInfo => new MutateOperation()
            {
                CampaignCriterionOperation = new CampaignCriterionOperation()
                {
                    Create = new CampaignCriterion()
                    {
                        // Set the campaign ID to a temporary ID.
                        Campaign = ResourceNames.Campaign(customerId,
                            SMART_CAMPAIGN_TEMPORARY_ID),
                        // Set the location to the given location.
                        Location = locationInfo
                    }
                }
            }).ToList()
    );
    return mutateOperations;
}
      

PHP

private static function createCampaignCriterionOperations(
    int $customerId,
    array $keywordThemeInfos,
    SmartCampaignSuggestionInfo $smartCampaignSuggestionInfo
): array {
    $operations = [];
    foreach ($keywordThemeInfos as $info) {
        // Creates the campaign criterion object.
        $campaignCriterion = new CampaignCriterion([
            // Sets the campaign ID to a temporary ID.
            'campaign' =>
                ResourceNames::forCampaign($customerId, self::SMART_CAMPAIGN_TEMPORARY_ID),
            // Sets the keyword theme to the given KeywordThemeInfo.
            'keyword_theme' => $info
        ]);

        // Creates the MutateOperation that creates the campaign criterion and adds it to the
        // list of operations.
        $operations[] = new MutateOperation([
            'campaign_criterion_operation' => new CampaignCriterionOperation([
                'create' => $campaignCriterion
            ])
        ]);
    }

    // Create a location criterion for each location in the suggestion info object to add
    // corresponding location targeting to the Smart campaign.
    foreach ($smartCampaignSuggestionInfo->getLocationList()->getLocations() as $location) {
        // Creates the campaign criterion object.
        $campaignCriterion = new CampaignCriterion([
            // Sets the campaign ID to a temporary ID.
            'campaign' =>
                ResourceNames::forCampaign($customerId, self::SMART_CAMPAIGN_TEMPORARY_ID),
            // Set the location to the given location.
            'location' => $location
        ]);

        // Creates the MutateOperation that creates the campaign criterion and adds it to the
        // list of operations.
        $operations[] = new MutateOperation([
            'campaign_criterion_operation' => new CampaignCriterionOperation([
                'create' => $campaignCriterion
            ])
        ]);
    }

    return $operations;
}