Softex CelwareTech Blog
バニラJS Webアプリ2026-06-03

Chromeブックマークレットでココナラ分析グラフの数値をExcel用にコピーする

Chromeのブックマークレットを使い、ココナラの分析ページに表示される日付別の表示数・閲覧数・販売数をTSV形式でクリップボードへコピーする実装例です。

JavaScriptChromeブックマークレットクリップボードTSV業務効率化ココナラ分析

はじめに

ココナラの分析ページでは、表示数、閲覧数、販売数の推移をグラフで確認できます。

ただ、日付ごとの数値をあとでExcelやGoogleスプレッドシートへ貼り付けて集計したい場合、画面を見ながら手入力するのは手間がかかります。

この記事では、ChromeブックマークレットとしてJavaScriptを登録し、ログイン済みの自分の分析ページ上で実行することで、表示されている分析値をTSV形式でクリップボードへコピーする方法を整理します。

全体の流れ

ココナラ分析ページの数値をブックマークレットで取得し、クリップボードへコピーする流れ
ブックマークにJavaScriptを登録し、分析ページを開いた状態でクリックすると、日付別の表示数・閲覧数・販売数がクリップボードへ入ります。

流れは次のようになります。

  1. Chromeのブックマークに、javascript:から始まるコードを登録する
  2. ココナラのサービス・ブログ分析ページを開く
  3. 登録したブックマークをクリックする
  4. ページ内部の分析データを取得する
  5. 日付、表示数、閲覧数、販売数をタブ区切りで整形する
  6. クリップボードへコピーし、Excelやスプレッドシートへ貼り付ける

ブックマークレットとは

ブックマークレットは、通常のURLではなく、javascript:から始まる短いコードをブックマークに登録しておき、現在開いているページ上で実行する仕組みです。

通常のブックマークは、次のようなURLを保存します。

https://example.com/

一方、ブックマークレットでは次のような形でコードを保存します。

javascript:(()=>{ alert("実行されました"); })();

クリックすると、いま表示しているページ上でJavaScriptが実行されます。小さな画面操作、入力補助、表示中データの整形コピーなどに使いやすい方法です。

今回取得するデータ

今回の対象は、分析ページ上で確認できる日付別のデータです。

| 項目 | 内容 | |---|---| | 日付 | 分析対象の日付 | | 表示数 | サービスが一覧などに表示された回数 | | 閲覧数 | サービス詳細ページなどが閲覧された回数 | | 販売数 | その日の販売件数 |

出力は、ExcelやGoogleスプレッドシートに貼り付けやすいタブ区切り形式にします。

日付	表示数	閲覧数	販売数
2026-05-04	1979	71	0
2026-05-05	2123	77	0

カンマ区切りではなくタブ区切りにしておくと、Excelへ貼り付けたときに列へ分かれやすくなります。

仕組み

画面上ではグラフとして表示されていても、Webページ内部にはグラフ描画用のデータがJavaScriptの状態として保持されていることがあります。

今回確認したページでは、分析データが主に次のような構造から参照できました。

window.__NUXT__.state.pages.analytics.serviceAnalytics

閲覧数・販売数は次の配列に入っています。

serviceAnalytics.numberOfTermsList

表示数は次の配列に入っています。

serviceAnalytics.serviceImpressions.numberOfTermsList

この2つの配列を日付で突き合わせると、日付別の一覧を作れます。実装ではMapを使って日付ごとのデータを引けるようにし、Setで日付一覧の重複を取り除いています。

コピー可能なコード

下のコードは、処理を確認しやすい通常版です。

coconala-analytics-bookmarklet.js
javascript
コードを読み込み中...

ブックマークのURL欄へ登録するときは、このコードを一行にまとめ、先頭にjavascript:を付けます。

javascript:(async()=>{ /* ここに一行化した処理を入れる */ })();

