Benachrichtigung

Nur in Google Ad Manager 360 verfügbar

Auf Ad Manager-Speichergruppen zugreifen

Datenübertragungsdateien herunterladen

Google Cloud Storage ist ein separates Google-Produkt, das in Ad Manager als Daten-Repository für Datenübertragungsberichte und den Batch-Upload von Zielgruppencookie-IDs verwendet wird.

Dieser Artikel soll Ihnen die standardmäßige Verwendung von Google Cloud Storage im Hinblick auf das spezifische Cloudspeicher-Setup von Ad Manager vereinfachen. Die primäre Informationsquelle für dieses Produkt ist jedoch die Entwicklerwebsite zu Google Cloud Storage.

Methoden

Es gibt drei Möglichkeiten, auf Ad Manager-Cloudspeichergruppen zuzugreifen. Wir beginnen mit der einfachsten:

  • Im Web: Rufen Sie https://console.developers.google.com/storage/gdfp-[Code des Ad Manager-Netzwerks] auf.
  • gsutil ist ein auf Python basierendes Befehlszeilentool, das UNIX-ähnliche Befehle zur Interaktion mit dem Storage-Bucket bereitstellt. Die Bucket-Authentifizierung wird abstrahiert und automatisch verarbeitet.
  • Die Google Cloud Storage API ist eine API mit vollem Funktionsumfang, mit der Sie die Storage-Buckets bearbeiten können. Sie ist über JSON- oder XML RESTful-Webschnittstellen verfügbar. Für viele bekannte Programmierumgebungen wie etwa Java, JavaScript, Python und Objective-C, stehen API-Clientbibliotheken zur Verfügung. Das ist insbesondere nützlich, wenn Sie die Storage-Buckets programmatisch bearbeiten müssen, damit sie in eine Google App Engine-App oder eine Java-Web-App integriert werden können.

Dieser Artikel enthält Details zur Google Cloud Storage API. Weil die Verwaltung des Web- und gsutil-Zugriffs einfacher ist, empfehlen wir Ihnen, zuerst diese beiden Methoden auszuprobieren. Diese sind auf der Entwicklerwebsite zu Google Cloud Storage vollständig dokumentiert.

Zugriff auf Ad Manager-Speichergruppen verwalten

Die von Ad Manager verwendeten Speichergruppen sind Teil eines Cloudspeicherprojekts im Besitz von Google. Ad Manager-Speichergruppen werden nicht in der Google Developers Console in der Liste Ihrer Projekte aufgeführt.

Sie müssen mit Ihrem Google-Ansprechpartner zusammenarbeiten, um Funktionen einzurichten, die von Ad Manager-Speichergruppen abhängig sind. Er stellt eine Google-Gruppe bereit, mit der Sie Ihre Speichergruppen verwalten können.

Wenn Sie der Administrator einer bestehenden G Suite-Gruppe sind, können Sie den Namen Ihrer Google-Gruppe bei der Funktionsaktivierung an Ihren Google-Ansprechpartner weitergeben. Er unterstützt Sie bei der Aktivierung aller Funktionen, bei denen Ad Manager-Speichergruppen zum Einsatz kommen, die zu Ihrer vorhandenen Gruppe gehören.

Wenn Sie mehrere Ad Manager-Netzwerke mit Zugriff auf die Datenübertragung verwalten, sollten Sie dies Ihrem Google-Ansprechpartner mitteilen, damit die Netzwerkverwaltung konsolidiert werden kann. Eine Gruppe wird verwendet, um alle Datenübertragungsgruppen in Ihren Netzwerken zu verwalten.

Google-Gruppen, die nicht Teil der G Suite sind, können nicht zum Verwalten von Ad Manager-Speichergruppen verwendet werden.

Google Cloud Storage API verwenden

Wenn Sie sich für den API-Zugriff entschieden haben, empfehlen wir Ihnen, ein Google Cloud Storage-Dienstkonto zu konfigurieren.

Google Cloud Storage-Dienstkonto konfigurieren

