Notificação

Disponível apenas no Google Ad Manager 360.

Aceda aos contentores de armazenamento do Ad Manager

Como transferir os seus ficheiros da Transferência de dados

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.

Métodos

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.

Faça a gestão do seu acesso aos contentores de armazenamento do Ad Manager

Os contentores de armazenamento utilizados pelo Ad Manager estão incluídos num projeto de armazenamento na nuvem da Google. Os contentores de armazenamento do Ad Manager não são apresentados na sua lista de projetos na Google Developers Console.

Terá de colaborar com o seu representante da Google para configurar funcionalidades que dependam dos contentores de armazenamento do Ad Manager. O representante irá fornecer-lhe um Grupo do Google que poderá utilizar para gerir os contentores de armazenamento.

Se for o administrador de um grupo existente do G Suite, pode fornecer o nome do seu grupo do Google G Suite ao representante como parte do processo de ativação de funcionalidades. O representante colaborará consigo para ativar qualquer funcionalidade que utilize contentores de armazenamento do Ad Manager através do seu grupo existente.

Se gerir mais do que uma rede do Ad Manager com acesso à Transferência de dados, comunique-o ao seu representante da Google para que a gestão de redes possa ser consolidada. Será utilizado um Grupo para gerir todos os contentores da Transferência de dados nas suas redes.

Os Grupos do Google que não façam parte do G Suite não podem ser utilizados para gerir os contentores de armazenamento do Ad Manager.

Utilize 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> 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. Copie-o e guarde-o para adicionar ao seu grupo do Google.

    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. Adicione o endereço de email ao Grupo do Google que criou para gerir o acesso aos contentores de armazenamento do Ad Manager. Clique em Adicionar membros diretamente em vez de "convidar" para adicionar a conta de serviço.Se não tiver acesso, peça ao administrador do grupo do Google para adicionar o endereço por si.
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. Este email também deve ser adicionado ao Grupo do Google utilizado para controlar o
     * acesso ao contentor de armazenamento.
     */
    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 que o seu Grupo do Google tem para o
     * contentor e não pode solicitar direitos de acesso que não sejam concedidos ao
     * Grupo (os quais podem ser apenas de leitura).
     */
    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
2969969951393398693
true
Pesquisar no Centro de ajuda
true
true
true
true
true
148
false
false