

# LinkedIn に対する接続
<a name="connecting-to-linkedin"></a>

LinkedIn は、さまざまなスポンサー付き投稿やその他の方法を通じて LinkedIn のソーシャルネットワークへのアクセスを提供する有料マーケティングツールです。LinkedIn は、B2B 企業がリードの獲得、オンライン認知度の向上、コンテンツの共有などを行うための強力なマーケティングツールです。

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

# LinkedIn の AWS Glue サポート
<a name="linkedin-support"></a>

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

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

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

**サポートされている LinkedIn API バージョン**  
**[202406 (2024 年 6 月)]**

# 接続を作成および使用するための API オペレーションを含むポリシー
<a name="linkedin-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 コンソールのユーザーにアタッチされています。

# LinkedIn の設定
<a name="linkedin-configuring"></a>

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

## 最小要件
<a name="linkedin-configuring-min-requirements"></a>
+ お持ちのアカウントは LinkedIn である。アカウントの作成の詳細については、「[LinkedIn アカウントの作成](linkedin-create-account.md)」を参照してください。
+ LinkedIn アカウントで API アクセスが有効になっている。
+ `OAuth2 API` 統合が LinkedIn アカウントで作成された。この統合により、AWS Glue がお客様のアカウントに対して認証呼び出しを行うときに、お客様のデータに安全にアクセスするために使用するクライアントの認証情報が提供されます。詳細については、「[LinkedIn アカウントの作成](linkedin-create-account.md)」を参照してください。

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

# LinkedIn 接続の設定
<a name="linkedin-configuring-connections"></a>

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

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

このグラントタイプは、更新トークンとアクセストークンの両方になります。このアクセストークンは、作成から 60 日後に期限切れになります。新しいアクセストークンは、更新トークンを使用して取得できます。

