Visão geral do desenvolvimento de extensões

OBSERVAÇÃO

A Adobe Experience Platform Launch está sendo reformulada como um conjunto de tecnologias de coleta de dados no Experience Platform. Essas alterações serão implementadas em toda a documentação do produto nas próximas semanas. Consulte o seguinte document para obter uma referência consolidada das alterações de terminologia.

Uma das principais metas do Adobe Experience Platform Launch é criar um ecossistema aberto em que os engenheiros fora da equipe principal de engenharia do Platform Launch possam expor funcionalidades adicionais por meio do Platform Launch. Isso é feito por meio de extensões do Reactor. Depois que uma extensão é instalada em uma propriedade do Platform Launch por um usuário, a funcionalidade dessa extensão fica disponível para uso por todos os usuários da propriedade.

Este documento descreve os componentes principais de diferentes tipos de extensão e fornece links de documentação adicional para orientar você sobre o processo de desenvolvimento de extensão.

Módulos da biblioteca

Os módulos da biblioteca são partes de código reutilizável fornecido por uma extensão emitida dentro da biblioteca de tempo de execução do Platform Launch. Dependendo de você estar desenvolvendo uma extensão da Web ou uma extensão de borda, os tipos de módulo disponíveis e seus casos de uso serão diferentes. Consulte as seguintes subseções para obter uma visão geral dos módulos para cada tipo de extensão:

Módulos para extensões da Web

Em extensões da Web, as regras são acionadas por meio de eventos, que poderão executar ações específicas se um determinado conjunto de condições for atendido. Consulte a visão geral do fluxo do módulo em extensões da Web para obter mais informações.

Além dos módulos principais fornecidos pela Adobe, você pode definir seus próprios módulos de biblioteca nas extensões da Web:

OBSERVAÇÃO

Para obter mais detalhes sobre o formato necessário para implementar módulos de biblioteca na sua extensão, consulte a visão geral de formato do módulo.

Tipos de evento

Um evento de regra é uma atividade que deve ocorrer antes de uma regra ser acionada.

Como exemplo, uma extensão pode fornecer um tipo de evento de "gesto" que observa a ocorrência de determinado gesto de toque ou mouse. Quando o gesto ocorre, a lógica do evento aciona a regra.

Normalmente, os tipos de evento consistem em (1) uma visualização mostrada no aplicativo do Platform Launch, permitindo que os usuários modifiquem as configurações do evento e (2) um módulo de biblioteca emitido na biblioteca de tempo de execução do Platform Launch para interpretar as configurações e observar a ocorrência de determinada atividade.

Saiba mais

Tipos de condição

Uma condição de regra é avaliada após a ocorrência de um evento de regra. Todas as condições devem retornar verdadeiro para que a regra continue a ser processada. A exceção é quando os usuários colocam as condições explicitamente em um bucket de "exceção". Nesse caso, todas as condições no bucket devem retornar falso para que a regra continue o processamento.

Como exemplo, uma extensão pode fornecer um tipo de condição "visor contém", na qual o usuário do Platform Launch poderia especificar um seletor de CSS. Quando a condição é avaliada no site do cliente, a extensão pode encontrar elementos que correspondam ao seletor de CSS e retornar se algum deles está contido no visor do usuário.

Os tipos de condição geralmente consistem em (1) uma visualização mostrada no aplicativo do Platform Launch, permitindo que os usuários modifiquem as configurações para a condição e (2) um módulo de biblioteca emitido na biblioteca de tempo de execução do Platform Launch para interpretar as configurações e avaliar uma condição.

Saiba mais

Tipos de ação

Uma ação de regra é algo que é executado depois que o evento de regra ocorre e as condições passam na avaliação.

Por exemplo, uma extensão pode fornecer um tipo de ação "mostrar o bate-papo de suporte", que pode exibir uma caixa de diálogo de bate-papo de suporte para ajudar usuários que estejam com dificuldades ao fazer check-out.

Os tipos de ação geralmente consistem em (1) uma visualização mostrada no aplicativo do Platform Launch que permite que os usuários modifiquem as configurações da ação e (2) um módulo de biblioteca emitido na biblioteca de tempo de execução do Platform Launch para interpretar as configurações e executar uma ação.

