O acesso aos intervalos de armazenamento para a Transferência de dados é gerenciado pelas funções do usuário no Google Ad Manager. Depois de ter a permissão de função do usuário necessária, você pode usar o método que preferir para acessar seus arquivos da Transferência de dados.
Ir para uma seção do artigo:
- Sobre as funções do usuário para a permissão
- Conferir a permissão em uma função
- Métodos para acessar intervalos de armazenamento
- Usar a API Google Cloud Storage
Sobre as funções do usuário para a permissão
Para acessar os intervalos de armazenamento, você precisa ter uma função com a permissão "Ver intervalos de transferência de dados" ativada.
- Funções do usuário administrador: a permissão é ativada por padrão para a função do usuário "Administrador" integrada.
- Funções de usuário personalizadas: a permissão pode ser adicionada a funções do usuário personalizadas.
Para fazer mudanças nas funções do usuário, você precisa ser administrador da rede ou ter a permissão Editar usuários, funções e equipes na guia Admin. Um usuário só pode ser associado a uma função por vez.
Para mais detalhes, acesse Gerenciar a associação de funções do usuário.
Conferir a permissão em uma função
Você pode analisar a função de um usuário e adicionar ou remover a permissão conforme necessário.
- Faça login no Google Ad Manager.
- Clique em Admin e em Acesso e autorização.
- Clique em Funções e selecione o nome de uma função.
- Em "Relatórios", encontre a permissão "Ver intervalos de transferência de dados".
- (Opcional) Para ativar a permissão para a função, marque a caixa.
Métodos para acessar intervalos de armazenamento
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.
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.
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:
-
Acesse o Google Developers Console.
-
Crie um novo projeto ou selecione um existente para ser o pai do seu aplicativo e clique nele.
-
(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.
-
Crie um novo ID do cliente:
-
Clique em APIs e serviços e em Credenciais.
-
Clique em Criar novo ID do cliente.
-
Selecione Conta de serviço como o tipo do seu aplicativo e depois clique em Criar ID do cliente.
-
O endereço de e-mail gerado tem o formato
[unique-id]@developer.gserviceagccount.com
. Adicione o usuário da conta de serviço à sua rede do Ad Manager e verifique se ele tem a permissão "Ver intervalos de transferência de dados". -
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.
-
- Os usuários com a permissão "Ver intervalos de transferência de dados" vão ter acesso aos seus intervalos de armazenamento do Ad Manager.
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 ID do cliente de conta de serviço em seu * Google Developers Console e pode ser recuperado na página * de credenciais. */ 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 para a permissão "Ver intervalos de transferência de dados" * do intervalo, e não é possível solicitar direitos de acesso que não sejam * concedidos pela permissão. */ 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.