Erweiterte Textanzeigen

Mit erweiterten Textanzeigen können Sie im Google-Werbenetzwerk für Produkte und Dienstleistungen werben. Dieses Anzeigenformat hat folgende Eigenschaften:

Zwei Anzeigentitel
In diesem Anzeigentyp gibt es zwei Felder für Anzeigentitel. Der zweite Titel ist mit dem ersten durch einen Bindestrich verbunden. Auf Mobilgeräten können die zwei kombinierten Anzeigentitelfelder in eine zweite Zeile umbrechen.
Mehr Zeichen
Jeder Anzeigentitel kann bis zu 30 Zeichen enthalten, mehr als Standardtextanzeigen. Bei Sprachen mit Zeichen doppelter Breite wie Chinesisch, Japanisch und Koreanisch sind 15 Zeichen möglich.
Längere Textzeile
Die Textzeile kann jetzt bis zu 80 Zeichen enthalten. So kommt es seltener vor, dass Text abgeschnitten oder mit Auslassungspunkten versehen wird. Die Anzeigendarstellung kann besser vorhergesehen werden.
URL-Anpassung
Sie müssen für Ihre Anzeige keine angezeigte URL mehr eingeben. Die URL wird stattdessen anhand der Felder für die Zielseite und den Pfad (path1 und path2) ermittelt. Nutzer sehen an der URL, wohin sie bei einem Klick gelangen. Das Verhalten der finalen URL und der Tracking-URL bleibt unverändert.

Das folgende Beispiel zeigt eine Anzeige für Interplanetary Cruises in der AdWords-Benutzeroberfläche, nachdem sie über die AdWords API hochgeladen wurde.

Die Felder dieser erweiterten Textanzeige haben die folgenden Werte:

Feld Wert
headlinePart1 Cruise to Mars #12QjNuTP
headlinePart2 Best Space Cruise Line
description Buy your tickets now!
finalUrls ["http://www.example.com/0"]
path1 all-inclusive
path2 deals

Beispiel

Im Folgenden untersuchen wir den Code für die oben dargestellte Interplanetary Cruise-Anzeige genauer.

Ähnlich wie andere Anzeigentypen kann ExpandedTextAd mit der AdGroupAdService.mutate()-Methode hinzugefügt werden. Bei diesem Anzeigentyp sind zwei Anzeigentitel, eine Beschreibung und eine oder mehr finale URLs erforderlich.

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

Um die erweiterten Textanzeigen, die Sie erstellt haben, abzurufen, rufen Sie AdGroupAdService.get() mit einem nach dem AdType EXPANDED_TEXT_AD gefilterten Prädikat auf.

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

Anzeigenvariationen

Mit der Funktion Anzeigenvariationen lassen sich leicht Variationen für mehrere Kampagnen oder das gesamte Konto erstellen und testen. In der AdWords API wird das Erstellen und Verwalten von Anzeigenvariationen derzeit nicht unterstützt. Sie können jedoch die Testanzeigen, die mit der Funktion "Anzeigenvariationen" erstellt wurden, mit einer der folgenden Methoden identifizieren:

  • Verwendung von AdGroupAdService

  • Wenn Sie Berichte verwenden, unterstützt AD_PERFORMANCE_REPORT die Spalte SystemManagedEntitySource, in der Sie die gleichen Informationen wie in den Zuordnungen zur Aufwärtskompatibilität finden.

Berichte

In den Berichten zu erweiterten Textanzeigen ist als AdType EXPANDED_TEXT_AD festgelegt. Damit sich die Daten zu erweiterten Textanzeigen im Bericht "Anzeigenleistung" einfacher abrufen lassen, stehen nun folgende Felder zur Verfügung:

Tipps für die Umstellung

Für die Umstellung auf erweiterte Textanzeigen sind ein paar Schritte Ihrerseits erforderlich: In vielen Fällen muss der zweite Anzeigentitel angepasst werden. Außerdem müssen Sie festlegen, wann die neue erweiterte Textanzeige aktiviert und wann die bisherige Standardtextanzeige deaktiviert werden soll.

