실적 최대화 캠페인의 애셋

실적 최대화 캠페인에는 애셋과 관련된 몇 가지 고유한 특성이 있습니다.

  • 애셋 그룹은 애셋 유형 전반에서 최소 애셋 요구사항을 충족해야 합니다. 단, 소매 및 지역 서비스 캠페인은 예외입니다.
  • 애셋은 실적 최대화 캠페인에 고유한 AssetGroup로 그룹화됩니다.
  • 머신러닝은 추가 확장 소재를 자동으로 생성할 수 있습니다.

브랜드 가이드라인: 비즈니스 이름 및 로고 연결

실적 최대화 캠페인의 대부분의 애셋은 애셋 그룹 내에서 구성되지만, 브랜드의 정체성을 나타내는 주요 애셋(특히 비즈니스 이름 및 비즈니스 로고)은 캠페인에 브랜드 가이드라인이 사용 설정된 경우 다르게 처리됩니다.

이러한 브랜드 가이드라인 애셋은 애셋 그룹 수준이 아닌 캠페인 수준에서 직접 연결됩니다. 이는 CampaignAsset 리소스를 사용하여 수행됩니다. 적절한 AssetFieldType를 지정하여 애셋을 캠페인에 연결합니다.

  • BUSINESS_NAME: 비즈니스 이름 애셋 (텍스트 애셋)
  • LOGO: 비즈니스 로고 확장 소재 (이미지 확장 소재)

이 캠페인 수준 연결을 통해 실적 최대화 캠페인 내의 모든 애셋 그룹에서 일관된 브랜드 표현이 보장됩니다.

코드 예

다음 코드 스니펫은 새 요청에서 필요한 반복 애셋을 만드는 방법을 보여줍니다.

자바

/** Creates multiple text assets and returns the list of resource names. */
private List<String> createMultipleTextAssets(
    GoogleAdsClient googleAdsClient, long customerId, List<String> texts) {
  List<MutateOperation> mutateOperations = new ArrayList<>();
  for (String text : texts) {
    Asset asset = Asset.newBuilder().setTextAsset(TextAsset.newBuilder().setText(text)).build();
    AssetOperation assetOperation = AssetOperation.newBuilder().setCreate(asset).build();
    mutateOperations.add(MutateOperation.newBuilder().setAssetOperation(assetOperation).build());
  }

  List<String> assetResourceNames = new ArrayList<>();
  // Creates the service client.
  try (GoogleAdsServiceClient googleAdsServiceClient =
      googleAdsClient.getLatestVersion().createGoogleAdsServiceClient()) {
    // Sends the operations in a single Mutate request.
    MutateGoogleAdsResponse response =
        googleAdsServiceClient.mutate(Long.toString(customerId), mutateOperations);
    for (MutateOperationResponse result : response.getMutateOperationResponsesList()) {
      if (result.hasAssetResult()) {
        assetResourceNames.add(result.getAssetResult().getResourceName());
      }
    }
    printResponseDetails(response);
  }
  return assetResourceNames;
}

      

C#

/// <summary>
/// Creates multiple text assets and returns the list of resource names.
/// </summary>
/// <param name="client">The Google Ads Client.</param>
/// <param name="customerId">The customer's ID.</param>
/// <param name="texts">The texts to add.</param>
/// <returns>A list of asset resource names.</returns>
private List<string> CreateMultipleTextAssets(
    GoogleAdsClient client,
    long customerId,
    string[] texts)
{
    // Get the GoogleAdsService.
    GoogleAdsServiceClient googleAdsServiceClient =
        client.GetService(Services.V26.GoogleAdsService);

    MutateGoogleAdsRequest request = new MutateGoogleAdsRequest()
    {
        CustomerId = customerId.ToString()
    };

    foreach (string text in texts)
    {
        request.MutateOperations.Add(
            new MutateOperation()
            {
                AssetOperation = new AssetOperation()
                {
                    Create = new Asset()
                    {
                        TextAsset = new TextAsset()
                        {
                            Text = text
                        }
                    }
                }
            }
        );
    }

    // Send the operations in a single Mutate request.
    MutateGoogleAdsResponse response = googleAdsServiceClient.Mutate(request);

    List<string> assetResourceNames = new List<string>();

    foreach (MutateOperationResponse operationResponse in response.MutateOperationResponses)
    {
        MutateAssetResult assetResult = operationResponse.AssetResult;
        assetResourceNames.Add(assetResult.ResourceName);
    }

    PrintResponseDetails(response);

    return assetResourceNames;
}

      

