Apps Kit SDK logoApps Kit SDK
Documentação · Portal do Apps Kit SDK

Gerenciamento de aplicativos

Meus apps (Painel)

Meus apps (/ ou /apps) é a página inicial após o login e o ponto central de todos os apps gerenciados pela sua equipe.

1782302134914-MY_APPS_DASHBOARD_IMAGE.png

A tabela de apps. Cada linha mostra: um índice numérico, o ícone do app (ou um avatar com uma letra, caso nenhum ícone tenha sido enviado), seu nome e ID do pacote/bundle, a Marca atribuída, a Loja (um ícone de plataforma para iOS/Android/Amazon), a Versão do SDK atual (com opção de ordenação), um indicador de status da Configuração padrão (verde, "Adicionada", se uma configuração padrão tiver sido gerada para o app; cinza, "Não adicionada", caso contrário), a Data de criação (com opção de ordenação) e uma coluna de Ações.

Busca e filtros. Um campo de busca filtra por nome/pacote enquanto você digita. Filtros suspensos separados de Marca, Loja e Versão do SDK (na Barra de filtros) podem ser combinados com a busca. A paginação usa um rodapé personalizado com "Exibindo X–Y de Z", um seletor de linhas por página e botões de navegação ⟨ ‹ › ⟩, em vez do paginador nativo da tabela.

Menu de ações. O menu de três pontos de cada linha oferece Editar, Duplicar e Excluir, conforme suas permissões (veja abaixo os limites do plano e as permissões na visualização compartilhada).

Limites do plano e apps bloqueados. Seu plano de assinatura limita a quantidade de apps que você pode ter (maxApps). Se a quantidade atual exceder esse limite — por exemplo, após mudar para um plano inferior — um banner de aviso amarelo aparece no topo da página: "Você excedeu o limite de apps — X/Y apps usados", com uma pequena barra de progresso e um botão Fazer upgrade do plano que leva à página de Assinatura.

1782302787888-MY_APPS_LOCKED_BANNER_IMAGE.png

Quando você excede o limite, o Portal não escolhe arbitrariamente quais apps bloquear — ele mantém seus apps mais antigos (pela data de criação) utilizáveis, até o limite do plano, e bloqueia todos os apps criados depois deles. O menu de Ações de um app bloqueado passa a ter uma versão restrita: ao clicar no botão de três pontos, aparece apenas um cabeçalho "BLOQUEADO" com a explicação "Este app está fora do limite do seu plano. Exclua-o para liberar uma vaga", além de uma opção vermelha "Excluir app", se você tiver permissão para excluir. Editar e Duplicar não ficam disponíveis nas linhas bloqueadas; a única forma de recuperar o acesso a um app bloqueado é excluir outros apps para liberar uma vaga ou fazer upgrade do plano.

Botão de criação. O botão + Criar app só pode ser clicado se ainda houver espaço no seu plano (canCreateApp()). Se você atingir o limite, ele será substituído por um pequeno indicador de uso ("X/Y apps usados") e um link "🔒 Fazer upgrade do plano" para a página de Assinatura.

Visualização compartilhada/de colaborador. Se você estiver visualizando esta página no contexto de outra conta ou de uma conta compartilhada (veja o menu de Conta acima), a tabela também consulta suas permissões específicas para essa conta (via /rights/user-permissions) e as usa para controlar o acesso a Editar/Excluir/Duplicar em cada linha — por exemplo, você pode ter permissão para visualizar e editar apps, mas não para excluí-los, dependendo do que o proprietário do recurso concedeu.

Como adicionar um novo app

Clicar em + Criar app abre o formulário do app no modo de criação, em um modal centralizado com layout vertical.

1782302898843-CREATE_APP_MODAL_IMAGE.png