Saiba mais

Tipos de elemento de dados

Os elementos de dados são, essencialmente, aliases de dados em uma página, independentemente de esses dados serem encontrados em parâmetros de sequência de consulta, cookies, elementos DOM ou algum outro lugar. Um elemento de dados pode ser referenciado por regras e atua como uma abstração para acessar esses dados. Quando a localização dos dados for alterada no futuro (por exemplo, de innerHTML de um elemento DOM para o valor de uma variável JavaScript), um único elemento de dados poderá ser reconfigurado, enquanto todas as regras que referenciam esse elemento de dados poderão permanecer inalteradas.

Um tipo de elemento de dados permite que os usuários configurem elementos de dados para acessar dados de maneira específica. Por exemplo, uma extensão pode fornecer um tipo de elemento de dados "item de armazenamento local" no qual o usuário do Platform Launch pode especificar um nome de item de armazenamento local. Quando o elemento de dados é referenciado por uma regra, a extensão pode procurar o valor do item do armazenamento local usando o nome do item do armazenamento local fornecido pelo usuário ao configurar o elemento de dados.

Os tipos de elementos de dados normalmente consistem em (1) uma visualização mostrada no aplicativo do Platform Launch, permitindo que os usuários modifiquem as configurações do elemento de dados e (2) um módulo de biblioteca emitido na biblioteca de tempo de execução do Platform Launch para interpretar as configurações e recuperar dados.

Saiba mais

Módulos compartilhados

Um módulo compartilhado é um módulo exposto por uma extensão para ser acessado por outra. Esse pode ser um mecanismo muito útil para a comunicação entre extensões. Por exemplo, a Extensão A pode carregar dados de forma assíncrona e disponibilizá-los para a Extensão B por meio de uma promessa.

Os módulos compartilhados são incluídos na biblioteca mesmo quando nunca são chamados de dentro de outras extensões. Para não aumentar desnecessariamente o tamanho da biblioteca, tenha cuidado com o que você expõe como um módulo compartilhado.

Os módulos compartilhados não têm um componente de visualização.

Saiba mais

Módulos para extensões de borda

Em extensões de borda, as regras são acionadas por meio de verificações de condição, que, em seguida, executarão ações específicas se essas verificações forem bem-sucedidas. Consulte a visão geral do fluxo do módulo em extensões de borda para obter mais informações.

Você pode definir seus próprios módulos de biblioteca nas extensões de borda. Eles podem ser classificados como os seguintes tipos:

OBSERVAÇÃO

Para obter mais detalhes sobre o formato necessário para implementar módulos de biblioteca na sua extensão, consulte a visão geral de formato do módulo.

Tipos de condição

Uma condição de regra é avaliada após a ocorrência de um evento de regra. Todas as condições devem retornar verdadeiro para que a regra continue a ser processada. A exceção é quando os usuários colocam as condições explicitamente em um bucket de "exceção". Nesse caso, todas as condições no bucket devem retornar falso para que a regra continue o processamento.

Como exemplo, uma extensão pode fornecer um tipo de condição "visor contém", na qual o usuário do Platform Launch poderia especificar um seletor de CSS. Quando a condição é avaliada no site do cliente, a extensão pode encontrar elementos que correspondam ao seletor de CSS e retornar se algum deles está contido no visor do usuário.

Os tipos de condição geralmente consistem em (1) uma visualização mostrada no aplicativo do Platform Launch, permitindo que os usuários modifiquem as configurações para a condição e (2) um módulo de biblioteca emitido na biblioteca de tempo de execução do Platform Launch para interpretar as configurações e avaliar uma condição.

Saiba mais

Tipos de ação

Uma ação de regra é algo que é executado depois que o evento de regra ocorre e as condições são aprovadas na avaliação.

Por exemplo, uma extensão pode fornecer um tipo de ação "mostrar o bate-papo de suporte", que pode exibir uma caixa de diálogo de bate-papo de suporte para ajudar usuários que estejam com dificuldades ao fazer check-out.

