Anúncios de texto expandidos

Use os anúncios de texto expandidos para destacar produtos ou serviços na Rede do Google. Este formato de anúncio é compatível com:

Dois títulos
Esse tipo de anúncio tem dois campos de título. O segundo título é concatenado ao primeiro campo de título, separado por um traço. Nos dispositivos móveis, os campos de título combinados podem compor uma segunda linha.
Mais caracteres
Os dois títulos contêm 30 caracteres cada um, mais do que os anúncios de texto padrão. Caracteres com o dobro de tamanho como chinês, japonês e coreano podem usar 15 caracteres.
Descrição expandida
Agora existe uma única linha de descrição com um limite ampliado de 80 caracteres. Truncamento e elipses foram minimizados para deixar a exibição do anúncio mais previsível.
Personalização do URL
Em vez de inserir um URL de visualização para seu anúncio, o URL é calculado a partir da página de destino e dos campos de caminho (path1 e path2), que indicam ao usuário para onde ele será direcionado depois de um clique. O URL final e o URL de acompanhamento se comportam da mesma maneira.

Veja um exemplo de anúncio para Interplanetary Cruises na interface do usuário do Google AdWords, depois do upload por meio da AdWords API.

Os campos neste anúncio de texto expandido apresentam os seguintes valores:

Campo Valor
headlinePart1 Cruzeiro Mars #12QjNuTP
headlinePart2 Linha de cruzeiros Best Space
description Adquira já seu ingresso.
finalUrls ["http://www.example.com/0"]
path1 tudo incluído
path2 ofertas

Exemplo

Vejamos o código para o anúncio da Interplanetary Cruise mostrado acima.

Como em outros tipos de anúncio, os ExpandedTextAd podem ser adicionados pelo método AdGroupAdService.mutate(). Esse tipo requer dois títulos, uma descrição e um ou mais URLs finais.

Java

/**
 * Runs the example.
 *
 * @param adWordsServices the services factory.
 * @param session the session.
 * @param adGroupId the ID of the ad group where the ad will be created.
 * @throws ApiException if the API request failed with one or more service errors.
 * @throws RemoteException if the API request failed due to other errors.
 */
public static void runExample(
    AdWordsServicesInterface adWordsServices, AdWordsSession session, long adGroupId)
    throws RemoteException {
  // Get the AdGroupAdService.
  AdGroupAdServiceInterface adGroupAdService =
      adWordsServices.get(session, AdGroupAdServiceInterface.class);

  List<AdGroupAdOperation> operations = new ArrayList<>();

  for (int i = 0; i < NUMBER_OF_ADS; i++) {
    // Create expanded text ad.
    ExpandedTextAd expandedTextAd = new ExpandedTextAd();
    expandedTextAd.setHeadlinePart1(String.format("Cruise #%d to Mars", i));
    expandedTextAd.setHeadlinePart2("Best Space Cruise Line");
    expandedTextAd.setDescription("Buy your tickets now!");
    expandedTextAd.setFinalUrls(new String[] {"http://www.example.com/" + i});

    // Create ad group ad.
    AdGroupAd expandedTextAdGroupAd = new AdGroupAd();
    expandedTextAdGroupAd.setAdGroupId(adGroupId);
    expandedTextAdGroupAd.setAd(expandedTextAd);

    // Optional: set the status.
    expandedTextAdGroupAd.setStatus(AdGroupAdStatus.PAUSED);

    // Create the operation.
    AdGroupAdOperation adGroupAdOperation = new AdGroupAdOperation();
    adGroupAdOperation.setOperand(expandedTextAdGroupAd);
    adGroupAdOperation.setOperator(Operator.ADD);

    operations.add(adGroupAdOperation);
  }

  // Add ads.
  AdGroupAdReturnValue result =
      adGroupAdService.mutate(operations.toArray(new AdGroupAdOperation[operations.size()]));

  // Display ads.
  for (AdGroupAd adGroupAdResult : result.getValue()) {
    ExpandedTextAd newAd = (ExpandedTextAd) adGroupAdResult.getAd();
    System.out.printf("Expanded text ad with ID %d and headline '%s - %s' was added.%n",
        newAd.getId(), newAd.getHeadlinePart1(), newAd.getHeadlinePart2());
  }
}

C#

