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 les ensembles de données à 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.

Lorsque vous configurez avec votre représentant Google les fonctionnalités qui dépendent des ensembles de données Ad Manager, vous devez créer un groupe Google afin de gérer l'accès à ces derniers. Selon les fonctionnalités que vous utilisez, les membres disposeront d'un accès soit en lecture seule, soit en lecture/écriture.

Dans ces instructions, nous partons du principe que vous êtes l'administrateur du groupe. Si l'administrateur du groupe est une autre personne, assurez-vous que cette dernière suit ces instructions en étant connectée au compte Google approprié.

Pour configurer votre groupe Google, procédez comme suit :

  1. Accédez à l'adresse http://groups.google.fr/ et suivez les instructions de création d'un groupe.

    Vous pouvez attribuer le nom de votre choix aux groupes. Toutefois, nous vous recommandons d'inclure le nom du produit Google Marketing Platform principal, votre ID de réseau et le nom de votre entreprise. Exemple : admanager-9999-MonEntreprise.
  2. Ajoutez des utilisateurs au groupe Google. Nous vous recommandons d'utiliser les adresses e-mail avec lesquelles vos utilisateurs accèdent à Ad Manager, plutôt que leurs adresses e-mail personnelles.

  3. Communiquez le nom de votre groupe Google à l'équipe Google lors de la procédure d'activation des fonctionnalités. Google vous assistera pour activer toutes les fonctionnalités qui utilisent les ensembles de données d'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 ?
	si (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 relative à Google Cloud Storage du 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 ?