Transferências do Google Play

Com o serviço de transferências de dados do BigQuery para o Google Play, é possível programar e gerenciar automaticamente jobs de carregamento recorrentes para dados de relatórios do Google Play.

Relatórios compatíveis

O serviço de transferência de dados do BigQuery para Google Play é compatível com as seguintes opções de relatórios mensais:

Relatórios detalhados

Relatórios agregados

Para informações sobre como os relatórios do Google Play são transformados em tabelas do BigQuery, consulte Transformações de relatórios do Google Play.

Opção de relatório Suporte
Versão da API compatível

N/D

Programação

Diariamente, no horário em que a transferência foi criada pela primeira vez (padrão)

Você pode configurar a hora do dia.

Janela de atualização

Últimos 7 dias

Não configurável

Duração máxima do preenchimento

Sem limite

O Google Play não tem limites conhecidos de retenção de dados, mas o serviço de transferência de dados do BigQuery tem limites em relação a quantos dias podem ser solicitados em um único preenchimento. Para informações sobre preenchimentos, consulte Configurar um preenchimento.

Ingestão de dados das transferências do Google Play

Ao transferir dados do Google Play para o BigQuery, eles são carregados em tabelas do BigQuery particionadas por data. A partição da tabela em que os dados são carregados corresponde à data da fonte de dados. Se você programar várias transferências para a mesma data, o serviço de transferência de dados do BigQuery substituirá a partição dessa data específica pelos dados mais recentes. Várias transferências no mesmo dia não resultam em dados duplicados, e as partições de outras datas não são afetadas.

Limitações

  • A frequência mínima para programar uma transferência de dados é de uma vez a cada 24 horas. Por padrão, uma transferência começa no momento em que você cria a transferência. No entanto, é possível configurar o horário de início da transferência ao configurar sua transferência.
  • O serviço de transferência de dados do BigQuery não é compatível com transferências incrementais durante uma transferência do Google Play. Quando você especifica uma data para uma transferência de dados, todos os dados disponíveis nessa data são transferidos.
  • O relatório de receitas é gerado uma vez por mês e geralmente está disponível até o dia 5 do mês seguinte. Por padrão, as transferências do Google Play só atualizam dados dos últimos sete dias. Portanto, apenas os últimos dias do relatório de ganhos do mês anterior são transferidos. Para transferir os dados de ganhos do mês inteiro, é necessário fazer um preenchimento manual para cobrir os dias que faltam.

Antes de começar

Antes de criar uma transferência do Google Play, confira estas informações:

  • Verifique se você realizou todas as ações necessárias para ativar o serviço de transferência de dados do BigQuery.
  • Crie um conjunto de dados do BigQuery para armazenar os dados do Google Play.
  • Localize seu bucket do Cloud Storage:
    1. No Google Play Console, clique em Fazer o download de relatórios e selecione Avaliações, Estatísticas ou Finanças.
    2. Para copiar o ID do bucket do Cloud Storage, clique em Copiar URI do Cloud Storage. Seu ID do bucket começa com gs://. Por exemplo, no relatório de avaliações, seu ID será semelhante a este:
      gs://pubsite_prod_rev_01234567890987654321/reviews
    3. Para a transferência do Google Play, você precisa copiar apenas o ID exclusivo que está entre gs:// e /reviews:
      pubsite_prod_rev_01234567890987654321
  • Se você pretende configurar notificações de execução de transferência do Pub/Sub, é preciso ter permissões pubsub.topics.setIamPolicy. As permissões do Pub/Sub não serão necessárias se você configurar notificações por e-mail. Para mais informações, consulte Notificações de execução do serviço de transferência de dados do BigQuery.

Permissões exigidas

  • BigQuery: verifique se a pessoa que está criando a transferência tem as permissões a seguir no BigQuery:

    • Permissões bigquery.transfers.update para criar a transferência
    • As permissões bigquery.datasets.get e bigquery.datasets.update no conjunto de dados de destino

    O papel predefinido bigquery.admin do IAM inclui permissões bigquery.transfers.update, bigquery.datasets.update e bigquery.datasets.get. Para mais informações sobre os papéis do IAM no serviço de transferência de dados do BigQuery, consulte o controle de acesso.

  • Google Play: verifique se você tem as seguintes permissões no Google Play:

    A equipe do Google Cloud NÃO gera nem concede acesso aos arquivos do Google Play em seu nome. Se você precisar de ajuda para acessá-los, consulte Entre em contato com o suporte do Google Play.

Configurar uma transferência do Google Play

A configuração de uma transferência do Google Play requer os itens a seguir:

  • bucket do Cloud Storage: As etapas para localizar seu bucket do Cloud Storage são descritas em Antes de começar. O bucket do Cloud Storage começa com pubsite_prod_rev. Por exemplo: pubsite_prod_rev_01234567890987654321.
  • Sufixo da tabela: um nome fácil para todas as origens de dados que são carregadas no mesmo conjunto de dados. O sufixo é usado para evitar que transferências separadas gravem nas mesmas tabelas. O sufixo da tabela precisa ser único em todas as transferências que carregam dados para o mesmo conjunto de dados. Além disso, o sufixo precisa ser curto para reduzir o comprimento do nome de tabela resultante.

Etapas para configurar uma transferência do Google Play:

Console

  1. Acesse a página do BigQuery no console do Google Cloud.

    Acesse a página do BigQuery

  2. Clique em Transferências.

  3. Clique em Criar transferência.

  4. Na página Criar transferência:

    • Na seção Tipo de origem, em Origem, escolha Google Play.

      Origem da transferência

    • No campo Nome da configuração de transferência da seção Nome de exibição, insira um nome para a transferência, como My Transfer. Esse nome pode ter qualquer valor que identifique facilmente a transferência, caso seja necessário modificá-la futuramente.

      Nome da transferência

    • Na seção Opções de programação, faça o seguinte:

      • Em Frequência de repetição, escolha uma opção para a frequência de execução da transferência: Se você selecionar Dias, forneça um horário válido em UTC.

        • Horas
        • Dias
        • Sob demanda
      • Se aplicável, selecione Começar agora ou Começar no horário definido e forneça uma data de início e um horário de execução.

    • Na seção Configurações de destino, em Conjunto de dados de destino, escolha o conjunto criado para armazenar seus dados.

      Conjunto de dados da transferência

    • Na seção Detalhes da origem de dados:

      • Em bucket do Cloud Storage, insira o código do bucket.
      • Em Sufixo da tabela, insira um sufixo como "MT" (para "Minha Transferência").

        Detalhes de origem do Google Play

    • No menu Conta de serviço, selecione uma conta de serviço nas contas de serviço associadas ao seu projeto do Google Cloud. É possível associar uma conta de serviço à transferência em vez de usar suas credenciais de usuário. Para mais informações sobre o uso de contas de serviço com transferências de dados, consulte Usar contas de serviço.

    • Opcional: na seção Opções de notificação:

      • Clique no botão para ativar as notificações por e-mail. Quando você ativa essa opção, o administrador de transferência recebe uma notificação por e-mail se uma execução de transferência falhar.
      • Em Selecionar um tópico do Pub/Sub, escolha o nome do tópico ou clique em Criar um tópico. Essa opção configura notificações de execução do Pub/Sub da sua transferência.
  5. Clique em Salvar.

bq

Insira o comando bq mk e forneça a sinalização de execução da transferência --transfer_config. As sinalizações a seguir também são obrigatórias:

  • --target_dataset
  • --display_name
  • --params
  • --data_source
bq mk \
--transfer_config \
--project_id=project_id \
--target_dataset=dataset \
--display_name=name \
--params='parameters' \
--data_source=data_source
--service_account_name=service_account_name

Em que:

  • project_id é o ID do projeto. Se --project_id não for especificado, o projeto padrão será usado.
  • dataset é o conjunto de dados de destino na configuração da transferência:
  • name é o nome de exibição da configuração de transferência. O nome da transferência pode ser qualquer valor que permita identificá-la facilmente, caso precise modificá-la mais tarde.
  • parameters contém os parâmetros da configuração da transferência criada no formato JSON. Por exemplo, --params='{"param":"param_value"}'. Para o Google Play, forneça os parâmetros bucket e table_suffix. bucket é o bucket do Cloud Storage que contém os arquivos de relatório do Google Play.
  • data_source é a fonte de dados: play.
  • service_account_name é o nome da conta de serviço usado para autenticar a transferência. A conta de serviço precisa pertencer ao mesmo project_id usado para criar a transferência e ter todas as permissões necessárias.

Por exemplo, o comando a seguir cria uma transferência do Google Play chamada My Transfer usando o bucket do Cloud Storage pubsite_prod_rev_01234567890987654321 e o conjunto de dados de destino mydataset. A transferência é criada no projeto padrão:

bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"bucket":"pubsite_prod_rev_01234567890987654321","table_suffix":"MT"}' \
--data_source=play

Ao executar o comando pela primeira vez, você receberá uma mensagem como esta:

[URL omitted] Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.

Siga as instruções na mensagem e cole o código de autenticação na linha de comando.

API

Use o método projects.locations.transferConfigs.create e forneça uma instância do recurso TransferConfig.

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.CreateTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

// Sample to create a play transfer config.
public class CreatePlayTransfer {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    String datasetId = "MY_DATASET_ID";
    String bucket = "gs://cloud-sample-data";
    String tableSuffix = "_test";
    Map<String, Value> params = new HashMap<>();
    params.put("bucket", Value.newBuilder().setStringValue(bucket).build());
    params.put("table_suffix", Value.newBuilder().setStringValue(tableSuffix).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Play Config Name")
            .setDataSourceId("play")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .build();
    createPlayTransfer(projectId, transferConfig);
  }

  public static void createPlayTransfer(String projectId, TransferConfig transferConfig)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      CreateTransferConfigRequest request =
          CreateTransferConfigRequest.newBuilder()
              .setParent(parent.toString())
              .setTransferConfig(transferConfig)
              .build();
      TransferConfig config = client.createTransferConfig(request);
      System.out.println("play transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("play transfer was not created." + ex.toString());
    }
  }
}

Resolver problemas de configuração de transferência do Google Play

Se você tiver problemas ao configurar a transferência, consulte Solução de problemas de configuração da transferência do serviço de transferência de dados do BigQuery.

Consultar seus dados

Quando os dados são transferidos para o BigQuery, eles são gravados em tabelas particionadas por tempo de processamento. Para mais informações, consulte Introdução às tabelas particionadas.

Use a pseudocoluna _PARTITIONTIME para consultar suas tabelas diretamente em vez de usar visualizações geradas automaticamente. Para mais informações, veja Como consultar tabelas particionadas.

Preços

Para mais informações sobre preços de transferências do Google Play, consulte a página Preços.

Assim que os dados são transferidos para o BigQuery, são aplicados os preços padrão de armazenamento e consulta do BigQuery.

A seguir