Importante: all'inizio di novembre 2024, partirà la migrazione dell'accesso ai bucket di archiviazione di Ad Manager per Data Transfer da Google Gruppi a una nuova autorizzazione del ruolo utente di Ad Manager.
Per informazioni dettagliate sulle sequenze temporali della migrazione e sui passaggi successivi, consulta Eseguire la migrazione dell'accesso a Data Transfer da Google Gruppi alle autorizzazioni di Ad Manager.
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.
Metodi
Esistono tre metodi per accedere ai bucket di archiviazione cloud 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 degli sviluppatori di Google Cloud Storage.
Gestire l'accesso ai bucket di archiviazione di Ad Manager
Nuova procedura (disponibile a novembre 2024)
A partire da novembre 2024, puoi iniziare a eseguire la migrazione degli utenti che devono accedere ai bucket di archiviazione di Data Transfer da Google Gruppi a una nuova autorizzazione del ruolo utente di Ad Manager. Gli utenti con il ruolo di amministratore potranno accedere ai bucket di archiviazione per impostazione predefinita. Puoi aggiungere gli altri utenti a un ruolo utente con la nuova autorizzazione "Visualizza bucket Data Transfer". Scopri di più sulla migrazione.
Procedura attuale (disponibile fino a gennaio 2025)
Nota: ti invitiamo a esaminare le fasi di migrazione e ad adottare le misure del caso prima di gennaio 2025.
I bucket di archiviazione utilizzati da Ad Manager sono inclusi in un progetto di archiviazione cloud gestito da Google e non vengono visualizzati nel tuo elenco dei progetti in Google Developers Console.
Dovrai collaborare con il tuo rappresentante Google per configurare le funzionalità che dipendono dai bucket di archiviazione di Ad Manager. Riceverai un gruppo Google che potrai utilizzare per gestire i tuoi bucket di archiviazione.
Se sei l'amministratore di un gruppo G Suite esistente, puoi fornire il nome di quel gruppo al tuo rappresentante durante la procedura di attivazione delle funzionalità. Verranno attivate tutte le funzionalità che utilizzano i bucket di archiviazione di Ad Manager mediante il tuo gruppo esistente.
Se gestisci più reti Ad Manager con accesso a Data Transfer, devi comunicarle al tuo rappresentante di Google per così che possa essere consolidata la gestione delle reti. Per gestire tutti i bucket di Data Transfer nelle reti verrà utilizzato un unico gruppo.
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 > Credenziali.
-
Fai clic su Crea nuovo ID client.
-
Seleziona Account per i servizi come tipo di applicazione, quindi fai clic su Crea ID client.
-
L'indirizzo email generato presenta il formato
[unique-id]@developer.gserviceagccount.com
. Copialo e salvalo per aggiungerlo al gruppo Google. -
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.
-
- Aggiungi l'indirizzo email al gruppo Google creato per gestire gli accessi ai bucket di archiviazione Ad Manager. Fai clic su Aggiungi membri direttamente invece che su "invita" per aggiungere l'account per i servizi. Se non disponi di accesso, chiedi all'amministratore del gruppo Google di aggiungere l'indirizzo a tuo nome.
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. 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()); } } }
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.