Os tipos de ação geralmente consistem em (1) uma visualização mostrada no aplicativo do Platform Launch que permite que os usuários modifiquem as configurações da ação e (2) um módulo de biblioteca emitido na biblioteca de tempo de execução do Platform Launch para interpretar as configurações e executar uma ação.

Saiba mais

Tipos de elemento de dados

Essencialmente, os elementos de dados são aliases de dados em uma página, independentemente de onde esses dados se encontrem no evento recebido pelo servidor. Um elemento de dados pode ser referenciado por regras e atua como uma abstração para acessar esses dados. Quando a localização dos dados for alterada no futuro (por exemplo, a chave de evento que contém o valor for alterada), um único elemento de dados poderá ser reconfigurado, enquanto todas as regras que referenciam esse elemento de dados poderão permanecer inalteradas.

Os tipos de elementos de dados normalmente consistem em (1) uma visualização mostrada no aplicativo do Platform Launch, permitindo que os usuários modifiquem as configurações do elemento de dados e (2) um módulo de biblioteca emitido na biblioteca de tempo de execução do Platform Launch para interpretar as configurações e recuperar dados.

Saiba mais

Configuração de extensão

A configuração de uma extensão se refere à maneira pela qual ela coleta as configurações globais de um usuário. Por exemplo, considere uma extensão que permita ao usuário enviar um beacon usando uma ação Enviar beacon, e o beacon sempre deve conter uma ID de conta. Não queremos causar problemas aos usuários solicitando-lhes a ID da conta sempre que configurarem uma ação Enviar beacon. Em vez disso, a extensão deve solicitar a ID da conta uma vez na visualização de configuração da extensão. Sempre que um beacon é enviado, o módulo da biblioteca de ação Enviar beacon pode obter a ID da conta por meio da configuração de extensão e adicioná-la ao beacon.

Quando os usuários instalam uma extensão de uma propriedade do Platform Launch, eles exibem a visualização de configuração da extensão. Eles não podem concluir a instalação da extensão sem concluir a configuração dela.

A configuração de extensão consiste em um componente de visualização que exportará configurações que são emitidas na biblioteca de tempo de execução do Platform Launch como um objeto simples.

Saiba mais

Estrutura da extensão

Uma extensão consiste em um diretório de arquivos. A seguir é fornecida uma visão geral de como esses arquivos devem ser estruturados. Detalhes sobre o conteúdo do arquivo podem ser encontrados em outras seções.

Um arquivo extension.json deve existir na raiz do diretório. Entre outros, esse arquivo descreverá a composição da extensão e onde determinados arquivos estão localizados no diretório. Isso tem algumas semelhanças com um arquivo package.json em npm.

Cada módulo de biblioteca (a lógica a ser emitida na biblioteca de tempo de execução do Platform Launch) deve ser seu próprio arquivo cujo conteúdo segue o padrão de módulo do CommonJS. Por exemplo, se estamos criando um tipo de ação "enviar beacon", precisamos ter um arquivo que contenha a lógica de envio do beacon. O conteúdo desse arquivo será emitido na biblioteca de tempo de execução do Platform Launch. Você pode chamá-lo de sendBeacon.js. O local do arquivo no diretório não é importante, pois extension.json descreverá sua localização.

Cada visualização deve ser um arquivo HTML capaz de ser carregado em um iframe no aplicativo do Platform Launch. A visualização deve incluir um script fornecido pelo Platform Launch e estar em conformidade com uma pequena API para se comunicar com o aplicativo. Não há restrições quanto às bibliotecas usadas nas visualizações. Ou seja, você pode usar jQuery, Underscore, React, Angular, Bootstrap ou outras bibliotecas. No entanto, esperamos que sua extensão tenha uma aparência semelhante à do aplicativo.

É recomendado colocar todos os arquivos relacionados à visualização (HTML, CSS, JavaScript) em um único subdiretório que esteja isolado dos arquivos do módulo da biblioteca. Em extension.json, você descreverá onde está localizado esse subdiretório de visualização. O Launch fornecerá esse subdiretório (e somente ele) por meio de seus servidores da Web.

Nesta página