Campos:

  • Ícone — opcional. Uma área quadrada grande para upload no topo exibe "Enviar imagem" até que um arquivo seja escolhido; os tipos aceitos são JPEG, PNG e GIF.
  • Loja — seleção obrigatória por botões de opção: Apple App Store, Google Play ou Amazon App Store (carregadas dinamicamente do backend, com essas três opções como alternativa se a chamada falhar).
  • Nome — obrigatório, de 4 a 70 caracteres.
  • ID do pacote / bundle — obrigatório, deve começar com com. (validado com o padrão com.*).
  • URL — obrigatória na criação. Selecionar Google Play como loja preenche automaticamente https://play.google.com/store/apps/details?id={package}; selecionar Apple App Store preenche automaticamente a URL base https://apps.apple.com/. Você ainda pode editar a URL manualmente após o preenchimento automático, e alterar o pacote enquanto Google Play estiver selecionado mantém a URL preenchida automaticamente em sincronia.
  • Marca — uma lista suspensa com suas Marcas existentes.

O envio do formulário chama o endpoint de criação de app. O app é criado sem rede de mediação ou blocos de anúncios configurados — você configura esses itens em seguida, em Detalhes do app. Clicar em Cancelar fecha o modal sem salvar.

Como editar ou duplicar um app (modal rápido)

Selecionar Editar no menu de Ações de uma linha abre o mesmo componente de formulário no modo de edição, mas organizado em uma única linha horizontal compacta, em vez do layout vertical de criação: ícone (com um pequeno botão de lápis sobreposto para substituí-lo), Nome, um campo Pacote somente leitura, um campo URL somente leitura, a lista suspensa Marca e um botão Salvar. Pacote e URL ficam permanentemente como somente leitura após a criação do app (você não pode alterar o ID do pacote nem a URL da loja após a criação — apenas o nome, o ícone e a marca). O acesso a essa linha é controlado por uma verificação da permissão canUpdate, que, em um contexto compartilhado/de colaborador, depende das permissões de Informações do app concedidas a você.

1782304075424-EDIT_APP_ROW_IMAGE.png

Selecionar Duplicar abre uma segunda cópia do formulário no modo de criação, preenchida com os dados do app de origem e com .copy acrescentado ao nome do pacote para evitar conflito com o original. Você pode então ajustar o que quiser (nome, ícone, marca) antes de salvá-lo como um novo app — a mediação, os blocos de anúncios e todas as outras configurações de Detalhes do app não são copiados; o app duplicado começa do zero, assim como um app recém-criado.

Detalhes do app

Abrir um app (por Meus apps → Editar ou clicando na própria linha do app) leva você a Detalhes do app — a página mais complexa do Portal, onde o comportamento efetivo do SDK para esse app é configurado.

1782304315827-APP_DETAILS_OVERVIEW_IMAGE.png

Modo Live vs. Dev. Um seletor no topo da página alterna toda a página entre as configurações de Live (produção) e Dev (desenvolvimento). Cada seção abaixo — Mediação, Blocos de anúncios, Placeholders, Opções de exibição, MMP, Promoção de funcionalidades e Configurações — é configurada separadamente para cada modo, para que você possa preparar e testar alterações em Dev sem afetar o que está em produção no app distribuído. Dois botões, Aplicar Live em Dev e Aplicar Dev em Live, permitem copiar toda a configuração de um modo para o outro em uma única ação (útil para "promover" uma configuração Dev testada para Live ou redefinir Dev para corresponder a Live antes de testar algo novo).

1782306938946-APP_DETAILS_LIVE_DEV_TOGGLE_IMAGE.png

O cabeçalho da página também mostra o número atual da Versão da configuração do app, um link para o Histórico de alterações (veja abaixo) e um botão Obter configuração (veja abaixo). Parte da interface de configuração (e o seletor de Grupos de regiões mencionado abaixo) só aparece quando a versão do SDK informada pelo app atende a determinados requisitos mínimos (o Portal condiciona alguns recursos mais recentes a versões mínimas do SDK para que builds antigos do app não exibam opções que não podem usar).

O restante da página é organizado em um conjunto de seções expansíveis, nesta ordem:

Informações do app

A identificação básica do app: nome, ID do pacote/bundle, loja, ícone e marca atribuída — essencialmente os mesmos campos do formulário de criação/edição do app, exibidos aqui por conveniência.

