Codebeispiele und Anwendungsfälle

Sie haben bereits alles für Ihren ersten API-Aufruf eingerichtet. Außerdem lernten Sie die Konfigurationselemente kennen, die für Aufrufe bei der API erforderlich sind.

In diesem Leitfaden werfen wir einen Blick auf die Struktur eines typischen AdWords API-Codebeispiels.

Dann untersuchen wir einige gebräuchliche Anwendungsfälle, die zeigen, wie die Codebeispiele verwendet werden können, um praktisch jede API-Funktionalität in Ihre Anwendung zu integrieren.

Anatomie eines API-Codebeispiels

Die mit den Clientbibliotheken bereitgestellten Codebeispiele decken die gebräuchlichsten API-Funktionen ab. Sie verarbeiten die meisten Back-End-Aufgaben automatisch und erleichtern die Entwicklung von AdWords API-Anwendungen erheblich.

Sehen wir uns die typische Struktur eines AdWords API-Codebeispiels einmal an. Klicken Sie unten auf den Tab für die Programmiersprache Ihrer Wahl:

Java

Öffnen Sie in Ihrer IDE die im vorherigen Leitfaden verwendete Beispieldatei: GetCampaigns.java.

In GetCampaigns.java sehen Sie in main Boilerplate-Code, der Folgende Aufgaben erfüllt:

  • Anmeldedaten generieren
  • AdWords-Sitzung erstellen
  • Instanziierung von AdWords-Diensten

Sinn und Zweck werden deutlich, wenn Sie die Codebeispiele in der Clientbibliothek erkunden.

Im GetCampaigns-Beispiel gibt es eine weitere Zeile, die Sie möglicherweise benötigen: Im vorherigen Leitfaden haben wir die Client-Kundennummer in der Datei ads.properties festgelegt.

Was ist jedoch zu tun, wenn es unter Ihrem Verwaltungskonto viele Client-Kundenkonten gibt? In diesem Fall können Sie die Client-Kundennummer aus der Datei ads.properties entfernen und programmatisch über das AdWords-Sitzungsobjekt festlegen. Nach dem Erstellen des Objekts rufen Sie setClientCustomerID auf, um sie dynamisch festzulegen.

/ AdWordsSession zusammenstellen
    AdWordsSession session = new AdWordsSession.Builder()
        .fromFile()
        .withOAuth2Credential(oAuth2Credential)
        .build();

    session.setClientCustomerID("123-456-7890");

    AdWordsServices adWordsServices = new AdWordsServices();

    runExample(adWordsServices, session);
  }

.NET

Öffnen Sie in Ihrer IDE die im vorherigen Leitfaden verwendete Beispieldatei: GetCampaigns.cs.

