Notificação

Disponível apenas no Google Ad Manager 360.

Aceda aos contentores de armazenamento da Transferência de dados

O acesso aos contentores de armazenamento da Transferência de dados é gerido através das funções de utilizador no Google Ad Manager. Assim que tiver a autorização da função de utilizador necessária, pode usar o método à sua escolha para aceder aos ficheiros da Transferência de dados. 

Aceda a uma secção do artigo:

Acerca das funções de utilizador para a autorização

Para aceder aos contentores de armazenamento, tem de ter uma função com a autorização "Ver contentores da Transferência de dados" ativada.  

Para fazer alterações às funções de utilizador, tem de ser administrador na sua rede ou ter a autorização "Editar utilizadores, funções e equipas no separador Administração". Tenha em atenção que um utilizador só pode ser associado a uma função de cada vez.

Para mais detalhes, visite Gerir a subscrição da função de utilizador.

Veja a autorização numa função

Pode rever a função em que um utilizador se encontra atualmente e adicionar ou remover a autorização conforme necessário. 

  1. Inicie sessão no Google Ad Manager.
  2. Clique em Admin e, de seguida, em Acesso e autorização.
  3. Clique em Funções e, de seguida, no nome de uma função. 
  4. Em "Relatórios", localize a autorização "Ver contentores de transferência de dados".
    Example of where to give user role access to view data transfer buckets in Google Ad Manager
  5. (Opcional) Para ativar a autorização para a função, selecione a caixa.

Métodos para aceder a contentores de armazenamento

O Google Cloud Storage é um produto Google separado que o Ad Manager utiliza como repositório de dados para relatórios da Transferência de dados e IDs de cookies de público-alvo carregados em lote.

Este artigo tem como objetivo ajudar a utilizar as tecnologias padrão do Google Cloud Storage para interagir com a configuração específica de armazenamento na nuvem do Ad Manager. No entanto, a sua referência principal para o Google Cloud Storage é o site para programadores do Google Cloud Storage.

Existem três formas de aceder a contentores de armazenamento na nuvem do Ad Manager. Por ordem de complexidade:

  • Na Web: visite https://console.developers.google.com/storage/gdfp-[Código de rede do Ad Manager].
  • gsutil é uma ferramenta de linhas de comando baseada em Python que fornece comandos do tipo Unix para interagir com o contentor de armazenamento. A autenticação de contentores é abstrata e processada automaticamente.
  • A API do Google Cloud Storage é uma API completa para manipular o contentor de armazenamento, disponível através das interfaces Web RESTful JSON ou XML. As bibliotecas cliente da API estão disponíveis para inúmeros ambientes de programação populares, incluindo Java, JavaScript, Python e Objective-C. Esta abordagem é mais útil se precisar de manipular os contentores de armazenamento programaticamente para integração numa app do Google App Engine ou numa app para a Web de Java.

Este artigo fornece detalhes sobre a API do Google Cloud Storage. O acesso à Web e à gsutil é mais fácil de gerir, por isso recomendamos que explore estes métodos primeiro. Estes estão totalmente documentados no site para programadores do Google Cloud Storage.

Use a API do Google Cloud Storage

Se determinar que o acesso à API é o mais adequado às suas necessidades, recomendamos que configure uma conta de serviço do Google Cloud Storage.

Configure uma conta de serviço do Google Cloud Storage

Ao aceder ao contentor de armazenamento através da API, é preferível configurar uma conta de serviço em vez de a executar no contexto de um utilizador. As contas de serviço simplificam o desenvolvimento de aplicações através da utilização de uma chave privada para autenticação em vez de um token OAuth gerado de forma dinâmica. Para configurar uma conta de serviço:

  1. Aceda a Google Developers Console.

  2. Crie um novo projeto (ou selecione um projeto existente) para ser o principal da aplicação e clique no mesmo.

  3. (Opcional) Se planear copiar ficheiros do contentor de armazenamento do Ad Manager para a sua própria conta do Google Cloud Storage, clique em Faturação e definições para adicionar uma origem de faturação ao seu projeto.

  4. Crie um novo ID de cliente:

    1. Clique em APIs e serviços e, de seguida, em Credenciais.

    2. Clique em Criar novo ID de cliente.

    3. Selecione Conta de serviço como tipo de aplicação e clique em Criar ID de cliente.

    4. O endereço de email gerado tem o formato [unique-id]@developer.gserviceagccount.com. Adicione o utilizador da conta de serviço à sua rede do Ad Manager e certifique-se de que este tem uma função com a autorização "Ver contentores de transferência de dados". 

    5. Clique em Gerar nova chave P12. O ficheiro é guardado no seu computador. Utilize esta chave nas aplicações que desenvolver para aceder à API, conforme mostrado no exemplo de código abaixo.

  5. Os utilizadores com a autorização "Ver contentores de transferência de dados" têm acesso aos seus contentores de armazenamento do Ad Manager.
