

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

# AWS Elemental MediaTailor Amazon CloudWatch Logs Insights 中的 ADS 日誌分析
<a name="monitor-cloudwatch-ads-logs"></a>

您可以使用 AWS Elemental MediaTailor Amazon CloudWatch Logs Insights 檢視和查詢廣告決策伺服器 (ADS) 日誌。MediaTailor 會將事件日誌傳送至 CloudWatch，以取得正常處理和錯誤條件。這些日誌遵循 JSON 結構描述。透過 CloudWatch Logs Insights，您可以依時間範圍選取日誌，然後對它們執行查詢。

如需一般資訊，請參閱[使用 CloudWatch Logs 洞察分析日誌資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)。

**注意**  
若要存取日誌，您需要存取 Amazon CloudWatch 的許可。如需說明，請參閱[Amazon CloudWatch Logs 的許可](monitoring-permissions.md)。

**使用 CloudWatch 主控台檢視和查詢 ADS 日誌**

1. 在 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 ​CloudWatch 主控台。

1. 在導覽窗格的 **Logs (日誌)** 下，選擇 **Insights (深入分析)**。

1. 在搜尋列中，輸入 **AdDec**，然後從下拉式清單中選取 `MediaTailor/AdDecisionServerInteractions`。

1. (選用) 調整您要研究的時段。

1. (選用) 在對話方塊中變更查詢。如需一般指引，請參閱 [CloudWatch Logs 洞察查詢語法](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)。如需 MediaTailor ADS 的查詢範例，請參閱 [查詢 ADS 日誌](querying-the-ads-logs.md)。

1. 選擇 **Run query** (執行查詢)。查詢可能需要幾秒鐘的時間，在此期間會出現 **Cancel (取消)** 來取代 **Run query (執行查詢)**。

1. (選用) 若要將結果匯出為 CSV 檔案，請選擇 **Actions (動作)**，然後選擇 **Download query results (CSV) (下載查詢結果 (CSV))**。

**注意**  
主控台會限制在查詢結果中傳回和匯出的記錄數量，因此對於大量資料，請使用 API、 AWS Command Line Interface (AWS CLI) 或 SDK。

**Topics**
+ [查詢 ADS 日誌](querying-the-ads-logs.md)

# 查詢 ADS 日誌
<a name="querying-the-ads-logs"></a>

CloudWatch Logs Insights 提供一組豐富的選項來查詢您的日誌。如需查詢語法的詳細資訊，請參閱 [CloudWatch Logs Insights 查詢語法](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)。本節提供常見查詢範例，以協助您開始使用 ADS 日誌查詢。針對目前時間範圍設定的日誌執行所有查詢。

以下查詢會從 ADS 日誌擷取所有資訊。

```
fields @timestamp, eventType, sessionId, requestId, @message
| sort sessionId, @timestamp asc
```

以下查詢會擷取對 ADS 的所有請求。此查詢顯示擷取 MediaTailor 日誌請求標頭內容的方法。

```
fields @timestamp, adsRequestUrl, requestHeaders.0.value as @userAgent, requestHeaders.1.value as @xForwardedFor, sessionId, requestId
| filter eventType = "MAKING_ADS_REQUEST"
| sort @timestamp asc
```

下列查詢會擷取為指定工作階段插入的 MediaTailor 廣告。

```
fields @timestamp, sessionId, requestId, @message
| filter eventType = "FILLED_AVAIL"
| sort @timestamp asc
```

下列查詢會擷取 MediaTailor 代表玩家呼叫的追蹤 URLs。

```
fields @timestamp, beaconInfo.trackingEvent, beaconInfo.beaconUri, beaconInfo.headers.0.value as @userAgent, beaconInfo.headers.1.value as @xForwardedFor, sessionId, requestId
| filter eventType = "BEACON_FIRED"
| sort @timestamp asc
```

以下查詢會依 `sessionId` 篩選結果，擷取特定播放工作階段的資訊。

```
fields @timestamp, eventType, sessionId, requestId, @message
| filter sessionId = "0aaf6507-c6f9-4884-bfe7-f2f841cb8195"
| sort @timestamp asc
```

以下查詢會依 `requestId` 篩選結果，擷取單一請求的資訊。

```
fields @timestamp, eventType, sessionId, requestId, @message
| filter requestId = "f5d3cf39-6258-4cf1-b3f6-a34ff8bf641d"
| sort @timestamp asc
```

以下查詢會擷取每個已記錄事件類型的日誌項目計數。

```
fields eventType
| stats count() as @eventCount by eventType
```

以下查詢會擷取所有已略過廣告之時段的時段 ID 和略過廣告清單。

```
fields avail.availId
| parse @message '"skippedAds":[*]' as @skippedAdsList
| filter ispresent(@skippedAdsList)
```