Elementos en una campaña de máximo rendimiento

Las campañas de máximo rendimiento tienen algunas características únicas en relación con los recursos.

Lineamientos de la marca: Vinculación del nombre y el logotipo de la empresa

Si bien la mayoría de los recursos de una campaña de máximo rendimiento se organizan en grupos de recursos, los recursos clave que representan la identidad de tu marca, específicamente el nombre de la empresa y el logotipo de la empresa, se manejan de manera diferente si los lineamientos de la marca están habilitados para tu campaña.

Estos recursos de lineamientos de la marca se vinculan directamente a nivel de la campaña, no a nivel del grupo de recursos. Esto se hace con el recurso CampaignAsset. Vinculas el recurso a la campaña y especificas el AssetFieldType adecuado:

  • BUSINESS_NAME para el recurso de nombre de la empresa (que es un recurso de texto).
  • LOGO para el recurso de logotipo de la empresa (que es un recurso de imagen).

Esta vinculación a nivel de la campaña garantiza una representación coherente de la marca en todos los grupos de recursos de la campaña de máximo rendimiento.

Ejemplo de código

En el siguiente fragmento de código, se muestra cómo crear los recursos repetidos necesarios en una solicitud nueva:

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

Automatización de elementos

La automatización de Google con aprendizaje automático genera recursos adicionales según sea necesario para abarcar todos los canales relevantes. Los recursos se mezclan y combinan automáticamente en función del canal publicitario de Google (como YouTube, Gmail o la Búsqueda) en el que se publica tu anuncio. Para obtener más detalles sobre cómo administrar estos parámetros de configuración, consulta la guía de configuración de la automatización de recursos.

Personalización de texto

La personalización de texto permite que la IA de Google cree y adapte automáticamente los recursos de texto para tus anuncios. Puedes mejorar esta función asociando inclusiones de URLs (feeds de páginas) de tu cuenta con una campaña de máximo rendimiento para generar recursos de texto.

Para vincular las inclusiones de URLs con una campaña, usa el mismo proceso que se utiliza para los anuncios dinámicos de búsqueda:

  1. Crea recursos para cada página de tu sitio web
  2. Empaqueta las inclusiones de URLs de páginas en un AssetSet
  3. Asocia el AssetSet a una campaña

Después de asociar las inclusiones de URLs (un feed de página), asegúrate de que el AssetAutomationSetting de tipo TEXT_ASSET_AUTOMATION esté configurado como OPTED_IN.

Este es el parámetro de configuración predeterminado si no estableciste el AssetAutomationSetting cuando creaste la campaña.

Si utilizas este parámetro de configuración, tu campaña podrá usar el contenido de tu página de destino, el dominio y los recursos proporcionados para personalizar los anuncios cuando se prevea que mejorarán el rendimiento. Te recomendamos que dejes este valor como OPTED_IN.

Lineamientos para texto

Los lineamientos para texto te permiten definir mejor los mensajes de marca para los recursos de texto generados automáticamente especificando exclusiones de términos y restricciones de mensajes.

Para usar los lineamientos para texto, completa el campo text_guidelines del recurso Campaign:

  • Exclusiones de términos: Proporciona una lista de palabras o frases exactas que se excluirán de los recursos de texto generados. Cada exclusión puede tener hasta 30 caracteres, con un máximo de 25 exclusiones.
  • Restricciones de mensajes: Proporciona instrucciones de formato libre (hasta 300 caracteres cada una) para guiar la generación de texto de la IA. Puedes proporcionar hasta 40 restricciones. Solo se admite RESTRICTION_BASED_EXCLUSION para el tipo de restricción.

Recursos de video

Si no agregas un video a tu grupo de recursos de la campaña de máximo rendimiento, es posible que se generen uno o más recursos de video a partir de los recursos de tu grupo. Si ya no quieres que se publiquen videos generados de forma automática en tu campaña de máximo rendimiento, puedes subir tu propio video personalizado y los videos generados de forma automática dejarán de publicarse.

La automatización inteligente puede mejorar tus recursos de video de YouTube ajustando su orientación y acortándolos de forma inteligente para destacar los momentos clave. Si prefieres mantener tus recursos de video originales, establece el AssetAutomationSetting de tipo GENERATE_ENHANCED_YOUTUBE_VIDEOS en OPTED_OUT.

Google también puede encontrar y usar videos relevantes de fuentes aprobadas, como tu página de destino, tu canal de YouTube y los canales de tráfico orgánico en redes sociales vinculados en tu página de destino (videos de fuentes aprobadas). Esta función opcional está inhabilitada de forma predeterminada. Para habilitar esta opción, establece el AssetAutomationSetting de tipo AUTOMATED_VIDEO_CRAWL en OPTED_IN y configura el automated_video_crawl_setting con las URLs y plataformas de origen aprobadas. Consulta la guía de configuración de la automatización de recursos para obtener más detalles.