【LINEスタンプ】売上データを吸い出せるブックマークレット作りました→マーケティングへの取り組み姿勢が劇的変化
毎度、rorosukeです。
LINEスタンプ作ってますか?
今回の記事には、明確なターゲットがあります。それは、
LINEスタンプの売上が1000円を超えたあたりの方です。
0→1を達成して、毎日2〜3個売れるようになってきた。月に30〜60個、金額にして1000円前後。そこまで来たとき次に何をするかが、この先の伸びを大きく左右します。
今回は、そんな「これから跳ねそうな」方に読んでいただきたい記事となっていますし、タイトルどうりに劇的変化をもたらす可能性があります。
未来が変わる2つの選択肢
ここにAさんとBさんがいます。それぞれ次のような方です。
Aさん:
「なんとなくこのキャラが売れてる気がするな」「台湾語スタンプが流行ってる"らしい"から乗っかってみようかな」といった感覚でスタンプを追加していく人。
Bさん:
「4月は日本より台湾からの売上が多かった。台湾向けにもう1セット作ろう」「この脱力系スタンプ、3か月連続でリピートされてる。シリーズ化しよう」とデータ分析して判断する人。
1年後、2人の差はどうなるのか?
Aさんのスタンプは、当たりもあれば外れもあって、なんとなく増えていく。
Bさんのスタンプは、売れる傾向を把握した上で着実に積み上がっていく。
そんな未来が見えませんか?
つまりBさんの方が、データに裏打ちされた施策を行えることになり、それが精度の違いとなって、より高い売上が期待できます。マーケティングの違いは、そのまま結果の差として現れてきます。
「マーケティング」というと大げさに聞こえますが、要は「何が売れているかを客観的に把握して、次に活かす」だけのことです。しかし、それにはデータが必須であり、データなくして精度の高いマーケティングはありえません。
LINEでマーケティングがしづらい理由
そんな視点に立って、改めてLINEクリエイターズマーケットを見てみると、売上確認ページはありますし、グラフも出てきますし、スタンプ別の一覧も表示されていて、一見ちゃんとしているように見えますよね?
ところが、そこに落とし穴があります。
よくよく考えてみると、肝心のことができないことに気づきます。
それは…
データを手元に保存できないことです。
通常のプラットフォームなら、CSVでダウンロードするボタンがあるものです。LINEにはそれが用意されていません。グラフを目で見て、頭の中で足し算するしかない状態です。
この状況で、ちゃんとマーケティングしようと思ったら、これらのデータを手作業で入力するしかありません。日々の生活の中で、これを行える人はなかなかいないのではないでしょうか?
ここで、
「いやいや、あるでしょ? CSVデータ」
というツッコミを入れる人はさすがです。これにも触れておきますと、確かに公式のCSVデータは存在します。毎月の送金申請ページからダウンロードできる「公式CSV」です。国別・販売数・確定分配額まで入っていて、内容は非常に充実しています。実際、これを使ってマーケティングしている方は少なからずおられます。
ただし、このデータが手に入るのは、翌月の送金申請が処理されてから。実際には売れた月から1か月以上後になります。
新しいスタンプを出した翌日に「昨日どこの国で何が売れたか」を確認したいという、鮮度の高い売上データを毎日分析したい人には、残念ながら、このデータはほとんど役に立ちません。
ブックマークレットを作りました
そういう不満があって、作りました。
名称は「LINE売上スキャナー(簡易版)」です。
LINEクリエイターズマーケットの売上確認ページを開いた状態でワンクリックするだけで、昨日までの鮮度の高い日別の売上データをCSVとして保存できるブックマークレットです。
取得できるデータは次です。
日付(いつ売れたか)
タイトル(何が売れたか)
売上金額
カテゴリ(スタンプ/絵文字/着せ替え)
次は、取得した実際のCSVのイメージです。
$$
\begin{array}{cccc}
\\[-1.15em]\hline
\textbf{\textsf{\small{日付}}} & \textbf{\textsf{\small{タイトル}}} & \textbf{\textsf{\small{売上}}} & \textbf{\textsf{\small{カテゴリ}}}
\\ \hline
\textsf{\small{2026/04/01}} & \textsf{\small{○○スタンプ}} & \textsf{\small{¥37}} & \textsf{\small{スタンプ}}
\\ \hline
\textsf{\small{2026/04/03}} & \textsf{\small{△△絵文字}} & \textsf{\small{¥52}} & \textsf{\small{絵文字}}
\\ \hline
\textsf{\small{2026/04/09}} & \textsf{\small{○○スタンプ}} & \textsf{\small{¥31}} & \textsf{\small{スタンプ}}
\\ \hline
\end{array}
$$
月次のCSVの発行を待つまでもなく、翌日からこれらのデータを取得できるのが最大のメリット。データをファイルとして保存しますので、ExcelやAIで自由にマーケティング分析を行うことができます。
これを、ExcelやGoogleスプレッドシートに蓄積していくことで、「何が」「いつ」「どれだけ」売れたかの長期的かつ完璧な履歴が、手元に残ることになります。同じことは、公式CSVでも行えますが、昨日までの最新データに対応できるのが最大と強みとなります。
ブックマークレットの登録方法
私の記事には、何度もブックマークレットが登場していますので、それを踏まえて簡単に説明しておきます。
Chromeのブックマークバーを表示する(Ctrl+Shift+B)
ブックマークバーを右クリック→「ページを追加」
名前を「LINE売上スキャナー」などに設定
URLの欄に以下のコードをそのまま貼り付ける
保存する
次がブックマークレットのコードです
javascript:(function(){window.__lineCurrent=window.__lineCurrent||{};window.__lineStopped=false;function getCanvas(){return document.querySelector('canvas');}function ensureCorrectPage(){var url=window.location.href;if(url.indexOf('/stats/dashboard')>-1&&url.indexOf('/sales')===-1){window.location.href=url.split('/stats/dashboard')[0]+'/stats/dashboard/sales';return false;}return true;}function getItems(){return Array.from(document.querySelectorAll('section[data-test="item"]'));}function hasSales(it){var v=it.querySelector('[data-test="item-value"]');if(!v)return false;var t=v.innerText.trim();return t!=='¥0'&&t!==''&&t!=='¥0';}function isChecked(it){var i=it.querySelector('input[type="checkbox"]');return!!(i&&i.checked);}function getTitle(it){var a=it.querySelector('[data-test="item-title"] a');return a?a.innerText.trim():'';}function scrollToGraph(){var cv=getCanvas();if(cv)cv.scrollIntoView({behavior:'smooth',block:'center'});}function preloadList(cb){var scrollEl=document.querySelector('div.content')||document.documentElement;scrollEl.scrollTop=0;setSt('📋 リスト読み込み中...');setTimeout(function(){var last=-1;var sameCount=0;var iter=0;var timer=setInterval(function(){if(window.__lineStopped||iter++>80){clearInterval(timer);scrollEl.scrollTop=0;setTimeout(cb,300);return;}scrollEl.scrollTop+=400;var cur=scrollEl.scrollTop;if(cur===last){sameCount++;if(sameCount>3){clearInterval(timer);scrollEl.scrollTop=0;setTimeout(cb,300);}}else{sameCount=0;last=cur;}},300);},300);}function clickList(items,delay,cb){var i=0;function next(){if(window.__lineStopped){cb();return;}if(i>=items.length){setTimeout(cb,delay);return;}var l=items[i++].querySelector('label');if(l)l.click();setTimeout(next,delay);}next();}function scanGraph(batch,cat,cb){var cv=getCanvas();if(!cv){cb();return;}var rect=cv.getBoundingClientRect();var salesInBatch=batch.filter(hasSales);var i=0,steps=60;function step(){if(window.__lineStopped){cb();return;}if(i>steps){cb();return;}cv.dispatchEvent(new MouseEvent('mousemove',{bubbles:true,clientX:rect.left+4+(rect.width-8)*i/steps,clientY:rect.top+rect.height/2}));setTimeout(function(){var tt=document.querySelector('[data-test="tooltip"]');if(tt){var de=tt.querySelector('[data-test="tooltip-date"]');var tis=tt.querySelectorAll('[data-test="tooltip-item"]');if(de&&tis.length){var date=de.innerText.trim();if(tis.length===1&&salesInBatch.length===1){var vEl=tis[0].querySelector('[data-test="tooltip-value"]');if(vEl){var v=vEl.innerText.trim().replace(/\s+/g,'');if(v&&v!=='¥0'){var t=getTitle(salesInBatch[0]);window.__lineCurrent[date+'__'+t+'__'+cat]={date:date,title:t,value:v,category:cat};}}}else{tis.forEach(function(ti){var tEl=ti.querySelector('[data-test="tooltip-title"] span');var vEl=ti.querySelector('[data-test="tooltip-value"]');if(tEl&&vEl){var v=vEl.innerText.trim().replace(/\s+/g,'');var t=tEl.innerText.trim();if(v&&v!=='¥0'){window.__lineCurrent[date+'__'+t+'__'+cat]={date:date,title:t,value:v,category:cat};}}});}setSt('📡 '+Math.round(i/steps*100)+'% 蓄積: '+Object.keys(window.__lineCurrent).length+'件');}}i++;step();},180);}step();}function makeBatches(sales){var B=5,batches=[];for(var b=0;b<sales.length;b+=B)batches.push(sales.slice(b,b+B));if(batches.length>=2&&batches[batches.length-1].length===1){var prev=batches[batches.length-2];batches[batches.length-1]=[prev[prev.length-1],batches[batches.length-1][0]];}return batches;}function detectCat(){var map=[['button-sticker','スタンプ'],['button-emoji','絵文字'],['button-theme','着せ替え']];for(var i=0;i<map.length;i++){var btn=document.querySelector('[data-test="'+map[i][0]+'"]');if(!btn)continue;if(btn.classList.contains('selected'))return map[i][1];}return 'スタンプ';}function switchToSalesTab(cb){var tab=document.querySelector('[data-test="tab-sales"]');if(!tab){cb();return;}var a=tab.querySelector('a');if(a){a.click();setTimeout(cb,800);}else{cb();}}function runScan(cb){var monthSel=document.querySelector('[data-test="month"] select');if(monthSel&&!/\d{4}\.\d{2}/.test(monthSel.value)){setSt('⚠ 年単位は対象外です。');cb(-1);return;}setSt('📋 売上タブに切替中...');switchToSalesTab(function(){var cat=detectCat();preloadList(function(){if(window.__lineStopped){cb(0);return;}var all=getItems();var sales=all.filter(hasSales);if(!sales.length){cb(0);return;}scrollToGraph();setTimeout(function(){var batches=makeBatches(sales);var bi=0;function nextBatch(){if(window.__lineStopped){cb(0);return;}if(bi>=batches.length){clickList(all.filter(isChecked),400,function(){cb(sales.length);});return;}var batch=batches[bi++];setSt('🔄 バッチ'+bi+'/'+batches.length);clickList(all.filter(isChecked),400,function(){clickList(batch,400,function(){scanGraph(batch,cat,nextBatch);});});}nextBatch();},600);});});}function ts(){var now=new Date();return now.getFullYear()+''+('0'+(now.getMonth()+1)).slice(-2)+''+('0'+now.getDate()).slice(-2)+'_'+('0'+now.getHours()).slice(-2)+''+('0'+now.getMinutes()).slice(-2)+''+('0'+now.getSeconds()).slice(-2);}function doDownload(){var rows=Object.values(window.__lineCurrent).sort(function(a,b){return a.date.localeCompare(b.date)||a.category.localeCompare(b.category)||a.title.localeCompare(b.title);});if(!rows.length){return;}var csv='\uFEFF日付,タイトル,売上,カテゴリ\n';rows.forEach(function(r){csv+='"'+r.date+'","'+r.title+'","'+r.value+'","'+r.category+'"\n';});var blob=new Blob([csv],{type:'text/csv'});var a=document.createElement('a');a.href=URL.createObjectURL(blob);a.download='LINE売上_'+ts()+'.csv';a.click();}function setSt(msg){var el=document.getElementById('__lnSt');if(el)el.innerHTML=msg;}function setRunning(en){var btn=document.getElementById('__lnStart');if(btn)btn.disabled=en;var cb=document.getElementById('__lnCancel');if(en){if(!cb){var b=document.createElement('button');b.id='__lnCancel';b.innerText='⏹ 中止';b.style.cssText='width:100%;background:#e74c3c;color:#fff;border:none;padding:7px;border-radius:6px;cursor:pointer;font-size:12px;font-weight:bold;margin-bottom:6px;';b.onclick=function(){window.__lineStopped=true;};var panel=document.querySelector('#__linePanel > div:last-child');if(panel)panel.insertBefore(b,panel.firstChild);}}else{if(cb)cb.remove();}}function renderPanel(){if(window.__lineStopped&&!document.getElementById('__linePanel'))return;var p=document.getElementById('__linePanel');if(!p){p=document.createElement('div');p.id='__linePanel';p.style.cssText='position:fixed;top:10px;right:10px;background:#fff;border:2px solid #06C755;border-radius:10px;z-index:99999;font:13px sans-serif;width:240px;box-shadow:0 4px 16px rgba(0,0,0,0.2);';document.body.appendChild(p);}var c=Object.keys(window.__lineCurrent).length;var h='<div style="background:#06C755;color:#fff;padding:8px 12px;font-weight:bold;font-size:14px;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;align-items:center;">📊 LINE売上スキャナー<button id="__lnClose" style="background:none;border:none;color:#fff;font-size:16px;cursor:pointer;padding:0;">✕</button></div>';h+='<div style="padding:10px 12px;">';h+='<div style="background:#f5f5f5;border-radius:6px;padding:8px;">';h+='<div style="font-size:11px;color:#666;margin-bottom:4px;">蓄積: '+c+'件</div>';h+='<button id="__lnStart" style="width:100%;background:#06C755;color:#fff;border:none;padding:7px;border-radius:5px;cursor:pointer;margin-bottom:4px;font-size:12px;font-weight:bold;">▶ 表示タブ選択スキャン</button>';if(c>0){h+='<button id="__lnDL" style="width:48%;background:#4495C1;color:#fff;border:none;padding:6px;border-radius:5px;cursor:pointer;font-size:11px;">💾 ダウンロード</button> ';h+='<button id="__lnClear" style="width:48%;background:#fff;color:#bbb;border:1px solid #ddd;padding:6px;border-radius:5px;cursor:pointer;font-size:11px;">🗑 クリア</button>';}h+='<div id="__lnSt" style="margin-top:6px;color:#555;font-size:11px;min-height:14px;line-height:1.5;"></div>';h+='</div></div>';p.innerHTML=h;document.getElementById('__lnClose').onclick=function(){window.__lineStopped=true;document.getElementById('__linePanel').remove();};document.getElementById('__lnStart').onclick=function(){if(!ensureCorrectPage())return;if(!getCanvas()){setSt('⚠ グラフが見つかりません');return;}window.__lineStopped=false;setRunning(true);runScan(function(n){setRunning(false);if(n===-1)return;renderPanel();setSt(window.__lineStopped?'⏹ 中止されました':n>0?'✅ 完了!蓄積: '+Object.keys(window.__lineCurrent).length+'件':'⚠ 売上項目なし');});};var dl=document.getElementById('__lnDL');if(dl)dl.onclick=doDownload;var cl=document.getElementById('__lnClear');if(cl)cl.onclick=function(){if(confirm('蓄積データ('+Object.keys(window.__lineCurrent).length+'件)をクリアします。')){window.__lineCurrent={};renderPanel();}};}if(!ensureCorrectPage())return;renderPanel();})();更新情報
2026/05/06 ダッシュボードページ(棒グラフ)で起動したときには売上タブページ(折れ線グラフ)にリダイレクトするようにしました。その後は再度起動する必要があります。
2026/05/05 売上タブ以外が選択されていたとき、売上タブを強制選択するようにしました。
「LINE売上スキャナー」の使い方
登録したブックマークレットの使い方は次のとおりです。
事前準備
LINEクリエイターズマーケットにログインして、売上・統計情報の詳細ページを開きます。URLは、
https://creator.line.me/my/[クリエイターID]/stats/dashboard
のような形式です。
集計したい「年月」をドロップダウンで選択し、「スタンプ」タブを表示した状態にしてください。