1782307208052-APP_INFO_SECTION_IMAGE.png

Seleção de mediação

Escolha a rede de mediação usada para este app/modo (por exemplo, uma rede do tipo waterfall ou AppLovin MAX). Essa escolha é um pré-requisito: enquanto nenhuma rede de mediação for selecionada aqui, as seções Blocos de anúncios, Placeholders de anúncios e Blocos de anúncios para placeholders abaixo permanecerão bloqueadas, pois dependem de saber qual SDK de rede e qual formato de bloco de anúncios você está configurando.

1782310845399-MEDIATION_SELECTION_IMAGE.png

Adicionar blocos de anúncios

Insira os IDs dos blocos de anúncios fornecidos pela sua rede de mediação, organizados em abas por formato de anúncio — Abertura do app, Intersticial, Banner, Nativo e Premiado. Apenas os formatos compatíveis com a rede de mediação escolhida acima aparecem como abas.

1782311592620-ADD_AD_UNITS_IMAGE.png

Placeholders de anúncios

Defina placeholders nomeados: os espaços lógicos no seu app ou jogo onde um anúncio pode aparecer (por exemplo, "Fase concluída" ou "Banner do menu principal"). Eles são apresentados em uma grade numerada na qual você pode adicionar ou renomear itens. Como os nomes dos placeholders normalmente precisam corresponder a constantes no código-fonte do app, o Portal permite importar e exportar toda a lista de placeholders como um arquivo enum em Kotlin (.kt), para que sua base de código e a configuração do Portal permaneçam sincronizadas sem redigitação manual.

1782311785860-AD_PLACEHOLDERS_IMAGE.png

Blocos de anúncios para placeholders de anúncios

Uma grade de mapeamento: placeholders em um eixo e formatos de anúncio (Intersticial / Banner / Nativo / Premiado) no outro. Para cada combinação, você escolhe qual bloco de anúncios específico (entre os adicionados acima) deve veicular anúncios naquele placeholder.

Vale destacar que Promoção cruzada também aparece como opção selecionável nessa grade, ao lado dos blocos das redes de anúncios. Escolher essa opção para um determinado placeholder significa que esse espaço não exibirá um anúncio pago de rede — em vez disso, exibirá um criativo de promoção cruzada de um dos seus outros apps, conforme configurado em Campanhas. Esse é o mecanismo que conecta o recurso de Campanhas aos posicionamentos de anúncios dentro dos seus apps.

1782367790413-AD_UNITS_FOR_PLACEHOLDERS_IMAGE.png

Opções de exibição de anúncios

Controle a experiência de carregamento por formato de anúncio: se deve ser exibida uma caixa de diálogo de carregamento ou um efeito shimmer enquanto o anúncio é buscado, e o tempo limite de espera antes de desistir. Anúncios intersticiais têm opções adicionais de lógica de acionamento, além do simples controle do momento de exibição — você pode acioná-los ao clicar, após um intervalo de tempo, por uma combinação dos dois ou com base em transições de cena no app. Cada modo de acionamento oferece seus próprios parâmetros ajustáveis (por exemplo, o intervalo de tempo ou a contagem de cliques).

1782368043152-AD_DISPLAY_OPTIONS_IMAGE.png

Seleção de MMP

Conecte um parceiro de mensuração mobile (MMP) — as opções incluem Adjust, AppsFlyer, Firebase, Cost Center e Solar Engine — e ative ou desative o envio de dados de receita de anúncios por formato, para que os eventos de receita de anúncios sejam enviados à sua stack de atribuição/analytics junto com os demais dados de instalação e engajamento.

1782368201027-MMP_SELECTION_IMAGE.png

Promoção de funcionalidades

Configure banners ou cards promocionais no app sem relação com redes de anúncios — por exemplo, para "anunciar uma nova funcionalidade" ou "oferecer um plano premium" na interface do próprio app. Cada entrada dessa tabela editável tem um título, um tipo, uma chave, uma imagem e uma ação (como um deep link ou um destino de navegação no app) acionada quando o usuário toca nela.