using (AdGroupAdService adGroupAdService =
    (AdGroupAdService) user.GetService(AdWordsService.v201802.AdGroupAdService)) {

  List<AdGroupAdOperation> operations = new List<AdGroupAdOperation>();

  for (int i = 0; i < NUMBER_OF_ADS; i++) {
    // Create the expanded text ad.
    ExpandedTextAd expandedTextAd = new ExpandedTextAd();
    expandedTextAd.headlinePart1 = "Cruise #" + i.ToString() + " to Mars";
    expandedTextAd.headlinePart2 = "Best Space Cruise Line";
    expandedTextAd.description = "Buy your tickets now!";
    expandedTextAd.finalUrls = new string[] { "http://www.example.com/" + i };

    AdGroupAd expandedTextAdGroupAd = new AdGroupAd();
    expandedTextAdGroupAd.adGroupId = adGroupId;
    expandedTextAdGroupAd.ad = expandedTextAd;

    // Optional: Set the status.
    expandedTextAdGroupAd.status = AdGroupAdStatus.PAUSED;

    // Create the operation.
    AdGroupAdOperation operation = new AdGroupAdOperation();
    operation.@operator = Operator.ADD;
    operation.operand = expandedTextAdGroupAd;

    operations.Add(operation);
  }

  AdGroupAdReturnValue retVal = null;

  try {
    // Create the ads.
    retVal = adGroupAdService.mutate(operations.ToArray());

    // Display the results.
    if (retVal != null && retVal.value != null) {
      foreach (AdGroupAd adGroupAd in retVal.value) {
        ExpandedTextAd newAd = adGroupAd.ad as ExpandedTextAd;
        Console.WriteLine("Expanded text ad with ID '{0}' and headline '{1} - {2}' " +
            "was added.", newAd.id, newAd.headlinePart1, newAd.headlinePart2);
      }
    } else {
      Console.WriteLine("No expanded text ads were created.");
    }
    adGroupAdService.Close();
  } catch (Exception e) {
    throw new System.ApplicationException("Failed to create expanded text ad.", e);
  }
}

PHP

public static function runExample(
    AdWordsServices $adWordsServices,
    AdWordsSession $session,
    $adGroupId
) {
    $adGroupAdService = $adWordsServices->get($session, AdGroupAdService::class);

    $operations = [];
    // Create an expanded text ad.
    $expandedTextAd = new ExpandedTextAd();
    $expandedTextAd->setHeadlinePart1('Cruise to Mars #' . uniqid());
    $expandedTextAd->setHeadlinePart2('Best Space Cruise Line');
    $expandedTextAd->setDescription('Buy your tickets now!');
    $expandedTextAd->setFinalUrls(['http://www.example.com']);
    $expandedTextAd->setPath1('all-inclusive');
    $expandedTextAd->setPath2('deals');

    // Create ad group ad.
    $adGroupAd = new AdGroupAd();
    $adGroupAd->setAdGroupId($adGroupId);
    $adGroupAd->setAd($expandedTextAd);

    // Optional: Set additional settings.
    $adGroupAd->setStatus(AdGroupAdStatus::PAUSED);

    // Create ad group ad operation and add it to the list.
    $operation = new AdGroupAdOperation();
    $operation->setOperand($adGroupAd);
    $operation->setOperator(Operator::ADD);
    $operations[] = $operation;

    // Create another expanded text ad.
    $expandedTextAd = new ExpandedTextAd();
    $expandedTextAd->setHeadlinePart1('Cruise to Venus #' . uniqid());
    $expandedTextAd->setHeadlinePart2('Best Space Cruise Line');
    $expandedTextAd->setDescription('Buy your tickets now!');
    $expandedTextAd->setFinalUrls(['http://www.example.com']);

    // Create ad group ad.
    $adGroupAd = new AdGroupAd();
    $adGroupAd->setAdGroupId($adGroupId);
    $adGroupAd->setAd($expandedTextAd);
    // Optional: Set additional settings.
    $adGroupAd->setStatus(AdGroupAdStatus::PAUSED);

    // Create ad group ad operation and add it to the list.
    $operation = new AdGroupAdOperation();
    $operation->setOperand($adGroupAd);
    $operation->setOperator(Operator::ADD);
    $operations[] = $operation;

    // Add expanded text ads on the server.
    $result = $adGroupAdService->mutate($operations);

    // Create the expanded text ads on the server and print out some information
    // for each created expanded text ad.
    foreach ($result->getValue() as $adGroupAd) {
        printf(
            "Expanded text ad with ID %d and headline '%s - %s' was added.\n",
            $adGroupAd->getAd()->getId(),
            $adGroupAd->getAd()->getHeadlinePart1(),
            $adGroupAd->getAd()->getHeadlinePart2()
        );
    }
}

