Komponenty w kampanii Performance Max

Kampanie Performance Max mają pewne unikalne cechy dotyczące komponentów.

Wskazówki dotyczące marki: powiązanie nazwy i logo firmy

Większość komponentów w kampanii Performance Max jest uporządkowana w grupach plików, ale kluczowe komponenty reprezentujące tożsamość Twojej marki, czyli nazwa firmy i logo firmy, są traktowane inaczej, jeśli w kampanii masz włączone wskazówki dotyczące marki.

Te komponenty wytycznych dotyczących marki są połączone bezpośrednio na poziomie kampanii, a nie na poziomie grupy plików. Służy do tego zasób CampaignAsset. Łączysz komponent z kampanią, podając odpowiedni parametr AssetFieldType:

  • BUSINESS_NAME dla komponentu z nazwą firmy (który jest komponentem tekstowym).
  • LOGO dla komponentu z logo firmy (który jest komponentem z obrazem).

To połączenie na poziomie kampanii zapewnia spójną reprezentację marki we wszystkich grupach plików w kampanii Performance Max.

Przykładowy kod

Poniższy fragment kodu pokazuje, jak utworzyć niezbędne powtarzające się komponenty w nowym żądaniu:

Java

/** 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

Automatyzacja komponentów

Automatyzacja Google wykorzystująca uczenie maszynowe generuje dodatkowe zasoby w razie potrzeby, aby objąć wszystkie odpowiednie kanały. Komponenty są automatycznie łączone ze sobą i dopasowywane zależnie od tego, w którym kanale Google Ads (m.in. w YouTube, Gmailu i wyszukiwarce) wyświetla się Twoja reklama. Więcej informacji o zarządzaniu tymi ustawieniami znajdziesz w przewodniku po ustawieniach automatyzacji komponentów.

Dostosowywanie tekstu

Dostosowywanie tekstu umożliwia AI od Google automatyczne tworzenie i dostosowywanie komponentów tekstowych w reklamach. Możesz rozszerzyć tę funkcję, powiązując uwzględnienia adresów URL (pliki z adresami stron docelowych) na koncie z kampanią Performance Max, aby generować komponenty tekstowe.

Aby połączyć uwzględnienia adresów URL z kampanią, wykonaj te same czynności co w przypadku dynamicznych reklam w wyszukiwarce:

  1. Tworzenie komponentów dla każdej strony witryny
  2. Pakowanie uwzględnianych adresów URL stron w komponent AssetSet
  3. Powiąż AssetSet z kampanią

Po powiązaniu uwzględnianych adresów URL (pliku z adresami stron docelowych) upewnij się, że parametr AssetAutomationSetting typu TEXT_ASSET_AUTOMATION ma wartość OPTED_IN.

Jest to ustawienie domyślne, jeśli podczas tworzenia kampanii nie ustawiono AssetAutomationSetting.

Włączenie tego ustawienia oznacza, że kampania może wykorzystywać treści ze strony docelowej, domeny i dostarczonych komponentów do dostosowywania reklam, gdy według prognoz może to zwiększyć ich skuteczność. Zalecamy pozostawienie wartości OPTED_IN.

Wskazówki dotyczące tekstu

Wskazówki dotyczące tekstu umożliwiają dopracowywanie przekazu marki w przypadku komponentów tekstowych generowanych automatycznie przez określanie wykluczeń haseł i ograniczeń dotyczących przekazu.

Aby używać wskazówek dotyczących tekstu, wypełnij pole text_guidelines zasobu Campaign:

  • Wykluczenia haseł: podaj listę konkretnych słów lub wyrażeń, które mają być wykluczone z wygenerowanych komponentów tekstowych. Każde wykluczenie może zawierać maksymalnie 30 znaków, a ich łączna liczba nie może przekraczać 25.
  • Ograniczenia dotyczące przekazu: podaj instrukcje w formie tekstu swobodnego (każda może mieć maksymalnie 300 znaków), aby kierować generowaniem tekstu przez AI. Możesz podać maksymalnie 40 ograniczeń. W przypadku typu ograniczenia obsługiwana jest tylko wartość RESTRICTION_BASED_EXCLUSION.

Komponenty wideo

Jeśli do grupy komponentów kampanii Performance Max nie dodasz żadnego filmu, możemy wygenerować co najmniej 1 komponent wideo na podstawie komponentów z tej grupy. Jeśli nie chcesz, aby w Twojej kampanii Performance Max wyświetlały się filmy generowane automatycznie, możesz przesłać własny film. Spowoduje to przerwanie wyświetlania filmów generowanych automatycznie.

Inteligentna automatyzacja może ulepszać komponenty wideo na YouTube, dostosowując orientację filmu i inteligentnie go skracając, aby wyróżnić kluczowe momenty. Jeśli wolisz zachować oryginalne komponenty wideo, ustaw parametr AssetAutomationSetting typu GENERATE_ENHANCED_YOUTUBE_VIDEOS na OPTED_OUT.

Google może też znajdować i używać odpowiednich filmów z zatwierdzonych źródeł, takich jak strona docelowa, kanał w YouTube i bezpłatny ruch z sieci społecznościowych połączone ze stroną docelową (pozyskane filmy). Ta opcjonalna funkcja jest domyślnie wyłączona. Aby wyrazić zgodę, ustaw AssetAutomationSetting typu AUTOMATED_VIDEO_CRAWL na OPTED_IN i skonfiguruj automated_video_crawl_setting, podając zatwierdzone adresy URL źródeł i platformy. Więcej informacji znajdziesz w przewodniku po ustawieniach automatyzacji komponentów.