L'accesso ai bucket di archiviazione di Data Transfer è gestito tramite i ruoli utente di Google Ad Manager. Una volta ottenuta l'autorizzazione del ruolo utente necessaria, puoi utilizzare il metodo che preferisci per accedere ai file di Data Transfer.
Passa a una sezione dell'articolo:
- Informazioni sui ruoli utente per l'autorizzazione
- Visualizzare l'autorizzazione in un ruolo
- Metodi per accedere ai bucket di archiviazione
- Usare l'API Google Cloud Storage
Informazioni sui ruoli utente per l'autorizzazione
Per accedere ai bucket di archiviazione, devi disporre di un ruolo con l'autorizzazione "Visualizza bucket Data Transfer" attivata.
- Ruoli utente amministratore: l'autorizzazione è attiva per impostazione predefinita per il ruolo utente Amministratore incorporato.
- Ruoli utente personalizzati: l'autorizzazione può essere aggiunta ai ruoli utente personalizzati.
Per apportare modifiche ai ruoli utente, devi essere un amministratore della tua rete o disporre dell'autorizzazione "Modifica utenti, ruoli e team nella scheda di amministrazione". Tieni presente che un utente può essere associato a un solo ruolo alla volta.
Per maggiori dettagli, vedi Gestire l'appartenenza a un ruolo utente.
Visualizzare l'autorizzazione in un ruolo
Puoi esaminare il ruolo corrente di un utente e aggiungere o rimuovere l'autorizzazione in base alle esigenze.
- Accedi a Google Ad Manager.
- Fai clic su Amministrazione, poi su Accesso e autorizzazione.
- Fai clic su Ruoli e poi sul nome di un ruolo.
- In "Report", individua l'autorizzazione "Visualizza bucket Data Transfer".
- (Facoltativo) Per attivare l'autorizzazione per il ruolo, seleziona la casella.
Metodi per accedere ai bucket di archiviazione
Google Cloud Storage è un prodotto Google indipendente che Ad Manager utilizza come repository di dati per funzioni quali rapporti Data Transfer e caricamento collettivo di ID cookie nei segmenti di pubblico.
Esistono tre metodi per accedere ai bucket Cloud Storage di Ad Manager. In ordine di complessità:
- Sul Web: visita
https://console.developers.google.com/storage/gdfp-[codice di rete Ad Manager]. - gsutil è uno strumento della riga di comando basato su Python che fornisce i comandi Unix-like per utilizzare il bucket di archiviazione. L'autenticazione del bucket è astratta e viene gestita automaticamente.
- L'API di Google Cloud Storage è un'API completa per la gestione del bucket di archiviazione, disponibile sulle interfacce web JSON o XML RESTful. Sono disponibili librerie client dell'API per molti ambienti di programmazione tra i più utilizzati, come Java, JavaScript, Python e Objective-C. Questo approccio è più efficace se devi gestire i bucket di archiviazione in modo sistematico per integrarli con un'app di Google App Engine o un'app web di Java.
Questo articolo fornisce dettagli sull'API di Google Cloud Storage. L'accesso tramite Web o gsutil è più semplice da gestire, quindi consigliamo di provare prima questi metodi. La documentazione completa è disponibile sul sito per sviluppatori di Google Cloud Storage.
Usare l'API Google Cloud Storage
Se pensi che l'accesso all'API sia la soluzione migliore per le tue esigenze, ti consigliamo di configurare un account per i servizi di Google Cloud Storage.
Configurare un account per i servizi di Google Cloud Storage
Quando accedi al bucket di archiviazione tramite l'API, è preferibile configurare un account per i servizi, anziché eseguire l'elaborazione nel contesto di un utente. Gli account per i servizi semplificano la procedura di sviluppo delle applicazioni, utilizzando una chiave di autenticazione privata, anziché un token OAuth generato in modo dinamico. Per configurare un account per i servizi:
-
Accedi a Google Developer Console.
-
Crea un nuovo progetto o seleziona un progetto esistente da utilizzare come applicazione principale di quella che stai per creare e fai clic su esso.
-
Se vuoi copiare i file dal bucket di archiviazione di Ad Manager al tuo account Google Cloud Storage, fai clic su Fatturazione e impostazioni per aggiungere un'origine di fatturazione al tuo progetto (facoltativo).
-
Per creare un nuovo ID client:
-
Fai clic su API e servizi e poi su Credenziali.
-
Fai clic su Crea nuovo ID client.
-
Seleziona Service account come tipo di applicazione, quindi fai clic su Crea ID client.
-
L'indirizzo email generato presenta il formato
[unique-id]@developer.gserviceagccount.com. Aggiungi l'utente del service account alla tua rete Ad Manager e assicurati che disponga del ruolo con l'autorizzazione "Visualizza bucket Data Transfer". -
Fai clic su Genera nuova chiave P12. Il file viene salvato sul tuo computer. Utilizza questa chiave nelle applicazioni che sviluppi per accedere all'API, come mostrato nel codice di esempio riportato di seguito.
-
- Gli utenti con l'autorizzazione "Visualizza bucket Data Transfer" avranno accesso ai bucket di archiviazione di Ad Manager.
Google fornisce raccolte ed esempi di codice per Google Cloud Storage. L'esempio Java relativo alla lettura di un file da un bucket di archiviazione cloud Ad Manager ti consente di capire come i componenti che hai impostato durante la configurazione dell'account influiscono sul tuo codice:
-
Nome del progetto. Nome del progetto di Google Cloud Storage.
-
Indirizzo email dell'account per i servizi. L'indirizzo email generato.
-
File chiave .p12. Il file scaricato.
-
Nome del bucket. Google fornisce questo nome al momento dell'abilitazione di una funzionalità che utilizza i bucket di archiviazione cloud Ad Manager.
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://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());
}
}
}
Rallentamento attuale e connessioni simultanee
Non esistono limiti predefiniti alle connessioni simultanee. Tuttavia, per impedire eventuali comportamenti illeciti, Google limita le richieste di recupero di Data Transfer.