Perl

sub add_expanded_text_ads {
  my $client      = shift;
  my $ad_group_id = shift;

  my $num_ads    = 5;
  my @operations = ();
  for (my $i = 0 ; $i < $num_ads ; $i++) {
    # Create expanded text ad.
    my $expanded_text_ad = Google::Ads::AdWords::v201802::ExpandedTextAd->new({
        headlinePart1 => "Cruise to Mars #" . substr(uniqid(), 0, 8),
        headlinePart2 => "Best Space Cruise Line",
        description   => "Buy your tickets now!",
        finalUrls     => ["http://www.example.com/" . $i],
        path1         => "all-inclusive",
        path2         => "deals"
    });

    # Create ad group ad for the expanded text ad.
    my $ad_group_ad = Google::Ads::AdWords::v201802::AdGroupAd->new({
        adGroupId => $ad_group_id,
        ad        => $expanded_text_ad,
        # Additional properties (non-required).
        status => "PAUSED"
    });

    # Create operation.
    my $ad_group_ad_operation =
      Google::Ads::AdWords::v201802::AdGroupAdOperation->new({
        operator => "ADD",
        operand  => $ad_group_ad
      });
    push @operations, $ad_group_ad_operation;
  }

  # Add expanded text ad.
  my $result =
    $client->AdGroupAdService()->mutate({operations => \@operations});

  # Display results.
  if ($result->get_value()) {
    foreach my $ad_group_ad (@{$result->get_value()}) {
      printf "New expanded text ad with id \"%d\" and " .
        "headline \"%s - %s\" was added.\n",
        $ad_group_ad->get_ad()->get_id(),
        $ad_group_ad->get_ad()->get_headlinePart1(),
        $ad_group_ad->get_ad()->get_headlinePart2();
    }
  } else {
    print "No expanded text ads were added.\n";
  }

  return 1;
}

Python

def main(client, ad_group_id):
  # Initialize appropriate service.
  ad_group_ad_service = client.GetService('AdGroupAdService', version='v201802')

  operations = [
      {
          'operator': 'ADD',
          'operand': {
              'xsi_type': 'AdGroupAd',
              'adGroupId': ad_group_id,
              'ad': {
                  'xsi_type': 'ExpandedTextAd',
                  'headlinePart1': ('Cruise #%s to Mars'
                                    % str(uuid.uuid4())[:8]),
                  'headlinePart2': 'Best Space Cruise Line',
                  'description': 'Buy your tickets now!',
                  'finalUrls': ['http://www.example.com/%s' % i],
              },
              # Optional fields.
              'status': 'PAUSED'
          }
      } for i in range(NUMBER_OF_ADS)
  ]
  ads = ad_group_ad_service.mutate(operations)

  # Display results.
  for ad in ads['value']:
    print ('Ad of type "%s" with id "%d" was added.'
           '\n\theadlinePart1: %s\n\theadlinePart2: %s'
           % (ad['ad']['Ad.Type'], ad['ad']['id'],
              ad['ad']['headlinePart1'], ad['ad']['headlinePart2']))

Ruby

ad_group_ad_srv = adwords.service(:AdGroupAdService, API_VERSION)

# Create text ads.
# The 'xsi_type' field allows you to specify the xsi:type of the object
# being created. It's only necessary when you must provide an explicit
# type that the client library can't infer.
operations = 5.times.map do |i|
  expanded_text_ad = {
    :xsi_type => 'ExpandedTextAd',
    :headline_part1 => 'Cruise to Mars #%d' % (Time.new.to_f * 1000).to_i,
    :headline_part2 => 'Best Space Cruise Line',
    :description => 'Buy your tickets now!',
    :final_urls => ['http://www.example.com/%d' % i],
    :path1 => 'all-inclusive',
    :path2 => 'deals'
  }

  ad_group_ad = {
    :ad_group_id => ad_group_id,
    :ad => expanded_text_ad,
    # Additional properties (non-required).
    :status => 'PAUSED'
  }

  operation = {
    :operator => 'ADD',
    :operand => ad_group_ad
  }
end

