

# Conexão com o Adobe Analytics
<a name="connecting-to-adobe-analytics"></a>

O Adobe Analytics é uma plataforma robusta de análise de dados que coleta dados de experiências digitais multicanais que apoiam a jornada do cliente e fornecem ferramentas para analisar os dados. É uma plataforma comumente usada por profissionais de marketing e analistas de negócios para fins de análise de negócios. Se você usa o Adobe Analytics, pode conectar o AWS Glue à sua conta do Adobe Analytics. Em seguida, será possível usar o Adobe Analytics como fonte de dados nos seus trabalhos de ETL. Execute esses trabalhos para transferir dados entre o Adobe Analytics e os serviços da AWS ou outras aplicações com suporte.

**Topics**
+ [Suporte do AWS Glue para Adobe Analytics](adobe-analytics-support.md)
+ [Políticas que contêm as operações de API para criar e usar conexões](adobeanalytics-configuring-iam-permissions.md)
+ [Configuração do Adobe Analytics](adobeanalytics-configuring.md)
+ [Configuração de conexões do Adobe Analytics](adobeanalytics-configuring-connections.md)
+ [Leitura de entidades do Adobe Analytics](adobeanalytics-reading-from-entities.md)
+ [Opções de conexão do Adobe Analytics](adobeanalytics-connection-options.md)
+ [Criação de uma conta do Adobe Analytics](adobeanalytics-create-account.md)
+ [Limitações](adobeanalytics-connector-limitations.md)

# Suporte do AWS Glue para Adobe Analytics
<a name="adobe-analytics-support"></a>

O AWS Glue oferece suporte ao Adobe Analytics da seguinte forma:

**Compatível como fonte?**  
Sim. É possível usar trabalhos de ETL do AWS Glue para consultar dados do Adobe Analytics.

**Compatível como destino?**  
Nº

**Versões da API do Adobe Analytics com suporte**  
 v2.0 

# Políticas que contêm as operações de API para criar e usar conexões
<a name="adobeanalytics-configuring-iam-permissions"></a>

O exemplo de política a seguir descreve as permissões da AWS necessárias para criar e usar conexões. Se você estiver criando um novo perfil, crie uma política que contenha o seguinte: 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Se não quiser usar o método anterior, uma alternativa será usar as seguintes políticas do IAM gerenciadas:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole): concede acesso a recursos que vários processos do AWS Glue exigem para serem executados em seu nome. Esses recursos incluem o AWS Glue, Amazon S3, IAM, CloudWatch Logs e Amazon EC2. Se você seguir a convenção de nomenclatura para os recursos especificados nesta política, os processos do AWS Glue terão as permissões necessárias. Esta política geralmente é anexada a funções especificadas durante a definição de crawlers, trabalhos e endpoints de desenvolvimento. 
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess): concede acesso total aos recursos do AWS Glue quando uma identidade à qual a política está anexada usa o Console de Gerenciamento da AWS. Se você seguir a convenção de nomenclatura para os recursos especificados nesta política, os usuários poderão acessar todos os recursos do console. Esta política geralmente é anexada aos usuários do console do AWS Glue. 

# Configuração do Adobe Analytics
<a name="adobeanalytics-configuring"></a>

Antes de poder usar o AWS Glue para transferir dados do Adobe Analytics, os seguintes requisitos deverão ser atendidos:

## Requisitos mínimos
<a name="adobeanalytics-configuring-min-requirements"></a>
+ Você tem uma conta do Adobe Analytics com e-mail e senha. Para obter mais informações sobre como criar uma conta, consulte [Criação de uma conta do Adobe Analytics](adobeanalytics-create-account.md). 
+  Sua conta do Adobe Analytics está habilitada para acesso à API. O acesso à API está ativado por padrão para as edições Select, Prime e Ultimate. 

Se você atender a esses requisitos, poderá conectar o AWS Glue à sua conta do Adobe Analytics. Para conexões típicas, você não precisa fazer mais nada no Adobe Analytics.

# Configuração de conexões do Adobe Analytics
<a name="adobeanalytics-configuring-connections"></a>

 O Adobe Analytics oferece suporte ao tipo de concessão `AUTHORIZATION_CODE` para `OAuth2`.

Esse tipo de concessão é considerado um `OAuth` de “três pernas”, pois conta com o redirecionamento dos usuários para o servidor de autorização de terceiros para autenticar o usuário. Os usuários ainda podem optar por criar sua própria aplicação conectada no Adobe Analytics e fornecer seus próprios ID e segredo do cliente ao criar conexões por meio do console do AWS Glue. Nesse cenário, eles ainda serão redirecionados para o Adobe Analytics para fazer login e autorizar o acesso do AWS Glue aos recursos. 

