

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 AWS Glue Studio 中連線至 Snapchat Ads
<a name="connecting-to-data-snapchat-ads"></a>

 Snapchat 是由 Snap Inc. (最初為 Snapchat Inc.) 開發的多媒體即時傳訊應用程式和服務。Snapchat 的其中一個主要功能是，在收件人無法存取圖片和訊息之前，通常只能短暫使用圖片和訊息。Snapchat Marketing 是企業可以付費為 Snapchat 使用者提供服務的貼文。

**Topics**
+ [AWS Glue 支援 Snapchat 廣告](snapchat-ads-support.md)
+ [包含用於建立和使用連線的 API 操作的政策](snapchat-ads-configuring-iam-permissions.md)
+ [設定 Snapchat Ads](snapchat-ads-configuring.md)
+ [設定 Snapchat Ads 連線](snapchat-ads-configuring-connections.md)
+ [從 Snapchat Ads 實體中讀取](snapchat-ads-reading-from-entities.md)
+ [Snapchat Ads 連線選項](snapchat-ads-connection-options.md)
+ [建立 Snapchat Ad 帳戶並設定用戶端應用程式](connecting-to-data-snapchat-ads-new-account.md)
+ [在 Snapchat Ads 帳戶中建立應用程式](connecting-to-data-snapchat-ads-managed-client-application.md)

# AWS Glue 支援 Snapchat 廣告
<a name="snapchat-ads-support"></a>

AWS Glue 支援 Snapchat 廣告，如下所示：

**支援作為來源？**  
是。您可以使用 AWS Glue ETL 任務從 Snapchat Ads 查詢資料。

**支援作為目標？**  
否。

**支援的 Snapchat Ads API 版本**  
 v1。

# 包含用於建立和使用連線的 API 操作的政策
<a name="snapchat-ads-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 Amazon CloudWatch Logs、IAM 和 Amazon EC2。如果您遵循此政策中指定資源的命名慣例，則 AWS Glue 程序具有必要的許可。此政策通常會連接至定義編目程式、工作和開發端點時所指定的角色。
+  [ AWSGlueConsoleFullAccess ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess) – 當政策連接到的身分使用 AWS 管理主控台時，授予 AWS Glue 資源的完整存取權。如果您依照此政策中指定的資源命名慣例，使用者就能擁有完整的主控台功能。此政策通常連接到 AWS Glue 主控台的使用者。

# 設定 Snapchat Ads
<a name="snapchat-ads-configuring"></a>

您必須先符合下列要求，才能使用 從 Snapchat Ads AWS Glue 傳輸：

## 最低需求
<a name="snapchat-ads-configuring-min-requirements"></a>
+  您擁有一個 Snapchat Ads 帳戶。如需建立帳戶的詳細資訊，請參閱[建立 Snapchat Ad 帳戶並設定用戶端應用程式](connecting-to-data-snapchat-ads-new-account.md)。
+  您已在 Snapchat Ads 帳戶中建立 OAuth2 應用程式。此整合提供了 AWS Glue 在對您的帳戶進行驗證呼叫時用於安全存取資料的憑證。如需詳細資訊，請參閱[在 Snapchat Ads 帳戶中建立應用程式](connecting-to-data-snapchat-ads-managed-client-application.md)。

 如果您符合這些要求，就可以 AWS Glue 連線到您的 Snapchat Ads 帳戶。在 Snapchat Ads 中，連線的應用程式是一種架構 AWS Glue，可授權外部應用程式存取您的 Snapchat Ads 資料。