# Add ads.
response = ad_group_ad_srv.mutate(operations)
if response and response[:value]
  response[:value].each do |ad_group_ad|
    puts ('New expanded text ad with id "%d" and headline "%s - %s" was ' +
        'added.') % [ad_group_ad[:ad][:id], ad_group_ad[:ad][:headline_part1],
        ad_group_ad[:ad][:headline_part2]]
  end
else
  raise StandardError, 'No ads were added.'
end

Para recuperar os anúncios de texto expandidos que você criou, chame AdGroupAdService.get() com uma filtragem de predicado no AdType do EXPANDED_TEXT_AD.

Java

/**
 * Runs the example.
 *
 * @param adWordsServices the services factory.
 * @param session the session.
 * @param adGroupId the ID of the ad group to use to find expanded text ads.
 * @throws ApiException if the API request failed with one or more service errors.
 * @throws RemoteException if the API request failed due to other errors.
 */
public static void runExample(
    AdWordsServicesInterface adWordsServices, AdWordsSession session, Long adGroupId)
    throws RemoteException {
  // Get the AdGroupAdService.
  AdGroupAdServiceInterface adGroupAdService =
      adWordsServices.get(session, AdGroupAdServiceInterface.class);

  int offset = 0;
  boolean morePages = true;

  // Create selector.
  SelectorBuilder builder = new SelectorBuilder();
  Selector selector =
      builder
          .fields(
              AdGroupAdField.Id,
              AdGroupAdField.Status,
              AdGroupAdField.HeadlinePart1,
              AdGroupAdField.HeadlinePart2,
              AdGroupAdField.Description)
          .orderAscBy(AdGroupAdField.Id)
          .offset(offset)
          .limit(PAGE_SIZE)
          .equals(AdGroupAdField.AdGroupId, adGroupId.toString())
          .in(AdGroupAdField.Status, "ENABLED", "PAUSED")
          .equals("AdType", "EXPANDED_TEXT_AD")
          .build();

  while (morePages) {
    // Get all ads.
    AdGroupAdPage page = adGroupAdService.get(selector);

    // Display ads.
    if (page.getEntries() != null && page.getEntries().length > 0) {
      for (AdGroupAd adGroupAd : page.getEntries()) {
        ExpandedTextAd expandedTextAd = (ExpandedTextAd) adGroupAd.getAd();
        System.out.printf(
            "Expanded text ad with ID %d, status '%s', and headline '%s - %s' was found.%n",
            adGroupAd.getAd().getId(),
            adGroupAd.getStatus(),
            expandedTextAd.getHeadlinePart1(),
            expandedTextAd.getHeadlinePart2());
      }
    } else {
      System.out.println("No expanded text ads were found.");
    }

    offset += PAGE_SIZE;
    selector = builder.increaseOffsetBy(PAGE_SIZE).build();
    morePages = offset < page.getTotalNumEntries();
  }
}

C#

using (AdGroupAdService adGroupAdService =
    (AdGroupAdService) user.GetService(AdWordsService.v201802.AdGroupAdService)) {

  // Create a selector.
  Selector selector = new Selector() {
    fields = new string[] {
      ExpandedTextAd.Fields.Id, AdGroupAd.Fields.Status, ExpandedTextAd.Fields.HeadlinePart1,
      ExpandedTextAd.Fields.HeadlinePart2, ExpandedTextAd.Fields.Description, ExpandedTextAd.Fields.SystemManagedEntitySource
    },
    ordering = new OrderBy[] { OrderBy.Asc(ExpandedTextAd.Fields.Id) },
    predicates = new Predicate[] {
      // Restrict the fetch to only the selected ad group id.
      Predicate.Equals(AdGroupAd.Fields.AdGroupId, adGroupId),

      // Retrieve only expanded text ads.
      Predicate.Equals("AdType", "EXPANDED_TEXT_AD"),

      // By default disabled ads aren't returned by the selector. To return
      // them include the DISABLED status in the statuses field.
      Predicate.In(AdGroupAd.Fields.Status, new string[] {
        AdGroupAdStatus.ENABLED.ToString(),
        AdGroupAdStatus.PAUSED.ToString(),
        AdGroupAdStatus.DISABLED.ToString()
      })
    },
    paging = Paging.Default
  };

  AdGroupAdPage page = new AdGroupAdPage();

  try {
    do {
      // Get the expanded text ads.
      page = adGroupAdService.get(selector);

      // Display the results.
      if (page != null && page.entries != null) {
        int i = selector.paging.startIndex;

        foreach (AdGroupAd adGroupAd in page.entries) {
          ExpandedTextAd expandedTextAd = (ExpandedTextAd) adGroupAd.ad;
          Console.WriteLine("{0} : Expanded text ad with ID '{1}', headline '{2} - {3}' " +
              "and description '{4} was found.", i + 1, expandedTextAd.id,
              expandedTextAd.headlinePart1, expandedTextAd.headlinePart2,
              expandedTextAd.description);
          i++;
        }
      }
      selector.paging.IncreaseOffset();
    } while (selector.paging.startIndex < page.totalNumEntries);
    Console.WriteLine("Number of expanded text ads found: {0}", page.totalNumEntries);
  } catch (Exception e) {
    throw new System.ApplicationException("Failed to get expanded text ads", e);
  }
}

