Accéder aux ensembles de données Ad Manager

Télécharger vos fichiers de transfert de données

Google Cloud Storage est un produit Google séparé qu'Ad Manager utilise comme référentiel pour les rapports sur les transferts de données et les ID de cookies d'audience importés de manière groupée.

Cet article vise à vous familiariser avec la technologie Google Cloud Storage standard pour que vous sachiez configurer pour Ad Manager cette solution de stockage dans le cloud. La documentation de référence concernant cette technologie se trouve sur la page du site Google Developers qui est réservée à Google Cloud Storage.

Méthodes

Il existe trois méthodes pour accéder aux ensembles de données Ad Manager stockées dans le cloud. Elles sont répertoriées ci-dessous, de la plus simple à la plus complexe.

  • Sur le Web : consultez la page https://console.developers.google.com/storage/gdfp-[code de réseau Ad Manager].
  • gsutil : un outil de ligne de commande en Python qui permet d'interagir avec le bucket de stockage à l'aide de commandes de type Unix. L'authentification des ensembles est abstraite et gérée automatiquement.
  • L'API Google Cloud Storage : une API complète permettant de manipuler les ensembles de données, disponible via les interfaces Web JSON ou XML RESTful. Des bibliothèques clientes d'API sont disponibles pour de nombreux environnements de programmation courants, y compris Java, JavaScript, Python et Objective-C. Cette approche est particulièrement utile si vous souhaitez manipuler les ensembles de données de manière programmée afin de les intégrer à une application Java pour le Web ou Google App Engine.

Le présent article fournit des informations sur l'API Google Cloud Storage. Nous vous recommandons de commencer par essayer les méthodes Web et gsutil, car elles sont plus faciles à gérer. Elles sont intégralement documentées sur la page du site Google Developers qui est réservée à Google Cloud Storage.

Gérer l'accès à vos ensembles de données Ad Manager

Les ensembles de données utilisés par Ad Manager sont inclus dans un projet de stockage dans le cloud de Google. Vos ensembles de données Ad Manager ne sont pas disponibles dans votre liste de projets dans la Google Developers Console.

Pour configurer les fonctionnalités qui dépendent des ensembles de données Ad Manager, vous devez contacter votre représentant Google. Celui-ci vous fournira un groupe Google que vous pourrez utiliser pour gérer vos ensembles de données.

Si vous êtes l'administrateur d'un groupe G Suite existant, vous pouvez communiquer son nom à votre représentant lors de la procédure d'activation des fonctionnalités. Celui-ci vous assistera pour activer toutes les fonctionnalités qui utilisent les ensembles de données Ad Manager à l'aide de votre groupe existant.

Si vous gérez plusieurs réseaux Ad Manager ayant accès au transfert de données, vous devez communiquer cette information à votre représentant Google afin de consolider la gestion du réseau. Un groupe sera utilisé pour gérer tous les ensembles de transfert de données de vos réseaux.

Les groupes Google qui ne font pas partie de G Suite ne peuvent pas être utilisés pour gérer des ensembles de données Ad Manager.

Utiliser l'API Google Cloud Storage

Si vous pensez que l'API est la méthode qui convient le mieux à vos besoins, nous vous recommandons de configurer un compte de service Google Cloud Storage.

Configurer un compte de service Google Cloud Storage

Lorsque vous accédez à l'ensemble de données via l'API, il est préférable de configurer un compte de service plutôt que de vous en servir en tant qu'utilisateur. Les comptes de service simplifient le développement des applications en utilisant une clé privée pour l'authentification plutôt qu'un jeton OAuth généré de manière dynamique. Pour configurer un compte de service, exécutez les opérations suivantes :

  1. Accédez à la Google Developers Console.

  2. Créez un projet (ou sélectionnez un projet existant) en tant que parent de votre application, puis cliquez dessus.

  3. (Facultatif) Si vous prévoyez de copier dans votre compte Google Cloud Storage des fichiers issus de l'ensemble de données d'Ad Manager, cliquez sur Facturation et paramètres pour ajouter une source de facturation à votre projet.

  4. Créez un ID client en procédant comme suit :

    1. Cliquez sur API et services > Identifiants.

    2. Cliquez sur Créer un identifiant client.

    3. Sélectionnez Compte de service comme type d'application, puis cliquez sur Créer un ID client.

    4. L'adresse e-mail générée se présente sous la forme suivante : [identifiant-unique]@developer.gserviceagccount.com. Copiez-la, puis enregistrez-la pour l'ajouter à votre groupe Google.

    5. Cliquez sur Générer une clé P12. Le fichier est enregistré sur votre ordinateur. Utilisez cette clé dans les applications que vous développez pour accéder à l'API, comme indiqué dans l'exemple de code ci-dessous.

  5. Ajoutez l'adresse e-mail au groupe Google que vous avez créé pour gérer l'accès à vos ensembles de données Ad Manager. Cliquez sur Ajouter des membres directement, plutôt que sur "inviter", pour ajouter le compte de service. Si vous n'avez pas accès à la console, demandez à l'administrateur du groupe Google d'ajouter l'adresse pour vous. 
