Apps Kit SDK logoApps Kit SDK
Documentação · Portal 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 acesso a 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 da plataforma 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.

Pesquisa e filtros. Um campo de pesquisa 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 pesquisa. 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 em cada linha oferece as opções Editar, Duplicar e Excluir, de acordo com suas permissões (consulte Limites do plano e permissões na visualização compartilhada abaixo).

Limites do plano e apps bloqueados. Seu plano de assinatura limita a quantidade de apps que você pode ter (maxApps). Se a quantidade atual de apps 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 utilizados", 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) disponí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 exibir uma versão restrita: ao clicar no botão de três pontos, aparece apenas o 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 maneira 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ê estiver no limite, ele será substituído por um pequeno indicador de uso ("X/Y apps utilizados") 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 (consulte o menu Conta acima), a tabela também busca 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 vertical centralizado.

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 como alternativas caso a chamada falhe).
  • Nome — obrigatório, de 4 a 70 caracteres.
  • ID do pacote / Bundle ID — obrigatório, deve começar com com. (validado pelo 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 está selecionado mantém a URL preenchida automaticamente em sincronia.
  • Marca — uma lista suspensa com suas Marcas existentes.

Ao enviar o formulário, o endpoint de criação de apps é chamado e 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, campo Pacote somente leitura, campo URL somente leitura, lista suspensa de Marca e botão Salvar. Pacote e URL tornam-se permanentemente 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). Essa linha é controlada por uma verificação da permissão canUpdate, que, no contexto compartilhado/de colaborador, é determinada pelas 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, 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 salvar como um novo app — a mediação, os blocos de anúncios e todas as demais configurações de Detalhes do app não são copiados; a duplicata 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 Live e Dev. 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 a Dev e Aplicar Dev a 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 restaurar 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 conseguem usar).

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

Informações do app

A identidade 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 com mediação em cascata ou AppLovin MAX). Essa escolha é um pré-requisito: até que uma rede de mediação seja selecionada aqui, as seções Blocos de anúncios, Placeholders de anúncios e Blocos de anúncios para placeholders abaixo permanecem bloqueadas, pois dependem de saber para qual SDK de rede e 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 — Abertura do app, Intersticial, Banner, Nativo e Premiado. Somente os formatos efetivamente 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, "Nível concluído" 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 de enum Kotlin (.kt), para manter sua base de código e a configuração do Portal em sincronia 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 uma opção selecionável nessa grade, junto aos blocos das redes de anúncios. Selecioná-la para um determinado placeholder significa que aquele espaço não exibirá um anúncio pago de rede — em vez disso, renderizará um criativo de promoção cruzada de um dos seus outros apps, conforme configurado em Campanhas. Esse é o mecanismo que conecta o recurso Campanhas aos posicionamentos reais 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 exibir 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. Os anúncios intersticiais têm opções adicionais de lógica de acionamento, além do simples controle de tempo de exibição — você pode optar por 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 quantidade de cliques).

1782368043152-AD_DISPLAY_OPTIONS_IMAGE.png

Paywalls para placeholders do app

Mapeie um dos seus Modelos de paywall (criados no recurso Modelos de paywall — consulte a seção Paywalls mais adiante neste guia) diretamente para os placeholders deste app, para que o SDK saiba qual paywall renderizar quando o app solicitar um.

1789744952981-app-details-paywalls-for-placeholders.png

Um controle geral Ativado liga ou desliga todo o recurso para este app. Depois de ativado, cada linha associa um paywall aos Placeholders do app (definidos anteriormente em Placeholders de anúncios) nos quais ele deve aparecer: pesquise o paywall pelo nome e use + Adicionar placeholder para associar um ou mais placeholders a ele — cada placeholder associado aparece como uma etiqueta removível com um pequeno indicador de contagem. Um placeholder só pode ser mapeado para um paywall por vez; atribuí-lo a outro remove automaticamente sua associação com o paywall anterior.

Ao contrário do restante de Detalhes do app, esse mapeamento específico não está estritamente vinculado ao modo Live/Dev selecionado no topo da página. Um app instalado de fato não tem uma identidade própria "Live" ou "Dev" — essa distinção existe apenas no lado administrativo para facilitar a preparação de configurações —, então, depois de mapear um paywall para um placeholder em qualquer um dos modos e salvar, ele já pode ser obtido por dispositivos reais; não é necessário repetir o mesmo mapeamento no outro modo apenas para disponibilizá-lo em produção.

Seleção de MMP

Conecte um parceiro de mensuração móvel (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 dentro do app que não estejam relacionados a redes de anúncios — por exemplo, para "anunciar uma nova funcionalidade" ou "oferecer um plano premium" na interface do próprio app. Cada entrada nessa 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 em 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 a diferença de horário de 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 aplicativos 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) atualmente ativo. Se houver um Grupo de regiões selecionado no seletor de regiões do cabeçalho de Detalhes do app, o link/string gerado inclui o ID desse grupo como parâmetro de consulta, permitindo que a configuração buscada em tempo de execução varie por grupo de regiões. O Portal também orienta você a publicar essa string pelo Firebase Remote Config com a chave de parâmetro AKS_AND_LIVE — é assim que seu 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 específica, 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 renderizadas em linhas separadas, truncadas após os primeiros 20 caracteres com um controle "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 oferece uma trilha de auditoria básica de quem alterou a configuração do 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 dos 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 de troca de contas (descrita acima), para que você possa acessar a conta dessa pessoa e trabalhar dentro das permissões concedidas.

Se você acessar 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 ao carregar a página, sem precisar localizar a linha manualmente.

A caixa de diálogo de convite. Esse modal mostra o e-mail da conta que enviou o convite em uma etiqueta no topo, além de um cabeçalho/ícone que varia conforme o 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 enviou o convite} que envie um novo convite").