PHP

public static function runExample(
    AdWordsServices $adWordsServices,
    AdWordsSession $session,
    $adGroupId
) {
    $adGroupAdService = $adWordsServices->get($session, AdGroupAdService::class);

    // Create a selector to select all ads for the specified ad group.
    $selector = new Selector();
    $selector->setFields(
        ['Id', 'Status', 'HeadlinePart1', 'HeadlinePart2', 'Description']
    );
    $selector->setOrdering([new OrderBy('Id', SortOrder::ASCENDING)]);
    $selector->setPredicates(
        [
            new Predicate('AdGroupId', PredicateOperator::IN, [$adGroupId]),
            new Predicate(
                'AdType',
                PredicateOperator::IN,
                [AdType::EXPANDED_TEXT_AD]
            ),
            new Predicate(
                'Status',
                PredicateOperator::IN,
                [AdGroupAdStatus::ENABLED, AdGroupAdStatus::PAUSED]
            )
        ]
    );
    $selector->setPaging(new Paging(0, self::PAGE_LIMIT));

    $totalNumEntries = 0;
    do {
        // Retrieve ad group ads one page at a time, continuing to request pages
        // until all ad group ads have been retrieved.
        $page = $adGroupAdService->get($selector);

        // Print out some information for each ad group ad.
        if ($page->getEntries() !== null) {
            $totalNumEntries = $page->getTotalNumEntries();
            foreach ($page->getEntries() as $adGroupAd) {
                printf(
                    "Expanded text ad with ID %d, status '%s', and headline '%s - %s' was found.\n",
                    $adGroupAd->getAd()->getId(),
                    $adGroupAd->getStatus(),
                    $adGroupAd->getAd()->getHeadlinePart1(),
                    $adGroupAd->getAd()->getHeadlinePart2()
                );
            }
        }

        $selector->getPaging()->setStartIndex(
            $selector->getPaging()->getStartIndex() + self::PAGE_LIMIT
        );
    } while ($selector->getPaging()->getStartIndex() < $totalNumEntries);

    printf("Number of results found: %d\n", $totalNumEntries);
}

Perl

sub get_expanded_text_ads {
  my $client      = shift;
  my $ad_group_id = shift;

  # Create predicates.
  my $ad_group_predicate = Google::Ads::AdWords::v201802::Predicate->new({
      field    => "AdGroupId",
      operator => "IN",
      values   => [$ad_group_id]});
  my $status_predicate = Google::Ads::AdWords::v201802::Predicate->new({
      field    => "Status",
      operator => "IN",
      values   => ["ENABLED", "PAUSED"]});
  my $ad_type_predicate = Google::Ads::AdWords::v201802::Predicate->new({
      field    => "AdType",
      operator => "EQUALS",
      values   => ["EXPANDED_TEXT_AD"]});

  # Create selector.
  my $paging = Google::Ads::AdWords::v201802::Paging->new({
      startIndex    => 0,
      numberResults => PAGE_SIZE
  });
  my $selector = Google::Ads::AdWords::v201802::Selector->new({
      fields =>
        ["Id", "Status", "HeadlinePart1", "HeadlinePart2", "Description"],
      predicates =>
        [$ad_group_predicate, $status_predicate, $ad_type_predicate],
      ordering => [
        Google::Ads::AdWords::v201802::OrderBy->new({
            field     => "Id",
            sortOrder => "ASCENDING"
          })
      ],
      paging => $paging
    });

  # Paginate through results.
  # The contents of the subroutine will be executed for each text ad.
  Google::Ads::AdWords::Utilities::PageProcessor->new({
      client   => $client,
      service  => $client->AdGroupAdService(),
      selector => $selector
    }
    )->process_entries(
    sub {
      my ($ad_group_ad) = @_;
      printf "Expanded text ad with id \"%d\", status \"%s\", and " .
        "headline \"%s - %s\" was found.\n",
        $ad_group_ad->get_ad()->get_id(),
        $ad_group_ad->get_status(),
        $ad_group_ad->get_ad()->get_headlinePart1(),
        $ad_group_ad->get_ad()->get_headlinePart2();
    });

  return 1;
}

