Melding

Alleen beschikbaar in Google Ad Manager 360.

Toegang tot Ad Manager-opslagbuckets

Uw bestanden van Gegevensoverdracht downloaden

Google Cloud Storage is een afzonderlijk Google-product dat Ad Manager gebruikt als gegevensopslagplaats voor rapportbestanden van Gegevensoverdracht en in batches geüploade doelgroep-cookie-ID's.

In dit artikel leest u hoe u standaard Google Cloud Storage-technologieën kunt gebruiken voor communicatie met de specifieke cloudopslagconfiguratie van Ad Manager. De website voor Google Cloud Storage-ontwikkelaars is echter het belangrijkste referentiepunt voor Google Cloud Storage.

Methoden

U kunt op 3 manieren toegang krijgen tot Ad Manager-cloudopslagbuckets. In volgorde van complexiteit:

  • Op internet: Ga naar https://console.developers.google.com/storage/gdfp-[Ad Manager-netwerkcode].
  • gsutil is een op Python gebaseerde opdrachtregeltool die Unix-achtige opdrachten biedt voor interactie met de opslagbucket. Bucketverificatie wordt automatisch opgehaald en verwerkt.
  • De Google Cloud Storage API is een volledige API voor bewerking van de opslagbucket en is beschikbaar via JSON of XML RESTful-webinterfaces. API-clientbibliotheken zijn beschikbaar voor veel populaire programmeeromgevingen, waaronder Java, JavaScript, Python en Objective-C. Deze aanpak is vooral handig als u de opslagbuckets programmatic wilt bewerken voor integratie met een Google App Engine-app of een Java-web-app.

In dit artikel vindt u informatie over de Google Cloud Storage API. Web- en gsutil-toegang zijn gemakkelijker te beheren, dus we raden u aan eerst naar deze methoden te kijken. Ze zijn volledig gedocumenteerd op de site voor Google Cloud Storage-ontwikkelaars.

De toegang tot uw Ad Manager-opslagbuckets beheren

Opslagbuckets die door Ad Manager worden gebruikt, zijn opgenomen in een cloudopslagproject van Google. Ad Manager-opslagbuckets worden niet weergegeven onder uw eigen projectlijst in de Google Developers Console.

U moet samenwerken met uw Google-vertegenwoordiger om functies in te stellen die afhankelijk zijn van Ad Manager-opslagbuckets. Ze bieden een Google-groep die u kunt gebruiken om de opslagbuckets te beheren.

Als u de beheerder van een bestaande G Suite-groep bent, kunt u de naam van deze groep doorgeven aan uw vertegenwoordiger ten behoeve van het activeringsproces voor de functie. Deze vertegenwoordiger werkt met u samen om elke functie te activeren die Ad Manager-opslagbuckets met de bestaande groep gebruikt.

Als u meerdere Ad Manager-netwerken met toegang tot Gegevensoverdracht beheert, moet u dit aan uw Google-vertegenwoordiger laten weten zodat het netwerkbeheer kan worden geconsolideerd. Er wordt één groep gebruikt om alle Gegevensoverdracht-buckets in uw netwerken te beheren.

Google-groepen die geen deel uitmaken van G Suite, kunnen niet worden gebruikt om Ad Manager-opslagbuckets te beheren.

De Google Cloud Storage API gebruiken

Als u heeft vastgesteld dat API-toegang het best aan uw behoeften voldoet, raden we u aan een Google Cloud Storage-serviceaccount te configureren.

Een Google Cloud Storage-serviceaccount instellen

Wanneer u de opslagbucket via de API opent, heeft het de voorkeur een serviceaccount in te stellen in plaats van uitvoering in de context van een gebruiker. Serviceaccounts vereenvoudigen de ontwikkeling van apps door een privésleutel voor verificatie te gebruiken in plaats van een dynamisch gegenereerde OAuth-token. Zo stelt u een serviceaccount in:

  1. Ga naar de Google Developers Console.

  2. Maak een nieuw project (of selecteer een bestaand project) als bovenliggend element van uw app en klik erop.

  3. (Optioneel) Als u van plan bent bestanden vanuit de Ad Manager-opslagbucket naar uw eigen Google Cloud Storage-account te kopiëren, klikt u op Facturering en instellingen om een factureringsbron aan uw project toe te voegen.

  4. Maak een nieuwe client-ID:

    1. Klik op API's en services > Gegevens.

    2. Klik op Nieuwe client-ID maken.

    3. Selecteer Serviceaccount als uw app-type en klik vervolgens op Client-ID maken.

    4. Het gegenereerde e-mailadres heeft de notatie [unieke-id]@developer.gserviceagccount.com. Kopieer het bestand en sla het op om het toe te voegen aan uw Google-groep.

    5. Klik op Nieuwe P12-sleutel genereren. Het bestand wordt opgeslagen op uw computer. Gebruik deze sleutel in de apps die u ontwikkelt voor toegang tot de API, zoals in het onderstaande codevoorbeeld.

  5. Voeg het e-mailadres toe aan de Google-discussiegroep die u heeft gemaakt om de toegang tot uw Ad Manager-opslagbuckets te beheren. Klik op Leden rechtstreeks toevoegen in plaats van'uitnodigen' om het serviceaccount toe te voegen. Als u geen toegang heeft, vraagt u de Google-groepsbeheerder het adres namens u toe te voegen.
