Las recomendaciones pueden mejorar tus campañas de varias maneras:
- Presenta funciones nuevas y relevantes
- Aproveche al máximo su presupuesto con ofertas, palabras clave y anuncios mejorados
- Aumenta el rendimiento y la eficiencia de tus campañas en general
Para aumentar los niveles de optimización, puedes usar el
RecommendationService
para recuperar
recomendaciones y, luego, aplicarlas o descartarlas según corresponda. A partir de la versión 15
de la API de Google Ads, también puedes suscribirte a las aplicaciones automáticas
recomendaciones con la RecommendationSubscriptionService
.
Nivel de optimización
El nivel de optimización es un
estimación del rendimiento y la disponibilidad de tu cuenta de Google Ads
a la Customer
y
Campaign
.
El
Customer.optimization_score_weight
solo está disponible para las cuentas que no son de administrador y se usa para calcular el
nivel de optimización de varias cuentas. Recupera el nivel de optimización y
ponderación del nivel de optimización de las cuentas y multiplicarlas en conjunto
(Customer.optimization_score * Customer.optimization_score_weight
) para procesar
nivel de optimización general.
Hay métricas relacionadas con la optimización disponibles para customer
y campaign
informes:
- El
metrics.optimization_score_url
proporciona un vínculo directo a la cuenta para ver información sobre los recomendaciones en la IU de Google Ads. - El
metrics.optimization_score_uplift
indica cuánto aumentaría el nivel de optimización si todos los se aplican las recomendaciones. Es una estimación basada en todos recomendaciones en su conjunto, no solo la suma de las puntuaciones de aumento de cada recomendación.
Para agrupar y ordenar las recomendaciones mostradas, puede segmentar ambas
de métricas por tipo de recomendación con segments.recommendation_type
en sus
para cada búsqueda.
Tipos de recomendación
Tipos de recomendaciones totalmente compatibles
RecommendationType | Descripción |
---|---|
CAMPAIGN_BUDGET |
Corregir las campañas limitadas por el presupuesto |
KEYWORD |
Agrega palabras clave nuevas |
TEXT_AD |
Agregue sugerencias de anuncios |
TARGET_CPA_OPT_IN |
Establezca ofertas con un CPA objetivo |
MAXIMIZE_CONVERSIONS_OPT_IN |
Establece ofertas con Maximizar conversiones |
MAXIMIZE_CONVERSION_VALUE_OPT_IN |
Oferta con Maximizar valor de conversión |
ENHANCED_CPC_OPT_IN |
Oferta con CPC avanzado |
MAXIMIZE_CLICKS_OPT_IN |
Oferta con Maximizar clics |
OPTIMIZE_AD_ROTATION |
Utilice las rotaciones de anuncios optimizadas |
MOVE_UNUSED_BUDGET |
Transferir los que no se utilizan a los presupuestos limitados |
TARGET_ROAS_OPT_IN |
Establezca ofertas con el ROAS objetivo |
FORECASTING_CAMPAIGN_BUDGET |
Corrige las campañas que se espera que estén limitadas por el presupuesto en el futuro |
RESPONSIVE_SEARCH_AD |
Agregar nuevo anuncio de búsqueda responsivo |
MARGINAL_ROI_CAMPAIGN_BUDGET |
Ajustar el presupuesto de la campaña para aumentar el ROI |
USE_BROAD_MATCH_KEYWORD |
Utilizar amplia concordancia para las campañas basadas en conversiones con ofertas automáticas |
RESPONSIVE_SEARCH_AD_ASSET |
Cómo agregar recursos de anuncios de búsqueda responsivos a un anuncio |
RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH |
Cómo mejorar la calidad de un anuncio de búsqueda responsivo |
DISPLAY_EXPANSION_OPT_IN |
Cómo actualizar una campaña para utilizar la expansión en Display |
SEARCH_PARTNERS_OPT_IN |
Expanda el alcance con los socios de búsqueda de Google |
CUSTOM_AUDIENCE_OPT_IN |
Cree un público personalizado |
IMPROVE_DISCOVERY_AD_STRENGTH |
Mejora la calidad de los anuncios en las campañas de generación de demanda |
UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX |
Cómo actualizar una campaña de Shopping inteligente a una de máximo rendimiento |
UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX |
Cómo actualizar una campaña local heredada a una campaña de máximo rendimiento |
SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX |
Migre a las ofertas segmentadas por campañas de Shopping normales a ofertas existentes Campañas de máximo rendimiento |
MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX |
Migre los anuncios dinámicos de búsqueda a las campañas de máximo rendimiento |
PERFORMANCE_MAX_OPT_IN |
Crea campañas de máximo rendimiento en tu cuenta |
IMPROVE_PERFORMANCE_MAX_AD_STRENGTH |
Mejora la calidad del grupo de recursos de una campaña de máximo rendimiento “Excelente” calificación |
PERFORMANCE_MAX_FINAL_URL_OPT_IN |
Activa la expansión de la URL final para tus campañas de máximo rendimiento |
RAISE_TARGET_CPA_BID_TOO_LOW |
Aumentar el CPA objetivo cuando sea demasiado bajo y muy pocas conversiones o ninguna |
FORECASTING_SET_TARGET_ROAS |
Aumentar el presupuesto antes de un evento de temporada que se prevé que aumente el tráfico y cambiará la estrategia de ofertas de Maximizar valor de conversión al ROAS objetivo |
LEAD_FORM |
Cómo agregar recursos de formulario de clientes potenciales a una campaña |
CALLOUT_ASSET |
Cómo agregar recursos de texto destacado a nivel de la campaña o del cliente |
SITELINK_ASSET |
Cómo agregar recursos de vínculos a sitios a nivel de la campaña o del cliente |
CALL_ASSET |
Agregue recursos de llamada a nivel de la campaña o del cliente |
SHOPPING_ADD_AGE_GROUP |
Agrega el atributo edad a las ofertas que descienden de nivel debido a una falta edad |
SHOPPING_ADD_COLOR |
Agrega un color a las ofertas que descienden de nivel debido a que faltan color [color] |
SHOPPING_ADD_GENDER |
Agrega un género a las ofertas que descienden de nivel debido a que falta la información género |
SHOPPING_ADD_GTIN |
Agregar un GTIN (código comercial global de artículo) a las ofertas que descienden de nivel debido a que falta un GTIN |
SHOPPING_ADD_MORE_IDENTIFIERS |
Agrega más identificadores a las ofertas que descienden de nivel porque faltan identificadores |
SHOPPING_ADD_SIZE |
Agrega el tamaño a las ofertas que descienden de nivel debido a que faltan tamaño |
SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN |
Agrega productos para que se publique una campaña |
SHOPPING_FIX_DISAPPROVED_PRODUCTS |
Corrige los productos rechazados |
SHOPPING_TARGET_ALL_OFFERS |
Crear una campaña genérica que se segmente para todas las ofertas |
SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT |
Corrija los problemas de suspensión de cuentas de Merchant Center |
SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING |
Corrija los problemas de advertencia de suspensión de cuentas de Merchant Center |
DYNAMIC_IMAGE_EXTENSION_OPT_IN |
Habilite las extensiones de imagen dinámicas en la cuenta |
RAISE_TARGET_CPA |
Aumentar el CPA objetivo |
LOWER_TARGET_ROAS |
ROAS objetivo más bajo |
FORECASTING_SET_TARGET_CPA |
Establezca un CPA objetivo para las campañas que no tienen uno especificado en antes de un evento de temporada en el que se prevé que aumentará el tráfico |
SET_TARGET_CPA |
Establezca un CPA objetivo para las campañas que no tienen uno especificado |
SET_TARGET_ROAS |
Establezca un ROAS objetivo para las campañas que no tienen uno especificado |
REFRESH_CUSTOMER_MATCH_LIST |
Actualizar una lista de clientes que no se haya actualizado en los últimos 90 días |
IMPROVE_GOOGLE_TAG_COVERAGE |
Implementa la etiqueta de Google en más páginas |
CALLOUT_EXTENSION (obsoleto) |
Este campo es obsoleto; usa CALLOUT_ASSET en su lugar. |
SITELINK_EXTENSION (obsoleto) |
Este campo es obsoleto; usa SITELINK_ASSET en su lugar. |
CALL_EXTENSION (obsoleto) |
Este campo es obsoleto; usa CALL_ASSET en su lugar. |
KEYWORD_MATCH_TYPE (obsoleto) |
Este campo es obsoleto; usa USE_BROAD_MATCH_KEYWORD en su lugar. |
Mira este video para obtener más información
Cómo controlar tipos no compatibles
Recupera recomendaciones
Al igual que la mayoría de las demás entidades de la API de Google Ads, Recommendation
los objetos se recuperan con el
GoogleAdsService.SearchStream
con una consulta de Google Ads.
Para cada tipo de recomendación, los detalles se proporcionan en una
específico de la recomendación. Por ejemplo, CAMPAIGN_BUDGET
recomendación
los detalles están en la
campaign_budget_recommendation
y se envuelven en una
CampaignBudgetRecommendation
.
Encuentra todos los campos específicos de la recomendación en la
Campo de unión recommendation
.
Impacto de las recomendaciones
Algunos tipos de recomendación completan el
Campo impact
de la recomendación.
RecommendationImpact
contiene una estimación del impacto en el rendimiento de la cuenta como resultado de
aplicar la recomendación. Lo siguiente
métricas de recomendaciones son
disponibles en los campos impact.base_metrics
y impact.potential_metrics
:
impressions
clicks
cost_micros
conversions
all_conversions
(disponible a partir de la versión 16 de la API de Google Ads)video_views
Ejemplo de código
El siguiente código de muestra recupera todas las recomendaciones disponibles y descartadas
de tipo KEYWORD
desde una cuenta e imprime algunos de sus datos:
Java
try (GoogleAdsServiceClient googleAdsServiceClient = googleAdsClient.getLatestVersion().createGoogleAdsServiceClient(); RecommendationServiceClient recommendationServiceClient = googleAdsClient.getLatestVersion().createRecommendationServiceClient()) { // Creates a query that retrieves keyword recommendations. String query = "SELECT recommendation.resource_name, " + " recommendation.campaign, " + " recommendation.keyword_recommendation " + "FROM recommendation " + "WHERE recommendation.type = KEYWORD"; // Constructs the SearchGoogleAdsStreamRequest. SearchGoogleAdsStreamRequest request = SearchGoogleAdsStreamRequest.newBuilder() .setCustomerId(Long.toString(customerId)) .setQuery(query) .build(); // Issues the search stream request to detect keyword recommendations that exist for the // customer account. ServerStream<SearchGoogleAdsStreamResponse> stream = googleAdsServiceClient.searchStreamCallable().call(request); // Creates apply operations for all the recommendations found. List<ApplyRecommendationOperation> applyRecommendationOperations = new ArrayList<>(); for (SearchGoogleAdsStreamResponse response : stream) { for (GoogleAdsRow googleAdsRow : response.getResultsList()) { Recommendation recommendation = googleAdsRow.getRecommendation(); System.out.printf( "Keyword recommendation '%s' was found for campaign '%s'%n", recommendation.getResourceName(), recommendation.getCampaign()); KeywordInfo keyword = recommendation.getKeywordRecommendation().getKeyword(); System.out.printf("\tKeyword = '%s'%n", keyword.getText()); System.out.printf("\tMatch type = '%s'%n", keyword.getMatchType()); // Creates an ApplyRecommendationOperation that will apply this recommendation, and adds // it to the list of operations. applyRecommendationOperations.add(buildRecommendationOperation(recommendation)); } }
C#
// Get the GoogleAdsServiceClient. GoogleAdsServiceClient googleAdsService = client.GetService( Services.V17.GoogleAdsService); // Creates a query that retrieves keyword recommendations. string query = "SELECT recommendation.resource_name, " + "recommendation.campaign, recommendation.keyword_recommendation " + "FROM recommendation WHERE " + $"recommendation.type = KEYWORD"; List<ApplyRecommendationOperation> operations = new List<ApplyRecommendationOperation>(); try { // Issue a search request. googleAdsService.SearchStream(customerId.ToString(), query, delegate (SearchGoogleAdsStreamResponse resp) { Console.WriteLine($"Found {resp.Results.Count} recommendations."); foreach (GoogleAdsRow googleAdsRow in resp.Results) { Recommendation recommendation = googleAdsRow.Recommendation; Console.WriteLine("Keyword recommendation " + $"{recommendation.ResourceName} was found for campaign " + $"{recommendation.Campaign}."); if (recommendation.KeywordRecommendation != null) { KeywordInfo keyword = recommendation.KeywordRecommendation.Keyword; Console.WriteLine($"Keyword = {keyword.Text}, type = " + "{keyword.MatchType}"); } operations.Add( BuildApplyRecommendationOperation(recommendation.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
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); // Creates a query that retrieves keyword recommendations. $query = 'SELECT recommendation.resource_name, recommendation.campaign, ' . 'recommendation.keyword_recommendation ' . 'FROM recommendation ' . 'WHERE recommendation.type = KEYWORD '; // Issues a search request to detect keyword recommendations that exist for the // customer account. $response = $googleAdsServiceClient->search(SearchGoogleAdsRequest::build($customerId, $query)); $operations = []; // Iterates over all rows in all pages and prints the requested field values for // the recommendation in each row. foreach ($response->iterateAllElements() as $googleAdsRow) { /** @var GoogleAdsRow $googleAdsRow */ $recommendation = $googleAdsRow->getRecommendation(); printf( "Keyword recommendation with resource name '%s' was found for campaign " . "with resource name '%s':%s", $recommendation->getResourceName(), $recommendation->getCampaign(), PHP_EOL ); if (!is_null($recommendation->getKeywordRecommendation())) { $keyword = $recommendation->getKeywordRecommendation()->getKeyword(); printf( "\tKeyword = '%s'%s\ttype = '%s'%s", $keyword->getText(), PHP_EOL, KeywordMatchType::name($keyword->getMatchType()), PHP_EOL ); } // Creates an ApplyRecommendationOperation that will be used to apply this // recommendation, and adds it to the list of operations. $operations[] = self::buildRecommendationOperation($recommendation->getResourceName()); }
Python
googleads_service = client.get_service("GoogleAdsService") query = f""" SELECT recommendation.campaign, recommendation.keyword_recommendation FROM recommendation WHERE recommendation.type = KEYWORD""" # Detects keyword recommendations that exist for the customer account. response = googleads_service.search(customer_id=customer_id, query=query) operations = [] for row in response.results: recommendation = row.recommendation print( f"Keyword recommendation ('{recommendation.resource_name}') " f"was found for campaign '{recommendation.campaign}." ) keyword = recommendation.keyword_recommendation.keyword print( f"\tKeyword = '{keyword.text}'\n" f"\tType = '{keyword.match_type}'" ) # Create an ApplyRecommendationOperation that will be used to apply # this recommendation, and add it to the list of operations. operations.append( build_recommendation_operation(client, recommendation.resource_name) )
Rita
query = <<~QUERY SELECT recommendation.resource_name, recommendation.campaign, recommendation.keyword_recommendation FROM recommendation WHERE recommendation.type = KEYWORD QUERY google_ads_service = client.service.google_ads response = google_ads_service.search( customer_id: customer_id, query: query, ) operations = response.each do |row| recommendation = row.recommendation puts "Keyword recommendation ('#{recommendation.resource_name}') was found for "\ "campaign '#{recommendation.campaign}'." if recommendation.keyword_recommendation keyword = recommendation.keyword_recommendation.keyword puts "\tKeyword = '#{keyword.text}'" puts "\ttype = '#{keyword.match_type}'" end build_recommendation_operation(client, recommendation.resource_name) end
Perl
# Create the search query. my $search_query = "SELECT recommendation.resource_name, " . "recommendation.campaign, recommendation.keyword_recommendation " . "FROM recommendation " . "WHERE recommendation.type = KEYWORD"; # Get the GoogleAdsService. my $google_ads_service = $api_client->GoogleAdsService(); my $search_stream_handler = Google::Ads::GoogleAds::Utils::SearchStreamHandler->new({ service => $google_ads_service, request => { customerId => $customer_id, query => $search_query }}); # Create apply operations for all the recommendations found. my $apply_recommendation_operations = (); $search_stream_handler->process_contents( sub { my $google_ads_row = shift; my $recommendation = $google_ads_row->{recommendation}; printf "Keyword recommendation '%s' was found for campaign '%s'.\n", $recommendation->{resourceName}, $recommendation->{campaign}; my $keyword = $recommendation->{keywordRecommendation}{keyword}; printf "\tKeyword = '%s'\n", $keyword->{text}; printf "\tMatch type = '%s'\n", $keyword->{matchType}; # Creates an ApplyRecommendationOperation that will apply this recommendation, and adds # it to the list of operations. push @$apply_recommendation_operations, build_recommendation_operation($recommendation); });
Toma medidas
Se puede aplicar o descartar cualquier recomendación recuperada.
Según el tipo de recomendación, estas pueden cambiar diariamente
o incluso varias veces al día. Cuando eso sucede, se muestra
la resource_name
del objeto puede
se vuelven obsoletas
luego de que se recupera la recomendación.
Es una buena práctica tomar medidas sobre las recomendaciones poco después de la recuperación.
Aplica recomendaciones
Video: Cómo aplicar recomendaciones
Puedes aplicar recomendaciones activas o descartadas con el
ApplyRecommendation
método de la
RecommendationService
Los tipos de recomendación pueden tener parámetros opcionales o obligatorios. Más probable Las recomendaciones incluyen valores recomendados que se usan de forma predeterminada.
Configurar cuentas para las recomendaciones aplicadas automáticamente no es
compatible con todos los tipos de recomendaciones. Sin embargo, puedes implementar herramientas similares
para los tipos de recomendaciones que son totalmente compatibles con la API de Google Ads.
Consulta el código DetectAndApplyRecommendations
.
ejemplo para obtener más información.
Usa el
apply_parameters
campo de unión de ApplyRecommendationOperation
para aplicar las recomendaciones con
valores de parámetros específicos. Cada tipo de recomendación adecuado tiene su propio campo.
Los tipos de recomendaciones que no se incluyan en el campo apply_parameters
no usan
estos valores de parámetros.
Ejemplo de código
En el siguiente código, se demuestra cómo compilar la
ApplyRecommendationOperation
y
cómo anular los valores recomendados si quieres reemplazarlos por tu
por sí solas.
Java
/** Creates and returns an ApplyRecommendationOperation to apply the given recommendation. */ private ApplyRecommendationOperation buildRecommendationOperation(Recommendation recommendation) { // If you have a recommendation ID instead of a resource name, you can create a resource name // like this: // String resourceName = ResourceNames.recommendation(customerId, recommendationId); // Creates a builder to construct the operation. Builder operationBuilder = ApplyRecommendationOperation.newBuilder(); // Each recommendation type has optional parameters to override the recommended values. Below is // an example showing how to override a recommended ad when a TextAdRecommendation is applied. // operationBuilder.getTextAdBuilder().getAdBuilder().setResourceName("INSERT_AD_RESOURCE_NAME"); // Sets the operation's resource name to the resource name of the recommendation to apply. operationBuilder.setResourceName(recommendation.getResourceName()); return operationBuilder.build(); }
C#
private ApplyRecommendationOperation BuildApplyRecommendationOperation( string recommendationResourceName ) { // If you have a recommendation_id instead of the resource_name you can create a // resource name from it like this: // string recommendationResourceName = // ResourceNames.Recommendation(customerId, recommendationId) // Each recommendation type has optional parameters to override the recommended values. // This is an example to override a recommended ad when a TextAdRecommendation is // applied. // For details, please read // https://developers.google.com/google-ads/api/reference/rpc/latest/ApplyRecommendationOperation. /* Ad overridingAd = new Ad() { Id = "INSERT_AD_ID_AS_LONG_HERE" }; applyRecommendationOperation.TextAd = new TextAdParameters() { Ad = overridingAd }; */ ApplyRecommendationOperation applyRecommendationOperation = new ApplyRecommendationOperation() { ResourceName = recommendationResourceName }; return applyRecommendationOperation; }
PHP
private static function buildRecommendationOperation( string $recommendationResourceName ): ApplyRecommendationOperation { // If you have a recommendation_id instead of the resource name, you can create a resource // name from it like this: /* $recommendationResourceName = ResourceNames::forRecommendation($customerId, $recommendationId); */ // Each recommendation type has optional parameters to override the recommended values. // This is an example to override a recommended ad when a TextAdRecommendation is applied. // For details, please read // https://developers.google.com/google-ads/api/reference/rpc/latest/ApplyRecommendationOperation. /* $overridingAd = new Ad([ 'id' => 'INSERT_AD_ID_AS_INTEGER_HERE' ]); $applyRecommendationOperation->setTextAd(new TextAdParameters(['ad' => $overridingAd])); */ // Issues a mutate request to apply the recommendation. $applyRecommendationOperation = new ApplyRecommendationOperation(); $applyRecommendationOperation->setResourceName($recommendationResourceName); return $applyRecommendationOperation; }
Python
def build_recommendation_operation(client, recommendation): """Creates a ApplyRecommendationOperation to apply the given recommendation. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. recommendation: a resource name for the recommendation to be applied. """ # If you have a recommendation ID instead of a resource name, you can create # a resource name like this: # # googleads_service = client.get_service("GoogleAdsService") # resource_name = googleads_service.recommendation_path( # customer_id, recommendation.id # ) operation = client.get_type("ApplyRecommendationOperation") # Each recommendation type has optional parameters to override the # recommended values. Below is an example showing how to override a # recommended ad when a TextAdRecommendation is applied. # # operation.text_ad.ad.resource_name = "INSERT_AD_RESOURCE_NAME" # # For more details, see: # https://developers.google.com/google-ads/api/reference/rpc/latest/ApplyRecommendationOperation#apply_parameters operation.resource_name = recommendation return operation
Rita
def build_recommendation_operation(client, recommendation) # If you have a recommendation_id instead of the resource_name # you can create a resource name from it like this: # recommendation_resource = # client.path.recommendation(customer_id, recommendation_id) operations = client.operation.apply_recommendation operations.resource_name = recommendation_resource # Each recommendation type has optional parameters to override the recommended # values. This is an example to override a recommended ad when a # TextAdRecommendation is applied. # # text_ad_parameters = client.resource.text_ad_parameters do |tap| # tap.ad = client.resource.ad do |ad| # ad.id = "INSERT_AD_ID_AS_INTEGER_HERE" # end # end # operation.text_ad = text_ad_parameters # # For more details, see: # https://developers.google.com/google-ads/api/reference/rpc/latest/ApplyRecommendationOperation#apply_parameters return operation end
Perl
sub build_recommendation_operation { my ($recommendation) = @_; # If you have a recommendation ID instead of a resource name, you can create a resource # name like this: # my $recommendation_resource_name = # Google::Ads::GoogleAds::V17::Utils::ResourceNames::recommendation( # $customer_id, $recommendation_id); # Each recommendation type has optional parameters to override the recommended values. # Below is an example showing how to override a recommended ad when a TextAdRecommendation # is applied. # my $overriding_ad = Google::Ads::GoogleAds::V17::Resources::Ad->new({ # id => "INSERT_AD_ID_AS_INTEGER_HERE" # }); # my $text_ad_parameters = # Google::Ads::GoogleAds::V17::Services::RecommendationService::TextAdParameters # ->new({ad => $overriding_ad}); # $apply_recommendation_operation->{textAd} = $text_ad_parameters; # Create an apply recommendation operation. my $apply_recommendation_operation = Google::Ads::GoogleAds::V17::Services::RecommendationService::ApplyRecommendationOperation ->new({ resourceName => $recommendation->{resourceName}}); return $apply_recommendation_operation; }
En el siguiente ejemplo, se llama
ApplyRecommendation
:
enviando las operaciones de aplicación de recomendaciones que se crearon en el período anterior
código.
Java
// Issues a mutate request to apply the recommendations. ApplyRecommendationResponse applyRecommendationsResponse = recommendationServiceClient.applyRecommendation( Long.toString(customerId), applyRecommendationOperations); for (ApplyRecommendationResult applyRecommendationResult : applyRecommendationsResponse.getResultsList()) { System.out.printf( "Applied recommendation with resource name: '%s'.%n", applyRecommendationResult.getResourceName()); }
C#
private void ApplyRecommendation(GoogleAdsClient client, long customerId, List<ApplyRecommendationOperation> operations) { // Get the RecommendationServiceClient. RecommendationServiceClient recommendationService = client.GetService( Services.V17.RecommendationService); ApplyRecommendationRequest applyRecommendationRequest = new ApplyRecommendationRequest() { CustomerId = customerId.ToString(), }; applyRecommendationRequest.Operations.AddRange(operations); ApplyRecommendationResponse response = recommendationService.ApplyRecommendation(applyRecommendationRequest); foreach (ApplyRecommendationResult result in response.Results) { Console.WriteLine("Applied a recommendation with resource name: " + result.ResourceName); } }
PHP
private static function applyRecommendations( GoogleAdsClient $googleAdsClient, int $customerId, array $operations ): void { // Issues a mutate request to apply the recommendations. $recommendationServiceClient = $googleAdsClient->getRecommendationServiceClient(); $response = $recommendationServiceClient->applyRecommendation( ApplyRecommendationRequest::build($customerId, $operations) ); foreach ($response->getResults() as $appliedRecommendation) { /** @var Recommendation $appliedRecommendation */ printf( "Applied a recommendation with resource name: '%s'.%s", $appliedRecommendation->getResourceName(), PHP_EOL ); } }
Python
def apply_recommendations(client, customer_id, operations): """Applies a batch of recommendations. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. operations: a list of ApplyRecommendationOperation messages. """ # Issues a mutate request to apply the recommendations. recommendation_service = client.get_service("RecommendationService") response = recommendation_service.apply_recommendation( customer_id=customer_id, operations=operations ) for result in response.results: print( "Applied a recommendation with resource name: " f"'{result[0].resource_name}'." )
Rita
def apply_recommendations(client, customer_id, operations) # Issues a mutate request to apply the recommendation. recommendation_service = client.service.recommendation response = recommendation_service.apply_recommendation( customer_id: customer_id, operations: [operations], ) response.results.each do |applied_recommendation| puts "Applied recommendation with resource name: '#{applied_recommendation.resource_name}'." end end
Perl
# Issue a mutate request to apply the recommendations. my $apply_recommendation_response = $api_client->RecommendationService()->apply({ customerId => $customer_id, operations => $apply_recommendation_operations }); foreach my $result (@{$apply_recommendation_response->{results}}) { printf "Applied recommendation with resource name: '%s'.\n", $result->{resourceName}; }
Mira estos videos para obtener más información
Aplica parámetros
Masiva
Errores
Pruebas
Cómo descartar recomendaciones
Video: Cómo descartar recomendaciones
Puedes descartar recomendaciones con el
RecommendationService
El código
es similar a aplicar recomendaciones, pero, en cambio, se usa
DismissRecommendationOperation
y
RecommendationService.DismissRecommendation
.
Mira estos videos para obtener más información
Masiva
Errores
Pruebas
Aplique automáticamente las recomendaciones
A partir de la versión 15 de la API de Google Ads, puede utilizar la
RecommendationSubscriptionService
para aplicar automáticamente las recomendaciones de un tipo específico.
Para suscribirte a un tipo de recomendación en particular, crea una
objeto RecommendationSubscription
,
establece el campo type
en uno de
la recomendación admitida
types y establece la
status
en ENABLED
.
Tipos de recomendaciones compatibles con suscripciones
ENHANCED_CPC_OPT_IN
KEYWORD
KEYWORD_MATCH_TYPE
LOWER_TARGET_ROAS
MAXIMIZE_CLICKS_OPT_IN
OPTIMIZE_AD_ROTATION
RAISE_TARGET_CPA
RESPONSIVE_SEARCH_AD
RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH
SEARCH_PARTNERS_OPT_IN
SEARCH_PLUS_OPT_IN
SET_TARGET_CPA
SET_TARGET_ROAS
TARGET_CPA_OPT_IN
TARGET_ROAS_OPT_IN
USE_BROAD_MATCH_KEYWORD
Cómo recuperar suscripciones
Para obtener información sobre las suscripciones a recomendaciones de una cuenta, consulta el
Recurso recommendation_subscription
.
Para ver los cambios que se aplicaron automáticamente, consulta
recurso change_event
, filtrando
change_client_type
a
GOOGLE_ADS_RECOMMENDATIONS_SUBSCRIPTION
Recomendaciones en la creación de campañas
A partir de la versión 16 de la API de Google Ads, puede utilizar
RecommendationService.GenerateRecommendationsRequest
para generar recomendaciones durante la creación de una campaña para un conjunto determinado de
tipos de recomendaciones.
GenerateRecommendations
acepta como entrada un ID de cliente, un canal de publicidad
que debe ser
SEARCH
o
PERFORMANCE_MAX
,
una lista de tipos de recomendaciones para generar y varios datos que dependen
los tipos especificados. Da como resultado una lista de objetos Recommendation
según la
los datos que proporcionas. Si no hay datos suficientes para generar una recomendación
de los recursos solicitados
recommendation_types
:
o si la campaña ya se encuentra en el estado recomendado, el conjunto de resultados
contienen una recomendación para ese tipo. Asegúrate de que tu aplicación controle
caso en el que no se muestran recomendaciones para la recomendación solicitada
de tipos de datos.
En la siguiente tabla, se describen los tipos de recomendaciones que
admite GenerateRecommendations
, y los campos que debes proporcionar para recibir
recomendaciones para ese tipo. Como práctica recomendada, envía el
Solicitud de GenerateRecommendations
después de que se haya recopilado toda la información
relacionadas con los tipos de recomendaciones solicitados. Para obtener detalles adicionales
campos obligatorios y opcionales, incluidos los campos anidados, consulta la
documentación de referencia.
RecommendationType | Campos obligatorios | Campos opcionales |
---|---|---|
KEYWORD |
|
|
MAXIMIZE_CLICKS_OPT_IN |
|
|
MAXIMIZE_CONVERSIONS_OPT_IN |
|
|
MAXIMIZE_CONVERSION_VALUE_OPT_IN |
|
|
SET_TARGET_CPA |
|
|
SET_TARGET_ROAS |
|
|
SITELINK_ASSET
Nota: La columna SitelinkAssetRecommendation
contendrá listas vacías. Si el elemento GenerateRecommendations
contiene un SitelinkAssetRecommendation , se puede
se consideran un indicador para agregar, al menos, un recurso de vínculo a sitio a la campaña. |
|
|
TARGET_CPA_OPT_IN |
|
|
TARGET_ROAS_OPT_IN |
|
Ejemplo de flujo de uso
Supongamos que tu empresa es una agencia de publicidad que ofrece una campaña
del flujo de trabajo de construcción y quieres ofrecerles sugerencias
durante ese flujo. Puedes usar
GenerateRecommendationsRequest
generar recomendaciones a pedido e incorporarlas
en la interfaz de usuario de creación de la campaña.
El flujo de uso podría verse de la siguiente manera:
Un usuario visita tu aplicación para crear una campaña de máximo rendimiento.
El usuario proporciona información inicial como parte de la campaña. en el flujo de construcción. Por ejemplo, proporcionan detalles para crear un solo
SitelinkAsset
y seleccionaTARGET_SPEND
que sus Ofertas inteligentes de administración de amenazas.Envías un
GenerateRecommendationsRequest
que establece los siguientes campos:campaign_sitelink_count
: Se estableció en1
, que es la cantidad de recursos de vínculo a sitio que se encuentran en el trabajo campaña.bidding_info
: establece el campobidding_strategy_type
anidado enTARGET_SPEND
.conversion_tracking_status
: Se establece enConversionTrackingStatus
de este cliente. Para obtener instrucciones sobre cómo recuperar este campo, visita la Primeros pasos para la administración de conversiones.recommendation_types
: establecido como[SITELINK_ASSET, MAXIMIZE_CLICKS_OPT_IN]
.advertising_channel_type
: establecido comoPERFORMANCE_MAX
.customer_id
: Se establece en el ID del cliente que crea la campaña.
Puedes ver las recomendaciones en la
GenerateRecommendationsResponse
- en este caso, unSitelinkAssetRecommendation
y unMaximizeClicksOptInRecommendation
—y sugerirlos al usuario mostrándolos en su campaña de construcción. Si el usuario acepta una sugerencia, puedes incorporarla en la solicitud de creación de la campaña una vez que el usuario complete en el flujo de creación de la campaña.