In main sehen Sie Boilerplate-Code, der auf AdWordsUser verweist:
public static void Main(string[] args) {
      GetCampaigns codeExample = new GetCampaigns();
      Console.WriteLine(codeExample.Description);
      try {
        codeExample.Run(new AdWordsUser());

Die wichtigsten Klassen in der .NET-Bibliothek sind die AdsUser-Klassen. AdsUser-Klassen kapseln typischerweise ein einzelnes Ads-Konto, in diesem Fall ein AdWords-Konto.

Mit der AdsWordsUser-Klasse können Sie eine vorkonfigurierte Dienstklasse erstellen, die zur Durchführung von API-Aufrufen verwendet werden kann. Dabei werden die in der Datei app.config Ihrer Anwendung angegebenen Einstellungen verwendet.

// Neuen AdWordsUser mit den App.config-Einstellungen erstellen
AdWordsUser user = new AdWordsUser();

Was ist jedoch zu tun, wenn es unter Ihrem Verwaltungskonto viele Client-Kundenkonten gibt? In diesem Fall können Sie es programmatisch über die Config-Property des AdsUser-Objekts festlegen, um diesen Nutzer zur Laufzeit zu konfigurieren:

// Eine Standard-AdWordsUser-Instanz erstellen. Wenn eine Konfiguration
// in App.config enthalten ist, wird diese verwendet.
AdWordsUser user = new AdWordsUser();

// Zur Laufzeit eine bestimmte Einstellung überschreiben
AdWordsAppConfig config = (AdWordsAppConfig) user.Config;
user.Config.clientCustomerId = "123-456-7890";

Eine weitere Möglichkeit besteht darin, den Konstruktor zu verwenden, der eine AdWordsAppConfig-Instanz akzeptiert. Ein Beispiel:

// Ein Config-Objekt mit den Werten in App.config erstellen
AdWordsAppConfig config = new AdWordsAppConfig();

// Alle zu ändernden speziellen Einstellungen überschreiben
user.Config.clientCustomerId = "123-456-7890";

AdWordsUser user = new AdWordsUser(config);

Python

Öffnen Sie in Ihrer IDE die im vorherigen Leitfaden verwendete Beispieldatei: get_campaigns.py.

In dem Beispiel geht aus den Kommentaren hervor, dass die LoadFromStorage-Methode Anmeldedaten und Properties der Datei googleads.yaml entnimmt. Im vorherigen Leitfaden haben wir die Client-Kundennummer in googleads.yaml festgelegt. Die LoadFromStorage-Methode sucht standardmäßig im Stammverzeichnis nach einer Datei mit diesem Namen. Sie könnten allerdings auch einen Pfad zu einer beliebigen Datei mit dem korrekten yaml-Inhalt übergeben: Standardspeicherort verwenden – Ihr Stammverzeichnis:

adwords_client = adwords.AdWordsClient.LoadFromStorage ()
Speicherort der Datei übergeben:
adwords_client = adwords.AdWordsClient.LoadFromStorage('C:\Mein\Verzeichnis\googleads.yaml')

Was ist jedoch zu tun, wenn es unter Ihrem Verwaltungskonto viele Client-Kundenkonten gibt? In diesem Fall können Sie programmatisch die Client-Kundennummer zur Laufzeit mit dem folgenden Code festlegen:

adwords_client = AdWordsClient.LoadFromStorage()
adwords_client.SetClientCustomerId('123-456-7890')

PHP

Öffnen Sie in Ihrer IDE die im vorherigen Leitfaden verwendete Beispieldatei: GetCampaigns.php.

Im GetCampaigns-Beispiel gibt es Code, der Anmeldedaten aus der Konfigurationsdatei, auth.ini, abruft.

try {
  // AdWordsUser aus Anmeldedaten in "../auth.ini" relativ zum
  // Verzeichnis der Datei AdWordsUser.php abrufen
  $user = new AdWordsUser();

Im GetCampaigns-Beispiel gibt es eine weitere Zeile, die Sie möglicherweise benötigen: Im vorherigen Leitfaden haben wir die Client-Kundennummer in der Datei auth.ini festgelegt.

Was ist jedoch zu tun, wenn es unter Ihrem Verwaltungskonto viele Client-Kundenkonten gibt? In diesem Fall können Sie die Client-Kundennummer aus der Datei auth.ini entfernen und programmatisch festlegen, indem Sie SetClientCustomerId() eines AdWordUser-Objekts aufrufen. Verwenden Sie dazu einen Parameter mit der festzulegenden Client-Kundennummer:

// AdWordsUser-Instanz mit dem Standardkonstruktor erstellen. Dieser lädt
// wie oben beschrieben Informationen aus der Datei auth.ini.
$user = new AdWordsUser();
$user->SetClientCustomerId('123-456-7890');

Perl

Öffnen Sie in Ihrer IDE die im vorherigen Leitfaden verwendete Beispieldatei: get_campaigns.pl.

Im Beispiel gibt es Code, der Anmeldedaten aus der Konfigurationsdatei adwords.properties abruft:

# AdWords-Client abrufen, Anmeldedaten werden aus~/adwords.properties gelesen
my $client = Google::Ads::AdWords::Client->new({version => "v201702"});

Im vorherigen Leitfaden haben wir die Client-Kundennummer in der Datei adwords.properties festgelegt.

Was ist jedoch zu tun, wenn es unter Ihrem Verwaltungskonto viele Client-Kundenkonten gibt? In diesem Fall können Sie die Client-Kundennummer aus adwords.properties entfernen und durch Aufruf von set_client_id programmatisch festlegen:

# AdWords-Client abrufen, Anmeldedaten werden aus~/adwords.properties gelesen
my $client = Google::Ads::AdWords::Client->new({version => "v201702"});
$client->set_client_id("123-456-7890");

Ruby

Öffnen Sie in Ihrer IDE die im vorherigen Leitfaden verwendete Beispieldatei: get_campaigns.rb.

Im Beispiel sehen Sie in main Boilerplate-Code, der Anmeldedaten aus der Konfigurationsdatei adwords_api.yml abruft.

  # AdwordsApi::Api liest beim Aufruf ohne Parameter eine Konfigurationsdatei
  # aus ENV['HOME']/adwords_api.yml.
  adwords = AdwordsApi::Api.new

Im Beispiel gibt es eine weitere Zeile, die Sie möglicherweise benötigen: Im vorherigen Leitfaden haben wir die Client-Kundennummer in der Konfigurationsdatei adwords_api.yml festgelegt.

Was ist jedoch zu tun, wenn es unter Ihrem Verwaltungskonto viele Client-Kundenkonten gibt? In diesem Fall können Sie die Client-Kundennummer aus der Datei adwords_api.yml entfernen und programmatisch über das AdWords-Sitzungsobjekt festlegen. Nach dem Erstellen des Objekts rufen Sie adwords.config.set auf, um sie dynamisch festzulegen.

# Neuen Wert für Kundennummer festlegen
adwords.config.set("authentication.client_customer_id", "123-456-7890")

Auf Codebeispiele zugreifen

Sie finden alle AdWords API-Codebeispiele auf den Seiten zu Clientbibliotheken und Codebeispielen. Durch die Beispiele sind die wichtigsten Einsatzgebiete der API-Funktionen abgedeckt:

  • Kontoverwaltung
  • Kampagnenverwaltung
  • Fehlerbehandlung
  • Optimierung
  • Berichte
  • Ausrichtung

Sie kennen inzwischen die Struktur eines typischen AdWords API-Codebeispiels. Nun werfen wir einen Blick auf einige Anwendungsfälle, die aufzeigen, wie sich die Codebeispiele für nahezu alle API-Funktionen nutzen lassen.

Die beiden wichtigsten Anwendungsgebiete der API-Funktionen sind Berichte und Automatisierung. Beginnen wir mit Berichten.

Codebeispiele für Berichte verwenden

Wir beginnen mit einem Codebeispiel, das einen Leistungsbericht zu Kriterien herunterlädt:

Java

Öffnen Sie DownloadCriteriaReport.java in Ihrer IDE.

In main sehen Sie den gleichen Boilerplate-Code wie vorher:

public static void main(String[] args) throws Exception {
    // Aktualisierbare OAuth2-Anmeldedaten generieren
    Credential oAuth2Credential = new OfflineCredentials.Builder()
        .forApi(Api.ADWORDS)
        .fromFile()
        .build()
        .generateCredential();

    // AdWords-Sitzung erstellen
    AdWordsSession session = new AdWordsSession.Builder()
        .fromFile()
        .withOAuth2Credential(oAuth2Credential)
        .build();

Die RunExample-Methode enthält allerdings den interessantesten Code in dieser Klasse. Hier erstellen wir eine Objekthierarchie, die den gewünschten Bericht definiert:

// Berichtdefinition erstellen
    ReportDefinition reportDefinition = new ReportDefinition();
    reportDefinition.setReportName("Leistungsbericht zu Kriterien - " + System.currentTimeMillis());
    reportDefinition.setDateRangeType(ReportDefinitionDateRangeType.YESTERDAY);
    reportDefinition.setReportType(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT);
    reportDefinition.setDownloadFormat(DownloadFormat.CSV

Die Definition wird dann einer Instanz von ReportDownloader übergeben:

 ReportDownloadResponse response =
          new ReportDownloader(session).downloadReport(reportDefinition);
      response.saveToFile(reportFile);

Führen Sie nun DownloadCriteriaReport.java aus.

In der IDE-Konsole wird der Speicherort der heruntergeladenen Datei ausgegeben.

Im Beispielcode ist ein Berichtstyp angegeben, in diesem Fall ein Leistungsbericht zu Kriterien.

reportDefinition.setReportType(ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT);

Im Beispiel sind auch Felder angegeben, die für den Bericht abgerufen werden sollen:

Selector selector = new Selector();
    selector.getFields().addAll(Lists.newArrayList("CampaignId",
        "AdGroupId",
        "Id",
        "CriteriaType",
        "Criteria",
        "FinalUrls",
        "Impressions",
        "Clicks",
        "Cost"));

.NET

Öffnen Sie DownloadCriteriaReport.cs in Ihrer IDE.

Hier wird der gleiche Boilerplate-Code wie im vorherigen Beispiel verwendet. Er übernimmt die Authentifizierung, indem er Werte aus der Datei app.config abruft:

public static void Main(string[] args) {
      GetCampaigns codeExample = new GetCampaigns();
      Console.WriteLine(codeExample.Description);
      try {
        codeExample.Run(new AdWordsUser());

In diesem Beispiel ist jedoch insbesondere der Code interessant, mit dem eine Objekthierarchie erstellt wird, die den gewünschten Bericht definiert:

public void Run(AdWordsUser user, string fileName) {
      ReportDefinition definition = new ReportDefinition() {
        reportName = "Last 7 days CRITERIA_PERFORMANCE_REPORT",
        reportType = ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT,
        downloadFormat = DownloadFormat.GZIPPED_CSV,
        dateRangeType = ReportDefinitionDateRangeType.LAST_7_DAYS,

Führen Sie nun DownloadCriteriaReport.cs aus.

In der Konsole wird der Speicherort der heruntergeladenen Datei ausgegeben.

Im Beispielcode ist ein Berichtstyp angegeben, in diesem Fall ein Leistungsbericht zu Kriterien.

reportType = ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT,

Im Beispiel sind auch Felder angegeben, die für den Bericht abgerufen werden sollen:

selector = new Selector() {
          fields = new string[] {"CampaignId", "AdGroupId", "Id", "CriteriaType", "Criteria",
              "FinalUrls", "Clicks", "Impressions", "Cost"},
          predicates = new Predicate[] {
            Predicate.In("Status", new string[] {"ENABLED", "PAUSED"})

Python

Öffnen Sie download_criteria_report.py in Ihrer IDE.

Hier wird der gleiche Boilerplate-Code wie im vorherigen Beispiel verwendet. Er übernimmt die Authentifizierung, indem er Werte aus der Datei googleads.yaml abruft:

adwords_client = adwords.AdWordsClient.LoadFromStorage()
  main(adwords_client)

In diesem Beispiel ist jedoch insbesondere der Code interessant, mit dem eine Objekthierarchie erstellt wird, die den gewünschten Bericht definiert:

 # Berichtdefinition erstellen
  report = {
      'reportName': 'Last 7 days CRITERIA_PERFORMANCE_REPORT',
      'dateRangeType': 'LAST_7_DAYS',
      'reportType': 'CRITERIA_PERFORMANCE_REPORT',
      'downloadFormat': 'CSV',
      'selector': {
          'fields': ['CampaignId', 'AdGroupId', 'Id', 'CriteriaType',
                     'Criteria', 'FinalUrls', 'Impressions', 'Clicks', 'Cost']

Die Definition wird dann einer Instanz von ReportDownloader übergeben:

 report_downloader.DownloadReport(
      report, sys.stdout, skip_report_header=False, skip_column_header=False,
      skip_report_summary=False)

Führen Sie nun download_criteria_report.py aus.

In der Konsole wird der Speicherort der heruntergeladenen Datei ausgegeben.

Im Beispielcode ist ein Berichtstyp angegeben, in diesem Fall ein Leistungsbericht zu Kriterien.

Im Beispiel werden im Abschnitt 'selector' auch einige Felder angegeben, die für den Bericht abgerufen werden sollen, etwa "CampaignId" oder "AdGroupId".

PHP

Öffnen Sie DownloadCriteriaReport.php in Ihrer IDE.

Hier wird der gleiche Boilerplate-Code wie im vorherigen Beispiel verwendet. Er übernimmt die Authentifizierung, indem er Werte aus der Datei auth.ini abruft:

  // AdWordsUser aus Anmeldedaten in "../auth.ini" relativ zum
  // Verzeichnis der Datei AdWordsUser.php abrufen
  $user = new AdWordsUser();

In diesem Beispiel ist jedoch insbesondere der Code interessant, mit dem ein Selektor erstellt wird, der den gewünschten Bericht definiert:

  // Berichtdefinition erstellen
  $reportDefinition = new ReportDefinition();
  $reportDefinition->selector = $selector;
  $reportDefinition->reportName = 'Criteria performance report #' . uniqid();
  $reportDefinition->dateRangeType = 'LAST_7_DAYS';
  $reportDefinition->reportType = 'CRITERIA_PERFORMANCE_REPORT';
  $reportDefinition->downloadFormat = 'CSV';

Die Definition wird dann an einen Downloader für Berichte übergeben:

  // Bericht herunterladen
  ReportUtils::DownloadReport($reportDefinition, $filePath, $user, $options);
  printf("Bericht '%s' wurde in '%s' heruntergeladen.\n",
      $reportDefinition->reportName, $filePath);

Führen Sie nun DownloadCriteriaReport.php aus.

In der Konsole wird der Speicherort der heruntergeladenen Datei ausgegeben.

Im Beispielcode ist ein Berichtstyp angegeben, in diesem Fall ein Leistungsbericht zu Kriterien.

$reportDefinition->reportType = 'CRITERIA_PERFORMANCE_REPORT';

Im Beispiel sind auch Felder angegeben, die für den Bericht abgerufen werden sollen:

$selector->fields = array('CampaignId', 'AdGroupId', 'Id', 'Criteria',
      'CriteriaType', 'Impressions', 'Clicks', 'Cost');

Perl

Öffnen Sie download_criteria_report.pl in Ihrer IDE.

Hier wird der gleiche Boilerplate-Code wie im vorherigen Beispiel verwendet. Er übernimmt die Authentifizierung, indem er Werte aus der Datei adwords.properties abruft:

# AdWords-Client abrufen, Anmeldedaten werden aus~/adwords.properties gelesen
my $client = Google::Ads::AdWords::Client->new({version => "v201702"});

In diesem Beispiel ist jedoch insbesondere der Code interessant, mit dem ein Selektor erstellt wird, der den gewünschten Bericht definiert:

my $report_definition = Google::Ads::AdWords::Reports::ReportDefinition->new({
      reportName     => "Last 7 days CRITERIA_PERFORMANCE_REPORT #" . $today,
      dateRangeType  => "LAST_7_DAYS",
      reportType     => "CRITERIA_PERFORMANCE_REPORT",
      downloadFormat => "CSV",
      selector       => $selector
  });

Die Definition wird dann einer Instanz von ReportDownloader übergeben:

 # Bericht mit der geeigneten Methode von ReportDownloadHandler herunterladen
  my $result;
  if ($output_file) {
    $result = $report_handler->save($output_file);
  } else {
    $result = $report_handler->get_as_string();
  }

Führen Sie nun download_criteria_report.pl aus.

In der Konsole wird der Speicherort der heruntergeladenen Datei ausgegeben.

Im Beispielcode ist ein Berichtstyp angegeben, in diesem Fall ein Leistungsbericht zu Kriterien.

reportType     => "CRITERIA_PERFORMANCE_REPORT",

Im Beispiel sind auch Felder angegeben, die für den Bericht abgerufen werden sollen:

# Selektor erstellen
  my $selector = Google::Ads::AdWords::Reports::Selector->new({
      fields => [
        "CampaignId", "AdGroupId", "Id",          "CriteriaType",
        "Criteria",   "FinalUrls", "Impressions", "Clicks",
        "Cost"
      ]});

Ruby

Öffnen Sie download_criteria_report.rb.

Hier wird der gleiche Boilerplate-Code wie im vorherigen Beispiel verwendet. Er übernimmt die Authentifizierung, indem er Werte aus der Datei dwords_api.yml abruft:

def download_criteria_report(file_name)
  # AdwordsApi::Api liest beim Aufruf ohne Parameter eine Konfigurationsdatei
  # aus ENV['HOME']/adwords_api.yml.
  adwords = AdwordsApi::Api.new

In diesem Beispiel ist jedoch insbesondere der Code interessant, mit dem eine Objekthierarchie erstellt wird, die den gewünschten Bericht definiert:

  # Berichtdefinition erstellen. Sie können auch eigenen XML-Text als String übergeben.
  report_definition = {
    :selector => {
      :fields => ['CampaignId', 'AdGroupId', 'Id', 'Criteria', 'CriteriaType',
          'FinalUrls', 'Impressions', 'Clicks', 'Cost'],
    },
...

    :report_name => 'Last 7 days CRITERIA_PERFORMANCE_REPORT',
    :report_type => 'CRITERIA_PERFORMANCE_REPORT',
    :download_format => 'CSV',
    :date_range_type => 'LAST_7_DAYS',

Die Definition wird dann einer Instanz von download_report übergeben:

 # Bericht mithilfe der Methode "download_report_as_file" herunterladen
 # Verwenden Sie die "download_report"-Methode, um den Bericht als Rückgabewert abzurufen.
  report_utils.download_report_as_file(report_definition, file_name)
  puts "Report was downloaded to '%s'." % file_name
end

Führen Sie nun download_criteria_report.rb aus.

In der Konsole wird der Speicherort der heruntergeladenen Datei ausgegeben.

Im Beispielcode ist ein Berichtstyp angegeben, in diesem Fall ein Leistungsbericht zu Kriterien.

:report_type => 'CRITERIA_PERFORMANCE_REPORT',

Im Beispiel sind auch Felder angegeben, die für den Bericht abgerufen werden sollen:

:fields => ['CampaignId', 'AdGroupId', 'Id', 'Criteria', 'CriteriaType',
          'FinalUrls', 'Impressions', 'Clicks', 'Cost'],

Eine vollständige Liste der Berichtstypen und der darin enthaltenen Felder finden Sie auf der Seite mit Berichtstypen.

Sie können dieses Codebeispiel in Verbindung mit den Informationen auf der Seite mit Berichtstypen verwenden, um alle möglichen Berichte zu definieren, zu erstellen und herunterzuladen.

AdWords Query Language (AWQL)

Sie haben bisher Berichte über eine Objekthierarchie definiert. Stattdessen können Sie dazu auch die AdWords Query Language (AWQL) verwenden. Dies ist eine SQL-ähnliche Sprache, mit der Sie Berichte in einer weniger ausführlichen Weise als über Objekte erstellen können.

Java

Vergleichen Sie den zuvor ausgeführten Beispielcode mit DownloadCriteriaReportWithAWQL.java. Beide rufen denselben Bericht ab, doch ist die AWQL prägnanter. Die Berichtstypen und -felder sind für beide Ansätze gleich.

String query = "SELECT CampaignId, AdGroupId, Id, Criteria, CriteriaType, "
        + "Impressions, Clicks, Cost FROM CRITERIA_PERFORMANCE_REPORT "
        + "WHERE Status IN [ENABLED, PAUSED] "
        + "DURING YESTERDAY";

.NET

Vergleichen Sie den zuvor ausgeführten Beispielcode mit DownloadCriteriaReportWithAWQL.cs. Beide rufen denselben Bericht ab, doch ist die AWQL prägnanter. Die Berichtstypen und -felder sind für beide Ansätze gleich.

string query = "SELECT CampaignId, AdGroupId, Id, Criteria, CriteriaType, Impressions, " +
          "Clicks, Cost FROM CRITERIA_PERFORMANCE_REPORT WHERE Status IN [ENABLED, PAUSED] " +
          "DURING LAST_7_DAYS";

Python

Vergleichen Sie den zuvor ausgeführten Beispielcode mit download_criteria_report_with_awql.py. Beide rufen denselben Bericht ab, doch ist die AWQL prägnanter. Die Berichtstypen und -felder sind für beide Ansätze gleich.

report_query = ('SELECT CampaignId, AdGroupId, Id, Criteria, CriteriaType, '
                  'FinalUrls, Impressions, Clicks, Cost '
                  'FROM CRITERIA_PERFORMANCE_REPORT '
                  'WHERE Status IN [ENABLED, PAUSED] '
                  'DURING LAST_7_DAYS')

PHP

Vergleichen Sie den zuvor ausgeführten Beispielcode mit DownloadCriteriaReportWithAwql.php. Beide rufen denselben Bericht ab, doch ist die AWQL prägnanter. Die Berichtstypen und -felder sind für beide Ansätze gleich.

$reportQuery = 'SELECT CampaignId, AdGroupId, Id, Criteria, CriteriaType, '
      . 'Impressions, Clicks, Cost FROM CRITERIA_PERFORMANCE_REPORT '
      . 'WHERE Status IN [ENABLED, PAUSED] DURING ' . $dateRange;

In diesem Fall wird der Zeitraum im Code unmittelbar vor der AWQL-Abfrage definiert:

  // Zeitraum für die letzte Woche angeben. Stattdessen können Sie 'LAST_7_DAYS' verwenden.
  $dateRange = sprintf('%d,%d',
      date('Ymd', strtotime('-7 day')), date('Ymd', strtotime('-1 day')));

Perl

Vergleichen Sie den zuvor ausgeführten Beispielcode mit download_criteria_report_with_awql.pl. Beide rufen denselben Berichtstyp ab, doch ist die AWQL prägnanter. Die Berichtstypen und -felder sind für beide Ansätze gleich.

my $report_query =
    "SELECT CampaignId, AdGroupId, Id, Criteria, CriteriaType, " .
    "Impressions, Clicks, Cost FROM CRITERIA_PERFORMANCE_REPORT " .
    ""WHERE Status IN [ENABLED, PAUSED] " . "DURING $last_4_days, $yesterday";";

In diesem Fall wird der Zeitraum für den Bericht im Code unmittelbar vor der AWQL-Abfrage definiert:

  # Berichtsabfrage erstellen
  my (undef, undef, undef, $mday, $mon, $year) = localtime(time - 60 * 60 * 24);
  my $yesterday = sprintf("%d%02d%02d", ($year + 1900), ($mon + 1), $mday);
  (undef, undef, undef, $mday, $mon, $year) =
    localtime(time - 60 * 60 * 24 * 4);
  my $last_4_days = sprintf("%d%02d%02d", ($year + 1900), ($mon + 1), $mday);

Ruby

Vergleichen Sie den zuvor ausgeführten Beispielcode mit download_criteria_report_with_awql.rb. Beide rufen denselben Bericht ab, doch ist die AWQL prägnanter. Die Berichtstypen und -felder sind für beide Ansätze gleich.

report_query = 'SELECT CampaignId, AdGroupId, Id, Criteria, CriteriaType, ' +
      'Impressions, Clicks, Cost FROM CRITERIA_PERFORMANCE_REPORT ' +
      'WHERE Status IN [ENABLED, PAUSED] ' +
      'DURING %s' % date_range

In diesem Fall wird der Zeitraum im Code unmittelbar vor der AWQL-Abfrage definiert:

  # Zeitraum für die letzte Woche angeben. Stattdessen können Sie 'LAST_7_DAYS' verwenden.
  date_range = '%s,%s' % [
      DateTime.parse((Date.today - 7).to_s).strftime('%Y%m%d'),
      DateTime.parse((Date.today - 1).to_s).strftime('%Y%m%d')
  ]

Sie kennen jetzt die Grundlagen zur Erstellung von Berichten und verfügen über die zum Erstellen Ihrer eigenen benutzerdefinierten Berichtsplattform erforderlichen Tools.

Codebeispiele zur Automatisierung verwenden

In diesem Abschnitt erfahren Sie, wie die Codebeispiele zur Durchführung von Aktualisierungen Ihrer AdWords-Konten und für einige weniger gebräuchliche Anwendungsfälle verwendet werden können. Außerdem wird gezeigt, wie diese Beispiele als Ausgangspunkt für nahezu alle Arten von Automatisierung dienen können.

Anzeigengruppen pausieren und fortsetzen

Einer der häufigsten Anwendungsfälle für die API besteht im Pausieren und Fortsetzen von Anzeigengruppen. So können Sie beispielsweise eine Anzeige pausieren, wenn der Bestand eines Artikels erschöpft ist und damit Ihr Werbebudget optimal nutzen.

Dieser Anwendungsfall hebt die Vorteile hervor, wenn Ihre eigenen Systeme wie etwa die Bestandsverwaltung in die AdWords API integriert sind.

Wir verwenden die Codebeispiele zum Anhalten und Fortsetzen einer Anzeigengruppe:

Java

Öffnen Sie das Beispiel UpdateAdGroup.java in Ihrer IDE.

In main sehen Sie wieder den gleichen Boilerplate-Code wie vorher. Dieses Mal enthält main ziemlich am Ende einen Platzhalterstring für die ID der Anzeigengruppe.

public static void main(String[] args) throws Exception {
    // Aktualisierbare OAuth2-Anmeldedaten generieren
    Credential oAuth2Credential = new OfflineCredentials.Builder()
        .forApi(Api.ADWORDS)
        .fromFile()
        .build()
        .generateCredential();

    // AdWords-Sitzung erstellen
    AdWordsSession session = new AdWordsSession.Builder()
        .fromFile()
        .withOAuth2Credential(oAuth2Credential)
        .build();

    Long adGroupId = Long.parseLong("ANZEIGENGRUPPEN_ID_HIER_EINFÜGEN");

Wie kommen Sie zu dieser ID? Sie könnten sie programmatisch über die GET-Methode der AdGroupService-Oberfläche erhalten. Schneller geht es, wenn Sie die ID der URL der AdWords-Weboberfläche entnehmen, während diese Anzeigengruppe zu sehen ist.

Auch hier enthält die runExample-Methode interessanten Code. Wir untersuchen ihn im Folgenden Schritt für Schritt:

Zunächst ruft er eine Referenz auf die AdGroupService-Oberfläche ab, weil eine Anzeigengruppe aktualisiert wird. Zum Aktualisieren anderer Elemente würden Sie den entsprechenden Dienst nutzen. Eine vollständige Liste der Dienste finden Sie im Leitfaden zu Objekten, Methoden und Diensten.

// AdGroupService abrufen
    AdGroupServiceInterface adGroupService =
        adWordsServices.get(session, AdGroupServiceInterface.class);

Nun wird ein neues Anzeigengruppenobjekt erstellt und die ID des neuen Objekts auf die ID der Anzeigengruppe gesetzt, die aktualisiert werden soll.

// Anzeigengruppe mit aktualisiertem Status erstellen
    AdGroup adGroup = new AdGroup();
    adGroup.setId(adGroupId);

Nun wird der Status auf PAUSED gesetzt.

adGroup.setStatus (AdGroupStatus.PAUSED);

Anschließend wird eine AdGroupOperation erstellt, die das neu erstellte Anzeigengruppenobjekt als Operanden und SET als Operator verwendet.

// Vorgänge erstellen
    AdGroupOperation operation = new AdGroupOperation();
    operation.setOperand(adGroup);
    operation.setOperator(Operator.SET);

Schließlich ruft er die mutate-Methode der AdGroupService-Oberfläche auf und übergibt ihr das AdGroupOperation-Objekt.

// Anzeigengruppe aktualisieren
    AdGroupReturnValue result = adGroupService.mutate(operations);

Ersetzen Sie nun den Platzhalter durch eine Anzeigengruppen-ID aus Ihrem Testkundenkonto und führen Sie den Code aus. Melden Sie sich nach der Ausführung in der AdWords-Weboberfläche im Testkonto an und prüfen Sie, ob sich der Status geändert hat.

.NET

Öffnen Sie das Beispiel UpdateAdGroup.cs in Ihrer IDE.

In main sehen Sie wieder den gleichen Boilerplate-Code wie in den vorherigen Abschnitten. Dieses Mal enthält main ziemlich am Ende einen Platzhalterstring für die ID der Anzeigengruppe.

public static void Main(string[] args) {
      UpdateAdGroup codeExample = new UpdateAdGroup();
      Console.WriteLine(codeExample.Description);
      try {
        long adGroupId = long.Parse("INSERT_ADGROUP_ID_HERE");
        codeExample.Run(new AdWordsUser(), adGroupId);

Wie kommen Sie zu dieser ID? Sie könnten sie programmatisch über die GET-Methode der AdGroupService-Oberfläche erhalten. Schneller geht es, wenn Sie die ID der URL der AdWords-Weboberfläche entnehmen, während diese Anzeigengruppe zu sehen ist.

Auch hier enthält die runExample-Methode interessanten Code. Wir untersuchen ihn im Folgenden Schritt für Schritt:

Zunächst ruft er eine Referenz auf die AdGroupService-Oberfläche ab, weil eine Anzeigengruppe aktualisiert wird. Zum Aktualisieren anderer Elemente würden Sie den entsprechenden Dienst nutzen. Eine vollständige Liste der Dienste finden Sie im Leitfaden zu Objekten, Methoden und Diensten.

public void Run(AdWordsUser user, long adGroupId) {
      // Get the AdGroupService.
      AdGroupService adGroupService =
          (AdGroupService) user.GetService(AdWordsService.v201702.AdGroupService);

Nun wird ein neues AdGroup-Objekt erstellt und die ID des neuen Objekts auf die ID der Anzeigengruppe gesetzt, die aktualisiert werden soll.

// Anzeigengruppe erstellen
      AdGroup adGroup = new AdGroup();
      adGroup.status = AdGroupStatus.PAUSED;
      adGroup.id = adGroupId;

Der Status wird auf PAUSED gesetzt.

adGroup.status = AdGroupStatus.PAUSED;

Anschließend wird eine AdGroupOperation erstellt, die das neu erstellte adGroup-Objekt als Operanden und SET als Operator verwendet.

// Operation erstellen
      AdGroupOperation operation = new AdGroupOperation();
      operation.@operator = Operator.SET;
      operation.operand = adGroup;

Schließlich ruft er die mutate-Methode der AdGroupService-Oberfläche auf und übergibt ihr das AdGroupOperation-Objekt.

// Anzeigengruppe aktualisieren
        AdGroupReturnValue retVal = adGroupService.mutate(new AdGroupOperation[] {operation});

Ersetzen Sie nun den Platzhalter durch eine Anzeigengruppen-ID aus Ihrem Testkundenkonto und führen Sie den Code aus. Melden Sie sich nach der Ausführung in der AdWords-Weboberfläche im Testkonto an und prüfen Sie, ob sich der Status geändert hat.

Python

Öffnen Sie das Beispiel update_ad_group.py in Ihrer IDE.

Auch hier sehen Sie den typischen Boilerplate-Code, mit dem die LoadFromStorage-Methode Anmeldedaten und Properties der Datei googleads.yaml entnimmt. Dieses Mal wird für die ID der Anzeigengruppe ein Platzhalterstring hinzugefügt.

AD_GROUP_ID = 'ANZEIGENGRUPPEN_ID_HIER_EINFÜGEN'

Wie kommen Sie zu dieser ID? Sie könnten sie programmatisch über die GET-Methode der AdGroupService-Oberfläche erhalten. Schneller geht es, wenn Sie die ID der URL der AdWords-Weboberfläche entnehmen, während diese Anzeigengruppe zu sehen ist.

Der interessante Code kommt danach. Wir untersuchen ihn im Folgenden Schritt für Schritt:

Zunächst ruft er eine Referenz auf die AdGroupService-Oberfläche ab, weil eine Anzeigengruppe aktualisiert wird. Zum Aktualisieren anderer Elemente würden Sie den entsprechenden Dienst nutzen. Eine vollständige Liste der Dienste finden Sie im Leitfaden zu Objekten, Methoden und Diensten.

def main(client, ad_group_id):
  # Entsprechenden Dienst initialisieren
  ad_group_service = Client.GetService ( 'AdGroupService', version = 'v201702')

Nun wird die ID auf die ID der Anzeigengruppe, die aktualisiert werden soll, und der Status auf PAUSED gesetzt.

# Vorgänge erstellen und Anzeigengruppe aktualisieren
  operations = [{
      'operator': 'SET',
      'operand': {
          'id': ad_group_id,
          'status': 'PAUSED'

Anschließend wird eine AdGroupOperation erstellt, die das neu erstellte Anzeigengruppenobjekt als Operanden und SET als Operator verwendet. Der Status wird auf PAUSED gesetzt.

# Vorgänge erstellen und Anzeigengruppe aktualisieren
  operations = [{
      'operator': 'SET',
      'operand': {
          'id': ad_group_id,
          'status': 'PAUSED'

Schließlich ruft er die mutate-Methode der AdGroupService-Oberfläche auf und übergibt ihr das AdGroupOperation-Objekt.

ad_groups = ad_group_service.mutate(operations)

Ersetzen Sie nun den Platzhalter durch eine Anzeigengruppen-ID aus Ihrem Testkundenkonto und führen Sie den Code aus. Melden Sie sich nach der Ausführung in der AdWords-Weboberfläche im Testkonto an und prüfen Sie, ob sich der Status geändert hat.

PHP

Öffnen Sie das Beispiel PauseAd.php in Ihrer IDE.

Auch hier sehen Sie den typischen Boilerplate-Code, mit dem Anmeldedaten der Datei auth.ini entnommen werden.

Dieses Mal gibt es Platzhalterstrings für die IDs der Anzeigengruppe und der Anzeige.

// Im Codebeispiel benötigte Parameter einfügen
$adGroupId = 'ANZEIGENGRUPPEN_ID_HIER_EINFÜGEN';
$adId = 'ANZEIGEN_ID_HIER_EINFÜGEN';

Wie kommen Sie zu dieser ID? Sie könnten sie programmatisch über die GET-Methode der AdGroupService-Oberfläche erhalten. Schneller geht es, wenn Sie die ID der URL der AdWords-Weboberfläche entnehmen, während diese Anzeigengruppe zu sehen ist.

Der interessante Code ist allerdings erst zu sehen, wenn das Beispiel ausgeführt wird. Wir untersuchen ihn im Folgenden Schritt für Schritt:

Zunächst ruft er eine Referenz auf die AdGroupService-Oberfläche ab, weil eine Anzeigengruppe aktualisiert wird. Zum Aktualisieren anderer Elemente würden Sie den entsprechenden Dienst nutzen. Eine vollständige Liste der Dienste finden Sie im Leitfaden zu Objekten, Methoden und Diensten.

  // Dienst aufrufen, der die erforderlichen Klassen lädt
  $adGroupAdService = $user->GetService('AdGroupAdService', ADWORDS_VERSION);

Nun wird die Anzeige mit einer bestehenden ID erstellt.

  // Anzeige mit einer bestehenden ID erstellen. Verwenden Sie die Basisklasse Ad anstelle
// von TextAd, um zu vermeiden, dass anzeigenspezifische Felder festgelegt werden müssen.
  $ad = new Ad();
  $ad->id = $adId;

Nun wird ein neues AdGroup-Objekt erstellt und die ID des neuen Objekts auf die ID der Anzeigengruppe gesetzt, die aktualisiert werden soll.

  // Anzeige in Anzeigengruppe erstellen
  $adGroupAd = new AdGroupAd();
  $adGroupAd->adGroupId = $adGroupId;
  $adGroupAd->ad = $ad;

Nun wird der Status auf PAUSED gesetzt.

  // Status aktualisieren
  $adGroupAd->status = 'PAUSED';

Anschließend wird eine AdGroupOperation erstellt, die das neu erstellte adGroup-Objekt als Operanden und SET als Operator verwendet.

  // Operation erstellen
  $operation = new AdGroupAdOperation();
  $operation->operand = $adGroupAd;
  $operation->operator = 'SET';
  $operations = array($operation);

Schließlich ruft er die mutate-Methode der AdGroupService-Oberfläche auf und übergibt ihr das AdGroupOperation-Objekt.

  // mutate-Anfrage erstellen.
  $result = $adGroupAdService->mutate($operations);

Ersetzen Sie nun den Platzhalter durch eine Anzeigengruppen-ID aus Ihrem Testkundenkonto und führen Sie den Code aus. Melden Sie sich nach der Ausführung in der AdWords-Weboberfläche im Testkonto an und prüfen Sie, ob sich der Status geändert hat.

Perl

Öffnen Sie das Beispiel update_ad_group.pl in Ihrer IDE.

Sie sehen am Ende wieder den gleichen Boilerplate-Code wie vorher, mit dem der Konfigurationsdatei adwords.properties Anmeldedaten entnommen werden.

In diesem Beispiel wurden Platzhalterstrings für die IDs der Anzeigengruppe und der Anzeige, die Sie pausieren möchten, hinzugefügt.

# Durch gültige Werte Ihres Kontos ersetzen
my $ad_group_id = "ANZEIGENGRUPPEN_ID_HIER_EINFÜGEN";
my $ad_id = 'ANZEIGEN_ID_HIER_EINFÜGEN';

Wie kommen Sie zu dieser ID? Sie könnten sie programmatisch über die GET-Methode der AdGroupService-Oberfläche erhalten. Schneller geht es, wenn Sie die ID der URL der AdWords-Weboberfläche entnehmen, während diese Anzeigengruppe zu sehen ist.

Der interessante Code ist allerdings erst zu sehen, wenn das Beispiel ausgeführt wird. Wir untersuchen ihn im Folgenden Schritt für Schritt:

Zunächst wird eine Anzeigengruppe mit aktualisiertem Status und der angegebenen adGroupID erstellt. Zum Aktualisieren anderer Elemente würden Sie den entsprechenden Dienst nutzen. Eine vollständige Liste der Dienste finden Sie im Leitfaden zu Objekten, Methoden und Diensten. Dann wird der Status auf PAUSED gesetzt.

 # Anzeigengruppe mit aktualisiertem Status erstellen
  my $ad_group = Google::Ads::AdWords::v201702::AdGroup->new({
      id     => $ad_group_id,
      status => "PAUSED"
  });

Anschließend wird eine AdGroupOperation erstellt, die das neu erstellte Anzeigengruppenobjekt als Operanden und SET als Operator verwendet.

# Operation erstellen
  my $operation = Google::Ads::AdWords::v201702::AdGroupOperation->new({
      operand  => $ad_group,
      operator => "SET"
  });

Schließlich ruft er die mutate-Methode der AdGroupService-Oberfläche auf und übergibt ihr das AdGroupOperation-Objekt.

# Anzeigengruppe aktualisieren
  my $result = $client->AdGroupService()->mutate({operations => [$operation]});

Ersetzen Sie nun den Platzhalter durch eine Anzeigengruppen-ID aus Ihrem Testkundenkonto und führen Sie den Code aus. Melden Sie sich nach der Ausführung in der AdWords-Weboberfläche im Testkonto an und prüfen Sie, ob sich der Status geändert hat.

Ruby

Öffnen Sie das Beispiel update_ad_group.rb.

Sie sehen wieder den gleichen Boilerplate-Code wie vorher, mit dem der Konfigurationsdatei adwords_api.yml Anmeldedaten entnommen werden. Etwas weiter unten sehen Sie einen Platzhalterstring für die ID der Anzeigengruppe.

    # ID einer zu aktualisierenden Anzeigengruppe
    ad_group_id = 'ANZEIGENGRUPPEN_ID_HIER_EINFÜGEN'.to_i

Wie kommen Sie zu dieser ID? Sie könnten sie programmatisch über die GET-Methode der AdGroupService-Oberfläche erhalten. Schneller geht es, wenn Sie die ID der URL der AdWords-Weboberfläche entnehmen, während diese Anzeigengruppe zu sehen ist.

Auch hier ist der interessante Code erst zu sehen, wenn das Beispiel ausgeführt wird. Wir untersuchen ihn im Folgenden Schritt für Schritt:

Zunächst ruft er eine Referenz auf die AdGroupService-Oberfläche ab, weil eine Anzeigengruppe aktualisiert wird. Zum Aktualisieren anderer Elemente würden Sie den entsprechenden Dienst nutzen. Eine vollständige Liste der Dienste finden Sie im Leitfaden zu Objekten, Methoden und Diensten.

ad_group_srv = adwords.service(:AdGroupService, API_VERSION)

Nun wird ein neues AdGroup-Objekt erstellt und die ID des neuen Objekts auf die ID der Anzeigengruppe gesetzt, die aktualisiert werden soll. Außerdem wird der Status auf PAUSED gesetzt und SET als Operator verwendet.

# Aktualisierung der Anzeigengruppe vorbereiten
  operation = {
    :operator => 'SET',
    :operand => {
      :status => 'PAUSED',
      :id => ad_group_id
    }
  }

Schließlich ruft er die mutate-Methode der AdGroupService Schnittstelle in der Gruppe Ad - Operation - Objekt übergeben.

# Anzeigengruppe aktualisieren
  response = ad_group_srv.mutate([operation])

Ersetzen Sie nun den Platzhalter durch eine Anzeigengruppen-ID aus Ihrem Testkundenkonto und führen Sie den Code aus. Melden Sie sich nach der Ausführung in der AdWords-Weboberfläche im Testkonto an und prüfen Sie, ob sich der Status geändert hat.

Ablauf genauer untersuchen

Der Ablauf zum Pausieren und Fortsetzen der Anzeigengruppe von oben wird für die meisten Aktualisierungen über die API verwendet. Daher lohnt es sich, die Schritte ein wenig genauer zu untersuchen:

  1. Erstellen Sie ein neues Objekt.
  2. Legen Sie seine ID auf die ID des Elements fest, das Sie ändern möchten.
  3. Legen Sie den neuen Wert der Property in diesem neuen Objekt fest.
  4. Erstellen Sie ein Operation-Objekt mit SET als Operator und diesem neuen Elementobjekt als Operand.
  5. Übergeben Sie das Operation-Objekt der mutate-Methode des entsprechenden Dienstes.

Weil es sich hier um eine Aktualisierung handelt, wurde der SET-Operator verwendet. Das Hinzufügen oder Entfernen würde mit ADD- oder REMOVE-Operatoren erfolgen.

Wenn dies verwirrend erscheint, sollten Sie einen Blick auf die anderen Codebeispiele werfen. Sie werden den Ablauf schnell erkennen.

Nun, da Sie den Ablauf kennen, können Sie leicht viele andere Aktualisierungen vornehmen, wie etwa das Ändern des Gebots für eine Anzeigengruppe.

Gebote für Anzeigengruppen ändern

Ein anderer gebräuchlicher Anwendungsfall betrifft das programmatische Ändern eines Gebots. Mit dem kanonischen Beispiel wird das Gebot für eine Anzeige für Regenschirme bei Regen erhöht. Ihre Anwendung könnte einen Wetter-Webservice einbinden und dann mit der AdWords API das Gebot für diese Anzeigengruppe erhöhen.

Für diese Aktualisierung könnten Sie das oben verwendete UpdateAdGroup-Beispiel etwas abändern: Anstelle von AdGroupStatus legen Sie die Gebotsstrategie fest. Weitere Informationen finden Sie im Leitfaden zur Gebotseinstellung.

Kampagnen erstellen

Ein weiterer Anwendungsfall:

Java

Öffnen Sie AddCampaigns.java in Ihrer IDE.

Das Beispiel enthält sehr viel Code, folgt jedoch dem gleichen Muster wie oben. Sobald die Objekthierarchie erstellt ist, wird der ADD-Operator verwendet, um mit BudgetService ein neues Budget und mit CampaignService neue Kampagnen hinzuzufügen.

IDs müssen hier nicht festgelegt werden, weil dies neue Elemente sind, die noch keine IDs besitzen.

.NET

Öffnen Sie AddCampaigns.cs in Ihrer IDE.

Das Beispiel enthält sehr viel Code, folgt jedoch dem gleichen Muster wie oben. Sobald die Objekthierarchie erstellt ist, wird der ADD-Operator verwendet, um mit BudgetService ein neues Budget und mit CampaignService neue Kampagnen hinzuzufügen.

IDs müssen hier nicht festgelegt werden, weil dies neue Elemente sind, die noch keine IDs besitzen.

Python

Öffnen Sie add_campaigns.py in Ihrer IDE.

Das Beispiel enthält sehr viel Code, folgt jedoch dem gleichen Muster wie oben. Sobald die Objekthierarchie erstellt ist, wird der ADD-Operator verwendet, um mit BudgetService ein neues Budget und mit CampaignService neue Kampagnen hinzuzufügen.

IDs müssen hier nicht festgelegt werden, weil dies neue Elemente sind, die noch keine IDs besitzen.

PHP

Öffnen Sie AddCampaigns.php in Ihrer IDE.

Das Beispiel enthält sehr viel Code, folgt jedoch dem gleichen Muster wie oben. Sobald die Objekthierarchie erstellt ist, wird der ADD-Operator verwendet, um mit BudgetService ein neues Budget und mit CampaignService neue Kampagnen hinzuzufügen.

IDs müssen hier nicht festgelegt werden, weil dies neue Elemente sind, die noch keine IDs besitzen.

Perl

Öffnen Sie add_campaigns.pl in Ihrer IDE.

Das Beispiel enthält sehr viel Code, folgt jedoch dem gleichen Muster wie oben. Sobald die Objekthierarchie erstellt ist, wird der ADD-Operator verwendet, um mit BudgetService ein neues Budget und mit CampaignService neue Kampagnen hinzuzufügen.

IDs müssen hier nicht festgelegt werden, weil dies neue Elemente sind, die noch keine IDs besitzen.

Ruby

Öffnen Sie add_campaigns.rb.

Das Beispiel enthält sehr viel Code, folgt jedoch dem gleichen Muster wie oben. Sobald die Objekthierarchie erstellt ist, wird der ADD-Operator verwendet, um mit BudgetService ein neues Budget und mit CampaignService neue Kampagnen hinzuzufügen.

IDs müssen hier nicht festgelegt werden, weil dies neue Elemente sind, die noch keine IDs besitzen.

Weitere Informationen

Nachdem Sie sich mit den Grundlagen vertraut gemacht haben, sollten Sie Objekte, Methoden und Dienste sowie die anderen Leitfäden im Abschnitt Architektur und Konzepte durcharbeiten, um mehr über die API-Architektur, die von der API angebotenen Dienste und die Integration von API-Funktionen in Ihrer Anwendung zu erfahren.

Anschließend sind Sie in der Lage, Ihre eigene Anwendung zu erstellen und von der höheren Effizienz durch Automation und besseren Auswertungsmöglichkeiten durch benutzerdefinierte Berichte zu profitieren, wie sie von der AdWords API geboten wird.

Feedback geben zu...