Amazonビジネスレポートと広告キャンペーンレポートを自動化するために
Amazonビジネスレポートと広告キャンペーンレポートを自動化するために、Google Apps Script (GAS) を使用してスプレッドシートに日毎のASIN別レポートを更新する方法を紹介します。
### 概要
- **目的**: Amazonビジネスレポートと広告キャンペーンレポートを一括で取得し、Googleスプレッドシートに自動更新する。
- **使用ツール**: Google Apps Script (GAS)
- **必要なもの**:
- Amazon MWS APIのアクセスキーとシークレットキー
- Googleアカウント
- Googleスプレッドシート
### 手順
1. **Amazon MWS APIのセットアップ**
- Amazon MWS APIにアクセスし、アクセスキーとシークレットキーを取得します。
2. **Googleスプレッドシートの準備**
- 新しいGoogleスプレッドシートを作成します。
- シート名を「ASINレポート」とします。
3. **Google Apps Scriptの設定**
- スプレッドシートのメニューから「拡張機能」→「Apps Script」を選択し、新しいプロジェクトを作成します。
- 以下のスクリプトを貼り付けます。
### Google Apps Script コード
```javascript
const ACCESS_KEY = 'YOUR_AMAZON_MWS_ACCESS_KEY';
const SECRET_KEY = 'YOUR_AMAZON_MWS_SECRET_KEY';
const SELLER_ID = 'YOUR_AMAZON_SELLER_ID';
const MARKETPLACE_ID = 'YOUR_AMAZON_MARKETPLACE_ID';
const SPREADSHEET_ID = 'YOUR_SPREADSHEET_ID';
const SHEET_NAME = 'ASINレポート';
function fetchAmazonReport() {
const url = 'https://mws.amazonservices.com/';
const reportType = '_GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_';
const params = {
AWSAccessKeyId: ACCESS_KEY,
MWSAuthToken: SECRET_KEY,
SellerId: SELLER_ID,
ReportType: reportType,
MarketplaceId: MARKETPLACE_ID,
Version: '2009-01-01',
Action: 'RequestReport',
Timestamp: new Date().toISOString(),
};
const query = Object.keys(params)
.map(key => encodeURIComponent(key) + '=' + encodeURIComponent(params[key]))
.join('&');
const options = {
method: 'post',
payload: query,
muteHttpExceptions: true
};
const response = UrlFetchApp.fetch(url, options);
const reportRequestInfo = parseResponse(response.getContentText());
// Wait for report to be generated
Utilities.sleep(60000);
// Retrieve the report
params.Action = 'GetReport';
params.ReportId = reportRequestInfo.ReportId;
const reportQuery = Object.keys(params)
.map(key => encodeURIComponent(key) + '=' + encodeURIComponent(params[key]))
.join('&');
const reportResponse = UrlFetchApp.fetch(url, {
method: 'post',
payload: reportQuery,
muteHttpExceptions: true
});
const csvData = reportResponse.getContentText();
saveToSheet(csvData);
}
function parseResponse(response) {
// Parse the response XML and extract the necessary information
const xml = XmlService.parse(response);
const root = xml.getRootElement();
const reportRequestInfo = root.getChild('ReportRequestInfo');
const reportId = reportRequestInfo.getChildText('ReportId');
return {
ReportId: reportId
};
}
function saveToSheet(csvData) {
const sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME);
const csvRows = Utilities.parseCsv(csvData);
csvRows.forEach(row => sheet.appendRow(row));
}
function scheduleDailyFetch() {
ScriptApp.newTrigger('fetchAmazonReport')
.timeBased()
.everyDays(1)
.atHour(2)
.create();
}
```
ここから先は
¥ 1,500
この記事が気に入ったらサポートをしてみませんか?