

# Adobe Analytics に対する接続
<a name="connecting-to-adobe-analytics"></a>

Adobe Analytics は、カスタマージャーニーをサポートするマルチチャネルデジタルエクスペリエンスからデータを収集し、データを分析するためのツールを提供する堅牢なデータ分析プラットフォームです。これは、マーケティング担当者やビジネスアナリストがビジネス分析の目的で一般的に使用するプラットフォームです。Adobe Analytics ユーザーの場合は、Adobe Analytics アカウントに AWS Glue を接続できます。その後、Adobe Analytics を ETL ジョブのデータソースとして使用できます。これらのジョブを実行して、Adobe Analytics と AWS サービス、またはその他のサポートされているアプリケーション間でデータを転送します。

**Topics**
+ [Adobe Analytics の AWS Glue サポート](adobe-analytics-support.md)
+ [接続を作成および使用するための API オペレーションを含むポリシー](adobeanalytics-configuring-iam-permissions.md)
+ [Adobe Analytics の設定](adobeanalytics-configuring.md)
+ [Adobe Analytics 接続の設定](adobeanalytics-configuring-connections.md)
+ [Adobe Analytics エンティティからの読み取り](adobeanalytics-reading-from-entities.md)
+ [Adobe Analytics の接続オプション](adobeanalytics-connection-options.md)
+ [Adobe Analytics アカウントの作成](adobeanalytics-create-account.md)
+ [制限](adobeanalytics-connector-limitations.md)

# Adobe Analytics の AWS Glue サポート
<a name="adobe-analytics-support"></a>

AWS Glue は、次のように Adobe Analytics をサポートします。

**ソースとしてサポートされていますか?**  
はい。AWS Glue ETL ジョブを使用して、Adobe Analytics からデータをクエリできます。

**ターゲットとしてサポートされていますか?**  
いいえ。

**サポートされている Adobe Analytics API バージョン**  
 v2.0 

# 接続を作成および使用するための API オペレーションを含むポリシー
<a name="adobeanalytics-configuring-iam-permissions"></a>

次のサンプル ポリシーで、接続の作成と使用に必要な AWS の権限について説明します。新しいロールを作成する場合は、以下を含むポリシーを作成します。

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

****  

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

------

上記の方法を使用しない場合は、代わりに次のマネージド IAM ポリシーを使用します。
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole) – さまざまな AWS Glue プロセスを実行するために必要なリソースへのアクセス権をユーザーに代わって付与します。これらのリソースには、AWS Glue、Amazon S3、IAM、CloudWatch Logs、および Amazon EC2 が含まれます。このポリシーで指定されたリソースの命名規則に従った場合、AWS Glue プロセスは必要なアクセス許可を使用できます。このポリシーは、通常、クローラー、ジョブ、開発エンドポイントを定義するときに指定されたロールにアタッチされます。
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess) — ポリシーがアタッチされているアイデンティティが AWS マネージメントコンソールを使用するときは、AWS Glue リソースへのフルアクセスを許可します。このポリシーで指定されたリソースの命名規則に従った場合、ユーザーは完全なコンソール機能を使用できます。このポリシーは、通常 AWS Glue コンソールのユーザーにアタッチされています。

# Adobe Analytics の設定
<a name="adobeanalytics-configuring"></a>

AWS Glue を使用して Adobe Analytics からデータを転送できるようにするには、次の要件を満たす必要があります。

## 最小要件
<a name="adobeanalytics-configuring-min-requirements"></a>
+ E メールとパスワードを持つ Adobe Analytics アカウントがある。アカウントの作成の詳細については、「[Adobe Analytics アカウントの作成](adobeanalytics-create-account.md)」を参照してください。
+  Adobe Analytics アカウントで API アクセスが有効になっている。Select、Prime、Ultimate エディションでは、API アクセスがデフォルトで有効になっています。

これらの要件を満たすと、Adobe Analytics アカウントに AWS Glue を接続する準備が整います。一般的な接続では、Adobe Analytics で他に何もする必要はありません。

# Adobe Analytics 接続の設定
<a name="adobeanalytics-configuring-connections"></a>

 Adobe Analytics は、`OAuth2` の `AUTHORIZATION_CODE` グラントタイプをサポートしています。

このグラントタイプは、ユーザーを認証するためにサードパーティーの認証サーバーにユーザーをリダイレクトすることから、「three-legged」の `OAuth` と見なされます。ユーザーは、Adobe Analytics で独自の接続アプリを作成し、AWS Glue コンソールを介して接続を作成するときに独自のクライアント ID とクライアントシークレットを指定することを選択できます。このシナリオでは、引き続き Adobe Analytics にリダイレクトされてログインし、リソースへアクセスするために AWS Glue を承認します。