Python

def main(client, ad_group_id):
  # Initialize appropriate service.
  ad_group_ad_service = client.GetService('AdGroupAdService', version='v201802')

  # Construct selector and get all ads for a given ad group.
  offset = 0
  selector = {
      'fields': ['Id', 'AdGroupId', 'Status', 'HeadlinePart1', 'HeadlinePart2',
                 'Description'],
      'predicates': [
          {
              'field': 'AdGroupId',
              'operator': 'EQUALS',
              'values': [ad_group_id]
          },
          {
              'field': 'AdType',
              'operator': 'EQUALS',
              'values': ['EXPANDED_TEXT_AD']
          }
      ],
      'paging': {
          'startIndex': str(offset),
          'numberResults': str(PAGE_SIZE)
      },
      'ordering': [
          {
              'field': 'Id',
              'sortOrder': 'ASCENDING'
          }
      ]
  }
  more_pages = True
  while more_pages:
    page = ad_group_ad_service.get(selector)

    # Display results.
    if 'entries' in page:
      for ad in page['entries']:
        print ('ExpandedTextAd with id "%d", AdGroupId "%d", status "%s", '
               'headlinePart1 "%s", headlinePart2 "%s", description "%s" was '
               'found.' % (ad['ad']['id'], ad['adGroupId'], ad['status'],
                           ad['ad']['headlinePart1'], ad['ad']['headlinePart2'],
                           ad['ad']['description']))
    else:
      print 'No ads were found.'
    offset += PAGE_SIZE
    selector['paging']['startIndex'] = str(offset)
    more_pages = offset < int(page['totalNumEntries'])

Ruby

ad_group_ad_srv = adwords.service(:AdGroupAdService, API_VERSION)

# Get all the ads for this ad group.
selector = {
  :fields => ['Id', 'Status', 'HeadlinePart1', 'HeadlinePart2',
      'Description'],
  :ordering => [{:field => 'Id', :sort_order => 'ASCENDING'}],
  # By default, disabled ads aren't returned by the selector. To return them,
  # include the DISABLED status in a predicate.
  :predicates => [
    {
      :field => 'AdGroupId',
      :operator => 'IN',
      :values => [ad_group_id]
    },
    {
      :field => 'Status',
      :operator => 'IN',
      :values => ['ENABLED', 'PAUSED']
    },
    {
      :field => 'AdType',
      :operator => 'EQUALS',
      :values => ['EXPANDED_TEXT_AD']
    }
  ],
  :paging => {
    :start_index => 0,
    :number_results => PAGE_SIZE
  }
}

# Set initial values.
offset, page = 0, {}

begin
  page = ad_group_ad_srv.get(selector)
  if page[:entries]
    page[:entries].each do |ad_group_ad|
      puts ('Expanded text ad with ID "%d", status "%s", and headline ' +
          '"%s - %s" was found.') % [ad_group_ad[:ad][:id],
          ad_group_ad[:status], ad_group_ad[:ad][:headline_part1],
          ad_group_ad[:ad][:headline_part2]]
    end
    # Increment values to request the next page.
    offset += PAGE_SIZE
    selector[:paging][:start_index] = offset
  end
end while page[:total_num_entries] > offset

if page.include?(:total_num_entries)
  puts "\tAd group ID %d has %d expanded text ad(s)." %
      [ad_group_id, page[:total_num_entries]]
end

Variações do anúncio

Com as variações de anúncio, você pode criar e testar com facilidade versões diferentes dos seus anúncios em várias campanhas ou em toda a conta. No momento, não há suporte para a criação e o gerenciamento de variações de anúncios na Google AdWords API, mas você pode identificar os anúncios experimentais criados por esse recurso usando um dos métodos a seguir.

  • Se você estiver usando o AdGroupAdService:

  • Se você estiver usando relatórios, o AD_PERFORMANCE_REPORT é compatível com uma coluna denominada SystemManagedEntitySource que fornece as mesmas informações do mapa de compatibilidade com versões futuras.