Wenn Sie über die API auf die Speichergruppe zugreifen, sollten Sie ein Dienstkonto erstellen, anstatt ein Nutzerkonto zu verwenden. Dienstkonten erleichtern die Anwendungsentwicklung, da ein privater Schlüssel anstelle eines dynamisch generierten OAuth-Tokens zur Authentifizierung eingesetzt wird. So konfigurieren Sie ein Dienstkonto:

  1. Rufen Sie die Google Developer Console auf.

  2. Wählen Sie ein Projekt aus bzw. erstellen Sie ein neues, das als übergeordnetes Element für Ihre Anwendung dienen soll, und klicken Sie darauf.

  3. (Optional) Wenn Sie Dateien aus der Ad Manager-Speichergruppe in Ihr eigenes Google Cloud Storage-Konto kopieren möchten, klicken Sie auf Abrechnung und Einstellungen, um Ihrem Projekt eine Abrechnungsquelle hinzuzufügen.

  4. Erstellen Sie eine neue Client-ID:

    1. Klicken Sie auf APIs & Dienste > Anmeldedaten.

    2. Klicken Sie auf Neue Client-ID erstellen.

    3. Wählen Sie als Anwendungstyp Dienstkonto aus und klicken Sie dann auf Client-ID erstellen.

    4. Die generierte E-Mail-Adresse hat das Format [eindeutige-id]@developer.gserviceagccount.com. Kopieren Sie diese und fügen Sie sie der Google-Gruppe hinzu.

    5. Klicken Sie auf Neuen P12-Schlüssel erstellen. Die Datei wird auf Ihrem Computer gespeichert. Sie können diesen Schlüssel in den Anwendungen verwenden, die Sie entwickeln, um auf die API zuzugreifen. Nachfolgend finden Sie ein entsprechendes Codebeispiel.

  5. Fügen Sie die E-Mail-Adresse der Google-Gruppe hinzu, die Sie zur Verwaltung des Zugriffs auf Ihre Ad Manager-Speichergruppen erstellt haben. Klicken Sie auf Mitglieder direkt hinzufügen, anstatt eine Einladung an das Dienstkonto zu senden. Falls Sie keinen Zugriff haben, bitten Sie den Administrator der Google-Gruppe, die Adresse in Ihrem Namen hinzuzufügen. 
Codebeispiel

Google stellt Codebeispiele und -bibliotheken für Google Cloud Storage bereit. Anhand des folgenden Java-Beispiels zum Lesen einer Datei aus einer Ad Manager-Cloudspeichergruppe können Sie nachvollziehen, wie die eingerichteten Komponenten sich möglicherweise auf Ihren Code auswirken:

  • Projektname: Name des Google Cloud Storage-Projekts

  • E-Mail-Adresse des Dienstkontos: Generierte E-Mail-Adresse

  • .p12-Schlüsseldatei: Heruntergeladene Datei

  • Gruppenname: Dieser Name wird von Google bereitgestellt, wenn Sie eine Funktion aktivieren, bei der Ad Manager-Cloudspeichergruppen zum Einsatz kommen.

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.security.GeneralSecurityException;
import java.util.Collections;

import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.storage.Storage;
import com.google.api.services.storage.model.StorageObject;

public class GcsApiTest {
    /**
     * Der Name des Projekts, unter dem das Dienstkonto erstellt wurde.
     * 
     * Diese Informationen werden in der Google Developers Console angezeigt.
     */
    private static final String PROJECT_NAME = "Projektname";

    /**
     * Die Developer-E-Mail-Adresse des Dienstkontos.
     * 
     * Diese E-Mail-Adresse wird bei der Erstellung einer Dienstkonto-Client-ID in 
     * Ihrer Google Developers Console erstellt und kann auf der Seite 
     * "Anmeldedaten" abgerufen werden. Diese E-Mail-Adresse muss der Google-Gruppe hinzugefügt werden, mit der der 
     * Zugriff auf die Speichergruppe kontrolliert wird.
     */
    private static final String SERVICE_ACCOUNT_EMAIL = "Dienstkonto-E-Mail-Adresse";

    /**
     * Gruppe für Speichervorgänge.
     * 
     * Der Name dieser Gruppe wurde von Ihrem Account
     * Manager bereitgestellt. Sie hat vermutlich einen Namen im Format "gdfp-12345678" oder
     * "gdfp_cookieupload_12345678", je nachdem, welches Ad Manager-Add-on Sie verwenden.
     */
    private static final String BUCKET_NAME = "bucket name";

    /**
     * Google Cloud Storage OAuth 2.0 scope for read/write. Dieser sollte
     * den Zugriffsrechten der Google-Gruppe für die Speichergruppe entsprechen. 
     * Sie können keine Zugriffsrechte anfordern, die der Google-Gruppe nicht 
     * gewährt wurden (die u. U. nur Lesezugriff hat).
     */
    private static final String STORAGE_SCOPE = 
        "https://www.googleapis.com/auth/devstorage.read_write";

