Notificação

Disponível apenas no Google Ad Manager 360.

Acessar intervalos de armazenamento do Ad Manager

Como fazer download dos seus arquivos da Transferência de dados

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

Este artigo tem o objetivo de ajudar você a usar as tecnologias padrão do Google Cloud Storage para interagir com as configurações específicas de armazenamento em nuvem do Ad Manager. Entretanto, o site do desenvolvedor do Google Cloud Storage é sua referência principal para o Google Cloud Storage.

Métodos

Há três maneiras de acessar os intervalos de armazenamento em nuvem do Ad Manager. Elas estão listadas abaixo por ordem de complexidade:

  • Na Web: acesse https://console.developers.google.com/storage/gdfp-[Ad Manager network code].
  • A gsutil é uma ferramenta de linha de comando baseada em Python que fornece comandos do tipo Unix para interação com o intervalo de armazenamento. A autenticação do intervalo é concedida e administrada automaticamente.
  • A Google Cloud Storage API é uma API com recursos completos para o gerenciamento do intervalo de armazenamento, disponível por meio das interfaces da Web RESTful JSON ou RESTful XML. As bibliotecas de clientes da API estão disponíveis em muitos ambientes de programação conhecidos, incluindo Java, JavaScript, Python e Objective-C. Isso pode ser útil se for necessário gerenciar os intervalos de armazenamento programaticamente para integrar com um app do Google App Engine ou um app da Web do Java.

Este artigo fornece detalhes sobre a API Google Cloud Storage. O acesso à Web e gsutil são mais fáceis de gerenciar, por isso recomendamos explorar esses métodos primeiro. Eles estão totalmente documentados no site para desenvolvedores do Google Cloud Storage.

Gerenciar o acesso aos seus intervalos de armazenamento do Ad Manager

Os intervalos de armazenamento usados pelo Ad Manager estão incluídos em um projeto de armazenamento em nuvem de propriedade do Google. Os intervalos de armazenamento do Ad Manager não aparecem na sua própria lista de projetos no Google Developers Console.

É necessário trabalhar com o representante do Google para configurar os recursos que dependem dos intervalos de armazenamento do Ad Manager. Ele vai enviar um grupo do Google para você gerenciar os intervalos de armazenamento.

Se você for administrador de um grupo do G Suite, envie o nome desse grupo ao representante como parte do processo de ativação do recurso. Ele trabalhará com você para ativar qualquer recurso que use os intervalos de armazenamento do Ad Manager utilizando seu grupo existente.

Se você gerenciar mais de uma rede do Ad Manager com acesso à Transferência de dados, informe seu representante do Google para que o gerenciamento de rede possa ser consolidado. Um grupo será usado para gerenciar todos os intervalos da Transferência de dados nas suas redes.

Os grupos do Google que não fazem parte do G Suite não podem ser usados para gerenciar os intervalos de armazenamento do Ad Manager.

Usar a API Google Cloud Storage

Se você acredita que o acesso à API é o mais indicado para suas necessidades, recomendamos a configuração de uma conta de serviço do Google Cloud Storage.

Configurar uma conta de serviço do Google Cloud Storage

Ao acessar o intervalo de armazenamento pela API, recomendamos configurar uma conta de serviço específica em vez de acessar com uma conta de usuário. As contas de serviço simplificam o desenvolvimento do aplicativo usando uma chave privada para autenticação em vez de um token OAuth gerado de maneira dinâmica. Para configurar uma conta de serviço, faça o seguinte:

  1. Acesse o Google Developers Console.

  2. Crie um novo projeto ou selecione um existente para ser o pai do seu aplicativo e clique nele.

  3. (Opcional) Se você quiser copiar arquivos do intervalo de armazenamento do Ad Manager para sua conta do Google Cloud Storage, clique em Faturamento e configurações para adicionar uma origem do faturamento ao seu projeto.

  4. Crie um novo ID do cliente:

    1. Clique em APIs e serviços > Credenciais.

    2. Clique em Criar novo ID do cliente.

    3. Selecione Conta de serviço como o tipo do seu aplicativo e depois clique em Criar ID do cliente.

    4. O endereço de e-mail gerado tem o formato [unique-id]@developer.gserviceagccount.com. Copie e salve o endereço para adicioná-lo ao seu Grupo do Google.

    5. Clique em Gerar nova chave P12. O arquivo é salvo no seu computador. Use essa chave nos aplicativos que você desenvolver para acessar a API, como exibido no exemplo de código abaixo.

  5. Adicione o endereço de e-mail ao Grupo do Google que você criou para gerenciar o acesso aos seus intervalos de armazenamento do Ad Manager. Clique em Adicionar membros diretamente em vez de "Convidar" para adicionar a conta de serviço. Se você não tiver acesso a isso, peça que o administrador do Grupo do Google adicione o endereço. 