1782368590227-FEATURE_PROMOTION_IMAGE.png

Configurações

Opções diversas no nível do app que não se encaixam nas outras seções: ativação de logs no console para depuração, ativação do registro de eventos de anúncios, tolerância permitida para diferenças de horário em notificações locais e URLs da Política de Privacidade e dos Termos de Serviço do app (que algumas redes de anúncios e lojas de apps exigem que você disponibilize).

1782368745664-SETTINGS_SECTION_IMAGE.png

Obter configuração

Clicar em Obter configuração gera uma string de configuração criptografada que representa tudo o que você configurou acima para o modo (Live ou Dev) ativo no momento. Se houver um Grupo de regiões selecionado no seletor de regiões do cabeçalho de Detalhes do app, o link/string gerado incluirá o ID desse grupo como parâmetro de consulta, para que a configuração obtida em tempo de execução possa variar por grupo de regiões. O Portal também orienta você a publicar essa string pelo Firebase Remote Config usando a chave de parâmetro AKS_AND_LIVE — é assim que o app em produção obtém a configuração em tempo de execução, já que o Portal não envia configurações diretamente aos dispositivos dos usuários finais.

1782370741995-GET_CONFIGURATION_IMAGE.png

Histórico de alterações

Sempre que a configuração de um app é salva, uma nova Versão da configuração é registrada. O Histórico de alterações (uma página dedicada, acessada pelo link em Detalhes do app) lista todas as versões desse app em uma tabela: um número sequencial, a Versão da configuração, uma Descrição do que mudou (descrições longas são delimitadas internamente por barras verticais e exibidas em linhas separadas, truncadas após os primeiros 20 caracteres, com a opção "Mostrar mais / Mostrar menos"), a Data de atualização e Atualizado por. Um filtro de intervalo de datas no topo restringe a lista a um período específico. Isso fornece uma trilha de auditoria básica de quem alterou a configuração de um app e quando.

1782370885084-CHANGE_HISTORY_IMAGE.png

Compartilhados comigo

Se outra equipe convidou você para colaborar nos apps dela e você aceitou, esses recursos compartilhados aparecem em Compartilhados comigo (/SharedWithMe) — uma tabela de convites recebidos, separada dos apps pertencentes à sua própria equipe. Cada linha mostra quem enviou o convite e o status atual dele.

1782385376888-SHARED_WITH_ME_PAGE_IMAGE.png

Aqui você pode Aceitar ou Recusar um convite pendente. Ambas as ações chamam o mesmo endpoint de processamento de convites com a decisão correspondente. Após a aceitação, quem enviou o convite aparece na lista suspensa do seletor de contas (descrita acima), para que você possa acessar essa conta e trabalhar dentro das permissões concedidas.

Se você chegar a esta página por um link de notificação que contenha o parâmetro de consulta ?invitationId=, a Caixa de diálogo de convite será aberta automaticamente no carregamento, sem que você precise encontrar a linha correspondente.

A caixa de diálogo de convite. Esse modal mostra o e-mail da conta que enviou o convite em uma etiqueta arredondada no topo, além de um cabeçalho/ícone que depende do status: um ícone de presente para um convite pendente, uma marca de seleção para um já aceito, um X para um recusado e um relógio para um expirado. Abaixo há uma lista rolável "Acesso a N recurso(s)" — cada linha mostra um placeholder de ícone de app, o nome do recurso (por exemplo, "Apps", "Informações do app", formatado a partir da chave de permissão correspondente) e indicadores alinhados à direita das permissões que você teria sobre ele (Ler / Criar / Atualizar / Excluir). Se o convite tiver uma data de expiração, uma linha de aviso a exibirá.

1782385507708-INVITATION_DIALOG_IMAGE.png

Os botões do rodapé dependem do status: um convite pendente mostra "Agora não" e "✓ Aceitar convite"; um convite já respondido ou expirado mostra apenas "Fechar", junto com um texto explicativo (para um convite expirado, algo como "Peça a {e-mail de quem convidou} para enviar um novo convite").