アクセス権限の変更に伴うスクリプトの修正方法
Googleアカウント連携機能におけるアクセス権限の変更に伴い、修正が必要なスクリプトがあります。対象のスクリプトや修正方法の詳細について以下に説明します。
※アクセス権限の変更については、以下のお知らせをご確認ください。
Yahoo!広告 スクリプト スクリプトの変更と新しいアクセス権限への同意について
スクリプト内容の変更が必要な対象処理
以下の処理を含むスクリプトは、内容を修正してください。
修正例もあわせてご確認ください。
| 再同意後に利用できなくなる処理 |
Googleドライブ上にあるYahoo!広告 スクリプト以外で作成したファイル・フォルダの読み取り処理
利用できなくなる関数: DriveAppのget系の処理
DriveApp.getFileById DriveApp.getFiles DriveApp.getFilesByName DriveApp.getFilesByType DriveApp.getFolderById DriveApp.getFolders DriveApp.getFoldersByName DriveApp.getRootFolder
※ 以下の処理は引き続き利用可能です。
- Yahoo!広告 スクリプトで作成したファイル・フォルダの読み取り
- マイドライブ直下へのファイル・フォルダの作成
- スプレッドシートの読み取り・更新・マイドライブ直下への新規作成(SpreadsheetAppを利用)
|
| 修正後の処理 |
固定のスプレッドシートの読み取り・書き込み
関数例: SpreadsheetApp によるスプレッドシートの操作
SpreadsheetApp.create SpreadsheetApp.openById SpreadsheetApp.openByUrl
|
修正が必要な対象スクリプトの判断方法
スクリプト編集画面で"DriveApp.get"を検索し、対象関数が含まれていれば修正の対象です。
検索ショートカット: [Windows]Ctrl+F, [Mac]Command+F

検索結果例
利用パターン別の修正例
<パターンA:指定フォルダの配下にファイルを作成する(レポートデータをCSVで書き出し)>
| 修正前の処理 |
修正後の処理 |
|
■処理 レポート等のデータをcsv形式の文字列に加工し、指定のフォルダ配下にファイルを作成。
■スクリプト
const folderId = 'フォルダID'; // ファイルを格納したいフォルダのID const fileContent = ''; // カンマ区切りの文字列をレポートデータから生成 const fileName = 'test';
const folder = DriveApp.getFolderById(folderId); const blob = Utilities.newBlob(fileContent, 'text/csv', fileName); folder.createFile(blob);
|
ケース1:スプレッドシート出力に変更 ■スクリプト
const spreadsheetId = 'スプレッドシートID'; const sheetName = 'シート1'; const ss = SpreadsheetApp.openById(spreadsheetId); let sh = ss.getSheetByName(sheetName); sh.clear(); const reportData = AdsUtilities.getDisplayReport({ // 取得したいレポートの定義 }).reports[0].rows; sh.getRange('A1').setValues(reportData);
参考:
ケース2:マイドライブ直下へのファイル出力に変更 ■スクリプト
const fileContent = ''; // カンマ区切りの文字列 const fileName = 'test';
const blob = Utilities.newBlob(fileContent, 'text/csv', fileName); const file = DriveApp.createFile(blob);
※ folderに対してcreateFileではなくDriveApp.createFileとすることで、マイドライブ直下にファイルが作成されます。
参考:
|
<パターンB:csvファイルの取得(オフラインコンバージョンやオーディエンスリストのアップロード)>
| 修正前の処理 |
修正後の処理 |
|
■処理 指定のフォルダ配下で特定の名前のファイルを取得する。
■スクリプト
const folderId = 'フォルダID'; // 取得対象フォルダID
const fileName = 'ファイル名'; // 取得対象ファイル名
const files = DriveApp.getFolderById(folderId).getFilesByName(fileName);
while (files.hasNext()) {
const file = files.next();
const fileData = file.getBlob().getBytes();
// ファイルに対する処理
}
■処理 Googleドライブ全体から特定のファイル名のファイルを取得する。
■スクリプト
const fileName = 'ファイル名'; // 取得対象ファイル名
const files = DriveApp.getFilesByName(fileName);
while (files.hasNext()) {
const file = files.next();
const fileData = file.getBlob().getBytes();
// ファイルに対する処理
}
■処理 特定のファイルIDを指定してファイルを取得する。
■スクリプト
const fileId = 'ファイルID'; // 取得対象ファイルID
const file = DriveApp.getFileById(fileId);
const fileData = file.getBlob().getBytes();
※取得したファイルを利用して、自動アップロードを実施している(Search.OfflineConversionService.upload()やDisplay.AudienceListService.uploadUserList()を実施している)場合。
|
スプレッドシートをご用意の上、そのスプレッドシートIDを指定したデータ取得に変更してください。 定期的にリストを取得するケースでは、用意されたスプレッドシートをスクリプト定期実行の前に最新状態に更新してください。その後、該当のスプレッドシートの内容をスクリプトから取得してください。
定期的にリストを取得するケース:オフラインコンバージョン、オーディエンスリストのアップロードなど
参考:
オフラインコンバージョン
オーディエンスリスト
|
<パターンC:画像・動画ファイルの取得(画像・動画入稿)>
| 修正前の処理 |
修正後の処理 |
■処理 パターンBと同様のGoogleドライブからの取得処理
※取得したファイルを利用して、自動アップロードを実施している(Display.MediaService.add()などを実施している)場合。 |
Googleドライブからは画像・動画ファイルの取得はできなくなります。 なお、ディスプレイ広告における画像・動画の審査開始は、広告に設定されたタイミングです。事前にアップロードしても広告に設定されるまで審査は行われないため、広告作成時に手動でアップロードしてください。 |