# 設定 Snapchat Ads 連線
<a name="snapchat-ads-configuring-connections"></a>

 Snapchat Ads 僅支援 `AUTHORIZATION_CODE` 授權類型。

 此授權類型被視為「三條腿的」OAuth，因為其依賴將使用者重新導向至第三方授權伺服器來驗證使用者。在透過 AWS Glue 主控台建立連線時使用。根據預設，建立連線的使用者可能需要 AWS Glue 擁有的連線應用程式 （受AWS Glue 管用戶端應用程式），除了其 Snapchat Ads 執行個體 URL 之外，不需要提供任何 OAuth 相關資訊。 AWS Glue 主控台會將使用者重新導向至 Snapchat Ads，其中使用者必須登入 AWS Glue ，並允許請求的許可存取其 Snapchat Ads 執行個體。

 使用者仍然可以選擇在 Snapchat Ads 中建立自己的連線應用程式，並在透過 AWS Glue 主控台建立連線時提供自己的用戶端 ID 和用戶端秘密。在此案例中，它們仍會重新導向至 Snapchat Ads 以登入並授權 AWS Glue 存取其資源。

 此授權類型會產生重新整理字符和存取字符。存取字符會在建立 1 小時後過期。可以使用重新整理字符來獲取新的存取字符。

 如需有關為授權碼 OAuth 流程建立連線應用程式的詳細資訊，請參閱 [Ads API](https://marketingapi.snapchat.com/docs/#authentication)。

若要設定 Snapchat Ads 連線：

1.  在 AWS Secrets Manager 中，使用下列詳細資訊建立秘密。必須為 AWS Glue中的每個連線建立機密。

   1.  對於客戶管理的連線應用程式，機密應包含以 `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` 作為金鑰的連線應用程式消費者機密。

1. 在 AWS Glue Glue Studio 中，依照下列步驟在 **Data Connections** 下建立連線：

   1. 選取**連線類型**時，選取 Snapchat Ads。

   1. 提供 Snapchat Ads 環境。

   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.  選取您要用於此連線`secretName`的 AWS Glue ，以放置字符。

   1.  如果想要使用您的網路，請選取網路選項。

1.  授予與您的 AWS Glue 任務相關聯的 IAM 角色讀取 的許可`secretName`。

# 從 Snapchat Ads 實體中讀取
<a name="snapchat-ads-reading-from-entities"></a>

 **先決條件** 
+  您想要從中讀取的 Snapchat Ads 物件。請參閱以下支援的實體表格，以檢查可用實體。

 **支援的實體** 


| 實體 | 可以篩選 | 支援限制 | 支援排序依據 | 支援選取 \$1 | 支援分區 | 
| --- | --- | --- | --- | --- | --- | 
| 組織 | 否 | 否 | 否 | 是 | 否 | 
| 廣告帳戶 | 否 | 否 | 否 | 是 | 否 | 
| 創意 | 否 | 否 | 否 | 是 | 否 | 
| 媒體 | 否 | 否 | 否 | 是 | 否 | 
| 行銷活動 | 是 | 否 | 否 | 是 | 否 | 
| 廣告帳戶下的廣告 | 是 | 否 | 否 | 是 | 否 | 
| 行銷活動下的廣告 | 否 | 否 | 否 | 是 | 否 | 
| 廣告小組 | 是 | 否 | 否 | 是 | 否 | 
| 區段 | 否 | 否 | 否 | 是 | 否 | 

 **範例** 

```
snapchatads_read = glueContext.create_dynamic_frame.from_options(
    connection_type="snapchatAds",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "organization",
        "API_VERSION": "v1"
    }
)
```

 **Snapchat Ads 實體和欄位詳細資訊** 

 Snapchat Ads 會在選取的實體下動態載入可用欄位。視欄位的資料類型而定，其支援下列篩選條件運算子。


| 欄位資料類型 | 支援的篩選條件運算子 | 
| --- | --- | 
| Boolean | = | 

 **分區查詢** 
+  欄位型分區：不支援。
+  記錄型分區：不支援。

# Snapchat Ads 連線選項
<a name="snapchat-ads-connection-options"></a>

以下是 Snapchat Ads 的連線選項：
+  `ENTITY_NAME`(String) - (必要) 用於讀取。Snapchat Ads 實體的名稱。範例：` campaign `。
+  `API_VERSION`(String) - (必要) 用於讀取。您想要使用的 Snapchat Ads Rest API 版本。該值將為 v1，因為 Snapchat Ads 目前僅支援 v1 版本。
+  `SELECTED_FIELDS`(List<String>) - 預設：empty(SELECT \$1)。用於讀取。您要為所選實體選取的資料欄的以逗號分隔的資料欄清單。
+  `FILTER_PREDICATE`(String) - 預設：空白。用於讀取。其應該為 Spark SQL 格式。
+  `QUERY`(String) - 預設：空白。用於讀取。完整的 Spark SQL 查詢。

# 建立 Snapchat Ad 帳戶並設定用戶端應用程式
<a name="connecting-to-data-snapchat-ads-new-account"></a>

**Topics**
+ [註冊 Snapchat Ads](#snapchat-ads-sign-up)
+ [建立 Snapchat Ad 帳戶的步驟](#snapchat-ads-create-ad-account)

## 註冊 Snapchat Ads
<a name="snapchat-ads-sign-up"></a>

**若要註冊 Snapchat Ads，請執行以下操作：**

1.  導覽至 [Snapchat Ads Manager](https://ads.snapchat.com/)。選擇 **Snapchat 新手？**旁邊的**註冊**。

1.  在**建立帳戶**畫面上，依照提示輸入您的公司名稱、電子郵件、密碼等。選擇**下一步**。

1.  在**建立設定檔**畫面上，輸入使用者名稱和網站 (選用) 的值，然後選擇**建立帳戶**。這可讓您選擇在**編輯設定檔**畫面上新增設定檔相片和簡歷。選擇**確認**。

1.  在**商業資訊**畫面上，填寫國家/地區、貨幣、電話號碼、GSTIN 等必要欄位，然後選擇**下一步**來完成帳戶建立程序。

## 建立 Snapchat Ad 帳戶的步驟
<a name="snapchat-ads-create-ad-account"></a>

**若要建立 Snapchat Ad 帳戶，請執行以下操作：**

1.  登入 **Ads Manager**。接著，按一下頂角的導覽，然後選取**廣告帳戶**。

1.  選擇 **\$1 新建廣告帳戶**。輸入您的廣告商詳細資訊：
   +  選取您是否為代表廣告商購買廣告的機構。如果您選取「是」，而您的廣告使用的目標參數可能包括年齡、性別或郵遞區號層級目標，則可能會被拒絕。最低年齡目標可能適用於 21 歲以下人士。
   +  選取您的廣告帳戶是否投放在住房、信貸或招聘廣告。如果您選取「是」，而您的廣告使用的目標參數可能包括年齡、性別或郵遞區號層級目標，則可能會被拒絕。最低年齡目標可能適用於 21 歲以下人士。
   +  選取您是否將使用廣告帳戶進行政治廣告。如果您正在投放政治廣告，請輸入贊助該廣告的政治組織或倡議團體。如果您未準確輸入政治組織，您的廣告可能會被拒絕。提交廣告之前，您還需要填寫必要連結的「政治廣告審查表單」。

1.  選擇**帳戶詳細資訊**，並填寫您的廣告帳戶資訊：    
<a name="snapchat-ads-account-details"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/connecting-to-data-snapchat-ads-new-account.html)

1.  選擇**建立帳戶**。系統將會建立您的廣告帳戶，您可以在 Ads Manager 的「廣告帳戶」部分中找到其。若要開始啟動廣告，您需要輸入付款方式。您也可以將成員新增至您的廣告帳戶。

1.  選取您要使用現有的付款還是建立新的付款。然後，選擇**儲存付款方式**。

1.  選取[您邀請加入企業的任何成員](https://businesshelp.snapchat.com/s/article/manage-members?language=en_US)，以新增至廣告帳戶。如需可指派的角色和許可的詳細資訊，請參閱[角色和許可概觀](https://businesshelp.snapchat.com/s/article/roles-permissions?language=en_US)。然後，新增的成員將能夠登入 Ads Manager 並存取此廣告帳戶。完成後，儲存您的成員。

 如需廣告帳戶的詳細資訊，請參閱 [https://businesshelp.snapchat.com/s/article/roles-permissions?language=en_US](https://businesshelp.snapchat.com/s/article/roles-permissions?language=en_US)https://businesshelp.snapchat.com/s/article/roles-permissions?language=en\$1US 

# 在 Snapchat Ads 帳戶中建立應用程式
<a name="connecting-to-data-snapchat-ads-managed-client-application"></a>

 若要啟用 Snapchat 的行銷 API 的存取權，請確定您已設定企業帳戶。然後遵循下面的步驟：

1.  登入 Ads Manager。接著，選擇左上角的功能表，選取**商業儀表板**，然後選取**商業詳細資訊**。

1.  選擇 **\$1OAuth 應用程式**。

1.  輸入您的應用程式名稱，並將下列 URL 新增為 Snap 重新導向 URI `https://<aws-region>.console.aws.amazon.com/gluestudio/oauth`。例如，如果使用 us-west-1 區域，URL 將為 `https://us-west-1.console.aws.amazon.com/gluestudio/oauth) and choose Create OAuth App`。選擇**建立 OAuth 應用程式**。

1.  將會顯示您的應用程式憑證 (用戶端 ID 和用戶端機密)。請予以儲存，因為建立連線時需要使用這些憑證。