PHP

    private static function createMultipleTextAssets(
        GoogleAdsClient $googleAdsClient,
        int $customerId,
        array $texts
    ): array {
        // Here again, we use the GoogleAdService to create multiple text assets in a single
        // request.
        $operations = [];
        foreach ($texts as $text) {
            // Creates a mutate operation for a text asset.
            $operations[] = new MutateOperation(
                [
                'asset_operation' => new AssetOperation(
                    [
                    'create' => new Asset(['text_asset' => new TextAsset(['text' => $text])])
                    ]
                )
                ]
            );
        }

        // Issues a mutate request to add all assets.
        $googleAdsService = $googleAdsClient->getGoogleAdsServiceClient();
        /**
 * @var MutateGoogleAdsResponse $mutateGoogleAdsResponse
*/
        $mutateGoogleAdsResponse =
            $googleAdsService->mutate(MutateGoogleAdsRequest::build($customerId, $operations));

        $assetResourceNames = [];
        foreach ($mutateGoogleAdsResponse->getMutateOperationResponses() as $response) {
            /**
 * @var MutateOperationResponse $response
*/
            $assetResourceNames[] = $response->getAssetResult()->getResourceName();
        }
        self::printResponseDetails($mutateGoogleAdsResponse);

        return $assetResourceNames;
    }
      

Python

def create_multiple_text_assets(
    client: GoogleAdsClient, customer_id: str, texts: List[str]
) -> List[str]:
    """Creates multiple text assets and returns the list of resource names.

    Args:
        client: an initialized GoogleAdsClient instance.
        customer_id: a client customer ID.
        texts: a list of strings, each of which will be used to create a text
          asset.

    Returns:
        asset_resource_names: a list of asset resource names.
    """
    # Here again we use the GoogleAdService to create multiple text
    # assets in a single request.
    googleads_service: GoogleAdsServiceClient = client.get_service(
        "GoogleAdsService"
    )

    operations: List[MutateOperation] = []
    for text in texts:
        mutate_operation: MutateOperation = client.get_type("MutateOperation")
        asset: Asset = mutate_operation.asset_operation.create
        asset.text_asset.text = text
        operations.append(mutate_operation)

    # Send the operations in a single Mutate request.
    response: MutateGoogleAdsResponse = googleads_service.mutate(
        customer_id=customer_id,
        mutate_operations=operations,
    )
    asset_resource_names: List[str] = []
    for result in response.mutate_operation_responses:
        if result._pb.HasField("asset_result"):
            asset_resource_names.append(result.asset_result.resource_name)
    print_response_details(response)
    return asset_resource_names
      

Ruby

# Creates multiple text assets and returns the list of resource names.
def create_multiple_text_assets(client, customer_id, texts)
  operations = texts.map do |text|
    client.operation.mutate do |m|
      m.asset_operation = client.operation.create_resource.asset do |asset|
        asset.text_asset = client.resource.text_asset do |text_asset|
          text_asset.text = text
        end
      end
    end
  end

  # Send the operations in a single Mutate request.
  response = client.service.google_ads.mutate(
    customer_id: customer_id,
    mutate_operations: operations,
  )

  asset_resource_names = []
  response.mutate_operation_responses.each do |result|
    if result.asset_result
      asset_resource_names.append(result.asset_result.resource_name)
    end
  end
  print_response_details(response)
  asset_resource_names
end
      

Perl

sub create_multiple_text_assets {
  my ($api_client, $customer_id, $texts) = @_;

  # Here again we use the GoogleAdService to create multiple text assets in a
  # single request.
  my $operations = [];
  foreach my $text (@$texts) {
    # Create a mutate operation for a text asset.
    push @$operations,
      Google::Ads::GoogleAds::V26::Services::GoogleAdsService::MutateOperation
      ->new({
        assetOperation =>
          Google::Ads::GoogleAds::V26::Services::AssetService::AssetOperation->
          new({
            create => Google::Ads::GoogleAds::V26::Resources::Asset->new({
                textAsset =>
                  Google::Ads::GoogleAds::V26::Common::TextAsset->new({
                    text => $text
                  })})})});
  }

  # Issue a mutate request to add all assets.
  my $mutate_google_ads_response = $api_client->GoogleAdsService()->mutate({
    customerId       => $customer_id,
    mutateOperations => $operations
  });

  my $asset_resource_names = [];
  foreach
    my $response (@{$mutate_google_ads_response->{mutateOperationResponses}})
  {
    push @$asset_resource_names, $response->{assetResult}{resourceName};
  }
  print_response_details($mutate_google_ads_response);

  return $asset_resource_names;
}
      

