Toegang tot opslagbuckets voor Gegevensoverdracht wordt beheerd via gebruikersrollen in Google Ad Manager. Zodra u de vereiste gebruikersrolrechten heeft, kunt u de gewenste methode gebruiken om toegang te krijgen tot uw Gegevensoverdracht-bestanden.
Ga naar een gedeelte van het artikel:
- Over gebruikersrollen voor het recht
- Het recht bekijken in een rol
- Methoden om toegang te krijgen tot opslagbuckets
- De Google Cloud Storage API gebruiken
Over gebruikersrollen voor het recht
Als u toegang wilt tot de opslagbuckets, moet u een rol hebben waarvoor het recht Buckets voor gegevensoverdracht bekijken aanstaat.
- Beheerdersrollen: Het recht staat standaard aan voor de ingebouwde gebruikersrol Beheerder.
- Aangepaste gebruikersrollen: U kunt het recht toevoegen aan aangepaste gebruikersrollen.
Als u wijzigingen wilt aanbrengen in gebruikersrollen, moet u een beheerder van uw netwerk zijn of het recht Gebruikers, rollen en teams bewerken op het tabblad Beheerder hebben. Een gebruiker kan maar aan één rol tegelijk worden gekoppeld.
Ga naar Lidmaatschappen voor gebruikersrollen beheren voor meer informatie.
Het recht bekijken in een rol
U kunt nagaan welke rol een gebruiker op dit moment heeft en het recht zo nodig toevoegen of verwijderen.
- Log in bij Google Ad Manager.
- Klik op Beheerder en dan op Toegang en autorisatie.
- Klik op Rollen en dan op de naam van een rol.
- Zoek onder Rapportage het recht Buckets voor gegevensoverdracht bekijken.
- (Optioneel) Vink het selectievakje aan om het recht voor de rol aan te zetten.
Methoden om toegang te krijgen tot opslagbuckets
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.
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 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:
-
Ga naar de Google Developers Console.
-
Maak een nieuw project (of selecteer een bestaand project) als bovenliggend element van uw app en klik erop.
-
(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.
-
Maak een nieuwe client-ID:
-
Klik op API's en services en dan op Inloggegevens.
-
Klik op Nieuwe client-ID maken.
-
Selecteer Serviceaccount als uw app-type en klik vervolgens op Client-ID maken.
-
Het gegenereerde e-mailadres heeft de notatie
[unieke-id]@developer.gserviceagccount.com
. Voeg de serviceaccountgebruiker toe aan uw Ad Manager-netwerk en zorg dat deze een rol heeft met het recht Buckets voor gegevensoverdracht bekijken. -
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.
-
- Gebruikers met het recht Buckets voor gegevensoverdracht bekijken hebben toegang tot uw Ad Manager-opslagbuckets.
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. */ 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 for your "View data transfer buckets" * permission for the bucket, and you cannot request access rights that are * not granted via the permission. */ private static final String STORAGE_SCOPE = "https://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.