So stellen Sie Standardtextanzeigen auf erweiterte Textanzeigen um:

  1. Erstellen Sie die neue erweiterte Textanzeige unter Verwendung von Daten der Standardtextanzeige im Status PAUSIERT. Berücksichtigen Sie, dass description1 bei Standardtextanzeigen 35 Zeichen enthalten kann, während headlinePart2 in erweiterten Textanzeigen auf 30 Zeichen beschränkt ist: Wenn Sie lediglich den Text aus description1 der Textanzeige in headlinePart2 der erweiterten Textanzeige kopieren, wird ein Fehler gemeldet.

  2. Warten Sie, bis der approvalStatus der neuen erweiterten Textanzeige GENEHMIGT ist.

  3. Wenn Sie vollständig automatisierte, Conversion-basierte Gebote (Ziel-CPA oder Ziel-ROAS) verwenden, sollten Sie das Upgrade auf erweiterte Textanzeigen schrittweise vornehmen. Schalten Sie also die erweiterten Textanzeigen eine gewisse Zeit lang parallel zu den Standardtextanzeigen, bevor Sie Letztere entfernen.

  4. Senden Sie eine AdGroupAdService.mutate()-Anfrage mit zwei Vorgängen:

    • Legen Sie den status der neuen erweiterten Textanzeige auf AKTIVIERT fest.
    • Legen Sie den status der alten Standardtextanzeige auf DEAKTIVIERT fest.

Wir empfehlen Ihnen, zunächst die Standardtextanzeigen mit der schlechtesten Leistung umzustellen oder zu testen. Denn wenn Sie stattdessen neue erweiterte Textanzeigen verwenden, erzielen Sie höhere Klickraten.

Fortschritt des Upgrades

Den Fortschritt des Upgrades können Sie messen. Dafür gibt es mehrere Möglichkeiten.

Ebene des Verwaltungskontos – AdWords-Benutzeroberfläche

Melden Sie sich in Ihrem Verwaltungskonto an.

  • Wählen Sie Konten aus.
  • Klicken Sie in der Navigationsleiste links auf Benachrichtigungen.
  • Rufen Sie Filter > Filter erstellen auf.
  • Wählen Sie als Kategorie die Option Sonstige aus.
  • Legen Sie unter Typ folgende drei Werte fest: "Upgrade für Textanzeigen abschließen", "Upgrade für Textanzeigen starten" und "Upgrade für Textanzeigen fortsetzen".
  • Klicken Sie auf Übernehmen.

Sie erhalten dann eine Liste mit Konten und der jeweiligen Anzahl an Standardtextanzeigen, die noch umgestellt werden müssen.

Ebene des Kundenkontos – AdWords-Benutzeroberfläche

Rufen Sie Ihr AdWords-Kundenkonto auf.

  • Klicken Sie auf den Tab Anzeigen.
  • Rufen Sie Filter > Filter erstellen auf.
  • Filtern Sie bei Anzeigentyp nach Textanzeige.
  • Klicken Sie auf Übernehmen.

Sie erhalten dann eine Liste der Standardtextanzeigen.

Ebene des Kundenkontos – API

Mit der Methode AdGroupAdService.get() können Sie die Anzeigen nach Anzeigentyp filtern. Um eine Liste mit allen Standardtextanzeigen abzurufen, fügen Sie den Filter AdType als TEXT_AD hinzu. Beginnen Sie mit den Anzeigen, deren Status AKTIVIERT oder PAUSIERT lautet.

Hier sehen Sie ein Beispiel für eine Berichtsabfrage, mit der Sie alle Standardtextanzeigen, die upgegradet werden müssen, abrufen.

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

Helper für das Upgrade

Mit dem ETA Transition Helper lassen sich Standardtextanzeigen im Bulk-Modus auf erweiterte Textanzeigen umstellen.

Das Tool umfasst zwei Hauptkomponenten:

  1. Ein AdWords-Skript, mit dem Sie Standardtextanzeigen in eine Google Tabelle kopieren und mit dem Sie erweiterte Textanzeigen erstellen können, die Sie dann in Ihrem AdWords-Konto verwenden.

  2. Eine Google Tabelle mit Ihren Standardtextanzeigen, mit der Sie die zugehörigen erweiterten Textanzeigen konfigurieren können.

Codebeispiele

Die vollständigen Codebeispiele sehen Sie, wenn Sie auf die Links unten klicken.

Feedback geben zu...