Google Analytics アフィニティカテゴリの日本語翻訳を返すpython ファンクションを作成する | Monotalk で python 英語、日本語の変換辞書を作っていたのですが、Google Ads の ヘルプに、その他のカテゴリの一覧が、ありましたので、英語日本語変換用の TSV ファイルを作ってみました。
結果を記載します。
その他 の一覧 英語
その他 の一覧 日本語
日本語のページもありますが、並び順が英語ページとは異なり、単純なコピー&ペーストだと対訳が作れませんでした。
アフィニティ カテゴリ、購買意向カテゴリ、その他のカテゴリ の違い
当初、上記の一覧は、アフィニティカテゴリ かと思っていたのですが、対訳が VLOOPUP でヒットせず、その他のカテゴリであることに気がつきました。
ユーザー属性とインタレスト カテゴリについて - アナリティクス ヘルプ
に、アフィニティ カテゴリ、購買意向カテゴリ、その他のカテゴリ の違い について記載されています。
返却される、カテゴリの英語名称は、似て非なるものです。
手順
以下のような手順で、英語の対訳を作成しました。
-
スプレッドシートに、Topics used for personalized ads - Ads Help の内容をコピー&ペーストする。
-
文字列、
category::
を除去。 -
>
を/
に置換。 -
Google Apps Script で、
Translator Text API
を呼び出し翻訳する。
Google Apps Script で、Translator Text API
を呼び出し翻訳する。
作成したスクリプトの説明を記載します。
API の Key の発行方法や、Translator Text API
の使い方は以下の記事を参考にしました。
Azure Bot Service ✕ Cognitive Servicesで英語に翻訳するChat Botを作ってみる - Qiita
-
translate.gs
あまり数が多いと、5分制限に引っかかり、途中でエラーになります。再実行すると、落ちたところから翻訳を開始するので、何度か実行すれば全ての対訳が取得できるかと思います。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, ''); }
訳が微妙なところもありますが、だいたい何が書いてあるのか把握ができる日本語が取得できます。 -
入力シート 上記のスクリプトは、以下のスプレッドシートのシートをインプットにして、対応する日本語が存在しない語句の日本語訳を取得します。
作成したTSVファイルと、スクリプトをgistにUPした。
作成できた対訳と、スクリプトはGoogle Analytics のその他のカテゴリの日本語訳を作成する Google Apps Script にUPしました。TSVなので、excel や、スプレッドシートに貼り付けて使えるかと思います。
個人的には、Google Analytics Spreadsheet Add-on | Analytics Implementation Guides and Solutions | Google Developers で Google Analytics の ユーザー属性を取得した後、VLOOKUP で 日本語にしようかと思っております。
以上です。
コメント