Exemplo de código

O Google fornece amostras e bibliotecas de códigos do Google Cloud Storage. O seguinte exemplo de Java para a leitura de um arquivo de intervalo de armazenamento em nuvem do Ad Manager mostra como os componentes definidos ao configurar a conta de serviço podem afetar seu código:

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

  • Endereço de e-mail da conta de serviço: endereço de e-mail que você gerou.

  • Arquivo-chave .p12: é o arquivo que você transferiu.

  • Nome do intervalo: o Google fornece esse nome quando você ativa um recurso que usa intervalos de armazenamento em 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 onde a conta de serviço foi criada.
     * 
     * Esta informação é exibida no Google Developers Console.
     */
    private static final String PROJECT_NAME = "nome de projeto";

    /**
     * Endereço de e-mail da conta de serviço do desenvolvedor.
     * 
     * Este e-mail é gerado durante a criação de um código de cliente de conta de serviço em seu
     * Google Developers Console e pode ser recuperado na página
     * de credenciais. Este e-mail também deve ser adicionado ao Grupo do Google usado para controlar
     * o acesso ao intervalo de armazenamento.
     */
    private static final String SERVICE_ACCOUNT_EMAIL = "endereço de e-mail da conta de serviço";

    /**
     * Intervalo a ser usado em operações de armazenamento.
     * 
     * O nome deste intervalo é fornecido a você por seu gerente de
     * contas. Ele deve ser semelhante a "gdfp-12345678" ou
     * "gdfp_cookieupload_12345678", dependendo do complemento do Ad Manager em uso.
     */
    private static final String BUCKET_NAME = "nome do intervalo";

    /**
     * Escopo de leitura/gravação do Google Cloud Storage OAuth 2.0. Isso deve
     * corresponder aos direitos de acesso que seu Grupo do Google detém para o
     * intervalo, e não é possível solicitar direitos de acesso que não tenham sido concedidos ao
     * Grupo (que podem ser read_only).
     */
    private static final String STORAGE_SCOPE = 
        "https://www.googleapis.com/auth/devstorage.read_write";

    /**
     * Caminho para o arquivo key.p12 que fornece acesso ao intervalo.
     * 
     * Este arquivo é criado durante a criação do código de cliente do serviço. Se você não
     * tem este arquivo, será preciso gerar uma chave p12 de cliente novo no
     * Google Developers Console.
     */
    private static final String KEY_P12 = "caminho para arquivo-chave .p12";

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

    // construtor, configura credenciais e 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 retornar o nome do primeiro arquivo no intervalo.
     * 
     * @return para retornar o nome do arquivo ou null se o intervalo 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();

	// intervalo 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 fazer o download do arquivo especificado no intervalo de armazenamento
     * 
     * @param filename
     *            Nome do arquivo que deve ser obtido por download.
     * @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 vários 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());
	}
    }
}

Conexões simultâneas e de controle

Não há limite predefinido de conexões simultâneas. Para evitar isso, o Google controla as solicitações de chamada da Transferência de dados.

Leia a seção Google Cloud Storage do blog oficial do Google Code para saber as últimas notícias e postar perguntas no Fórum de discussão do Google Cloud Storage. Adicione "Bug" ou "Solicitação de recurso" ao assunto. No caso de dúvidas sobre o Google Cloud Storage, veja as Perguntas frequentes do Google Cloud Storage.

Isso foi útil?

Como podemos melhorá-lo?
Pesquisa
Limpar pesquisa
Fechar pesquisa
Menu principal
14448736875102119742
true
Pesquisar na Central de Ajuda
true
true
true
true
true
148
false
false