`Authorization Code OAuth` フロー用の接続アプリケーションの作成に関する LinkedIn の公開ドキュメントについては、「[認証コードフロー (3-legged OAuth)](https://learn.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow?toc=%2Flinkedin%2Fmarketing%2Ftoc.json&bc=%2Flinkedin%2Fbreadcrumb%2Ftoc.json&view=li-lms-2024-07&tabs=HTTPS1)」を参照してください。

**LinkedIn 接続の設定**

1.  AWS Secrets Manager で、次の詳細を含むシークレットを作成します。
   + カスタマーマネージド接続アプリケーションの場合 – シークレットには、`USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` を使用して接続されたアプリケーションのコンシューマーシークレットをキーとして含める必要があります。
   + AWS マネージド接続アプリの場合 – 空のシークレット、または一時的な値を持つシークレット。
**注記**  
AWS Glue で接続ごとにシークレットを作成する必要があります。

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

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

   1. LinkedIn 環境を指定します。

   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` を読み取るアクセス許可を付与します。

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

**前提条件** 

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

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


| エンティティ | フィルタリング可能 | 制限をサポートする | Order By をサポートする | Select \$1 をサポートする | パーティショニングをサポートする | 
| --- | --- | --- | --- | --- | --- | 
| 広告アカウント | はい | あり | あり | あり | なし | 
| キャンペーン | はい | あり | あり | あり | なし | 
| キャンペーングループ | はい | あり | あり | あり | なし | 
| クリエイティブ | はい | あり | あり | あり | なし | 
| 広告分析 | あり | なし | なし | あり | なし | 
| 広告分析 すべての AdAcocunts | あり | なし | なし | あり | なし | 
| 広告分析 すべてのキャンペーン | あり | なし | なし | あり | なし | 
| 広告分析 すべての CampaignGroups | あり | なし | なし | あり | なし | 
| 広告分析 すべての AdCreatives | あり | なし | なし | あり | なし | 
| 統計の共有 | あり | なし | なし | あり | なし | 
| ページ統計 | あり | なし | なし | あり | なし | 
| フォロワー統計 | あり | なし | なし | あり | なし | 

 **例** 

```
netsuiteerp_read = glueContext.create_dynamic_frame.from_options(
    connection_type="linkedin",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "adaccounts",
        "API_VERSION": "202406"
    }
)
```


**LinkedIn エンティティとフィールドの詳細**  

|  **フィールドデータタイプ**  |  **サポートされているフィルター演算子**  | 
| --- | --- | 
|  文字列  |  =  | 
|  DateTime  |  BETWEEN, =  | 
|  数値  |  =  | 
|  ブール値  |  =  | 

# LinkedIn 接続オプション
<a name="linkedin-connection-options"></a>

LinkedIn の接続オプションは次のとおりです。
+ `ENTITY_NAME`(文字列) – (必須) 読み取り / 書き込みに使用されます。LinkedIn のオブジェクトの名前。例えば、adAccounts などです。
+ `API_VERSION`(文字列) – (必須) 読み取り / 書き込みに使用されます。使用する LinkedIn M Rest API バージョン。LinkedIn は現在バージョン 202406 のみをサポートしているため、この値は 202406 になります。
+ `SELECTED_FIELDS`(List<String>) – Default: empty(SELECT \$1). 読み込みに使用されます。選択したエンティティに対して選択する列。
+ `FILTER_PREDICATE`(文字列) – デフォルト: 空 読み込みに使用されます。Spark SQL 形式である必要があります。
+ `QUERY`(文字列) – デフォルト: 空 読み込みに使用されます。完全な Spark SQL クエリです。

# LinkedIn アカウントの作成
<a name="linkedin-create-account"></a>

**LinkedIn アプリと OAuth 認証情報の作成**

1. **[LinkedIn 開発者ネットワーク]** ページに移動し、LinkedIn アカウントの認証情報を使用してログインします。

1. **[マイアプリ]** ページに移動し、**[アプリケーションを作成]** を選択して新しい LinkedIn アプリを作成します。

1. アプリ登録フォームに次の詳細を入力します。
   + **[会社名]** – 既存の会社を選択するか、新しい会社を作成します。
   + **[名前]** – アプリケーション名を入力します。
   + **[説明]** – アプリケーションの説明を入力します。
   + **[アプリケーションロゴ]** – アプリケーションロゴとしてイメージファイルを選択します。
   + **[アプリケーションの使用]** – アプリケーションの使用を選択します。
   + **[ウェブサイト URL]** – アプリケーションに関する詳細情報を含むウェブサイトの URL を入力します。
   + **[勤務先の E メール]** – 勤務先の E メールアドレスを入力します。
   + **[勤務先電話番号]** – 勤務先の電話番号を入力します。
   + **[LinkedIn API 利用規約]** – 読んで同意します。

1. アプリ登録フォームの入力が完了したら、**[送信]** を選択します。

   **[認証]** ページにリダイレクトされ、認証キー (クライアント ID とクライアントシークレット) およびその他の関連する詳細が表示されます。

1. ウェブアプリケーションが LinkedIn アカウントからユーザーの E メールアドレスにアクセスする必要がある場合は、`r_emailaddress` アクセス許可を選択します。さらに、LinkedIn アプリケーションの承認済みリダイレクト URL を指定できます。

**LinkedIn アカウントでのページの作成**

1. [LinkedIn 開発者製品](https://developer.linkedin.com/) に移動します。

1. **[LinkedIn 開発者製品]** ページの右上隅で、**[マイアプリ]** を選択します。

1. **[マイアプリ]** ページの右上隅で、**[アプリを作成]** を選択します。

1. **[アプリを作成]** ページの **[アプリ名]** フィールドに、アプリの名前を入力します。

1. **[LinkedIn ページ]** フィールドに、会社のページ名または URL を入力します。
**注記**  
LinkedIn ページがない場合は、**[新しい LinkedIn を作成]** を選択してページを作成できます。

1. **[プライバシーポリシー URL]** フィールドに、プライバシーポリシー URL を入力します。

1. **[ロゴをアップロード]** を選択して、ユーザーがアプリで認可するときに表示するイメージをアップロードします。

1. **[法的契約]** セクションで、**[これらの条項を読み、同意しました]** を選択します。

1. **[アプリの作成]** を選択します。

   新しいアプリが作成され、**[マイアプリ]** タブに表示されます。

**LinkedIn でのキャンペーン広告の公開**

1. **[キャンペーンマネージャー]** にログインします。

1. 既存の **[キャンペーングループ]** を選択するか、**[作成]** を選択して新しいキャンペーングループを作成します。

1. 目標を選択します。

1. グループ、予算、スケジュールを選択します。

1. ターゲットオーディエンスを構築します。

1. 広告形式を選択します。

1. 予算とスケジュールを選択します。

1. 広告をセットアップします (複数可)。

1. 確認して起動します。

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

Analytics フィールド `ad_analytics_all_adAccounts`、`ad_analytics_all_campaigns`、`ad_analytics_all_campaign_groups`、および `ad_analytics_all_adCreatives` では、レコードを取得するためにフィルターが必要です。