Exemple de code

Google fournit des exemples de code et des bibliothèques pour Google Cloud Storage. L'exemple de code Java ci-dessous, qui concerne la lecture d'un fichier à partir d'un ensemble de données Ad Manager stockées dans le cloud, vous montre comment les composants que vous avez configurés lors de la création du compte de service interagissent avec votre code.

  • Nom du projet : nom du projet Google Cloud Storage.

  • Adresse e-mail du compte de service : adresse e-mail générée.

  • Fichier clé .p12 : fichier téléchargé.

  • Nom de l'ensemble : nom fourni par Google lors de l'activation d'une fonctionnalité utilisant les ensembles de données Ad Manager stockées dans le cloud.

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 {
    /**
     * Nom du projet dans lequel le compte de service a été créé.
     * 
     * Ces informations sont affichées dans la Google Developers Console.
     */
    private static final String PROJECT_NAME = "nom du projet" ;

    /**
     * Adresse e-mail du compte de service du développeur.
     * 
     * Cette adresse e-mail est générée lors de la création de l'ID client du compte de service dans votre
     * Google Developers Console. Elle est disponible sur votre page
     * "Identifiants". Elle doit également être ajoutée au groupe Google utilisé pour contrôler
     * l'accès à l'ensemble de données.
     */
    private static final String SERVICE_ACCOUNT_EMAIL = "adresse e-mail du compte de service" ;

    /**
     * Ensemble à utiliser pour les opérations de stockage
     * 
     * Le nom de cet ensemble vous a été fourni par le responsable
     * de votre compte. Il se présente certainement sous la forme "gdfp-12345678" ou
     * "gdfp_cookieupload_12345678", selon le module complémentaire pour Ad Manager que vous utilisez.
     */
    private static final String BUCKET_NAME = "nom de l'ensemble" ;

    /**
     * Portée OAuth 2.0 de Google Cloud Storage en lecture/écriture. Cela doit
     * correspondre aux droits d'accès dont dispose votre groupe Google pour
     * l'ensemble. Vous ne pouvez pas demander des droits d'accès qui ne sont pas accordés au
     * groupe (qui peut être en lecture seule).
     */
    private static final String STORAGE_SCOPE = 
        "https://www.googleapis.com/auth/devstorage.read_write";

    /**
     * Chemin vers le fichier clé .p12 donnant accès à l'ensemble.
     * 
     * Ce fichier est créé en même temps que l'ID client de service. Si vous ne disposez pas de
     * ce fichier, vous devez générer une nouvelle clé .p12 cliente à partir de la
     * Google Developers Console.
     */
    private static final String KEY_P12 = "chemin vers le fichier clé .p12" ;

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

    // Constructeur simple, définition des identifiants et des objets de stockage
    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);
	}
    }

    /**
     * Méthode simple permettant de retourner le nom du premier fichier dans l'ensemble.
     * 
     * @renvoie le nom du fichier, ou rien si l'ensemble est vide.
     * @déclenche 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();

	// ensemble vide ?
	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();
    }

    /**
     * Méthode simple permettant de télécharger le fichier spécifié dans l'ensemble de données.
     * 
     * @param nom de fichier
     *            Nom du fichier à télécharger.
     * @déclenche 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.");
    }

    /**
     * Méthode principale permettant d'exécuter différents 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());
	}
    }
}

Régulation et connexions simultanées

Il n'existe aucune limite prédéfinie concernant les connexions simultanées. Toutefois, pour éviter tout abus, Google régule les demandes de récupération de transfert de données.

Consultez la section consacrée à Google Cloud Storage sur le blog officiel Google Code pour découvrir les dernières nouveautés, et posez vos questions sur le forum de discussion de Google Cloud Storage. Ajoutez les mots clés "Bug" ou "Demande de fonctionnalité" dans l'objet de votre message, selon votre demande. Si vous avez d'autres interrogations concernant Google Cloud Storage, consultez les questions fréquentes qui s'y rapportent.
Ces informations vous-ont elles été utiles ?
Comment pouvons-nous l'améliorer ?