Google Analytics アフィニティカテゴリの
結果を
その他 の 一覧 英語
その他 の 一覧 日本語
日本語の
アフィニティ カテゴリ、 購買意向カテゴリ、 その 他の カテゴリ の 違い
当初、
ユーザー属性と
に、
返却される、
手順
以下のような
スプレッドシートに、
Topics used for personalized ads - Ads Help の 内容を コピー&ペーストする。 文字列、
category::
を除去。 >
を/
に置換。 Google Apps Script で、
Translator Text API
を呼び出し翻訳する。
Google Apps Script で、Translator Text API
を 呼び出し翻訳する。
作成した
API のTranslator Text API
の
Azure Bot Service ✕ Cognitive Servicesで
translate.gs
KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; SHEET_NAME = 'sheet_name'; function translate() { // token の取得 token = getCognitiveApiToken_(); // シートを取得する var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheetByName(SHEET_NAME); // 最終行のインデックスを取得 var index = sheet.getLastRow(); var values = sheet.getRange("A1:"+ "B" + new String(index)).getValues(); var tmpValues = values; for (var i = 1; i < values.length; i++){ if(values[i][1] == "") { // & 等が含まれるのでdecodeする translateText = unescapeHTML_(translateText_("ja", values[i][0], token)); // 翻訳結果を設定する sheet.getRange("B" + new String(i + 1)).setValue(translateText); } } } // 実体参照 を 通常の文字列に変換する function unescapeHTML_(str) { return str .replace(/</g,'<') .replace(/>/g,'>') .replace(/&/g,'&'); } // Tokenを発行する function getCognitiveApiToken_() { //URLを取得 var fullUrl = "https://api.cognitive.microsoft.com/sts/v1.0/issueToken"; var headers = { 'Content-Type' : 'application/jwt', 'Ocp-Apim-Subscription-Key' : KEY }; var options = { "method" : "post", "headers" : headers, "muteHttpExceptions": false }; try { var response = UrlFetchApp.fetch(fullUrl, options); } catch (err) { throw err; } token = response.getContentText("UTF-8") return token; } // 翻訳メソッド function translateText_(lang, text, token) { //URLを取得 var text = encodeURIComponent(text); var fullUrl = "https://api.microsofttranslator.com/V2/Http.svc/Translate" + "?to=" + lang + "&text=" + text; var headers = { 'Authorization' : 'Bearer ' + token }; var options = { "method" : "get", "headers" : headers, "muteHttpExceptions": false }; try { var response = UrlFetchApp.fetch(fullUrl, options); } catch (err) { throw err; } // Translator Text Apiからのレスポンスはstringタグで囲まれているのでタグを除去する var result = response.getContentText("UTF-8"); return result.replace(/<(.+?)>|<\/string>/g, ''); }
あまり 数が 多いと、 5分制限に 引っかかり、 途中で エラーに なります。 再実行すると、 落ちた ところから 翻訳を 開始するので、 何度か 実行すれば 全ての 対訳が 取得できるかと 思います。
訳が微妙な ところも ありますが、 だいたい 何が 書いてあるのか 把握が できる 日本語が 取得できます。 入力シート 上記の
スクリプトは、 以下の スプレッドシートの シートを インプットに して、 対応する 日本語が 存在しない 語句の 日本語訳を 取得します。
作成したTSVファイルと、 スクリプトを gistに UPした。
作成できた
個人的には、
以上です。
コメント