Esse tipo de concessão resulta em um token de atualização e um token de acesso. O token de acesso tem vida curta e pode ser atualizado automaticamente sem a interação do usuário usando o token de atualização. 

 Para obter a documentação pública do Adobe Analytics sobre a criação de uma aplicação conectada para o fluxo OAuth AUTHORIZATION\$1CODE, consulte [APIs do Adobe Analytics](https://adobedocs.github.io/analytics-2.0-apis/). 

Para configurar uma conexão do Adobe Analytics:

1. No AWS Secrets Manager, crie um segredo com os seguintes detalhes: 

   Para uma aplicação conectada gerenciada pelo cliente, o segredo deve conter a aplicação conectada Segredo do consumidor com a chave `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET`. 
**nota**  
É preciso criar um segredo por conexão em AWS Glue.

1. Em AWS Glue Studio, crie uma conexão em **Conexões de dados** seguindo estas etapas:

   1. Ao selecionar um **Tipo de conexão**, escolha Adobe Analytics.

   1. Forneça o `x_api_key, instanceUrl` do Adobe Analytics ao qual deseja se conectar.

   1. Selecione o perfil do IAM que o AWS Glue pode assumir e tem permissões para as seguintes ações: 

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Selecione o `secretName` que você deseja usar para essa conexão no AWS Glue para colocar os tokens. 

   1.  Selecione as opções de rede se quiser usar sua rede. 

1. Conceda permissão ao perfil do IAM associado ao seu trabalho do AWS Glue para ler `secretName`. 

# Leitura de entidades do Adobe Analytics
<a name="adobeanalytics-reading-from-entities"></a>

 **Pré-requisitos** 

Um objeto do Adobe Analytics do qual você gostaria de ler. Consulte a tabela de entidades compatíveis abaixo para verificar as entidades disponíveis. 

 **Entidades compatíveis** 


| Entidade | Pode ser filtrada | Oferece suporte a limite | Oferece suporte a Ordenar por | Oferece suporte a Selecionar \$1 | Oferece suporte a particionamento | 
| --- | --- | --- | --- | --- | --- | 
| Anotação | Sim | Sim | Sim | Sim | Não | 
| Métricas calculadas | Sim | Sim | Sim | Sim | Não | 
| Função de métricas calculadas | Sim | Não | Não | Sim | Não | 
| Compartilhamentos de metadados de componentes | Sim | Sim | Não | Sim | Não | 
| Intervalos de datas | Sim | Sim | Não | Sim | Não | 
| Dimensões | Sim | Não | Não | Sim | Não | 
| Métricas | Sim | Não | Não | Sim | Não | 
| Projetos | Sim | Não | Não | Sim | Não | 
| Item principal dos relatórios | Sim | Sim | Não | Sim | Não | 
| Segmentos | Sim | Sim | Sim | Sim | Não | 
| Logs de uso | Sim | Sim | Não | Sim | Não | 

 **Exemplo** 

```
adobeAnalytics_read = glueContext.create_dynamic_frame.from_options( 
     connection_type="adobeanalytics", 
     connection_options={ 
        "connectionName": "connectionName", 
        "ENTITY_NAME": "annotation/ex*****", 
        "API_VERSION": "v2.0" 
 })
```

 **Detalhes de entidade e campo do Adobe Analytics** 
+ [Anotações](https://adobedocs.github.io/analytics-2.0-apis/#/Annotations)
+ [Métricas calculadas](https://adobedocs.github.io/analytics-2.0-apis/#/Calculated%20Metrics)
+ [Metadados do componente](https://adobedocs.github.io/analytics-2.0-apis/#/Component%20Meta%20Data)
+ [Intervalos de datas](https://adobedocs.github.io/analytics-2.0-apis/#/Date%20Ranges)
+ [Dimensões](https://adobedocs.github.io/analytics-2.0-apis/#/Dimensions)
+ [Métricas](https://adobedocs.github.io/analytics-2.0-apis/#/Metrics)
+ [Projetos do](https://adobedocs.github.io/analytics-2.0-apis/#/Projects)
+ [Relatórios](https://adobedocs.github.io/analytics-2.0-apis/#/Reports)
+ [Segmentos](https://adobedocs.github.io/analytics-2.0-apis/#/Segments)
+ [Usuários](https://adobedocs.github.io/analytics-2.0-apis/#/Users)
+ [Logs de uso](https://adobedocs.github.io/analytics-2.0-apis/#/Usage%20Logs)

# Opções de conexão do Adobe Analytics
<a name="adobeanalytics-connection-options"></a>

Estas são as opções de conexão do Adobe Analytics:
+  `ENTITY_NAME`(string): (obrigatório) usado para leitura/gravação. O nome do seu objeto no Adobe Analytics. 
+  `API_VERSION`(string): (obrigatório) usado para leitura/gravação. Versão da API Rest do Adobe Analytics que você deseja usar. Por exemplo, v2.0. 
+  `X_API_KEY`(string): (obrigatório) usado para leitura/gravação. É necessário para autenticar o desenvolvedor ou a aplicação que faz solicitações à API. 
+  `SELECTED_FIELDS`(lista<string>): padrão: vazio (SELECT \$1). Usado para leitura. Colunas que deseja selecionar para o objeto. 
+  `FILTER_PREDICATE`(string): padrão: vazio. Usado para leitura. Deve estar no formato Spark SQL. 
+  `QUERY`(string): padrão: vazio. Usado para leitura. Consulta completa do Spark SQL. 

# Criação de uma conta do Adobe Analytics
<a name="adobeanalytics-create-account"></a>

1. Registre-se no programa de parceiros de intercâmbio acessando o [programa Adobe Partner](https://partners.adobe.com/exchangeprogram/creativecloud.html). 

1. Escolha **Participar do Programa de intercâmbio**. 

1. Registre-se ou crie uma conta usando seu endereço de e-mail corporativo. 

1. Na caixa de sugestões, selecione a empresa apropriada que tenha uma assinatura do produto Adobe Analytics. 

1. Certifique-se de que a conta seja registrada em uma organização válida (da lista disponível) que tenha uma assinatura ativa do Adobe Analytics. 

1. Após a aprovação da administração da empresa, ative sua conta clicando no link no e-mail de aprovação. 

**Verificação se a conta criada tem acesso ao serviço Adobe Analytics**

1. Faça login no [Adobe Admin Console](https://adminconsole.adobe.com/).

1. Verifique o nome da organização no canto superior direito da página para garantir que você tenha feito login na empresa correta.

1. Selecione **Produtos** e verifique se o Adobe Analytics está disponível.
**nota**  
Se nenhuma organização estiver disponível ou se o produto Adobe Analytics estiver esmaecido ou indisponível, é provável que sua conta não esteja associada a uma organização e/ou não tenha uma assinatura ativa do Adobe Analytics. Entre em contato com o administrador do sistema para solicitar acesso a esse serviço para sua conta.

**Criação de um projeto e de credenciais do `OAuth2.0`**

1. Faça login na conta do Adobe Analytics na qual você deseja que a [aplicação do OAuth 2.0](https://developer.adobe.com/developer-console/docs/guides/services/services-add-api-oauth/) seja criada.

1. Selecione **Projeto** e, em seguida, **Criar um novo projeto**. 

1. Para adicionar um projeto, selecione **Adicionar ao projeto** e, em seguida, selecione **API**.

1. Selecione **API do Adobe Analytics**.

1. Selecione **OAUTH** como autenticação do usuário.

1. Selecione **Web** como `OAUTH` e forneça o URI de redirecionamento. 

   Para o URI de redirecionamento e seu padrão, veja o seguinte:
   + URI de redirecionamento padrão do `OAuth 2.0`: um URI de redirecionamento padrão é o URL da página que a Adobe acessará durante o processo de autenticação. Por exemplo, ., `https://ap-southeast-2.console.aws.amazon.com/appflow/oauth` 
   + Padrão de URI de redirecionamento do OAuth 2.0: um padrão de URI de redirecionamento é um caminho de URI (ou uma lista de caminhos separados por vírgula) para o qual a Adobe pode redirecionar (se solicitado) quando o fluxo de login for concluído. Por exemplo, ., `https://ap-southeast-2\\.console\\.aws\\.amazon\\.com`

1. Adicione os seguintes escopos: 
   + `openid`
   + `read_organizations`
   + `additional_info.projectedProductContext`
   + `additional_info.job_function`

1. Escolha **Salvar credencial**.

1. Depois que a aplicação for criada, copie os valores `Client ID` e `Client Secret` para um arquivo de texto.

# Limitações
<a name="adobeanalytics-connector-limitations"></a>

Estas são as limitações do conector do Adobe Analytics:
+ O Adobe Analytics não oferece suporte ao particionamento baseado em campos e baseado em registros. Não há suporte para o particionamento baseado em campos, pois não é possível consultar os campos particionados. Não pode haver suporte ao particionamento baseado em registros, pois não há provisão para obter 'offset' para paginação.
+ Na entidade `Report Top Item`, os parâmetros de consulta `startDate` e `endDate` não estão funcionando conforme o esperado. A resposta não está sendo filtrada com base nesses parâmetros, o que está causando problemas com o filtro e o fluxo incremental dessa entidade. 
+ Para as entidades `Annotation`, `Calculated Metrics`, `Calculated Metrics Function`, `Date Ranges`, `Dimension`, `Metric`, `Project`, `Report Top Items` e `Segment`, o parâmetro de consulta `locale` especifica qual idioma deve ser usado para seções localizadas de respostas e não filtra os registros. Por exemplo, `locale="ja_JP"` exibirá os dados em japonês. 
+ Entidade `Report Top Item`: os filtros nos campos `dateRange` e `lookupNoneValues` não estão funcionando no momento. 
+ Entidade `Segment`: com o valor do filtro `includeType=“templates”`, os filtros em outros campos não estão funcionando. 
+ Entidade `Date Range`: o filtro no campo `curatedRsid` não está funcionando. 
+ Entidade `Metric entity`: o filtro no campo segmentável com valor "falso" fornece resultados para valores verdadeiros e falsos.