Google Merchant Center Daten zu BigQuery übertragen (BigQuery Data Transfer Service)

In BigQuery steht ein automatischer Datentransfer für Google Merchant Center Daten zur Verfügung. Leider hat dieser Service das Problem, dass dieser Connector nicht für die Conent API for Shopping v2.1 angepasst wurde. Somit ist der dort generierte Datenbestand lückenhaft und nur bedingt verwendbar.

Dieser Artikel zeigt wie die Importfunktion durch ein Google Apps Script ersetzt werden kann, welches dann täglich die Daten zu BigQuery transferiert.

Das Script

Das Script wird als Google Ads Script installiert und konfiguriert, sodass jeder mit Google Ads Account diese Lösung nutzen kann. Das Skript basiert auf dieser Lösung von Google.

Insallation in Kürze

  1. Google Ads Account aufrufen
  2. Navigieren zu „Werkzeug > Skripts > +“ um ein neues Script zu erstellen.
  3. Skript bennen z.B. „Shopping API Transfer nach BigQuery“
  4. Das Script kopieren
  5. Die Variable „TRUNCATE_EXISTING_TABLES = true“ setzen, sodass die Tabellenstruktur beim ersten Lauf angelegt wird.
  6. Oben rechts „Erweiterte APIs“ öffnen und „BigQuery“ und „Shopping Content“ aktivieren.
  7. Dataset in BigQuery erstellen (wichtig ist die Standortvergabe und die autom. Ablaufzeit der Daten zu definieren)
  8. Im Script die Felder variablen MERCHANT_CENTER_ID, BIGQUERY_PROJECT_ID, BIGQUERY_DATASET_ID, BIGQUERY_TABLE_NAME mit eigenen Werten füllen.
  9. Unten rechts „Vorschau“ drücken
  10. Mit dem gelben Button die Authorisierung vornehmen. (Der eingeloggte Google Account benötigt Zugriff auf BigQuery sowie das Merchant Center)
  11. Erneut „Vorschau“ ausführen, sodass das Script das erste mal läuft.
  12. Den Datenbestand in BigQuery korrigieren.
  13. Nach dem ersten Lauf sollte TRUNCATE_EXISTING_TABLES = false gesetzt werden, weil sonst die Daten der Vergangenheit überschrieben werden.
  14. In der Script-Übersicht die Zeit des Skript-Aufrufs definieren und auf „täglich“ setzen.

Fazit

Mit dem Skript ist es einfach möglich Daten vom GMC nach BigQuery zu übertragen. Zudem kann in der „Fields“ Variable einfach auf Änderungen in der Abrufsemantik reagiert werden.