curl

애셋 자동화

머신러닝을 사용하는 Google 자동화는 모든 관련 채널을 포괄하기 위해 필요에 따라 추가 확장 소재를 생성합니다. 애셋은 광고가 게재되는 Google 광고 채널 (예: YouTube, Gmail, Google 검색)에 따라 자동으로 조합됩니다. 이러한 설정을 관리하는 방법에 대한 자세한 내용은 애셋 자동화 설정 가이드를 참고하세요.

텍스트 맞춤설정

텍스트 맞춤설정을 사용하면 Google AI가 광고의 텍스트 애셋을 자동으로 구성하고 맞춤설정할 수 있습니다. 계정의 URL 포함(페이지 피드)을 실적 최대화 캠페인과 연결하여 텍스트 애셋을 생성함으로써 이 기능을 보강할 수 있습니다.

URL 포함을 캠페인에 연결하려면 동적 검색 광고에 사용되는 것과 동일한 프로세스를 사용합니다.

  1. 웹사이트의 각 페이지에 대한 확장 소재 만들기
  2. 페이지 URL 포함을 AssetSet로 패키징
  3. AssetSet를 캠페인과 연결

URL 포함 (페이지 피드)을 연결한 후 TEXT_ASSET_AUTOMATION 유형의 AssetAutomationSetting가 OPTED_IN로 설정되어 있는지 확인합니다.

캠페인을 만들 때 AssetAutomationSetting를 설정하지 않은 경우의 기본 설정입니다.

이 설정을 사용하면 실적 개선의 가능성이 있을 때 캠페인에서 방문 페이지, 도메인, 제공된 확장 소재의 콘텐츠를 사용하여 광고를 맞춤설정할 수 있습니다. OPTED_IN로 두는 것이 좋습니다.

광고 문구 가이드라인

광고 문구 가이드라인을 사용하면 검색어 제외 및 메시지 제한사항을 지정하여 자동으로 생성된 텍스트 애셋의 브랜드 메시지를 세부적으로 조정할 수 있습니다.

광고 문구 가이드라인을 사용하려면 Campaign 리소스의 text_guidelines 필드를 채웁니다.

  • 용어 제외: 생성된 텍스트 애셋에서 제외할 정확한 단어나 구문 목록을 제공합니다. 각 제외는 최대 30자(영문 기준)까지 가능하며, 최대 25개까지 제외할 수 있습니다.
  • 메시지 제한사항: AI 텍스트 생성을 안내하는 자유 형식 지침(각각 최대 300자(영문 기준))을 제공합니다. 제한사항은 최대 40개까지 제공할 수 있습니다. 제한 유형에는 RESTRICTION_BASED_EXCLUSION만 지원됩니다.

동영상 애셋

실적 최대화 캠페인의 애셋 그룹에 동영상을 추가하지 않으면 내 애셋 그룹에 있는 애셋을 바탕으로 하나 이상의 동영상 애셋이 생성될 수 있습니다. 자동 생성 동영상이 실적 최대화 캠페인에 게재되지 않도록 하려면 맞춤 동영상을 업로드하세요. 그러면 자동으로 생성된 동영상의 게재가 중지됩니다.

스마트 자동화는 동영상 방향을 조정하고 지능적으로 동영상을 단축하여 주요 순간을 강조함으로써 YouTube 동영상 애셋을 개선할 수 있습니다. 원본 동영상 애셋을 유지하려면 GENERATE_ENHANCED_YOUTUBE_VIDEOS 유형의 AssetAutomationSetting를 OPTED_OUT로 설정합니다.

Google은 방문 페이지, YouTube 채널, 방문 페이지에 연결된 소셜 미디어를 통한 자연 트래픽 채널과 같은 승인된 소스에서 관련 동영상을 찾아 사용할 수도 있습니다 (소스 동영상). 이 선택적 기능은 기본적으로 사용 중지되어 있습니다. 선택하려면 AUTOMATED_VIDEO_CRAWL 유형의 AssetAutomationSetting를 OPTED_IN로 설정하고 승인된 소스 URL 및 플랫폼으로 automated_video_crawl_setting를 구성합니다. 자세한 내용은 애셋 자동화 설정 가이드를 참고하세요.