Exemplo de código

A Google fornece bibliotecas e exemplos de código para o Google Cloud Storage. O seguinte exemplo de Java para ler um ficheiro de um de armazenamento na nuvem do Ad Manager mostra como os componentes que configurou ao configurar a conta de serviço podem ser incluídos no seu código:

  • Nome do projeto: nome do projeto do Google Cloud Storage.

  • Endereço de email da conta de serviço: endereço de email que gerou.

  • Ficheiro de chave .p12: o ficheiro que transferiu.

  • Nome do contentor: a Google fornece este nome quando ativa uma funcionalidade que utiliza os contentores de armazenamento na nuvem do 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 {
    /**
     * O nome do projeto com o qual a conta de serviço foi criada.
     * 
     * Estas informações são apresentadas na Google Developers Console.
     */
    private static final String PROJECT_NAME = "project name";

    /**
     * Endereço de email do programador da conta de serviço.
     * 
     * Este email é gerado ao criar um ID de cliente da conta de serviço na
     * Google Developers Console e pode ser recuperado na página
     * Credenciais. 
     */
    private static final String SERVICE_ACCOUNT_EMAIL = "service account email address";

    /**
     * Contentor a utilizar para operações de armazenamento.
     * 
     * O nome deste contentor foi-lhe fornecido pelo seu gestor de
     * conta. É provável que tenha um nome semelhante a "gdfp-12345678" ou
     * "gdfp_cookieupload_12345678", consoante o suplemento do Ad Manager que estiver a utilizar.
     */
    private static final String BUCKET_NAME = "bucket name";

    /**
     * Google Cloud Storage OAuth 2.0 para leitura/gravação. Isto deve
     * corresponder aos direitos de acesso da sua autorização "Ver contentores de transferência de dados"  
     * para o contentor e não pode pedir direitos de acesso que 
     * não sejam concedidos através da autorização.
     */
    private static final String STORAGE_SCOPE = 
        "https://www.googleapis.com/auth/devstorage.read_write";

    /**
     * Caminho para o ficheiro de chave .p12 que disponibiliza acesso ao contentor.
     * 
     * Este ficheiro é criado quando o ID do cliente de serviço é criado. Se não
     * tiver este ficheiro, tem de gerar uma nova chave p12 de cliente a partir da
     * Google Developers Console.
     */
    private static final String KEY_P12 = "caminho para o ficheiro de chave .p12";

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

    // construtor, configura as credenciais e os objetos de armazenamento
    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étodo para obter o nome do primeiro ficheiro no contentor.
     * 
     * @return o nome do ficheiro ou nulo se o contentor estiver vazio
     * @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();

	// contentor vazio?
	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étodo para transferir o ficheiro especificado a partir do contentor de armazenamento
     * 
     * @param filename
     *            Nome do ficheiro que deveria ser transferido.
     * @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.");
    }

    /**
     * Método principal para executar os diferentes testes.
     * 
     * @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());
	}
    }
}

Otimização e ligações simultâneas

Não existe um limite predefinido de ligações simultâneas. No entanto, para evitar abusos, a Google otimiza os pedidos de obtenção da Transferência de dados.

Leia a secção Google Cloud Storage do blogue oficial do Google Code para ver as notícias mais recentes e publique perguntas no Fórum de Debate do Google Cloud Storage. Adicione "Erro" ou "Pedido de funcionalidade" ao Assunto, conforme adequado. Para mais questões acerca do Google Cloud Storage, consulte as Perguntas frequentes do Google Cloud Storage.

A informação foi útil?

Como podemos melhorá-la?
Pesquisa
Limpar pesquisa
Fechar pesquisa
Menu principal
14432526232245537455
true
Pesquisar no Centro de ajuda
false
true
true
true
true
true
148
false
false
false
false