    /**
     * Pfad zur .p12-Schlüsseldatei, die Zugriff auf die Gruppe gewährt.
     * 
     * Diese Datei wird bei Erzeugung der Serviceclient-ID generiert. Falls Sie diese Datei
     * nicht besitzen, müssen Sie eine neue .p12-Schlüsseldatei aus der 
     * Google Developers Console generieren.
     */
    private static final String KEY_P12 = "Pfad zur .p12-Schlüsseldatei";

    /** HTTP-Transport. */
    private HttpTransport httpTransport;
    private Storage storage;

    // Konstruktor zum Einrichten von Anmeldedaten und Speicherobjekten
    public GcsApiTest() {
	File p12File = new File(KEY_P12);

	try {
	    httpTransport = GoogleNetHttpTransport.newTrustedTransport();

	    GoogleCredential credential = new GoogleCredential.Builder()
		    .setTransport(httpTransport)
		    .setJsonFactory(JacksonFactory.getDefaultInstance())
		    .setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
		    .setServiceAccountScopes(
			    Collections.singleton(STORAGE_SCOPE))
		    .setServiceAccountPrivateKeyFromP12File(p12File).build();
	    storage = new Storage.Builder(httpTransport,
		    JacksonFactory.getDefaultInstance(), credential)
		    .setApplicationName(PROJECT_NAME).build();
	} catch (GeneralSecurityException | IOException e1) {
	    e1.printStackTrace();
	    System.exit(1);
	}
    }

    /**
     * Methode, um den Namen der ersten Datei in der Gruppe abzurufen.
     * 
     * @return – gibt den Namen der Datei zurück oder null, wenn die Gruppe leer ist
     * @throws IOException – gibt IO-Ausnahmefehler aus
     */
    public String GetFirstFile() throws IOException {
	Storage.Objects.List listObjects = storage.objects().list(BUCKET_NAME);
	listObjects.setMaxResults(5L);
	com.google.api.services.storage.model.Objects objects = listObjects
		.execute();

	// leerer Bucket?
	if (null == objects.getItems() || objects.getItems().isEmpty()) {
	    System.out.println("Bucket \"" + BUCKET_NAME
		    + "\" empty or invalid.");
	    return null;
	}

	StorageObject object = objects.getItems().get(0);
	System.out.println("First object in bucket: \"" + object.getName()
		+ "\".");
	return object.getName();
    }

    /**
     * Methode zum Herunterladen der angegebenen Datei aus der Speichergruppe
     * 
     * @param-Dateiname
     *            Name der herunterzuladenden Datei.
     * @throws IOException – gibt IO-Ausnahmefehler aus
     */
    public void DownloadFile(String filename) throws IOException {
	Storage.Objects.Get getObject = storage.objects().get(BUCKET_NAME,
		filename);
	OutputStream os = new FileOutputStream(filename, true);
	getObject.getMediaHttpDownloader().setDirectDownloadEnabled(true);
	getObject.executeMediaAndDownloadTo(os);

	System.out.println("File \"" + filename + "\" downloaded.");
    }

    /**
     * Wichtigste Methode zur Ausführung der verschiedenen Tests.
     * 
     * @param-Argumente
     */
    public static void main(String[] args) {
	GcsApiTest gcsApiTest = new GcsApiTest();

	try {
	    String filename = gcsApiTest.GetFirstFile();
	    gcsApiTest.DownloadFile(filename);
	} catch (IOException e) {
	    System.out.println(e.getMessage());
	}
    }
}

Throttling und gleichzeitige Verbindungen

Zur Anzahl gleichzeitiger Verbindungen gibt es keine festgelegte Begrenzung. Um Missbrauch zu vermeiden, grenzt Google die Abrufanforderungen bei der Datenübertragung jedoch ein.

Neuigkeiten zu "Google Cloud Storage" finden Sie im offiziellen Google Code-Blog. Fragen können Sie im Diskussionsforum zu Google Cloud Storage stellen. Fügen Sie der Betreffzeile jeweils den Vermerk "Bug" oder "Feature Request" hinzu. Antworten auf weitere Fragen zu Google Storage finden Sie in den FAQ zu Google Cloud Storage.

War das hilfreich?

Wie können wir die Seite verbessern?
Suche
Suche löschen
Suche schließen
Hauptmenü
14371948279491145311
true
Suchen in der Hilfe
true
true
true
true
true
148
false
false