Relatórios

O AdType em relatórios de anúncios de texto expandidos é o EXPANDED_TEXT_AD. Para facilitar a recuperação de dados relacionados a anúncios de texto expandidos no Relatório de desempenho de anúncios, os seguintes campos estão disponíveis:

Dicas de upgrade

O upgrade para anúncios de texto expandidos exigirá sua intervenção. Em muitos casos, o segundo título precisará de um novo conteúdo, e você terá que decidir quando ativar o novo anúncio de texto expandido e quando desativar o anúncio de texto padrão antigo.

Para fazer upgrade dos seus anúncios de texto padrão para anúncios de texto expandidos:

  1. Crie o novo anúncio de texto expandido em um estado PAUSADO com base nos dados do anúncio de texto padrão. A description1 em anúncios de texto padrão tem 35 caracteres, enquanto a headlinePart2 em anúncios de texto expandidos tem 30 caracteres. Se você simplesmente copiar o texto da description1 do anúncio de texto para a headlinePart2 do anúncio de texto expandido, ocorrerá um erro.

  2. Aguarde até que o approvalStatus do novo anúncio de texto expandido esteja como APROVADO.

  3. Se você usa lances que têm como base conversões totalmente automatizadas (CPA desejado ou ROAS desejado), recomendamos a transição gradual para anúncios de texto expandidos. Permita que os anúncios de texto expandidos sejam exibidos paralelamente aos anúncios de texto padrão por algum tempo antes de remover o tipo padrão.

  4. Envie uma solicitação AdGroupAdService.mutate() com duas operações:

    • Defina o status do novo anúncio de texto expandido como ATIVADO.
    • Defina o status do anúncio de texto padrão como DESATIVADO.

Se você não souber ao certo por onde começar a fazer upgrade ou testes, comece pelos anúncios de texto padrão que estão com o pior desempenho. Assim, você verá uma melhoria nas taxas de cliques com os novos anúncios de texto expandidos.

Progresso do upgrade

Há algumas maneiras de medir seu progresso ao fazer upgrade.

Nível da conta de administrador: interface do usuário do Google AdWords

Faça login na sua conta de administrador.

  • Clique em Contas.
  • Na barra de navegação à esquerda, clique em Notificações.
  • Selecione Filtro > Criar filtro.
  • Para Categoria, selecione Outro.
  • Para Tipo, escolha estes três valores: "Conclua o upgrade dos anúncios de texto", "Inicie o upgrade dos anúncios de texto", "Continue o upgrade dos anúncios de texto".
  • Clique em Aplicar.

Você verá uma lista de contas com o número de anúncios de texto padrão que ainda precisam ser atualizados.

Nível da conta do cliente: interface do usuário do Google AdWords

Acesse sua conta de cliente do Google AdWords.

  • Clique na guia Anúncios.
  • Selecione Filtro > Criar filtro.
  • Em Tipo de anúncio, filtre por Anúncio de texto.
  • Clique em Aplicar.

Você verá uma lista com os anúncios de texto padrão.

Nível da conta do cliente: API

Usando o método AdGroupAdService.get(), você pode filtrar seus anúncios por tipo de anúncio. Para recuperar uma lista d anúncios de texto padrão, adicione o filtro AdType como TEXT_AD. Inicie pelos anúncios que estão com estado ATIVADO ou PAUSADO.

Veja um exemplo de consulta de relatório que recupera todos os anúncios de texto padrão que precisam ser atualizados:

SELECT Id, Status, AdGroupId, AdGroupStatus, CampaignId, CampaignStatus
FROM AD_PERFORMANCE_REPORT
WHERE AdType = TEXT_AD AND Status != DISABLED
AND AdGroupStatus != REMOVED
AND CampaignStatus != REMOVED

Ajuda para fazer upgrade

Use o ETA Transition Helper para ajudar no upgrade em lote de anúncios de texto padrão para anúncios de texto expandidos.

A ferramenta tem dois componentes principais:

  1. Um script do Google AdWords que copia seus anúncios de texto padrão para um arquivo do Planilhas Google e ajuda você a escrever anúncios de texto expandidos para adicionar à sua conta do Google AdWords.

  2. Um arquivo do Planilhas Google que exibe seus anúncios de texto padrão e permite que você configure os anúncios de texto expandidos associados.

Exemplos de código

Você pode ver exemplos de código completos nos links abaixo.

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.