このグラントタイプは、更新トークンとアクセストークンになります。アクセストークンの有効期間は短く、更新トークンを使用してユーザーとやり取りすることなく自動的に更新される場合があります。

 AUTHORIZATION\$1CODE OAuth フローの接続アプリケーションの作成に関する Adobe Analytics の公開ドキュメントについては、「[Adobe Analytics API](https://adobedocs.github.io/analytics-2.0-apis/)」を参照してください。

Adobe Analytics 接続を設定するには:

1. AWS Secrets Manager で、次の詳細を含むシークレットを作成します。

   カスタマーマネージド接続アプリケーションの場合 – シークレットには、`USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` を使用して接続されたアプリケーションのコンシューマーシークレットをキーとして含める必要があります。
**注記**  
AWS Glue で接続ごとにシークレットを作成する必要があります。

1. AWS Glue Studio で、以下の手順に従って **[データ接続]** の下に接続を作成します。

   1. **[接続タイプ]** を選択する際に、[Adobe Analytics] を選択します。

   1. 接続先の Adobe Analytics の `x_api_key, instanceUrl` を指定します。

   1. AWS Glue が次のアクションを担い、その権限を持つことができる IAM ロールを選択します。

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

****  

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

------

   1. AWS Glue でこの接続に使用する `secretName` を選択して、トークンを配置します。

   1.  ネットワークを使用する場合は、ネットワークオプションを選択します。

1. AWS Glue ジョブに関連付けられている IAM ロールに `secretName` を読み取るアクセス許可を付与します。

# Adobe Analytics エンティティからの読み取り
<a name="adobeanalytics-reading-from-entities"></a>

 **前提条件** 

読み取り元の Adobe Analytics オブジェクト。使用可能なエンティティを確認するには、以下のサポートされているエンティティの表を参照してください。

 **サポートされているエンティティ** 


| エンティティ | フィルタリング可能 | 制限をサポートする | Order By をサポートする | Select \$1 をサポートする | パーティショニングをサポートする | 
| --- | --- | --- | --- | --- | --- | 
| 注釈 | あり | はい | はい | あり | なし | 
| 計算メトリクス | あり | はい | はい | あり | なし | 
| 計算指標の関数 | はい | なし | なし | あり | なし | 
| コンポーネントのメタデータ共有 | あり | あり | なし | あり | なし | 
| 日付範囲 | あり | あり | なし | あり | なし | 
| ディメンション | はい | なし | なし | あり | なし | 
| メトリクス | はい | なし | なし | あり | なし | 
| プロジェクト | はい | なし | なし | あり | なし | 
| レポート上位項目 | あり | あり | なし | あり | なし | 
| セグメント | あり | はい | はい | あり | なし | 
| 使用状況ログ | あり | あり | なし | あり | なし | 

 **例** 

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

 **Adobe Analytics エンティティとフィールドの詳細** 
+ [注釈](https://adobedocs.github.io/analytics-2.0-apis/#/Annotations)
+ [計算メトリクス](https://adobedocs.github.io/analytics-2.0-apis/#/Calculated%20Metrics)
+ [コンポーネントのメタデータ](https://adobedocs.github.io/analytics-2.0-apis/#/Component%20Meta%20Data)
+ [日付範囲](https://adobedocs.github.io/analytics-2.0-apis/#/Date%20Ranges)
+ [ディメンション](https://adobedocs.github.io/analytics-2.0-apis/#/Dimensions)
+ [メトリクス](https://adobedocs.github.io/analytics-2.0-apis/#/Metrics)
+ [プロジェクト](https://adobedocs.github.io/analytics-2.0-apis/#/Projects)
+ [レポート](https://adobedocs.github.io/analytics-2.0-apis/#/Reports)
+ [セグメント](https://adobedocs.github.io/analytics-2.0-apis/#/Segments)
+ [[ユーザー]](https://adobedocs.github.io/analytics-2.0-apis/#/Users)
+ [使用状況ログ](https://adobedocs.github.io/analytics-2.0-apis/#/Usage%20Logs)

# Adobe Analytics の接続オプション
<a name="adobeanalytics-connection-options"></a>

Adobe Analytics の接続オプションは次のとおりです。
+  `ENTITY_NAME`(文字列) – (必須) 読み取り / 書き込みに使用されます。Adobe Analytics のオブジェクトの名前。
+  `API_VERSION`(文字列) – (必須) 読み取り / 書き込みに使用されます。使用する Adobe Analytics Rest API バージョン。例: v2.0。
+  `X_API_KEY`(文字列) – (必須) 読み取り / 書き込みに使用されます。API にリクエストを行う開発者またはアプリケーションを認証する必要があります。
+  `SELECTED_FIELDS`(List<String>) – Default: empty(SELECT \$1). 読み込みに使用されます。オブジェクトに選択する列です。
+  `FILTER_PREDICATE`(文字列) – デフォルト: 空 読み込みに使用されます。Spark SQL 形式である必要があります。
+  `QUERY`(文字列) – デフォルト: 空 読み込みに使用されます。完全な Spark SQL クエリです。

# Adobe Analytics アカウントの作成
<a name="adobeanalytics-create-account"></a>

1. [Adobe パートナープログラム](https://partners.adobe.com/exchangeprogram/creativecloud.html)にアクセスして、交換パートナープログラムに登録します。

1. **[Join Exchange Program]** を選択します。

1. 会社の E メールアドレスを使用してアカウントを登録または作成します。

1. 提案ボックスから、Adobe Analytics 製品サブスクリプションを持つ適切な会社を選択します。

1. アカウントが、アクティブな Adobe Analytics サブスクリプションを持つ有効な組織 (利用可能なリストから) に登録されていることを確認します。

1. 会社管理者の承認後、承認 E メールのリンクをクリックしてアカウントをアクティブ化します。

**作成したアカウントが Adobe Analytics サービスにアクセスできるかどうかの確認**

1. [Adobe 管理コンソール](https://adminconsole.adobe.com/)にログインします。

1. ページの右上隅にある組織名をチェックして、正しい会社にログインしていることを確認します。

1. **[製品]** を選択し、Adobe Analytics が使用可能かどうかを確認します。
**注記**  
利用可能な組織がない場合、または Adobe Analytics 製品がグレー表示または使用できない場合は、アカウントが組織に関連付けられていないか、アクティブな Adobe Analytics サブスクリプションがない可能性があります。システム管理者に連絡して、アカウントのこのサービスのアクセスをリクエストしてください。

**プロジェクトと `OAuth2.0` 認証情報の作成**

1. [OAuth 2.0 アプリ](https://developer.adobe.com/developer-console/docs/guides/services/services-add-api-oauth/)を作成する Adobe Analytics アカウントにログインします。

1. **[プロジェクト]** を選択して、**[プロジェクトの新規作成]** を選択します。

1. プロジェクトを追加するには、**[プロジェクトに追加]** を選択し、**[API]** を選択します。

1. **[Adobe Analytics API]** を選択します。

1. ユーザー認証として **[OAUTH]** を選択します。

1. `OAUTH` として **[ウェブ]** を選択し、リダイレクト URI を指定します。

   リダイレクト URI とそのパターンについては、以下を参照してください。
   + `OAuth 2.0` デフォルトのリダイレクト URI – デフォルトのリダイレクト URI は、認証プロセス中に Adobe がアクセスするページの URL です。例: `https://ap-southeast-2.console.aws.amazon.com/appflow/oauth` 
   + OAuth 2.0 リダイレクト URI パターン – リダイレクト URI パターンは、ログインフローが完了したときに Adobe がリダイレクト (リクエストされた場合) できる URI パス (またはカンマ区切りのパスのリスト) です。例: `https://ap-southeast-2\\.console\\.aws\\.amazon\\.com`

1. 以下のスコープを追加します。
   + `openid`
   + `read_organizations`
   + `additional_info.projectedProductContext`
   + `additional_info.job_function`

1. **[認証情報を保存]** を選択します。

1. アプリケーションを作成したら、`Client ID` および `Client Secret` の値をテキストファイルにコピーします。

# 制限
<a name="adobeanalytics-connector-limitations"></a>

Adobe Analytics コネクタの制限事項は次のとおりです:
+ Adobe Analytics は、フィールドベースおよびレコードベースのパーティショニングをサポートしていません。フィールドベースのパーティショニングは、パーティション化するフィールドをクエリできないため、サポートされていません。ページ分割の「オフセット」を取得するプロビジョニングがないため、レコードベースのパーティショニングはサポートできません。
+ `Report Top Item` エンティティで、`startDate` および `endDate` クエリパラメータが期待どおりに機能していません。これらのパラメータに基づいてレスポンスがフィルタリングされていないため、このエンティティのフィルターと増分フローに問題が発生しています。
+ `Annotation`、`Calculated Metrics`、`Calculated Metrics Function`、`Date Ranges`、`Dimension`、`Metric`、`Project`、`Report Top Items`、および `Segment` エンティティの場合、`locale` クエリパラメータは、レスポンスのローカライズされたセクションに使用する言語を指定し、レコードをフィルタリングしません。たとえば、`locale="ja_JP"` はデータを日本語で表示します。
+ `Report Top Item` エンティティ – `dateRange` フィールドと `lookupNoneValues` フィールドのフィルターは現在機能していません。
+ `Segment` エンティティ: フィルター値 `includeType=“templates”` の場合、他のフィールドのフィルターは機能しません。
+ `Date Range` エンティティ – `curatedRsid` フィールドのフィルターが機能していません。
+ `Metric entity` エンティティ – 「false」値を持つセグメント化可能なフィールドでフィルタリングすると、true 値と false 値の両方の結果が得られます。