Codevoorbeeld

Google levert codevoorbeelden en bibliotheken voor Google Cloud Storage. Het volgende Java-voorbeeld voor het lezen van een bestand in een Ad Manager-cloudopslagbucket laat zien hoe de componenten die u tijdens het instellen van het serviceaccount heeft geconfigureerd, kunnen worden opgenomen in de code:

  • Projectnaam: De naam van het Google Cloud Storage-project.

  • E-mailadres van serviceaccount: Het e-mailadres dat u heeft gegenereerd.

  • p12-sleutelbestand: Het bestand dat u heeft gedownload.

  • Bucketnaam: Google geeft deze naam op als u een functie activeert die gebruikmaakt van Ad Manager-cloudopslagbuckets.

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 {
    /**
     * The name of the project under which the service account was created.
     * 
     * This information is displayed under the Google Developers Console.
     */
    private static final String PROJECT_NAME = "project name";

    /**
     * Developer Email address of the service account.
     * 
     * This email is generated upon creating a Service Account Client ID in your
     * Google Developers Console, and can be retrieved from the Credentials
     * page. This email must also be added to the Google Group used to control
     * access to the storage bucket.
     */
    private static final String SERVICE_ACCOUNT_EMAIL = "service account email address";

    /**
     * Bucket to use for storage operations.
     * 
     * The name of this bucket was provided to you by your Account
     * Manager. It likely has a name similar to "gdfp-12345678" or
     * "gdfp_cookieupload_12345678", depending on the Ad Manager add-on you're using.
     */
    private static final String BUCKET_NAME = "bucket name";

    /**
     * Google Cloud Storage OAuth 2.0 scope for read/write. This should
     * correspond to the access rights that your Google Group has for the
     * bucket, and you cannot request access rights that are not granted to the
     * Group (which may be read_only).
     */
    private static final String STORAGE_SCOPE = 
        "https://www.googleapis.com/auth/devstorage.read_write";

    /**
     * Path to the key.p12 file providing access to the bucket.
     * 
     * This file is created when the service client ID is created. If you don't
     * have this file, you will need to generate a new client p12 key from the
     * Google Developers Console.
     */
    private static final String KEY_P12 = "path to .p12 key file";

    /** HTTP transport. */
    private HttpTransport httpTransport;
    private Storage storage;

    // constructor, sets up credentials and storage objects
    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);
	}
    }

    /**
     * Method to return the name of the first file in the bucket.
     * 
     * @return the name of the file, or null if the bucket is empty
     * @throws IOException
     */
    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();

	// empty 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();
    }

    /**
     * Method to download the specified file from the storage bucket
     * 
     * @param filename
     *            Name of the file that should be downloaded.
     * @throws IOException
     */
    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.");
    }

    /**
     * Main method to execute the different tests.
     * 
     * @param args
     */
    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());
	}
    }
}

Vertraging en gelijktijdige verbindingen

Er bestaat geen vooraf gedefinieerde limiet voor gelijktijdige verbindingen. Google beperkt de ophaalverzoeken voor Gegevensoverdracht om misbruik te voorkomen.

Lees het gedeelte over Google Cloud Storage in de officiële Google Code-blog voor het laatste nieuws en post vragen op het discussieforum van Google Cloud Storage. Voeg zo nodig 'Bug' of 'Functieverzoek' toe aan de onderwerpregel. Bekijk de veelgestelde vragen over Google Cloud Storage als u nog vragen heeft over Google Cloud Storage.

Was dit nuttig?

Hoe kunnen we dit verbeteren?
Zoeken
Zoekopdracht wissen
Zoekfunctie sluiten
Hoofdmenu
18075707502795199020
true
Zoeken in het Helpcentrum
true
true
true
true
true
148
false
false