実際に登録する前に、コード内で外部サイトへ送信する処理がないことを確認してください。今回のコードは、ページ内のデータを読み取り、クリップボードへコピーする処理に限定しています。

コードの要点

最初に、分析ページの状態データを探します。

const root =
  window.__NUXT__?.state?.pages?.analytics ||
  window.$nuxt?.$store?.state?.pages?.analytics;

?.を使っているため、途中のプロパティが存在しない場合でも、その時点でエラーになりにくくなります。分析ページ以外で実行した場合は、後続のチェックでエラーメッセージを出します。

次に、閲覧数・販売数と表示数の配列を取得します。

const viewSaleList = service.numberOfTermsList || [];
const impressionList = service.serviceImpressions?.numberOfTermsList || [];

2つの配列は別々なので、日付をキーにして結合します。

const viewSaleMap = new Map(viewSaleList.map(item => [item.term, item]));
const impressionMap = new Map(impressionList.map(item => [item.term, item]));

最後に、ヘッダー行とデータ行をタブ区切りでつなげます。

const outputText = [header, ...rows]
  .map(row => row.join("\t"))
  .join("\n");

コピー処理では、まずClipboard APIを使います。

await navigator.clipboard.writeText(outputText);

環境によってClipboard APIが使えない場合に備えて、一時的なtextareaを作り、document.execCommand("copy")でコピーする予備処理も入れています。

使うときの手順

Chromeでブックマークバーを表示していない場合は、Ctrl + Shift + Bで表示します。

次に、任意のページをブックマークし、そのブックマークを右クリックして編集します。名前は、たとえば次のようにしておきます。

分析データ取得

URL欄には、一行化したブックマークレットコードを貼り付けます。

その後、ココナラのサービス・ブログ分析ページを開き、作成したブックマークをクリックします。成功すると、コピー完了のメッセージが表示され、Excelやスプレッドシートへ貼り付けられる状態になります。

うまく動かないとき

分析データが見つからない場合は、次を確認します。

  • ココナラにログインしているか
  • サービス・ブログ分析ページ上で実行しているか
  • 対象期間の分析データが表示されているか
  • ブックマークURLの先頭がjavascript:になっているか
  • コードを貼り付けるときに途中で欠けていないか

また、ココナラ側の画面構造や内部データ構造が変わると、window.__NUXT__以下の参照先が変わる可能性があります。その場合は、現在のページ構造に合わせてコードを見直す必要があります。

注意点

ブックマークレットは、現在開いているページ上でJavaScriptを実行する仕組みです。内容を理解できないコードや、出所が不明なコードは登録しないでください。

今回のようなログイン済みページで使う処理では、次の点に注意します。

  • 自分が管理している画面の、手作業で見えているデータを扱う用途に限定する
  • サービスの利用規約や自動取得に関するルールを確認する
  • 高頻度の自動実行や、サーバーへ負荷をかける使い方をしない
  • アカウント情報、通知、出品情報、実績値などを公開画像に含めない
  • 保存したHTMLファイルやログイン済みページのソースは公開しない
  • クリップボードの内容は上書きされるため、直前にコピーしていた内容が消えることを理解して使う

記事や社内資料にする場合は、画面キャプチャ内のアカウント名、通知、具体的な実績値を必ずマスクします。

関連記事

まとめ

ブックマークレットを使うと、既存のWebサービス画面に小さなJavaScript処理を追加する感覚で、手作業の転記を減らせます。

今回の例では、グラフの数値を目で見て写すのではなく、ページ内部の分析データを読み取り、日付別のTSVとしてクリップボードへコピーしました。

大がかりなシステム化までは不要でも、日々の確認や集計を少し楽にしたい場面では、ブラウザ上の小さな自動化テクニックとして役立ちます。

この技術で業務改善しませんか?

Excel VBA・GAS・Webアプリで業務の自動化ツールを開発しています。 「こんなことできる?」というご相談だけでもお気軽にどうぞ。

無料相談はこちら →