注意:プルダウンメニューには「2026.05」のような「年月」項目の下に、「2026」とだけ表示されている「年」項目がありますが、こちらは選んでも処理されません。
スキャン手順
ブックマークレットをクリックして起動(右上に緑のパネルが表示される)
「▶ 表示タブ選択スキャン」ボタンをクリック
約1〜2分待つ(販売実績のあるスタンプの数によって時間が変わります)
「✅ 完了」と表示されたら「💾 ダウンロード」をクリック
「絵文字」タブに切り替えて手順2〜4を繰り返す



これで、売上データの詳細が累積されていきます。この後、「絵文字」タブに切り替えて「表示タブ選択スキャン」を押すと、累積データに「絵文字」の売上が追加されますし、「年月」を変更して他の月のデータを累積することもできます。

「ダウンロード」を押すと、CSV形式のデータとして保存されます。
注意事項
スキャン中はマウスをグラフに近づけず、スクロールもしないでください。座標のずれによりデータが取れなくなることがあります。
※PCの場合、スクリーンセーバーなどにご注意ください。
※スマホの場合、オートロックなどにご注意ください。
データはブラウザのタブが生きている間だけ保持されます。タブを閉じるかリロードすると消えるので、スキャン完了後にダウンロードすることをおすすめします。
取得できるのはダッシュボードの「売上・統計情報」に表示された速報値です。公式CSVの確定額と比較した場合、データとして異なる場合があるかもしれません。
同じスタンプが1日に複数売れた場合、合計金額として記録されます。これは「売上・統計情報」がそうなっているためです。したがって、プログラムとしてはそのまま記録するのみで、分離はできません。
どんなしくみなのか?
実際に使用してみると、最新データが目の前で吸い出せていることに驚くかと思います。しかし、やっていることは実に単純です。プログラムでグラフ内に対してマウスポインタを走査して、ポップアップされたデータを順次読み取っているだけです。
すごくアナログ的といってもいいかもしれません。
というわけで、自分が言うのもなんですが、この「LINE売上スキャナー(簡易版)」の中身は、
かなり“変態的なプログラム”になっています。
おそらく後にも先にも、こんなツールを作る人は現れないでしょう。映画のメイキングを見たとき「こんな泥縄式な方法で作ってたのか」と思うことがありますが、それに通じるものがあります。
正直、動いているのが不思議だと自分でも思いますが、実際ちゃんとデータが吸い出せているので「まあ良し」とさせていただきます。
免責事項
本ツールは非公式のものであり、LINE公式とは一切関係ありません。
利用は自己責任でお願いします。
仕様変更により動作しなくなる可能性があることをご承知ください。
LINEクリエイターズマーケットが、毎日の売上データをダウンロードできるようにしてくれたら、本ツールのお役目は終わりになります。
まとめ:マーケティングが楽しくなる
私が使ってみた感想になりますが、売上データが一瞬でリスト化されるのは本当に便利です。見ただけで、どの作品がたくさん売れているといったことが、瞬時に掌握できます。
というか、
ただデータを見ているだけで、ウキウキしてきます。
ぜひ、このウキウキを共有して、楽しく「最適化→高収益化」を目指していただければと思います。
ちなみに、このマーケティングツールは、これで開発終了ではなく、現在「LINE売上スキャナー(高機能版)」を開発中です。そちらは次の機能が盛り込まれた、大幅アップデートを目指しています。
エリア(日本・台湾・タイなど)の自動切替
スタンプ・絵文字・着せ替えタブの自動切替
国別データの分離収集
全スタンプのマスターリスト収集(ID・プレビューURL付き)
なお、次バージョンの高機能版はサポート込みの有料記事予定です。というのは、私の売上データではうまく動作していても、他の方のまったく異なる売上データでは不具合がおきるかもしれないからです。よりデリケートなサポートが必要になりそうだからです。
「LINE売上スキャナー(簡易版)」を使用して、「これ超役立つじゃん」と思った方は、是非コメントをいただけると幸いです。
以上!
追記☞高機能版出ました
「LINE売上スキャナー(簡易版)」をベースに、さらに利便性や機能性をアップさせた「LINE売上スキャナー(高機能版)」を公開しました。より高度な分析に欠かせないデータを吸い出せますので、興味あるかたはご覧になってみてください。
具体的には、次の機能が追加されています。
全エリア自動スキャン
国別自動スキャン
マスターリスト収集
日本だけでなく、台湾・タイ・韓国など国別の売上が見たくなったら、高機能版へどうぞ。さらにNEO(期間指定・年間スキャン対応版)も同ページで入手できます
いいなと思ったら応援しよう!
記事なり、プログラムなりが役に立ったと思った方は、
チップの応援よろしくお願いいたします。
次の開発もがんばろうかな、という気になりますのだ (笑)