Aggregator

アスクルの商品廃棄ロス削減の取り組み「Go Ethical(ゴーエシカル)」、累計廃棄削減数が200万個を達成

1 year 5ヶ月 ago

アスクルは、商品廃棄ロス削減を目的とした取り組み「Go Ethical(ゴーエシカル)」における累計廃棄削減数が200万個を達成したと発表した。

品質に問題のない商品をアウトレット価格で販売

アスクル LOHACO 累計廃棄削減数が200万個を突破 Go Ethical
類型廃棄削減数が200万個を突破

「Go Ethical」は2019年11月からBtoC向け通販サービス「LOHACO(ロハコ)」で開始。商品の廃棄ロス削減、ユーザーが購入しやすい価格で販売することで顧客獲得をめざす"プロダクト・ライフサイクル"を理想の形にする取り組み。2025年1月20日時点で、累計廃棄削減数が202万2986個に達した。

小売店からの返品商品、パッケージ汚れ品、メーカー出荷期限切れなどの理由で従来はメーカー側が廃棄していた商品のうち、品質に問題のない商品をアウトレット価格で販売。アスクルとメーカーが共創して取り組んでおり、77ブランド・メーカーが参画している。

アスクル LOHACO エシカル Go Ethicalで販売している商品
「LOHACO」で販売している「Go Ethical」の商品(画像は「LOHACO」のサイトからキャプチャ)
アスクル Go Ethical 取り組みに参画しているメーカー・ブランド
「Go Ethical」の取り組みに賛同しているメーカー・ブランド

2023年9月からはBtoB向け通販サービス「ASKUL(アスクル)」でも開始し、文具、梱包資材、事務機器などBtoBならではのカテゴリに対象を広げ、取り組みを推進している。

藤田遥

最も活用しているポイント上位は「楽天ポイント」「dポイント」「PayPayポイント」。経済圏の総合満足度トップは「PayPay経済圏」

1 year 5ヶ月 ago

MMDLaboが運営するMMD研究所が実施した「2025年1月ポイント経済圏のサービス利用に関する調査」によると、61.0%が「経済圏を意識してサービスを利用している」と回答し、総合満足度が最も高い経済圏は「PayPay経済圏」だった。

予備調査は18歳~69歳の男女2万5000人、本調査は6つの経済圏(ドコモ、au、PayPay、楽天、イオン、Vポイント)のメイン利用ユーザー2500人が対象。期間は2025年1月10日~1月14日。

最も活用している共通ポイント上位は「楽天ポイント」「dポイント」「PayPayポイント」

予備調査対象者に現在活用している共通ポイントと、そのなかで最も活用している共通ポイントを聞いた。その結果、現在活用している共通ポイントは「楽天ポイント」(57.2%)が最多で、次いで「Vポイント」(39.1%)「PayPayポイント」(38.5%)だった。

最も活用している共通ポイントでは「楽天ポイント」(33.2%)が最も多く、次いで「dポイント」(14.9%)「PayPayポイント」(13.6%)だった。

MMD研究所 経済圏に関する調査 経済圏に対する意識 現在活用している共通ポイントと最も活用している共通ポイント
現在活用している共通ポイントと、そのなかで最も活用している共通ポイント
(年別、上位10位抜粋、出典:MMD研究所)

最も意識している経済圏トップは「楽天経済圏」

経済圏を意識しているか聞いたところ、「意識している」が61.0%、「意識していない」が39.0%だった。

ポイント経済圏別に見ると、「意識している」割合が最も多いのは「楽天経済圏」(43.9%)で、次いで「PayPay経済圏」(29.2%)「Vポイント経済圏」(26.7%)だった。

MMD研究所 経済圏に関する調査 ポイント経済圏に対する意識
ポイント経済圏に対する意識(各n=25000、ポイント経済圏別、出典:MMD研究所)

意識している経済圏、前回調査から最も伸びたのは「イオン経済圏」

ポイント経済圏を意識しているユーザーに、最も意識している経済圏を聞いたところ、トップは「楽天経済圏」(43.6%)、次いで「PayPay経済圏」(17.8%)「ドコモ経済圏」(16.2%)だった。2024年7月の調査と比較して最も伸びているのは「イオン経済圏」で0.4ポイント増加、最も減っているのは「PayPay経済圏」で0.6ポイント減だった。

MMD研究所 経済圏に関する調査 最も意識しているポイント経済圏
2025年1月調査の最も意識しているポイント経済圏(左、n=15247)と
2024年7月調査の最も意識しているポイント経済圏(右、n=15371)(出典:MMD研究所)

経済圏意識のきっかけ、楽天は「ECサイト」、ドコモとauは「モバイル」

ポイント経済圏メインユーザーに、共通ポイントを貯めたり使ったりするためにメイン利用している経済圏を意識し始めたきっかけを聞いた。

経済圏別に結果をみると、「楽天経済圏」は「ECサイト」(35.2%)、「PayPay経済圏」は「QR・バーコード決済」(46.0%)、「ドコモ経済圏」は「モバイル通信」(27.6%)、「au経済圏」は「モバイル通信」(26.2%)、「Vポイント経済圏」は「ポイントカード」(41.2%)、「イオン経済圏」は「電子マネー」(40.8%)がそれぞれトップだった。

MMD研究所 経済圏に関する調査 ポイント経済圏を意識し始めたきっかけ
ポイント経済圏を意識し始めたきっかけ
(メイン利用のポイント経済圏別、上位3位抜粋、出典:MMD研究所)

総合満足度トップは「PayPay経済圏」

メイン利用している経済圏の総合満足度を聞いたところ、「満足」と「やや満足」を合わせて満足している割合は「PayPay経済圏」(79.0%)がトップ、次いで「イオン経済圏」(76.4%)「楽天経済圏」(76.0%)だった。

2024年7月の調査と比較すると、満足している割合が最も伸びているのは「au経済圏」で5.6ポイント増加した。

MMD研究所 経済圏に関する調査 ポイント経済圏の総合満足度
ポイント経済圏の総合満足度(メイン利用のポイント経済圏別、前回比較、出典:MMD研究所)
調査実施概要
  • 調査タイトル「2025年1月ポイント経済圏のサービス利用に関する調査」
  • 調査方法:インターネット調査
  • 調査期間:2025年1月10日~1月14日
  • 調査対象:【予備調査】18歳~69歳の男女、【本調査】ポイント経済圏のメイン利用ユーザー(ドコモ経済圏(n=500)、au経済圏(n=500)、PayPay経済圏(n=500)、楽天経済圏(n=500)、イオン経済圏(n=250)、Vポイント経済圏(n=250))
  • 有効回答:【予備調査】25000人、【本調査】2500人
  • 設問数:【予備調査】13問、【本調査】9問
藤田遥

エスプーマの安藤氏が語る「メールマーケティングでECの成果を出す極意」。押さえておくべき5つの指標+オススメの配信時間&回数などを解説! | 今日から試せるネットショップ運営ノウハウ powered by カラーミーショップ

1 year 5ヶ月 ago
SNSが主流になった時代におけるメルマガの重要性とは? 読まれているメルマガのポイント&特徴、配信時間&回数の決め方、休眠顧客に効果的なメルマガなどポイントを解説します

メルマガを使ったメールマーケティングは、お客さまとの長期的な関係構築に役立ちます。今回は、エスプーマ 代表の安藤健作さんを再びお招きして、改めてメールマーケティングの有用性やメルマガの効果的な配信方法などについてじっくり伺いました。最新の書籍についても紹介します。

エスプーマ代表 安藤 健作さん

早稲田大学卒業後、丸井を経て2006年にラクスに入社。同社にてCS組織の立ち上げを行ったのち、マーケティングマネージャへ。その後、2016年よりメールマーケティングサービス「配配メール」の事業責任者となる。その後、WACUL 執行役員CMOを経て、2024年よりエスプーマ代表。メールマーケティングのエバンジェリストとして活動し、講演実績多数。2022年『現場のプロが教える!BtoBマーケティングの基礎知識』(マイナビ出版/共著)、2024年『メールマーケティングの教科書 誰でも成果を生み出せるメルマガの定石』(翔泳社)出版
公式サイト:エスプーマ
X(旧Twitter):https://x.com/comune1128

メールマーケティングって何? SNS主流の時代のメルマガの重要性

――少しお久しぶりでございます。前回インタビューさせていただいたのが2022年でしたので2年ぶりですね。

もう、そんなに経ちましたか。

――はい。なので改めて、メールマーケティングについて教えていただいてもいいでしょうか。

はい。メールマーケティングは、メールマガジン(メルマガ)を活用したマーケティング手法です。SNSやLINEマーケティングが短期的な関係作りに効果的なのに対し、メールマーケティングはKeep in touch、つまり長期的なリレーションシップを構築するのに役立ちます

近年は、「新商品の案内はSNSやLINE」「CSRなど企業活動に関する内容はメルマガ」のように、両者の役割の違いを認識して使い分けされている企業さんが増えています。

メルマガの特長についておさらいすると、メルマガはメールボックスにストックされるので、受信側の都合の良い時に過去に遡って確認できるのが利点です。一方SNSの場合は、タイムラインで何気なく見かけた投稿を後から確認しようとしても、埋もれて見つからないことがよくあります。企業側からすると、興味のある人を取り込む機会を失うのでもったいないですよね。

また、メルマガには“押しつけがましさ”がないのも特長です。設定しない限りスマホに受信通知が届くことはなく、読むタイミングはあくまで相手次第になります。それに対し通知機能のあるLINEでは、プッシュ通知が頻繁に届くと不快感を与える心配があり、興味のないメッセージが多いとブロックされてしまいます。なので、相手をより思いやれるコミュニケーション手段としては、メルマガに軍配が上がると言えるでしょう。

それから、メルマガは記憶を呼び起こすツールとしても最適です。旅行で宿泊した旅館に好印象をもっても、記憶はだんだんと薄れていきますよね。帰宅後に、旅館から月に1回や2回のペースで「今の旅館の周りの景色はこんな感じですよ」と便りが届けば、記憶が呼び起こされてアクションにつながります。

SNSでも現地情報を発信できますが、基本的にメルマガは個人宛なので、よりプライベートに近い情報をお届けできるのもメリットです。

――なるほど。たしかにメルマガは記憶を呼び起こすツールに最適ですね。以前「メールマーケティング」についてあまり認知されきってはいないというお話もありましたが、2年前と比べて、メールマーケティングに関する認知は広がったと思いますか?

そうですね、仕事柄さまざまなジャンルのメルマガを観測していますが、最近は定石を押さえたものが主流で、簡素なテキストメールなどはほぼ見かけなくなりました。前回インタビューを受けた2年前と比べても、確実に認識が広がっているのを感じます。

動かすメルマガと読ませるメルマガ

――2年前よりも広がっているメールマーケティングですが、改めて、読まれているメルマガの特徴やポイントを教えてください。

ユーザーがメルマガを開封するまでの行動を辿ると、始めにメールボックスを確認し、メール一覧をざっと見ます。差出人が知っている企業名や店名だと目に留まりやすく、さらにちょっとでも惹かれる件名であれば開封に至ります。逆に、見知らぬ送信者から届いたものや興味のない件名の場合は、開封されにくくなります。

これを踏まえると、差出人名は企業名や店名をそのまま使うべきで、わざわざ「〇〇通信」のような認知されていない名前に変える必要はないとわかりますよね。

また件名については、内容はさることながら文字数も大切な要素になります。長い件名は省略されてしまうので、スマホ画面に表示される15文字以内に収め、端的に要件を伝えるようにしましょう。

――パッと目に入って読める文字数でいかにひきつけるかということですね。

その通りです。その後に初めて本文にたどり着くわけです。

本文について知っておいてほしいのですが、メルマガには「動かすメルマガ」と「読ませるメルマガ」の2種類があります。前者は行動を起こさせる(=商品を買ってもらう)ためのメルマガで、バーゲン情報やクーポン付きメルマガなどがそれにあたります。

後者はお店を知って好きになってもらうためのメルマガで、「自分たちは何者で、こんな取り組みをしていて、こういう商品を扱っています」など、お店自体をアピールする内容が該当します。

「動かすメルマガ」は態度変容を起こさせるのに役立ちますが、メルマガ内で完結できないのが弱点です。メルマガに掲載された商品をクリックすると、購入ページではなくランディングページに飛びますよね。即購入できずワンクッション挟むことになるので、離脱されやすくなります。

かといって、メルマガに商品の色や素材などを載せて、買いたい気持ちを高めれば良いかというとそうではありません。詳細はランディングページに書かれているので、メルマガはシンプルな情報だけで十分。100人クリックしても購入に至るのは10人くらいだったりするので、購入率を上げたいなら、いかに多くの人にクリックさせるかを念頭においてメルマガの内容を吟味してくださいね。

「読ませるメルマガ」は、Keep in touchに有効です。ただ、店長さんの近況報告や熱い思いを語るメルマガをよく見かけますが、他のメンバーに引き継いでからも同じスタイルを継続させると、「何を書いたら良いかわからない」と担当者が疲れてしまいます。なので、長文メルマガは月に1~2回程度にして、普段は端的な内容を配信するといいかもしれません。

ECはメールマーケティングとの相性が良く、メルマガ経由で購入に至るケースも多くあります。EC事業者さんにはぜひ積極的に取り組んでいただきたいですが、毎回毎回「バーゲンをやっていますよ」と送ると、「このお店はいつも買え買えとうるさいな」と不快に思われることもあります。

メルマガを送るなら、後者の「読ませるメルマガ」の比率を高め、できるだけ自分たちの取り組みを端的に伝えるコンテンツ作りをめざすと良いです。

GMOペパボ 即レスAI導入で得られた結果

メールマーケティングで覚えておくべき5つの指標

――施策を実施する際にセットになるのか効果測定ですが……。メールマーケティングで見るべき指標を教えてください。

見るべき指標には、不達率、開封率、クリック率、反応率、購読解除率があります。

不達率は、配信リストのなかでどのくらいエラーとして返ってきたかを表す指標です。不達の理由としては、メールアドレスが使われていない、登録ミス、一時的なエラーなどがあげられます。一般的に不達が許容されるのはリスト中の5%まで。これを超えると迷惑メール扱いされるので、届かないメールアドレスはリストから削除してください。

開封率は、メルマガが開封された割合を示す指標です。ただ、近年では正確な数字ではない可能性があるので注意が必要です。

Apple社のiPhoneでは、個人情報保護の兼ね合いから、配信元に実際の開封情報を開示せず、全員が開封したと提示しています。2年くらい前のアップデートでそう変わったのですが、今後Gmailも追随するのではないかといわれています。

メルマガを開封した人に営業電話をかける不動産屋さんや車のディーラーさんがいますが、そもそも開封していない可能性もあるので、今後は避けたほうが良いと思います。

クリック率は、配信リストのうちどのくらいの人がクリックしたかを見る指標です。メールマーケティングでは重要な指標の1つで、これをいかに増やすかを念頭に置いてメルマガの内容を考える必要があります

反応率は、クリック数÷開封数×100で算出されます。メルマガを開封した人のうち、どれだけの人がクリックしたかを確認するための指標で、反応率が悪い場合はメールの件名と内容が一致していない可能性があります。コンテンツのファーストビューは、必ず件名に合わせるようにしましょう。

購読解除率は、メルマガを配信した人のうちどのくらいが購読解除したかを示す指標で、許容範囲は0.25%未満といわれています。購読解除が一番多いのは、初めてメルマガを受け取ったタイミング。

ウェルカムメールの開封率は約70%と高いので、継続的に配信を受け取ってもらえるように気合いを入れて作ることを強くおすすめします。その際、「会員登録ありがとうございました。あなたの会員番号はこれです」だけでは、次につながりにくいのは明白です。

ECの場合は、「売れ筋商品はこれです」「次回使えるクーポンを送ります」などと、お店の魅力やメリットも案内したほうが効果的だと思います。

ちなみに、ある有名ブランドでは、ウェルカムメールでブランドの歴史や過去のスタイルなどを紹介していました。ファンエンゲージメントを高めるのに役立つので、参考にしてみてはいかがでしょう。

なお、これら5つの指標のうち、最初はクリック率だけを注視していけば良いと思います。慣れてきたら全体を見るようにしてくださいね。

――メルマガ施策の“振り返りポイント”や“効果測定のポイント”があれば教えてください。

開封率、クリック率、反応率を追う場合は、配信するたびに数字に一喜一憂するのではなく、ある程度長いスパンで推移を見て、徐々に下がってきているとわかったら対応するくらいで十分です。昨日は15%だったのに今日は10%だから改善しようとするのは、あまり意味がありません。

逆に、なるべく小まめにチェックしてほしいのは不達率と購読解除率です。とくに購読解除率が上がってきている場合は、コンテンツと読者が欲しい情報の間にアンマッチが起きていることを意味するので、早めに対応すべきでしょう。とはいえ、許容範囲の0.25%を超えてからで大丈夫です。

配信後の測定タイミングについては、1時間後には成果が決まるので、基本的にはいつ見ても問題ありません。1週間後に見ても数字はほぼ変わらないと思います。

GMOペパボ 事業開発部 AXチームリーダーの秦氏

メルマガで成果を出すおすすめの型は?

――メールマーケティングで成果を出すコンテンツの型があったらぜひ教えてください。

ファーストビューにCTA(コールトゥアクション)ボタンが置かれていることが、なによりも重要です。メルマガは、75%の人が7秒以内しか見ません。7秒で把握できるのは140文字程度なので、一番売りたいものをトップに置くのが鉄則です。

メルマガはバナー広告と一緒で、いかにクリックしてもらうかがポイントです。メルマガ作成時は、ユーザーがあまり考えずに、パッと見てクリックしたくなる作りになっているかを意識しましょう。

それから、Yahoo!メール、Gmail、iPhoneで、届いたメルマガのCTAボタンが、スクロールせずにきちんとファーストビューに表示されているかを確認することも大切です。とくにGmailの場合、コンテンツの表示幅が狭くなったので気をつけてください。

ちなみに、送る側の人は「自分たちのメルマガが100%読まれる」と思っているかもしれませんが、たいていの人は流し読みしています。「毎回メルマガを作るのが大変」という声も聞かれますが、そんなに見られていないので、手を抜けるところは抜いても良いんじゃないかなと思います。

読まれるメルマガの配信時間や配信回数は?

――メルマガの配信時間について調べるといろいろな情報が出てきますが、ベストな時間はいつなのでしょうか?

BtoCの場合、定番の配信タイミングは、通勤・通学時間、お昼休み、18時~21時の余暇時間で、配信曜日は週末の金・土・日の成果が高いといわれています。ただし、その時間を狙って配信する他社さんも多いので、大量のメルマガのなかに埋もれてしまう可能性があります。

もちろんターゲットによって行動時間が異なるので、自社にとって本当に通勤・通学時間など定番の配信時間に送るのがベストかどうか、きちんと検証してください。少しタイミングをずらしたいのであれば、「Googleアナリティクス」を見て、アクセスが一番多い時間帯に配信するのが良いですね。

ちなみに、初回購入時の会員登録後に送られてくるメルマガを見ると、2回目の購入につながるような工夫はされていないことが多いです。

もし思い当たる場合は、先ほど申し上げたようなウェルカムメールやカゴ落ちメールを送るなどの対策を取ることをおすすめします。特にカゴ落ちメールは、クリックした人の1/3が購入につながるので対応したほうが良いです。

――ではメルマガの配信回数はどのくらいが良いのでしょうか?

BtoCの場合、メルマガの開封率の平均は10%くらいです。つまり配信したうちの1割の人にしか見られないということです。そのなかでクリック率を1%から2%にするのはかなり苦労しますが、メルマガの配信回数を1回から2回に増やすことはすぐにできますよね。

商品がたくさんあるなら、1通のメルマガにギュッと詰め込むのではなく数回に分けて配信するなど、配信回数を上げると売上アップにつながりやすくなります

「配信回数が多いとクレームにつながるのでは?」と躊躇される方もいますが、クレームを入れてきた人が本来のターゲットではないこともあります。「クレームは言うけれど、商品は買わない」という人もいるので、そういう人はリストから外して「送らないように手続きしました」と伝えたほうが成果は最大化されるはずです。

態度変容を起こさない人を残しておいても意味がないので、リストの精度を上げる意味でもそうした対応は必要でしょう。また、本来のターゲットではないけれど、たまたまプレゼントなどを購入しただけの人もいます。そういう人にメルマガを購読解除されても悲観する必要はありません。

休眠中のお客さまを再び惹きつけるウィンバック(winback)メールもおすすめ

――他にも何かメールマーケティングで有効な施策はありますか?

メルマガを出しても反応しない人は一定数います。そこで一定期間反応しない人たちをリスト化して、「特別なクーポンを送りました」などと書いたメルマガを送って開封を促します。このような休眠中のお客さまを再び惹きつけるためのメールをウィンバックメールと呼びます。

開封した人は元のリストに戻し、反応がない人はリストから外すことで、リストの精度を上げることができます。システムを組めば簡単なので、実施したほうが良いと思います。

なお、配信リストはきれいにしておくことが大切です。理想は、リストの全員がターゲットであること。先ほど申し上げたとおり、本来のターゲットではないお客さまも含まれている可能性があるので、定期的に精査することをおすすめします。

また精度の高いリストをつくる方法として、BtoCであればサイト上にメルマガ登録への導線を設ける方法があげられます。登録に必要なのはメールアドレスのみと謳い、ショップが気になって覗きに来た人たちにメルマガ登録を促します。「クーポンを進呈しますよ」などのオファーを出せば、次につながる武器をもった見込み客リストを得られます。

他にも、ステップメールやシナリオメールなどがありますが、成果につながりにくいので、個人的にはやらなくても良いと思います。リソースが十分にある場合は、取り組んでみても良いかもしれません。

知っておくべきメールの法律

――メールマーケティングで知っておくべき法律などありますか?

少し専門的な話をすると、迷惑メールにはIPレピュテーションと認証技術が関係しています。前者は配信ツール会社の領域なので個々の企業さんが気にする必要はありませんが、後者の認証技術については対応が必要です。迷惑メール扱いされないように、SPF、DKIM、DMARCの3つを必ず認証するようにしてください。

とはいえ、迷惑メールに振り分けられる理由は1つではなく、複合的な要因が絡んでいます。IPが汚れている(IPレピュテーションのスコアが低下している)からマイナス何点、無料、副業、金儲けのような禁止用語を使っているからマイナス何点と、点数が重なって迷惑メールになるので、1つ欠けているからといって即迷惑メール扱いされるわけではありません

法律の話に移ると、メルマガ配信時は「特定電子メール法」と、ECの場合は「特定商取引法」も守らなければなりません。メルマガは承諾した人にしか送ってはならない(オプトイン)、購読解除の導線をしっかり用意する(オプトアウト)という決まりがあるので、きちんと遵守するようにしましょう。

特定電子メール法では、メルマガ登録時に「ダブルオプトイン」という2段階認証を利用することを推奨しています。ダブルオプトインでは、読者がメールアドレスを登録すると会員登録用のメールが届き、URLをクリックすると会員登録が完了します。読者が自分の意思で登録したことの証拠になり、メールアドレスの登録ミスも防げます。

また、会社名を表示する義務があるのにサービス名が入っている、購読解除の導線がわかりにくいなど、大手でもルールが守られていないケースがあるので見直しが必要です。なかでも、購読解除について避けてほしいのは、ログインしなければ手続きできない仕様にすること

読者がIDもパスワードも忘れている場合、面倒だからと迷惑メールに振り分けてブロックすることがあります。ブロック数が増えると、メーラーに迷惑メールとして判断される原因になるので注意してください。

書籍について

――最後に、安藤さんの書籍についてお聞かせください。

私がメールマーケティングに携わるようになった約10年前は、メルマガを活用して売り上げを伸ばす方法、いわゆる"勝ちパターン"は体系化されていませんでした。ネットで検索しても「罫線を使って装飾しましょう」というような、デザインについて語る記事しかヒットせず、ためになる情報がなくて苦労しました。

「ならば自分が」とメルマガの活用方法をX(旧Twitter)やnoteなどで情報発信するようになると、「こういうのが読みたかった」というプラスの声をいただくようになりました。評判もよくトレンドが激しく変わる情報ではないので、今回一冊の書籍にまとめて出版しました。

メールマーケティングについてより詳しく知りたい方は、ぜひ書籍にも目を通してみてくださいね。

安藤さんの著書の詳細はこちら 

――安藤さんありがとうございました。

この記事はカラーミーショップの公式Webメディア『よむよむカラーミー by GMOペパボ』の記事を、ネットショップ担当者フォーラム用に再編集したものです。

よむよむカラーミー

大雪の影響で全国的に荷物の配送遅延が発生。ヤマト運輸、佐川急便、日本郵便の配送状況まとめ(2/8現在)

1 year 6ヶ月 ago

北日本から西日本の広範囲で続く大雪により、全国的に荷物の配送へ影響が広がっている。ヤマト運輸、佐川急便、日本郵便は2月8日までに配送状況を公表、全国的な荷物の配送遅延、預かり停止などが発生している。

ヤマト運輸(2月8日時点)

次の地域では荷物の預かりと配達業務、全国からの荷物の受け付けを停止している。

  • 福島県 → 会津若松市、大沼郡(会津美里町、金山町、昭和村、三島町)、河沼郡(会津坂下町、柳津町、湯川村)、喜多方市、耶麻郡(猪苗代町、北塩原村、西会津町、磐梯町)、南会津郡(只見町、桧枝岐村)
  • 石川県 → 白山市の一部(阿手町、尾添、河内町内尾、河内町金間、河内町下折、桑島、白峰、中宮、深瀬)
  • 鹿児島県 → 熊毛郡屋久島町

全国からの荷物の受け付けを停止している地域は次の通り。

  • 新潟県 → 阿賀野市、岩船郡、加茂市、北蒲原郡、五泉市、佐渡市、三条市、新発田市、胎内市、燕市、新潟市、西蒲原郡、東蒲原郡、南蒲原郡、村上市
  • 富山県 → 魚津市、黒部市、下新川郡(朝日町、入善町)、富山市、中新川郡(上市町、立山町、舟橋村)、滑川市

荷物の配送に遅れが生じている地域は次の通り。配送遅延を了承の上で荷物を預かっている。

  • 全国 ⇔ 北海道(全域)
  • 全国 ⇔ 福島県 南会津郡(下郷町、南会津町)
  • 全国 ⇔ 新潟県 糸魚川市、魚沼市、小千谷市、柏崎市、刈羽郡、北魚沼郡、上越市、十日町市、中魚沼郡、長岡市、三島郡、南魚沼郡、南魚沼市、見附市、妙高市
  • 全国 ⇔ 岐阜県 大野郡(白川村)、高山市、飛騨市
  • 全国 ⇔ 京都府 京丹後市、与謝郡(伊根町、与謝野町)
  • 全国 ⇔ 兵庫県 朝来市、豊岡市、美方郡(香美町、新温泉町)、養父市
  • 全国 ⇔ 広島県 山県郡(安芸太田町、北広島町)、廿日市市(浅原、飯山、大野、玖島、栗栖、津田、中道、虫所山、吉和)
  • 全国 ⇔ 島根県 隠岐郡(海士町、隠岐の島町、知夫村、西ノ島町)
  • 全国 ⇔ 徳島県 三好郡(東みよし町)、三好市
  • 全国 ⇔ 愛媛県 宇和島市、西予市、八幡浜市、西宇和郡伊方町、北宇和郡(鬼北町、松野町)、南宇和郡愛南町

大雪の影響によって全国的に高速道路や国道の一部区間で「通行止め」が発生している。そのため、全国的に荷物の配送に1日以上の大幅な遅れが生じる見込みとしている。

佐川急便(2月8日時点)

次の地域では荷物の預かり、配送を停止している。

  • 全国 ⇔ 山形県(新庄市、尾花沢市、北村山郡、最上郡)
  • 全国 ⇔ 福島県(会津若松市、喜多方市、那麻郡、河沼郡、大沼郡)
  • 全国 ⇔ 新潟県(新潟市、五泉市、佐渡市、阿賀野市、東蒲原郡)
  • 全国 ⇔ 京都府(京都市、亀岡市、京田辺市、八幡市、城陽市、宇治市、南丹市、向日市、長岡京市、乙訓郡、船井郡、久世郡)
  • 全国 ⇔ 兵庫県(芦屋市(奥池町、奥池南町)、宍粟市(一宮町、波賀町))
  • 全国 ⇔ 広島県(庄原市)
  • 全国 ⇔ 鹿児島県(南さつま市、枕崎市、指宿市、南九州市、阿久根市、いちき串木野市、薩摩川内市、薩摩郡)

なお、全国的に荷物の配送に遅れが発生中。配送遅延を了承の上で荷物を預かっている。

日本郵便(2月7日時点)

北海道の道東を宛先とする「ゆうパック」(保冷扱い含む)、ゆうパケット(クリックポストを含む)、ゆうメールの引き受けを停止している。引受停止期間は2月5日から当面の間という。

北海道、愛媛県の一部(八幡浜市、西宇和郡伊方町、西予市、宇和島市、北宇和郡(鬼北町、松野町)、南宇和郡愛南町)で荷物の引き受けまたは配達となる「ゆうパック」などは大幅な遅延が見込まれるという。

また、東北、信越、北陸、東海(岐阜県の一部)、近畿、中国、四国(上記地域を除く)、九州地方で引き受け、または配達となる「ゆうパック」などは遅延が見込まれるとしている。

瀧川 正実

イマドキのSEOに被リンクは不要? 100万件のSERP分析で判明した真実に刮目せよ【海外&国内SEO情報ウォッチ】

1 year 6ヶ月 ago
Web担当者Forum の連載コーナー「海外&国内SEO情報ウォッチ」を更新。「SEO に大切なのはコンテンツと検索意図、リンクはもう重要ではない」―― Google 検索順位と「被リンク」「被リンクドメイン名数」などの相関を 100 万件の検索結果ページで分析した結果から学ぼう
Kenichi Suzuki

越境ECのビィ・フォアード、商船三井と協働しLNG燃料船を活用した海上輸送における脱炭素化を推進

1 year 6ヶ月 ago

中古車の輸出などの越境ECを手がけるビィ・フォアードは、アフリカ向けの中古車輸送時に、商船三井の「Book and Claimサービス」を利用し、LNG(液化天然ガス)燃料船を活用して海上輸送における脱炭素化を推進することで合意した。契約期間は2025年4月から5年間。

ビィ・フォアードの山川博功代表取締役(左)と商船三井の安部規雄執行役員(右)
ビィ・フォアードの山川博功代表取締役(左)と商船三井の安部規雄執行役員(右)

「Book and Claimサービス」とは、商船三井の自動車船隊において、LNGやバイオマス燃料を含む低炭素燃料を利用したことによって生じるGHG(温室効果ガス)削減価値を、このサービスを利用する商船三井自動車船輸送サービスの顧客に証書として割り当てることができるサービス。

たとえば、商船三井がLNG燃料自動車船で輸送した際、重油燃料船での輸送時と比較して削減できたGHG排出量(削減価値)を記録し、「Book and Claimサービス」を利用する顧客企業に対して、それを顧客企業のGHG排出削減分としてカウントできる。

商船三井のLNG燃料自動車船
商船三井のLNG燃料自動車船

ビィ・フォアードと商船三井の今回の取り組みは、一般社団法人日本海事協会(ClassNK)が日本の海運業界で「Book and Claim」方法論の第三者認証手続きを行った初めてのケースとなる。

松原 沙甫

小田急百貨店が始める社会貢献型ショッピングサイトの運営「リミール(Re:Meal)」とは

1 year 6ヶ月 ago

小田急百貨店は、フードロス削減のECサイト「Kuradashi」を運営するクラダシと連携し、自社ECサイト「小田急百貨店オンラインショッピング」において、フードロス削減をめざした社会貢献型のショッピングサイト「リミール(Re:Meal)」を2月5日に開設した。

取扱商品は食品、飲料、化粧品、日用品など約4000点。フードロス削減をめざし、「規格外」「期限間近」「イベントが過ぎてしまった季節物」といった商品を買い得価格で紹介。売り上げの一部を社会貢献団体に寄付する。顧客が買い物を楽しみながら、日常の選択を通じて社会貢献ができる場を提供する。

「リミール(Re:Meal)」での買い物が社会貢献につながる仕組み(画像はサイトから編集部がキャプチャ)

「リミール」は、「フードロス問題に対してできることは?」をテーマに小田急百貨店とクラダシが連携して開設。サイトの名称「Re:Meal」は「Recycle Meal」に由来している。

ユーザーは、購入には「Kuradashi」の会員登録が必要。会員登録および商品決済は「Kuradashi」サイトとなる。

松原 沙甫

北~西日本の大雪で全国的に配送に遅れが生じる可能性/モノタロウが15年連続過去最高益【ネッ担アクセスランキング】 | 週間人気記事ランキング

1 year 6ヶ月 ago
2025年1月31日~2025年2月6日にアクセス数の多かった記事のランキングを発表! 見逃している人気記事はありませんか?
  1. 【北~西日本の大雪予報】ヤマト運輸、佐川急便、日本郵便の配送で全国的に遅れが生じる可能性

    大雪の影響による幹線道路、一般道路の通行止め、道路規制や渋滞、除雪状況などの影響で、全国的に荷物の配送に遅れが生じる可能性がある

    2025/2/4
  2. モノタロウ、15年連続過去最高益。売上高は2881億円で13%増【2024年12月期】

    15年連続で過去最高益を更新したMonotaRO。その要因や、2024年12月期の詳細な業績、2025年12月期の取り組みの展望をまとめる

    2025/2/4
  3. ヤマト運輸、世界200か国以上の国と地域への配送サービス「UPSワールドワイド・エクスプレス・セイバー」運賃・手数料を値上げ

    ヤマト運輸は、世界各国のUPSネットワークを使って書類や貨物を世界200か国以上の国と地域に届ける「UPSワールドワイド・エクスプレス・セイバー(WWX)」の販売総代理店。

    2025/2/4
  4. 【北~西日本の大雪】ヤマト運輸、佐川急便、日本郵便の荷物の配送+預かり状況まとめ(2/5時点)

    大雪による幹線道路や一般道路の通行止め、道路規制や渋滞などの影響で、全国的に荷物の配送に遅れが生じている。

    2025/2/6
     
  5. 【楽天SOY2024】総合グランプリは「越前かに職人甲羅組(DENSHOKU)」、2位は「アイリスオーヤマ公式 楽天市場店」、3位は「リカーBOSS 楽天市場店」

    「楽天市場ショップ・オブ・ザ・イヤー2024(楽天SOY2024)」は、「購入者からの投票」「2024年の売り上げや受注件数」などを主な基準に優れたショップを選出して表彰した

    2025/1/30
     
  6. 全国企業「倒産リスク」、小売業は2.6万社。物価高と人手不足が直撃

    帝国データバンクが企業の倒産について調査した結果によると、2024年、小売業では倒産リスクが高い企業が2.6万社だった。仕入れ価格や人件費の高騰などが影響していると見られる

    2025/2/5
     
  7. KDDIとauコマース&ライフのECモール「au PAY マーケット」が進める「不正ゼロ」の売り場作りとは?

    KDDIとauコマース&ライフは不正対策強化のため、AI機械学習による不正注文の24時間自動検知、店舗審査の強化など5つの取り組みを「au PAY マーケット」で推進している

    2025/2/4
     
  8. 「お客さんから遠い場所にいないか?」既存顧客対応を見返し、リピーター施策、CRMに立ち返ってみる【ネッ担まとめ】

    ネットショップ担当者が読んでおくべき2025年1月1日~1月31日のニュース

    2025/2/4
     
  9. ファンケルが実践するインフルエンサーマーケティングとは? 新規獲得1.8倍を実現した実例を大公開

    新規事業の認知拡大にインフルエンサーマーケティングを選択したファンケルの事例をPLAN-Bが解説

    2025/2/4
     
  10. AIが人の代わりに買い物する時代に!? OpenAIが開発した商品購入などを代行するAIエージェント「Operator」とは?

    エージェント型AIの提供に乗り出したOpenAI。その特長と、ECサイト運営においてどのように役立つかを、事例を交えて解説します

    2025/2/6
     

    ※期間内のPV数によるランキングです。一部のまとめ記事や殿堂入り記事はランキング集計から除外されています。

    藤田遥

    フジテレビ騒動で約80社が出稿取り消し。通販各社の対応+経営陣会見の一問一答【通販新聞の調査+取材】 | 通販新聞ダイジェスト

    1 year 6ヶ月 ago
    タレントの不祥事に端を発したフジテレビのCM中止について、通販各社の対応はさまざまだ。各社の反応や、フジテレビ経営陣による記者会見のもようをまとめる

    芸能人の女性トラブルへの対応などをめぐり、フジテレビでのCM中止が広がっている。「売り場」を持たない通販にとって、媒体は重要な顧客接点。広告中止の長期化は、事業に影響を及ぼす重大な事態といえる。各社の判断は分かれるが、今回の問題は、企業が意識すべきリスクの変化も映し出している。

    通販各社の反応、大手は中止判断目立つ

    本件に関する各社の対応は分かれている。

    「グループの人権方針に照らし、継続すべきではない」(A社)。

    広告中止は、上場企業、通販大手に多い。ダイバーシティー、多様性などここ数年、人権問題が社会でクローズアップされてきた。自社で定める人権方針に従い、取引先にも求めているケースもあり、広告中止の判断材料にするところもある

    「業績悪化、イメージが悪化するからということではない。他社が継続してもやめるという判断だ」(B社)。

    フジテレビの株主である米投資ファンドが指摘したのも、人権問題に対する関心が国内より高く、海外では社会に根づくためだろう。グローバルに展開する大手スポンサーほど指摘を意識せざるを得ない

    各企業による、フジテレビとフジテレビ系列局のCM出稿判断
    各企業による、フジテレビとフジテレビ系列局のCM出稿判断

    中堅、中小は継続傾向。重視するのは広告レスポンス

    「レスポンスが著しく悪化しない限り継続する」(C社)。こうした判断は、中堅、中小の通販企業に多い

    通販はレスポンス。メディアは情報発信ツールであり、そもそもブランドイメージで広告していない」(D社)。「顧客クレームが頻出すれば中止の可能性がある」(E社)、「問い合わせ件数で判断する」(F社)と、顧客との関係性を判断軸にする。

    現状は、クレームはないとする企業が多く、CM差し替えは、レスポンス次第とする企業が少なくない。BSフジで29分の長尺インフォマーシャルを展開するある企業の場合、尺が長く、公共広告への差し替えが行えないという物理的な問題もある。

    広告価格の下落も考えられ、これを逆手にとって積極的に出稿する企業も出てくるのではないか」。コロナ禍で広告露出が減る中、大量出稿で一気に知名度を高めたファーマフーズのように、ブランディングを重視する大手スポンサーが早々に引いた“売り場”で認知を得ようとする企業が現れることも考えられよう。

    「人権侵害」への姿勢が各社に問われる

    「こうしたケースの危機管理は、横並びの前例踏襲主義が多い。業界1位が動けば2位以下も追随する。しかし、通販はメディアを情報発信、商品訴求の『ツール』としか見ていない。関係ないというドライな考え方もある」(H社)、「フジの不祥事もオリンピックと同じ。レスポンスの数字次第だ」(G社)。消費者と直接的な関係を構築している通販ならではの回答だが、今後の調査によっては「人権侵害」への姿勢も問われるだろう。

    共通するのは、フジ系列局への対応だ。「別会社で罪はない」、「フジテレビと同様の人権方針への抵触はみられない」、「系列局、社外関係者など経済的に悪影響を受ける方も多い。再開することでステークホルダーの生活を守る姿勢も必要」といった理由で続ける。

    タレント起用のリスク高まり

    自社の従業員に切り替える企業も

    一方で、大手、中小を問わず、企業にとってイメージキャラクターのCM等への起用に関するリスクが高まっている側面はある。

    フジテレビ問題長期化により、通販各社からは、「テレビ局、メディア、タレントの信頼性の低下が、商品にリンクする懸念が生じている」、「メディアに懐疑的なイメージがつくことはマイナス」、「放送局全般の信頼度の低下が怖い広告がウェブの一極集中となれば、ゲリラ戦で戦いにくい市場になる。テレビはシニアとは効果的に接点を築ける手段。視聴者離れは本意ではない」といった意見が聞かれた。

    タレントの不祥事による契約破棄の事例

    日本を代表する企業であるトヨタ自動車。キャラクターに起用する歌舞伎役者の不祥事に見舞われた。これを受け、オウンドメディア「トヨタイムズ」の設計、戦略変更を行い、自社と従業員による運用に切り替えた。

    直近ではアサヒビールの起用タレントで飲酒トラブルが起こり、契約破棄となった。キャラクター起用にもリスクは付きまとう

    ジャパネットグループは自らBS局を開局したが、これも今回の問題に象徴される時代の変化を見越したリスクヘッジの一つかもしれない。メディアに対する信頼が低下する中、不祥事のリスクや外部環境に左右されないメディアを自ら持つという選択肢だ。ただ、メディアのオウンド化は、企業の高い知名度と認知に向けたプロモーションなど資本力も必要になる。

    ファンケルやDHC、オルビスのようにマルチチャネルで、通販だけに依存しない事業モデルの構築も有効であろう。

    フジテレビによる通販各社への影響

    業績への影響は軽微

    今回の問題を受けた通販各社の業績への影響は、現状「軽微」との回答が大勢だ。

    広告再開については、「第三者委員会の調査報告を踏まえ判断」、「人権方針に抵触していないと判断できるまで差し止める」、「ジテレビ経営層の対応次第」などの判断が聞かれる。一方で、問題が長期化すれば、「テレビは通販企業の事業活動で重要なチャネルの一つ。影響は少なからずある」という懸念もある。

    「正解はない」。リスク管理のある専門家は今回のケースをこう話す。想定外のリスクに直面した際、判断は事業規模、事業モデルなど複合的な要素で変化する。「レスポンス」という数字も一つの要素だ。今後、通販各社が判断基準をどこに定め、リスクに備えた事業モデルを構築するか。今回のフジテレビ問題は試金石となろう。

    フジテレビの広告差し替えは約80社

    中居正広氏の女性トラブル問題を受け、フジテレビは1月27日、2度目の会見を開いた。23日、日本弁護士連合会のガイドラインに基づく第三者委員会の設置を公表。3月までに行われるという、提言をもとに再発防止策を検討する。

    会見はプライバシーに配慮して10分遅れで配信されるという異例の展開でフジテレビ等で中継された。会場には500人近い記者等が出席。10時間を超える異例の長丁場となった。すでに多くの報道がされているが、会見は特殊な雰囲気となった。

    1月27日の記者会見に多くのメディアが参集した
    1月27日の記者会見に多くのメディアが参集した

    通販業界にとって「売り場」である媒体の力が弱まることは、広告価格の高騰につながる。系列局や代理店で働く従業員、通販など関係企業の生活と地続きでもある。

    フジテレビの広告差し替えを判断した広告主は約80社に達しているとされる。今回の問題に、日本通信販売協会は、「放送局は公器の一端を担い極めて重要な問題と認識している。通販業界にとっては、重要な広告媒体の一つ。早期の信頼回復をお願いしたい」と話す。

    中居正広氏の騒動を機に大量の広告主が離れたフジテレビ
    中居正広氏の騒動を機に大量の広告主が離れたフジテレビ

    フジテレビがウェブの台頭にあえぎ、社会の変化への対応が遅きに失したのも一強時代が長く続いた反動だろう。社会とのズレを捉え、再発防止に真摯に取り組むことが求められる

    会見同日、週刊文春は、一連の報道で「フジ編成幹部に誘われた」という記載を「同氏がセッティングした会の“延長”と認識している」と訂正した。

    対応の遅れ、報告遅延も批判必至

    従業員関与を判断する上で極めて重要な証言の変更だ。ただ、そうであっても2023年時点で起きた問題の着地を探り、対応が遅れたことに対する批判は免れないだろう。

    昨年、小林製薬による紅麹事件が機能性表示食品制度の見直しに発展したのは、国への度重なる「報告遅延」が批判の拡大、通販、健康食品業界に深刻な影響を招いた。

    社会の監視が強まる中、企業は社会の空気を捉え、適切な対応につなげる力が求められているのではないか。

    経営陣は「信頼回復急ぐ」

    フジテレビの広告差し替えは80社近くに達しているとされる。スポンサー企業への対応について、1月27日の記者会見で経営陣に対応を聞いた。

    記者会見に現れたフジテレビの経営陣
    記者会見に現れたフジテレビの経営陣

    ――今回の問題を受けて代理店、系列局、下請け会社を含め売り上げがなくなる。パートナー企業に対する補てんの考えはあるか。

    フジテレビジョン・清水賢治社長広告差し替え、制作会社、系列局に影響を及ぼしていると推察している。この点は申し訳ない。対応をどうするかは、現在、広告差し替えの代金に対する考え方を一部示し始めたところ。どのように影響を最小限に抑えることができるか真摯に取り組みたい。

    ――スポンサーにはどういった説明をしているか。

    フジテレビジョン・遠藤龍之介副会長多くの場合、営業部員が直接会社に足を運びご説明させていただいている。

    ――広告差し替えの代金の考え方について、返金など具体的な対応内容は。

    遠藤副会長:広告クライアントが出稿がふさわしくないと考え、AC広告に差し替えられている。通常、AC広告は天災等を理由に差し替え放映されるが、今回はフジテレビ個社の事情。お金をお返しするような対応を行う

    ――今も継続して出稿している広告主がいる。出稿は、今回の問題とまったく関係がない。広告枠を提供する側として、継続出稿することに対する見解を聞きたい。

    遠藤副会長さまざまなご判断、クライアントがいて、ごくわずかだが継続出稿されている企業もある。それはその社の判断ということで受け入れているが、広告掲載している企業も、おそらく社内でもフジテレビに広告出すのはよくないのでは、という問い合わせがきていると想像する。クライアントのためにも、一刻も早く信頼回復しないといけないと考えている。

    ※記事内容は紙面掲載時の情報です。
    ※画像、サイトURLなどをネットショップ担当者フォーラム編集部が追加している場合もあります。
    ※見出しはネットショップ担当者フォーラム編集部が編集している場合もあります。

    「通販新聞」について

    「通販新聞」は、通信販売・ネット通販業界に関連する宅配(オフィス配)をメインとしたニュース情報紙です。物品からサービス商品全般にわたる通販実施企業の最新動向をもとに、各社のマーチャンダイジング、媒体戦略、フルフィルメント動向など、成長を続ける通販・EC業界の情報をわかりやすく伝え、ビジネスのヒントを提供しています。

    このコーナーでは、通販新聞編集部の協力により、毎週発行している「通販新聞」からピックアップした通販・ECのニュースや記事などをお届けしていきます。

    → 年間購読を申し込む(通販新聞のサイト)
    通販新聞の過去記事を読む(通販新聞のサイト)
    → 通販新聞についてもっと詳しく知りたい

    通販新聞

    「安さ納得消費」は減少、こだわり志向の「プレミアム消費」「徹底探索消費」が増加【最新の消費スタイル調査】

    1 year 6ヶ月 ago

    野村総合研究所(NRI)が実施した「生活者1万人アンケート調査」によると、最新の消費動向はこだわり志向が強い「プレミアム消費」「徹底探索消費」スタイルが増加していることがわかった。

    NRIは「生活者1万人アンケート調査」を3年に1度実施しており、今回は通算で10回目。調査実施期間は2024年8月で、全国の満15~79歳の男女1万189人が回答した。

    今年から来年にかけての家庭の収入の見通しについて聞いたところ、「よくなる」という回答は、2024年調査は11%となり、前回調査よりも4ポイント増加。「悪くなる」は2024年調査で30%、前回調査よりも3ポイント減少した。NRIは各企業の賃上げの影響によるものだと考えている。

    今年から来年にかけての景気の見通しを聞いた質問では、「悪くなる」が2024年調査では34%となっており、前回調査の2021年よりも12ポイント減少した。しかし、コロナ禍以前の水準(2018年調査時。「悪くなる」19%)には戻っていない。

    現在の西暦から、次の年にかけての景気の見直し
    現在の西暦から、次の年にかけての景気の見直し

    休日や自由な時間などによくする余暇活動の割合を見ると、これまで拡大してきた「外食・グルメ・食べ歩き」「映画・演劇・美術鑑賞」「カラオケ」などの「街レジャー」は、コロナ禍の2021年に一時減少したが、2024年では大きく回復。国内旅行は2024年調査では回復しているものの、海外旅行の余暇活動の割合は戻っていない。

    街レジャーの内訳(左)と、旅行やテーマパークなどに出かける人の内訳(右)
    街レジャーの内訳(左)と、旅行やテーマパークなどに出かける人の内訳(右)

    NRIは「4つの消費スタイル」を設定。製品にこだわりはなく、購入する際に安さを重視する「安さ納得消費」、自分が気に入った付加価値には対価を払う「プレミアム消費」、多くの情報を収集し、お気に入りを安く買う「徹底探索消費」、購入する際に安さよりも利便性を重視する「利便性消費」に分類し、消費スタイルを調査した。

    消費スタイルの構成比の変化を見ると、「安さ納得消費」は22%に減少し(前回調査は24%)、「プレミアム消費」の割合は25%に増加(同24%)、「徹底探索消費」の割合は12%(同11%)となった。いずれも2024年には増加した。こだわり志向の人が増えていると見られる。

    消費スタイルごとの構成割合の推移
    消費スタイルごとの構成割合の推移

    生成AIについて、全体の認知率が61%だが、実際の利用率は9%にとどまっている。10歳代・20歳代の利用率は20%だが、年代が上がるほど利用率は低くなっている。

    生成AIの認知・利用率(年代別)
    生成AIの認知・利用率(年代別)

    生成AIに対するイメージを聞いたところ、メリットについて、30代歳では「業務効率・生産性を高める」という具体的なメリットを想定する一方、10歳代・20歳代では「暮らしを豊かにする」「よりよい社会をつくる」といった抽象的なメリットをイメージしやすい傾向があった。ネガティブ面では年代が若いほど「人間の仕事を奪う」ことを危惧しており、60歳代・70歳代では「不安」という印象を抱いている人が多い。

    AIに対するイメージ(年代別、複数回答)
    AIに対するイメージ(年代別、複数回答)

    ECを中心に、買い物でもAIによるサポートが見られるようになってきている。「AIと会話しながら買い物をすることに抵抗はない」と考える人は全体では23%、10歳代から30歳代では4割弱。特に70歳代においては、「なるべく人間と会話して買い物したい」が55%となっている。

    AIと会話しながら買い物することに抵抗があるか
    AIと会話しながら買い物することに抵抗があるか

    【調査概要】

    • 調査名:「生活者1万人アンケート調査」(2024年)
    • 実施時期:2024年8月
    • 調査方法:訪問留置法
    • サンプル抽出方法:層化二段無作為抽出法
    • 調査対象:全国の満15~79歳の男女個人
    • 有効回答数:1万189人
    松原 沙甫

    約100万アイテムの在庫保有+1日約10万行の出荷を実現するトラスコ中山の新物流センター「プラネット愛知」とは

    1 year 6ヶ月 ago

    機械工具卸売商社のトラスコ中山は、愛知県北名古屋市に建設中だった同社最大の物流センター「プラネット愛知」の竣工式を2月4日に実施した。「プラネット愛知」は約100万アイテムの在庫保有、1日約10万行の出荷能力を有する。

    「プラネット愛知」外観
    「プラネット愛知」外観

    「プラネット愛知」は2026年7月に稼働予定で、トラスコ中山としては29か所目の物流センター。敷地面積は4万1634平方メートル、延床面積は東京ドーム約2個分に相当する8万8602平方メートルで、倉庫および事務所とも各4階の規模。

    約100万アイテムの在庫保有と、1日約10万行の出荷能力を有する。最先端の物流機器を導入しており、物流センター業界において「最速」「最短」「最良」の納品の実現をめざす。

    1か所で保有できるアイテム数が大幅に増えるため、現在強化中の「ニアワセ+ユーチョク」(荷物詰合わせ+ユーザーへの直送)を強力に推進。全国どこへでも必要な商品を必要なだけ、ユーザーへ直送する即納体制を整え、物流負荷軽減、環境保全に貢献していく。

    「ニアワセ+ユーチョク」は、問屋であるトラスコ中山が販売店(小売業)の先のモノ作り現場のユーザーへ、可能な限り複数の商品を1つの箱にまとめて出荷するサービス。「プラネット愛知」では在庫アイテム数を現在の61万アイテムから約100万アイテム(現在の約2倍)に拡大し、1箱でニアワセできる商品の数を増やすことで、「荷分かれ」による出荷個数増加を抑制していく。

    松原 沙甫

    フィンテックSEO:成功が実証された戦略

    1 year 6ヶ月 ago

    この記事は、2025年1月31日に Siege Media で公開された Ross Hudgens氏 「Fintech SEO: Strategies Proven To Succeed」を翻訳したものです。

    当社の支援してきた中でも、金融領域はSEOの難易度が高い領域です。SEOに注力したサイトが多くひしめく中で、競合に勝つためのポイントはどこにあるのか?Ross Hudgens氏 の語る戦略を見ていきましょう。 – SEO Japan

    フィンテックSEO(※)は、eコマースSEOやSaaS SEO、その他の一般的なSEO戦略とはまったく異なる課題を伴います。フィンテック企業がターゲットとするキーワードの中には、インターネット上で最も競争の激しいものも多く、目立つためには世界水準の戦略が求められます。

    ※FinTech(フィンテック)…金融(Finance)と技術(Technology)を組み合わせた造語

    Siegeは、Mint、Quicken Loans、QuickBooksなど、世界トップクラスのフィンテック企業と連携する機会に恵まれました。これらの経験を通じて、金融市場で繰り返し成果を上げる実証済みのSEO戦略を学びました。

    この記事では、金融分野におけるROIの評価方法、技術的なSEOがそれほど重要でない理由、そして金融関連のリンクを大規模に生成する方法について学びます。

    http://Fintech SEO: Strategies Proven To Succeed

    テクニカルSEOはあまり考慮されない

    金融ウェブサイトは一般的に小規模であり、この分野では、執筆時点で2億6,700万ページがインデックスされているAmazonのような大規模なサイトは見当たりません。そのため、SEOのテクニカルな側面はそれほど目立たず、大きな変化をもたらすことは少ないと言えます。

    Webサイトのページ数が10,000ページ未満の場合(この規模は金融業界では比較的大きい方ですが)、複雑な技術的な問題が発生することはほとんどありません。

    とはいえ、これがテクニカルSEOが全く無視されるべきだという意味ではありません。むしろ、金融業界のSEOは、他の業界とは異なる形態をとる傾向があります。私たちの経験に基づけば、金融企業の一般的なSEOアプローチは次のようになります。

    これは、この分野に存在する SEO の問題のほとんどがページ レベルで発生するためです。各クエリに勝つためには、カスタムで思慮深いコンテンツとユーザー エクスペリエンスの取り組みが必要です。Amazon のような企業では、インフラストラクチャを数千ページに拡張し、クロールバジェットなどを考慮する必要があることが多いため、、小規模な Web サイトで大規模な分析を行うことはほとんどありません。

    フィンテック企業では、SEO マネージャーがほとんどのテクニカルな問題に対処できることが多いですが、そこからは社内外のチームメンバーによるコンテンツやリンクに多大な労力を費やす必要があります。

    獲得の難しさからリンクの価値は高い

    フィンテック業界では、生涯リンク価値が15,000ドルを超えることがよくあります。この水準のリンク価値は、インターネット上でも非常に高いものです。

    これは、金融業界が非常に価値のある分野であり、リンクを獲得するのが非常に難しい業界だからです。

    ファッションやウェディング業界では、オーガニックリンクが自然に多く発生することがありますが、フィンテック業界では、ブランド間で見られる商業的な関連性が影響し、オーガニックリンクが自然に発生することはほとんどありません。

    リンクを依頼する際には、最終的な目標が金銭的な利益を得ることであることが相手に伝わるため、しばしば断られることがあります。そのため、創造性を発揮し、優れたコンテンツを提供することが重要となります。

    テレビやデジタル広告が参入障壁になることも

    奇妙に思えるかもしれませんが、住宅保険自動車保険生命保険といった用語で上位にランクインするのが難しいのと同じように、フィンテック業界ではテレビやデジタル広告が参入障壁となる可能性があります。

    フィンテックSEOの性質上、他の業界で自然に実行できる「ブランド」戦略は、この分野ではおそらく効果的に実行できません。しかし、同じブランド戦略がブランド認知にとって依然として重要であり、実際に発生する少数のオーガニックリンクを促進し、CTR(クリック率)の向上や検索結果の信頼性の向上に寄与し、最終的にはランキングの向上に繋がります。

    そのため、もしあなたのビジネスに何らかの広告戦略が欠けている場合、フィンテックにおけるブランド指標はほぼゼロに近くなる可能性が高いです。結果として、SEOパフォーマンスも悪化する恐れがあります。

    この事実は受け入れがたいかもしれませんが、競争が激しく、利益率の高い業界では、現実的な状況です。私たちは、2語の金融用語で上位表示を目指すクライアントには、長期的に成功するために広告を通じたブランドマーケティング戦略に注力するようアドバイスしています。

    スタートアップの資金調達までのジャーニーを活用してリンクを生成する

    フィンテック業界では、資金調達ラウンドに関するニュースを通じてリンクを生成することが、成功するSEO戦略の重要な柱の一つとなります。インターネットで最も有名なフィンテックコンテンツサイトであるNerdWalletは、IPO(新規公開株)を実施し、その後、収益発表に関するニュースサイクルを繰り返し報道されることで、多くの利益を得ています。

    これらのリンクは非常に権威が高く、一度得られると複製が不可能であり、競争力のあるランキングに上位表示されるために欠かせません。リンクを獲得する難しさを考えると、競争の激しい用語で上位を目指すフィンテック企業が、ブートストラップ(自己資金)だけでそれを達成するのは非常に難しいと言えます。

    このプロセスを活用するためには、隣接市場で資金調達を行った競合他社を探し、そのバックリンクプロファイルで「資金調達」という用語を検索することで、さらに多くのリンクを獲得できます。また、資金調達のストーリーを最大限に活かすために、資金を調達する際には同じ出版物にアプローチして売り込むことが効果的です。

    個人金融ブロガーは避ける

    リンクは非常に価値が高く、獲得が難しいため、リンクを増やすには手動でのアウトリーチが効果的な場合が多いです。しかし、個人金融ブロガーがこの業界で受け入れてくれるとは期待しない方が良いでしょう。彼らに売り込むと、他の誰よりも高額な料金を要求されることがほとんどです。

    そのため、個人金融に特化しない、関連性のある業界でリンク構築戦略を展開することをお勧めします。具体的な例としては、以下のようなものがあります。

    • 全国ニュース
    • ローカルニュース
    • トップファネルランキングによる受動的なリンク生成
    • ウェルネス、健康、特別関心グループ

    共感を呼ぶコンテンツは、しばしばSUCCESモデルに従っています。このモデルは、シンプルで予想外、信頼性が高く、具体的で感情に訴え、ストーリー性があるコンテンツを指します。

    お金に関するトピックの魅力の一つは、それが非常に感情的な話題であることです。これを活かして、業界に合ったデータ主導のコンテンツを作成し、その後、ニュースメディアに売り込むことが可能です。

    価値実現までの時間が短いシミュレーター

    財務的な影響を考慮すると、ほとんどのフィンテック企業にとってシミュレーターの導入は理にかなっています。計算機は競争が激しい用語であることが多いですが、同時にWebサイトの重要な要素でもあります。シミュレーターは、受動的なリンク獲得に最も貢献するツールの一つであり、特にうまく活用できる場合は積極的に取り入れるべきです。

    私たちのマクロ戦略では、価値実現までの時間をできるだけ短縮することに重点を置いています。上のGIFで示されているように、このシミュレーターを使用すると、ユーザーはほぼ瞬時に答えを得ることができます。これを実現するためには、ユーザーの一般的な回答を事前に入力したり、geoIPで場所を推測したりする方法が有効です。

    ユーザーが入力しなければならない回数を最小限に抑えることで、ランキング上位にランクインし、リンクを生成するための優れたエクスペリエンスを提供できる可能性が最大限に高まります。

    クイックアンサーエリアを備えた「What Is」トピックの利点

    金融分野でよく使われるクエリタイプの一つに、「キーワードとは何ですか?」があります。ユーザーは複雑な金融に関する課題を理解しようとしており、このようなクエリを通じて情報を得ようとします。

    Googleが進化する中で、SEO担当者としての私たちの目標は、ユーザーにできるだけ迅速に情報を提供することです。これを最も効果的に行う方法は、スクロールせずに見える範囲、主にサブヘッダーの部分で、簡単な回答を提供することです。

    この戦略を実現するためには、コンテンツ領域のユーザーエクスペリエンス(UX)を再構築する必要がある場合もありますが、長期的なランキングを達成するためには、この方法を強くお勧めします。

    さらに、定義を目立たせることで、他のサイトが自分の投稿でそれを参照する可能性が高まり、最終的には受動的なリンクを増やし、成功に繋がる重要な要素となります。

    YMYLの編集レビュー

    金融業界は「あなたのお金、またはあなたの人生」に深く関わる分野であり、ユーザーがクレジットカードを使用する前にその組織のアドバイスを信頼できることが非常に重要です。

    この点を考慮すると、コンテンツは金融の専門家が執筆するか、少なくとも専門家によるレビューを受けることが強く推奨されます。また、著者と編集者の信頼性をWebサイト上で明確に示し、可能な限りファーストビューで信頼性を確立することが必要です。

    例えば、Bankrateは、編集者に関する情報だけでなく、コンテンツに入る前に投稿のレビュー担当者に関する情報も提供することで、この点をうまく実現しています。これらのレビュー担当者の略歴はマウスオーバーで表示され、詳細を知りたい読者に迅速に信頼感を与える仕組みになっています。

    UX、コンテンツ、リンク = $$$

    要するに、フィンテックSEOとは、ページレベルでコンテンツの品質に投資し、リンク生成にリソースを投入して目標を達成することを意味します。そして、これらすべてを結びつけることで、世界クラスの製品を作り上げることができます。

    その上で、最も競争が激しい用語のいくつかで上位にランクインするためには、何年も費やす覚悟が必要です。例えば、2語の金融用語で上位にランクインするためには、長期的なタイムラインで見ると、4年以上かかる場合があります。それでも、時間をかけて取り組む価値は十分にあります。

    もし、タイムラインを短縮するためのサポートをお求めでしたら、フィンテックに特化したSEO重視のコンテンツマーケティングサービスについて、ぜひお問い合わせください。

    やはりUX、コンテンツ、そして獲得が難しい自然リンクにフォーカスされた内容でした。シミュレーターがコンテンツとしてもリンク獲得の側面でも活路となる点は非常にうなずけます。「とは」に位置するコンテンツおいても、長期的なランキングを達成するためにスクロールせずに見える範囲で、簡潔な回答を提供する重要性を説いています。いわゆる「ゼロクリック対策」にも手を伸ばす必要がありそうですね。 – SEO Japan

    seojapan

    Googleスプレッドシート、GSC、ChatGPT API を使用して SEO分析を自動化する方法

    1 year 6ヶ月 ago

    この記事は、2025年1月30日に Search Engine Land で公開された  Ludwig Makhyan氏「Automate SEO analysis with Google Sheets, GSC & ChatGPT API」を翻訳したものです。

    Google スプレッドシートを使えば、サイト監査の自動化、ページ分析、AIを活用した最適化のためのインサイト生成を一括で行うことができます。

    SEO分析は多くの時間を要しますが、自動化を取り入れることで反復作業を減らし、重要なWebサイトの最適化を迅速に行えるようになります。

    本ガイドでは、Googleスプレッドシート、Google Search Console(GSC)、ChatGPT APIを活用して、カスタムツールを構築し、SEO監査を効率化する方法を詳しく解説します。これにより、AIを活用した最適化のためのインサイト生成を一括で行うことができます。

    このツールでできること

    • GSCデータの取得を自動化し、分析のスピードを向上させる
    • AIを活用して、実用的なSEOの改善提案を生成する

    仕組み

    まず、GSCに接続されているドメインからURLを選択し、ChatGPT APIキーを入力。その後、ページを分析し、AIを活用したSEOインサイトを取得します。すべての作業はGoogleスプレッドシート上で完結します。

    自動化できるSEO分析とは?

    このツールを設定すると、キーワードランキング、参照 URL、最終クロール日、robots.txt のインデックス作成ステータスなど、GSC からの主要な SEO データにすばやくアクセスできるようになります。

    さらに、ChatGPTを活用することで、以下の項目を分析し、改善のための推奨事項を提供します。

    • タイトルタグ
    • メタディスクリプション
    • 見出しタグ
    • コンテンツの最適化
    • キーワードの配置
    • 内部リンクの構造
    • モバイル最適化
    • ローカルSEO対策
    • スキーママークアップ

    このスクリプトはすべてを網羅できるわけではありませんが、数秒で詳細なページ分析情報を提供し、手作業にかかる時間を大幅に削減できます。
    分析結果を確認した上で、どの推奨事項を実施するかを決定できます。

    独自のGSCカスタムツール+スクリプトを設定する8つの手順

    スクリプトの設定は一見複雑に思えるかもしれませんが、各手順を慎重に実行し、スクリプトをコピーして適切に動作することを確認すれば、スムーズに導入できます。

    事前に準備するものは以下です。

    • ChatGPT APIキー
    • Google スプレッドシート
    • Google Search Console(リンクされたプロパティを含む)
    • Google Cloud Consoleのデータプロジェクト

    それでは、このツールを稼働させるための8つのステップを順番に説明していきます。

    ステップ1:ツール用のGoogleスプレッドシートを作成する

    Googleアカウントをお持ちであれば、以下の手順で簡単に作成できます。

    1. Google ドライブを開く
    2. ツールを保存するフォルダーへ移動
    3. 画面の背景を右クリック
    4. [Google スプレッドシート] → [空白のスプレッドシート] を選択

    シート名は自由に設定できますが、今回は「GSC カスタム ツール」と名付けました。

    ステップ2:シートに入力する

    D1 に ChatGPT API キーを貼り付けます。このキーがない場合は、上記のリンクにアクセスして、このツールが機能するために必要なキーを取得してください。

    ここで、両方の列のいくつかの行を結合する必要があります。次の手順に従って、F2 ~ F30 と G2 ~ G30 を個別に結合します。

    • 結合する行を選択します。
    • [書式] > [セルの結合] > [垂直方向に結合]に移動します。

    結合する必要がある F 行と G 行に対してこの手順を繰り返します。

    ステップ3: Google Cloudプロジェクトを作成する

    ツール用の Google Cloud Console データ プロジェクトを作成します。

    セットアップが完了したら、「GSC Custom Tool」という名前の新しいプロジェクトを作成します。

    Select Project > New Project に移動し、スクリーンショットの例と同様に情報を入力します。

    プロジェクトの名前を設定したら、Create をクリックします。

    次に、Google Search Console API をプロジェクトに接続します。

    検索バーに「Google Search Console API」と入力して選択し、次の画面で「有効にする」をクリックします。

    まだやるべきことはたくさんありますが、近いうちにこのプロジェクトを再検討する予定です。

    さらに詳しく: SEO タスクを自動化する 5 つの Python スクリプト

    ステップ4: アクセスライセンス情報を追加する

    さらに調整するには、Google Cloud Console に戻ります。 

    画面の左側にある「Credentials」をクリックします。

    画面上部の「+CREATE CREDENTIALS」をクリックし、 OAuth Client ID を選択します。 

    「Configure Consent Screen」に移動し、「External」を選択します。画面を作成し、以下の情報を入力します。

    • アプリ名
    • GSC アカウントにリンクされたサポートメール
    • 開発者の連絡先情報

    入力後、「Save and continue」をクリックし、次の画面(「Add or Remove Scopes」)に進みます。

    「Google Search Console API」のスコープを選択し、更新します。その後、「Save and continue」をクリックします。

    アクセス権を付与したいユーザーを追加し、「Save and continue」をクリックします。

    ステップ 5: GSC データ用の Google Cloud プロジェクトに変更する

    ハンバーガーアイコンをクリックし、Cloud overview > Dashboard に移動します。

    ページに表示されている プロジェクト番号 をコピーします。

    プロジェクト番号に移動し、それを選択して CTRL + C でコピーします。

    Google スプレッドシートのファイルを開き、Project Settings と書かれた歯車アイコンをクリックします。

    テキストボックスにプロジェクト番号を貼り付け、Set project をクリックします。

    ステップ6: Google Apps Scriptに名前を付ける

    スクリプトの管理をしやすくするために、名前を追加します。

    これを行うには、Project History に移動し、画面上部にある Untitled project をクリックします。

    「GSC Custom Tool」と入力して、プロジェクト名を設定します。

    ステップ7: マニフェストファイルを編集する

    新しく作成した Google スプレッドシート ファイルに Apps Script を統合します。

    これを行うには、ファイルを開き、Extensions > Apps Script に移動します。

    次に、以下のコードをコピー&ペーストします。

    (コードウィンドウ内のコードを選択し、CTRL + C を押してコピーします。その後、Apps Script に戻り、CTRL + V を押してコードを貼り付けます。)

    {
      “timeZone”: “America/New_York”,
      “dependencies”: {},
      “exceptionLogging”: “STACKDRIVER”,
      “oauthScopes”: [
        “https://www.googleapis.com/auth/webmasters”,
        “https://www.googleapis.com/auth/webmasters.readonly”,
        “https://www.googleapis.com/auth/script.external_request”,
        “https://www.googleapis.com/auth/spreadsheets”,
        “https://www.googleapis.com/auth/spreadsheets.currentonly”
      ],
      “runtimeVersion”: “V8”
    }

    ステップ8: アプリスクリプトを作成する

    すべてを貼り付けたら、Code.js ファイルに移動して次のコードを貼り付けます。

    // Store the OAuth token and logs in script properties
    const scriptProperties = PropertiesService.getScriptProperties();
    const OPENAI_URL = “https://api.openai.com/v1/chat/completions”;
    const SYSTEM_MESSAGE = { role: “system”, content: “You are a helpful SEO expert.” };


    function log(message) {
      Logger.log(message); // Regular Apps Script logging
      const logs = scriptProperties.getProperty(‘customLogs’) || ”;
      scriptProperties.setProperty(‘customLogs’, logs + ‘\n’ + message); // Append message to logs
    }


    function resetLogs() {
      scriptProperties.deleteProperty(‘customLogs’); // Clear logs for a new execution
    }


    function getLogs() {
      return scriptProperties.getProperty(‘customLogs’) || ‘No logs available.’;
    }


    function fetchOAuthToken() {
      let token = scriptProperties.getProperty(‘oauthToken’);
      if (!token) {
        token = ScriptApp.getOAuthToken();
        scriptProperties.setProperty(‘oauthToken’, token);
        log(‘OAuth token fetched and stored.’);
      }
      return token;
    }


    function onOpen() {
      const ui = SpreadsheetApp.getUi();
      ui.createMenu(‘Search Console’)
        .addItem(‘Authorize GSC’, ‘promptReauthorization’)
        .addItem(‘Fetch GSC Properties’, ‘fetchGSCProperties’)
        .addItem(‘Inspect URL’, ‘inspectUrl’) // Add the Inspect URL button
        .addItem(‘AI Analyze’, ‘aiAnalyze’) // Add the AI Analyze button
        .addToUi();
    }


    function promptReauthorization() {
      const ui = SpreadsheetApp.getUi();
      const response = ui.alert(
        ‘Re-authorize Script’,
        ‘Re-authorizing will revoke current permissions and require you to authorize again. Do you want to continue?’,
        ui.ButtonSet.YES_NO
      );


      if (response === ui.Button.YES) {
        try {
          scriptProperties.deleteProperty(‘oauthToken’); // Clear old token
          const token = fetchOAuthToken(); // Fetch and store new token
          log(“OAuth Token: ” + token);
          ui.alert(‘Authorization successful. No further action is required.’);
        } catch (e) {
          ui.alert(‘Authorization failed: ‘ + e.toString());
        }
      } else {
        ui.alert(‘Re-authorization canceled.’);
      }
    }


    function fetchGSCProperties() {
      resetLogs();
      const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      const oauthToken = fetchOAuthToken();


      const sites = getSitesListFromGSC(oauthToken);


      if (!sites || sites.length === 0) {
        SpreadsheetApp.getUi().alert(‘No GSC properties found. Please ensure you have access to GSC properties.’);
        return;
      }


      const siteUrls = [‘Select a property’].concat(
        sites.map(site => site.siteUrl).sort()
      );


      sheet.getRange(‘A1’).setValue(‘Select GSC property’).setFontWeight(‘bold’);
      sheet.getRange(‘B1’).setDataValidation(
        SpreadsheetApp.newDataValidation()
          .requireValueInList(siteUrls, true)
          .build()
      );
      sheet.getRange(‘B1’).setValue(‘Select a property’).setFontWeight(‘bold’);
      sheet.setColumnWidth(1, 150);
      sheet.setColumnWidth(2, 350);
    }


    let isProcessing = false; // Global flag to prevent recursive triggering


    function onEdit(e) {
      if (isProcessing) return; // Prevent re-entry during execution
      isProcessing = true; // Set flag to true


      try {
        resetLogs();
        const sheet = e.source.getActiveSheet();
        const range = e.range;


        // Always clear A3:D30 on edits to B1 or B2
        if (range.getA1Notation() === ‘B1’ || range.getA1Notation() === ‘B2’) {
          sheet.getRange(‘A3:D30’).clearContent();
          sheet.getRange(‘F1:G30’).clearContent();


          if (range.getA1Notation() === ‘B1’) {
            const selectedProperty = range.getValue();


            // Clear A2 and set loading state
            sheet.getRange(‘A2’).setValue(‘Loading results…’).setFontWeight(‘bold’);
            sheet.getRange(‘B2’).clearContent();


            if (selectedProperty === ‘Select a property’) {
              sheet.getRange(‘A2’).clearContent();
              sheet.getRange(‘B2’).clearContent();
              return;
            }


            const oauthToken = fetchOAuthToken();
            const urls = getUrlsForProperty(selectedProperty, oauthToken);


            if (!urls || urls.length === 0) {
              sheet.getRange(‘A2’).setValue(‘No URLs found’).setFontWeight(‘bold’);
              sheet.getRange(‘B2’).clearContent();
              log(`No URLs found for property ${selectedProperty}`);
              return;
            }


            sheet.getRange(‘A2’).setValue(‘Select a URL’).setFontWeight(‘bold’);
            sheet.getRange(‘B2’).setDataValidation(
              SpreadsheetApp.newDataValidation()
                .requireValueInList([‘Select a URL’].concat(urls), true)
                .build()
            );
            sheet.getRange(‘B2’).setValue(‘Select a URL’).setFontWeight(‘bold’);
          }


          if (range.getA1Notation() === ‘B2’) {
            const selectedProperty = sheet.getRange(‘B1’).getValue();
            const selectedUrl = range.getValue();


            if (selectedUrl === ‘Select a URL’) {
              return;
            }


            sheet.getRange(‘A3’).setValue(‘Loading keywords…’).setFontWeight(‘bold’);


            const oauthToken = fetchOAuthToken();
            const keywords = getTopKeywordsForUrl(selectedProperty, selectedUrl, oauthToken);


            if (!keywords || keywords.length === 0) {
              sheet.getRange(‘A3’).setValue(‘No keywords found’).setFontWeight(‘bold’);
              log(`No keywords found for URL ${selectedUrl}`);
              return;
            }


            // Populate keywords and metrics
            sheet.getRange(‘A3:D12’).clearContent(); // Clear any loading message
            keywords.forEach((keyword, index) => {
              if (index < 10) {
                sheet.getRange(`A${3 + index}`).setValue(keyword.query).setFontWeight(‘bold’);
                sheet.getRange(`B${3 + index}`).setValue(keyword.clicks);
                sheet.getRange(`C${3 + index}`).setValue(keyword.impressions);
                sheet.getRange(`D${3 + index}`).setValue(keyword.ctr);
              }
            });
          }
        }
      } catch (error) {
        log(`Error in onEdit: ${error}`);
      } finally {
        isProcessing = false; // Reset the flag after execution
      }
    }


    function getApiRequestDetails(selectedProperty) {
      const payload = {
        startDate: getThreeMonthsAgo(),
        endDate: getToday(),
        dimensions: [“page”],
        rowLimit: 100,
        orderBy: [{ fieldName: “clicks”, sortOrder: “DESCENDING” }]
      };


      const apiUrl = `https://www.googleapis.com/webmasters/v3/sites/${encodeURIComponent(selectedProperty)}/searchAnalytics/query`;
      return { url: apiUrl, payload: payload };
    }


    function getSitesListFromGSC(oauthToken) {
      try {
        const url = ‘https://www.googleapis.com/webmasters/v3/sites’;


        const headers = {
          ‘Authorization’: ‘Bearer ‘ + oauthToken,
          ‘Content-Type’: ‘application/json’
        };


        const options = {
          method: ‘get’,
          headers: headers,
          muteHttpExceptions: true
        };


        const response = UrlFetchApp.fetch(url, options);
        log(`Response Code: ${response.getResponseCode()}`);
        log(`Response Content: ${response.getContentText()}`);


        if (response.getResponseCode() === 200) {
          const json = JSON.parse(response.getContentText());
          return json.siteEntry || [];
        } else {
          throw new Error(`Error fetching data: ${response.getResponseCode()} – ${response.getContentText()}`);
        }
      } catch (e) {
        log(`Error: ${e.toString()}`);
        return [];
      }
    }


    function getUrlsForProperty(property, oauthToken) {
      try {
        const apiUrl = `https://www.googleapis.com/webmasters/v3/sites/${encodeURIComponent(property)}/searchAnalytics/query`;


        log(`API URL: ${apiUrl}`);
        log(`OAuth Token: ${oauthToken}`);


        const payload = {
          startDate: getThreeMonthsAgo(),
          endDate: getToday(),
          dimensions: [“page”],
          rowLimit: 100,
          orderBy: [{ fieldName: “clicks”, sortOrder: “DESCENDING” }]
        };


        log(`Payload: ${JSON.stringify(payload)}`);


        const headers = {
          Authorization: `Bearer ${oauthToken}`,
          “Content-Type”: “application/json”
        };


        const options = {
          method: “post”,
          contentType: “application/json”,
          headers: headers,
          payload: JSON.stringify(payload),
          muteHttpExceptions: true
        };


        const response = UrlFetchApp.fetch(apiUrl, options);


        log(`Response Code: ${response.getResponseCode()}`);
        log(`Response: ${response.getContentText()}`);


        if (response.getResponseCode() === 200) {
          const json = JSON.parse(response.getContentText());
          return json.rows ? json.rows.map(row => row.keys[0]) : [];
        } else {
          throw new Error(`Failed to fetch data: ${response.getResponseCode()} – ${response.getContentText()}`);
        }
      } catch (e) {
        log(`Error: ${e.toString()}`);
        return [];
      }
    }


    function getTopKeywordsForUrl(property, url, oauthToken) {
      try {
        const apiUrl = `https://www.googleapis.com/webmasters/v3/sites/${encodeURIComponent(property)}/searchAnalytics/query`;


        log(`API URL: ${apiUrl}`);
        log(`OAuth Token: ${oauthToken}`);


        const payload = {
          startDate: getThreeMonthsAgo(),
          endDate: getToday(),
          dimensions: [“query”],
          dimensionFilterGroups: [
            {
              filters: [
                {
                  dimension: “page”,
                  operator: “equals”,
                  expression: url
                }
              ]
            }
          ],
          rowLimit: 10,
          orderBy: [{ fieldName: “clicks”, sortOrder: “DESCENDING” }]
        };


        log(`Payload: ${JSON.stringify(payload)}`);


        const headers = {
          Authorization: `Bearer ${oauthToken}`,
          “Content-Type”: “application/json”
        };


        const options = {
          method: “post”,
          contentType: “application/json”,
          headers: headers,
          payload: JSON.stringify(payload),
          muteHttpExceptions: true
        };


        const response = UrlFetchApp.fetch(apiUrl, options);
        log(`Response Code: ${response.getResponseCode()}`);
        log(`Response: ${response.getContentText()}`);


        if (response.getResponseCode() === 200) {
          const json = JSON.parse(response.getContentText());
          return json.rows ? json.rows.map(row => ({
            query: row.keys[0],
            clicks: row.clicks,
            impressions: row.impressions,
            ctr: row.ctr
          })) : [];
        } else {
          throw new Error(`Failed to fetch data: ${response.getResponseCode()} – ${response.getContentText()}`);
        }
      } catch (e) {
        log(`Error: ${e.toString()}`);
        return [];
      }
    }


    function getToday() {
      const today = new Date();
      return today.toISOString().split(“T”)[0];
    }


    function getThreeMonthsAgo() {
      const date = new Date();
      date.setMonth(date.getMonth() – 3);
      return date.toISOString().split(“T”)[0];
    }


    function inspectUrl() {
      const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      const url = sheet.getRange(‘B2’).getValue();
      const property = sheet.getRange(‘B1’).getValue();


      // Clear previous inspection results in A15:D30
      sheet.getRange(‘A15:D30’).clearContent();
      sheet.getRange(‘A15’).setValue(‘Inspecting…’).setFontWeight(‘bold’);


      if (!url || url === ‘Select a URL’) {
        SpreadsheetApp.getUi().alert(‘Please select a valid URL in cell B2 before inspecting.’);
        sheet.getRange(‘A15’).setValue(‘No URL selected’).setFontWeight(‘bold’);
        return;
      }


      const oauthToken = fetchOAuthToken();


      try {
        const result = callUrlInspectionApi(property, url, oauthToken);


        // Extract fields from the response
        const indexStatus = result.indexStatusResult || {};
        const mobileUsability = result.mobileUsabilityResult || {};
        const richResults = result.richResultsInfo || {};
        const referringUrls = indexStatus.referringUrls?.join(‘, ‘) || ‘None’;


        // Populate inspection results in the sheet
        sheet.getRange(‘A15’).setValue(`Inspection Results`).setFontWeight(‘bold’);
        sheet.getRange(‘A16’).setValue(`URL:`).setFontWeight(‘bold’);
        sheet.getRange(‘B16’).setValue(url);


        sheet.getRange(‘A17’).setValue(`Coverage:`).setFontWeight(‘bold’);
        sheet.getRange(‘B17’).setValue(indexStatus.coverageState || ‘Unknown’);


        sheet.getRange(‘A18’).setValue(`Robots.txt:`).setFontWeight(‘bold’);
        sheet.getRange(‘B18’).setValue(indexStatus.robotsTxtState || ‘Unknown’);


        sheet.getRange(‘A19’).setValue(`Indexing State:`).setFontWeight(‘bold’);
        sheet.getRange(‘B19’).setValue(indexStatus.indexingState || ‘Unknown’);


        sheet.getRange(‘A20’).setValue(`Last Crawled:`).setFontWeight(‘bold’);
        sheet.getRange(‘B20’).setValue(indexStatus.lastCrawlTime || ‘Not Available’);


        sheet.getRange(‘A21’).setValue(`Google Canonical:`).setFontWeight(‘bold’);
        sheet.getRange(‘B21’).setValue(indexStatus.googleCanonical || ‘Unknown’);


        sheet.getRange(‘A22’).setValue(`User Canonical:`).setFontWeight(‘bold’);
        sheet.getRange(‘B22’).setValue(indexStatus.userCanonical || ‘Unknown’);


        sheet.getRange(‘A23’).setValue(`Mobile Usability:`).setFontWeight(‘bold’);
        sheet.getRange(‘B23’).setValue(mobileUsability.verdict || ‘Unknown’);


        sheet.getRange(‘A24’).setValue(`Rich Results Eligibility:`).setFontWeight(‘bold’);
        sheet.getRange(‘B24’).setValue(richResults.verdict || ‘Unknown’);


        sheet.getRange(‘A25’).setValue(`Referring URLs:`).setFontWeight(‘bold’);
        sheet.getRange(‘B25’).setValue(referringUrls);


        // Log and alert full response for debugging
        const fullResponse = JSON.stringify(result, null, 2);
        log(`Full Inspection Result: ${fullResponse}`);
        //SpreadsheetApp.getUi().alert(`Inspection Completed. Full Response:\n\n${fullResponse}`);
      } catch (error) {
        sheet.getRange(‘A15’).setValue(‘Inspection Failed’).setFontWeight(‘bold’);
        log(`Error inspecting URL: ${error.message}`);
        SpreadsheetApp.getUi().alert(`Error inspecting URL: ${error.message}\n\nLogs:\n${getLogs()}`);
      }
    }


    function callUrlInspectionApi(property, url, oauthToken) {
      const apiUrl = ‘https://searchconsole.googleapis.com/v1/urlInspection/index:inspect’;


      const payload = {
        siteUrl: property,
        inspectionUrl: url,
        languageCode: ‘en-US’
      };


      const headers = {
        Authorization: `Bearer ${oauthToken}`,
        ‘Content-Type’: ‘application/json’
      };


      const options = {
        method: ‘post’,
        contentType: ‘application/json’,
        headers: headers,
        payload: JSON.stringify(payload),
        muteHttpExceptions: true
      };


      log(`API URL: ${apiUrl}`);
      log(`Payload: ${JSON.stringify(payload)}`);


      try {
        const response = UrlFetchApp.fetch(apiUrl, options);
        const responseCode = response.getResponseCode();
        const responseText = response.getContentText();


        log(`Response Code: ${responseCode}`);
        log(`Response Content: ${responseText}`);


        if (responseCode === 200) {
          const jsonResponse = JSON.parse(responseText);


          if (jsonResponse && jsonResponse.inspectionResult) {
            return jsonResponse.inspectionResult;
          } else {
            log(`Unexpected API Response Structure: ${responseText}`);
            throw new Error(‘Unexpected API response format. “inspectionResult” field is missing.’);
          }
        } else {
          log(`Failed API Call: ${responseText}`);
          throw new Error(`Failed to inspect URL. Response Code: ${responseCode}. Response: ${responseText}`);
        }
      } catch (error) {
        log(`Error during API call: ${error}`);
        throw new Error(`Error inspecting URL: ${error.message}`);
      }
    }


    function callChatGPT(prompt, temperature = 0.9, maxTokens = 800, model = “gpt-3.5-turbo”) {
      const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      const secretKey = sheet.getRange(‘D1’).getValue().trim(); // Retrieve the OpenAI API key from D1


      if (!secretKey) {
        throw new Error(“API Key is missing in cell D1. Please provide a valid OpenAI API key.”);
      }


      const payload = {
        model: model,
        messages: [
          SYSTEM_MESSAGE,
          { role: “user”, content: prompt }
        ],
        temperature: temperature,
        max_tokens: maxTokens
      };


      const options = {
        method: “POST”,
        headers: {
          “Content-Type”: “application/json”,
          “Authorization”: “Bearer ” + secretKey
        },
        payload: JSON.stringify(payload)
      };


      try {
        const response = UrlFetchApp.fetch(OPENAI_URL, options);
        const responseData = JSON.parse(response.getContentText());


        if (responseData.choices && responseData.choices[0] && responseData.choices[0].message) {
          return responseData.choices[0].message.content.trim();
        } else {
          log(“Unexpected response format from OpenAI: ” + JSON.stringify(responseData));
          return “Sorry, I couldn’t process the request.”;
        }
      } catch (error) {
        log(“Error calling OpenAI API: ” + error);
        return “Sorry, there was an error processing your request.”;
      }
    }


    function aiAnalyze() {
      const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      const url = sheet.getRange(‘B2’).getValue();
      const keywords = sheet.getRange(‘A3:A12’).getValues().flat().filter(Boolean); // Get non-empty keywords
      const inspectionData = sheet.getRange(‘A16:B20’).getValues();


      // Validate input fields
      if (!url || keywords.length === 0 || inspectionData.some(row => row.length < 2 || !row[0].trim() || !row[1].trim())) {
        SpreadsheetApp.getUi().alert(“Ensure the following are filled before running AI Analyze:\n- URL in B2\n- Keywords in A3:A12\n- Inspection data in A16:B20”);
        return;
      }


      // Prepare the prompt for ChatGPT
      const prompt = `
        Analyze this URL: ${url}
        Also the view-source version from: ${url}
        against these keywords: ${keywords.join(“, “)}
        Considering the URL inspection data from Google Search Console:
        ${inspectionData.map(row => `${row[0]}: ${row[1]}`).join(“\n”)}
        Suggest a short list of specific recommendations on how I can improve the page’s SEO. Make sure the recommendations include details such as change this to that, or add something, etc… Be concrete with SEO recommendations.
      `;


      // Display the prompt in G1
      sheet.getRange(‘G1’).setValue(“Prompt Sent to ChatGPT”).setFontWeight(“bold”);
      sheet.getRange(‘G2:G30’).clearContent(); // Clear previous content in column G
      sheet.getRange(‘G2:G30’).merge(); // Merge cells G2:G30
      sheet.getRange(‘G2’).setValue(prompt).setVerticalAlignment(“top”); // Add the prompt and align to top
      sheet.setColumnWidth(7, 400); // Set column G width to 400px


      // Call ChatGPT API
      const analysisResult = callChatGPT(prompt);


      // Display the result in the spreadsheet (Column F)
      sheet.getRange(‘F1’).setValue(“AI Analysis Result”).setFontWeight(“bold”);
      sheet.getRange(‘F2:F30’).clearContent(); // Clear previous content
      sheet.getRange(‘F2:F30’).merge(); // Merge the cells
      sheet.getRange(‘F2’).setValue(analysisResult).setVerticalAlignment(“top”); // Add the AI result and align to top
      sheet.setColumnWidth(6, 400); // Set column F width to 400px


      // Log the response
      log(“AI Analysis Completed: ” + analysisResult);
    }

    https://script.google.com/home/projects/12hdeVPtEQBTRuCUUkgzbMx6jKrj9ztgoZ2P4zadLAo0ofHBQpfiLqeYB/edit

    完了したら、シートに戻って更新し、新しいSearch Console > Fetch GSC Properties を使用します。

    使用しているアカウントを選択し、最終的に使用する予定のアプリを選択するように求められるまで、指示に従います。

    すべてがうまくいけば、それをまとめ、新しいスクリプトを使用して最初の SEO 分析を実行するという楽しい部分に進むことができます。

    スプレッドシート、GSC、ChatGPTツールを組み合わせる

    これまで多くのことを行ってきましたが、ツールが実際に動作する様子を見てみましょう。仕組みは次のとおりです。 

    • Search Console > Authorize GSC に移動します
      • GSC に接続されているアカウントを使用していることを確認してください。異なるアカウントでは機能しません。
    • Search Console > Fetch GSC properties に移動します。
      • スプレッドシートの B1 セルに Select GSC property が表示されるようになります。
      • 分析したいドメインを選択し、B1 の URL を選択します。
    • Search Console > Inspect URL に移動します。
      • スプレッドシートに Inspection Results が表示され、カバレッジ、最終クロール日などの情報が確認できます。
    • 最後に、次の操作を実行します
      • Search Console > AI Analyze に移動します。
      • スプレッドシートの AI Analysis Result に結果が表示され、ページの主要要素と改善のための具体的なステップが提示されます。
    • 注意点
      • 指示をそのまま盲目的に従うのではなく、具体的な改善策として活用してください。
    • カスタムデータの追加
      • ChatGPT のプロンプトを変更 したい場合は、スプレッドシートの G2 セル(”Prompt Sent to ChatGPT” の下)を編集してください。

    これで SEO 分析を効率化するスクリプトが完成!

    GSC、Google スプレッドシート、ChatGPT を組み合わせることで、ページの最適化により多くの時間を費やせるようになります。

    スクリプトを試しながら、自分に合った使い方を見つけてください!

    詳しく見る: SEO に使用すべき 15 個の AI ツール

    seojapan

    利用規約改定のおしらせ

    1 year 6ヶ月 ago

    平素よりネットショップ担当者フォーラムをご利用いただき、誠にありがとうございます。

    2025年3月1日付けで、ネットショップ担当者フォーラムの利用規約を改定いたしますのでおしらせいたします。

    変更内容:

    改定予定日:

    • 2025年3月1日

    引き続き、ネットショップ担当者フォーラムをよろしくお願いいたします。

    安田 英久

    インターファクトリー、EC支援事業のオンサイトと業務提携契約を締結

    1 year 6ヶ月 ago

    インターファクトリーは、EC事業立ち上げから販促・受注CSの運用を支援するオンサイトと業務提携契約を締結した。

    オンサイトとの業務提携により、インターファクトリーの「EBISU GROWTH」利用企業の成長に寄与する
    オンサイトとの業務提携により、インターファクトリーの「EBISU GROWTH」利用企業の成長に寄与する

    EC事業を包括的に支援する両社の強みを生かし、自社とモールの横断支援やバックオフィスの運用代行、効率改善、商品企画開発やEC事業立ち上げ時における効果的なソリューションを提供。消費者動向やECモールの変化にも迅速に対応し、EC事業者の持続的な成長と発展を支援する。

    インターファクトリーのコンサルティングサービス「EBISU GROWTH(エビスグロース)」を利用している事業者は、自社で保有する大量の受注データやレビューを多角的に分析し、プロモーション予算の最適化、独自のマーケティングメソッド、自社商品とモールを効率よく結び付けるCRMモデルなど、独自の勝ちパターンを実情に合わせて強化できるようになる。

    このほか、在庫連携、基幹システム連携、複数倉庫の自動振り分けなど、バックエンドから大幅な業務の効率化が見込めるとしている。

    松原 沙甫

    【北~西日本の大雪】ヤマト運輸、佐川急便、日本郵便の荷物の配送+預かり状況まとめ(2/5時点)

    1 year 6ヶ月 ago

    北日本から西日本の広範囲で続く大雪により、ヤマト運輸、佐川急便、日本郵便の荷物の配送遅延、預かり停止など影響が出ている。

    全国各地で高速道路の通行止めなどの交通規制や除雪状況、荒天によるフェリー、航空貨物、貨物列車の欠航・遅延などの交通機関への影響で、全国的な配送遅延、一部地域では荷物の預かり停止などが発生している。

    ヤマト運輸(2月5日時点)

    次の地域では荷物の預かりと配達業務、全国からの荷物の受け付けを停止している。

    • 北海道の帯広市の一部(大通南、西十六条南、西一条南)、河東郡音更町(宝来本通)
    • 石川県の白山市の一部(阿手町、尾添、河内町内尾、河内町金間、河内町下折、桑島、白峰、中宮、深瀬)
    • 愛媛県の宇和島市・北宇和郡(鬼北町、松野町)・西予市・西宇和郡伊方町・南宇和郡愛南町・八幡浜市

    全国から北海道全域(荷受け停止地域を除く)、岐阜県の大野郡(白川村)・高山市・飛騨市、島根県隠岐郡(海士町、隠岐の島町、知夫村、西ノ島町)、大分県中津市を発着する荷物の配送に大幅な遅れが生じているという。

    北海道、信越、北陸、中部、関西、中国、四国、九州地方から全国に配送する荷物、全国から北海道、信越、北陸、中部、関西、中国、四国、九州地方に送る荷物に遅れが生じる可能性がある。

    また、安全上の観点から夜間集配業務を中止している地域もある。熊本県の一部(水俣市・人吉市・葦北郡・球磨郡・天草市(河浦町・天草町大江向・河浦町・二浦町・深海町・魚貫町・牛深町・久玉町)では16時、長崎県の一部(長崎市・西彼杵郡(時津町、長与町))は18時に終了している。

    佐川急便(2月5日時点)

    全国的に荷物の配送に遅れが生じる可能性があるとアナウンス。次の地域では荷物の預かり、配送に遅れが生じている。

    • 全国 ⇔ 北海道(全域)、富山県(富山市・高岡市・射水市・氷見市・黒部市・魚津市・滑川市・南砺市・砺波市・中新川郡・下新川郡)、石川県(金沢市・小松市・加賀市・白山市・能美市・野々市市・能美郡)、福井県(大野市・敦賀市・小浜市・三方郡・大飯郡・三方上中郡若狭町)、徳島県(阿波市・吉野川市・美馬市・美馬郡・名西郡神山町・名東郡佐那河内村)、愛媛県(大洲市・八幡浜市・西予市・宇和島市・西宇和郡・北宇和郡・喜多郡)、熊本県(全域)、宮崎県(全域)、鹿児島県(全域)、沖縄県(全域)

    なお、全国からこの地域への配送については、遅延了承の上、荷物を預かっているという。

    日本郵便(2月5日時点)

    北海道の道東を宛先とする「ゆうパック」(保冷扱い含む)、ゆうパケット(クリックポストを含む)、ゆうメールの引き受けを停止している。引受停止期間は2月5日から当面の間という。

    北海道、愛媛県の一部(八幡浜市、西宇和郡伊方町、西予市、宇和島市、北宇和郡(鬼北町、松野町)、南宇和郡愛南町)で荷物の引き受け、または配達となる「ゆうパック」などは大幅な遅延が見込まれるという。

    また、東北、信越、北陸、近畿、中国、四国(上記地域を除く)、九州地方で引き受け、または配達となる「ゆうパック」などは遅延が見込まれるとしている。

    瀧川 正実

    大塚商会のオフィス用品通販「たのめーる」事業、売上高が2000億円を突破

    1 year 6ヶ月 ago

    大塚商会が発表した2024年12月期連結決算によると、オフィス通販事業「たのめーる」の売上高は前期比5.8%増の2096億8600万円だった。金額ベースでは前期比115億5200万円の増加となった。

    「たのめーる」ほか大塚商会の重点戦略の事業の売上高(画像は大塚商会の2024年通期決算説明資料から編集部がキャプチャ)
    「たのめーる」ほか大塚商会の重点戦略の事業の売上高(画像は大塚商会の2024年通期決算説明資料から編集部がキャプチャ)

    第4四半期(2024年10-12月期)の売上高は、前年同期比6.0%増の547億1300万円となっている。2024年末時点の「たのめーる」登録口座数は212万2708口座で、2023年末と比べ8万6316口座の増加となった。

    「たのめーる」の年次推移(画像は大塚商会の2024年通期決算説明資料から編集部がキャプチャ)
    「たのめーる」の年次推移(画像は大塚商会の2024年通期決算説明資料から編集部がキャプチャ)

    大塚商会の「たのめーる」とは?

    「たのめーる」は、オフィス用品の法人向け通販サービス。約200万点の商品を常時展開し、祝日を除く月曜から金曜の朝11時までの注文は顧客に当日届ける(一部地域を除く)。生活用品、家電、介護用品も取り扱う。

    大塚商会が手がける通販サービス「たのめーる」(画像は大塚商会のコーポレートサイトから編集部がキャプチャ)
    大塚商会が手がける通販サービス「たのめーる」(画像は大塚商会のコーポレートサイトから編集部がキャプチャ)

    1回の注文金額が合計200円(税込)以上で送料は大塚商会が負担。また、同じ配送先への同日中の注文の場合、2回目以降の配達は注文金額にかかわらず送料は大塚商会の負担で届ける。「たのめーる」の会員登録や年会費は無料。

    大塚商会は「たのめーる」のほか、購買業務を支える機能を付加した「MAたのめーる」、介護関連用品を提供し、個人でも法人でも利用できる「ケアたのめーる」、「たのめーる」を個人でも利用できる「ぱーそなるたのめーる」を展開している。

    このほか、「たのめーる」や法人顧客の仕入れ先企業と連携できるクラウドサービス「たのめーるプラス」も提供している。

    松原 沙甫

    ユーザーの「欲しい」を引き出す対話型コマース、商品レコメンド+バーチャル試着、AIを活用したペルソナ作成――電通デジタルのプロジェクト「Commerce AI Lab.」とは

    1 year 6ヶ月 ago
    AIを活用しEC事業者の支援と顧客への最適な購買体験を創出するプロジェクト「Commerce AI Lab.」ではどのような取り組みを行っているのだろうか

    電通デジタルが2024年9月から本格的に始動したプロジェクト「Commerce AI Lab.(コマースエーアイラボ)」。AIを活用したEC事業者の業務効率化やサポート、顧客1人ひとりに最適な購買体験の創出と新たな価値創造を目的としている。ECでのAI活用に注目が集まるなか、電通デジタルはどのような取り組みを進めているのか。プロジェクト担当者に施策内容や今後の展望を取材した。(人物写真および部署名・役職名は、2024年9月25日に実施した「コマース支援事業におけるAI活用プロジェクトに関する説明会」時点)

    電通デジタルが持つ「企画実装力」「グループシナジー」「多様な経験を持つメンバー」を生かす

    電通デジタルでは、実店舗とECを統合した企業のコマース全体の戦略設計、制作、運用や、購買データを活用した顧客体験の向上を支援している。また、AI事業ではクライアント企業のマーケティング戦略において、AIを活用して売り上げや顧客エンゲージメント向上、ロイヤルティ強化を支援するソリューションブランド「∞AI(ムゲンエーアイ)」などを提供する。

    「Commerce AI Lab.」はこれらの強みを掛け合わせた複数の取り組みを通じて、EC担当者の業務を効率的かつ迅速なサポート、顧客1人ひとりに沿った最適な購買体験の創出、新たな価値創造の提供を目的とするプロジェクト。電通デジタルの永山悟氏(電通デジタル コマースマーケティング部門 部門長)はこのプロジェクト発足について次のように話す。

    AI活用がゴールではない。事業においてAIを活用することで、顧客にどのような体験価値を提供できるか、EC担当者にとってより有益な活用ができているかを電通デジタルのメンバーが考えていく。これによって「社会に新しい価値を実装していく」というスタンスでこのプロジェクトを発足した。(永山氏)

    電通デジタル コマースマーケティング部門 部門長の永山悟氏
    電通デジタル コマースマーケティング部門 部門長の永山悟氏

    プロジェクト実現に向けて、電通デジタルが持つ3つの強みを生かしている。

    1つ目は「購買起点のCXの企画実装力」。近年、購買のデジタル化が進み、実店舗、自社EC、モールECそれぞれに関するデータを収集できるようになり、「どのようなユーザーが購買してくれたのか」「なぜ購入してくれたのか」「顧客にとって商品はどのような価値を持っているのか」といったことを可視化できるようになった。

    ユーザー像が見えてくることで、「類似するユーザーにとっても、事業者の商品・サービスに価値があるのではないか」と推測することが可能。こうしたデータ活用・分析から生活者考察、施策企画などを行い、購買を起点としたエクスペリエンス向上につなげられるという。

    電通デジタルの強み①「購買起点のCXの企画実装力」
    電通デジタルの強み①「購買起点のCXの企画実装力」

    2つ目が「グループシナジー」。電通デジタルはモールEC活用、リテールメディア活用、D2Cビジネス支援など多くのサービスを提供している。一方で「不足しているサービスもある」(永山氏)。その際、国内だけで約150社ある電通グループ企業が提供するサービスをプロジェクト単位で連結することで、クライアント企業に適したサービス構築につなげていくという。

    そして、3つ目が「多様な経験を持つメンバー」の存在だ。電通デジタルには中途入社社員が多く、コマース領域においては前職がプラットフォーマー、リテール、大手メーカーの営業担当など多様な出自、経験を持つ社員が在籍。こうしたさまざまな社員の経験を生かしたサービスを提供しているる

    「対話型コマース」「商品DNA作成」「AIペルソナ作成」「対話型レビュー生成」の4サービスを提供

    プロジェクトを通じて提供している主なサービスは4つ。それぞれの特長や事例について見ていく。

    ユーザーの潜在欲求を引き出し「欲しい」を作り出す「対話型コマース」

    「対話型コマース」は、ユーザーの「さまざまなECサイトがあって、自分が本当に欲しい商品を見つけられない」、事業者の「ユーザーサポートを手厚くしたいが、どうしても人員を増やせない」「深夜は対応できない」といったそれぞれの課題解決につながるアクションを提供する。

    事例の1つである、アートネイチャーと電通デジタルが共同で運営している男性向けの毛髪のお悩み相談AIボット「HAIRの部屋」では、「AIに相談する」ボタンを押すと、ユーザーのさまざまな悩みにAIが回答する。

    電通デジタルがアートネイチャーと共同運営している「HAIRの部屋」
    アートネイチャーと共同運営している「HAIRの部屋」(画像はアートネイチャーのサイトからキャプチャ)

    AIがアートネイチャーのさまざまな記事やナレッジを学習しており、悩みへの回答だけでなく、お薦めシャンプーの提案、プロによる無料の頭皮診断などによる店舗への誘導も実施している。

    「HAIRの部屋」におけるAIへの相談と回答事例
    AIへの相談と回答事例

    サービスを通じて、ユーザーの潜在欲求を引き出し「欲しい」の創出につなげている。リアルでは相談しにくいような悩みでも、「AIには話しやすい」ところがポイント。(電通デジタル データ&AI部門 プロダクトマネジメント事業部 地元昇太氏)

    電通デジタル データ&AI部門 プロダクトマネジメント事業部の地元昇太氏
    電通デジタル データ&AI部門 プロダクトマネジメント事業部の地元昇太氏

    商品の基本情報、レビュー・クチコミなどからタグづけし、レコメンドに活用する「商品DNA作成」

    前述した「対話型コマース」において、ユーザーへの商品レコメンドで機能しているのが「商品DNA作成」。商品の基本情報や画像、ユーザーからのレビュー・クチコミから商品の特長を抽出し、商品DNAのように細分化しタグ付けする。

    たとえば、ユーザーが春夏用のゴルフウェアを探している場合。ユーザーから「ブランドロゴが目立ちすぎない」「接待ゴルフで着用する」「すごく汗をかく」という詳細なニーズが得られた際に、従来であれば通常の商品情報だけでは提案が難しかった商品でも、商品DNAがあることで細かいニーズに対応した商品をレコメンドできるという。

    「商品DNA作成」を活用することで、ユーザーの細かなニーズに対応した商品をレコメンド可能に
    「商品DNA作成」を活用することで、ユーザーの細かなニーズに対応した商品をレコメンド可能に

    商品の解像度を高めて、高いレコメンド精度を実現できる点がポイントだ。(地元氏)

    戦略策定時に活用できる「AIペルソナ作成」

    「AIペルソナ作成」では、電通が年に数回実施している大規模調査のデータをAIに学習させ、それを基にペルソナを作成する。マーケティング戦略における初手の段階で、戦略立案・商品企画時に活用するケースが多いという。

    ペルソナ作成だけではなく、ペルソナの情報を反映したAIボットを作成することも可能。作成したAIボットに対して、人間にインタビューするのと同じようにデプスインタビューを実施できる。「大規模な調査データをAIでペルソナ化でき、実調査を実施するよりも短期間かつ低コストでのアイディエーションが可能なことが強みだ」(地元氏)

    AIボットとのインタビュー例。電通デジタルがAIボットの回答を大規模調査結果と照らし合わせたところ、調査データの内容が反映されており、データ的なエビデンスも得られている
    AIボットとのインタビュー例。電通デジタルがAIボットの回答を大規模調査結果と照らし合わせたところ、調査データの内容が反映されており、データ的なエビデンスも得られている

    「AIペルソナ作成」を活用している企業の規模や業態はさまざまだが、「ECでは、たとえばSKUが多い企業だと商品数が多いため、調査にかかる時間や手間、コストが大きくなる。そういった企業の方が有用に活用できるケースが多い」(永山氏)と話す。

    AIによるインタビュー形式でレビューを作成する「対話型レビュー生成」

    「対話型レビュー生成」はAIがユーザーの代わりにレビューを作成する機能だ。AIが商品購入後のユーザーに「商品の使い心地はどうだったか」などのインタビューを実施。それに対してユーザーが「ここが良かった」「この点はいまいちだった」と回答していくことで、AIが「このユーザーはポジティブな感想をこういった点に持っている。この点がネガティブだった」とポジティブ・ネガティブを判断し、両面からのレビューを生成する。生成したレビューはユーザーが「投稿してOK」という状態になると投稿される仕組みだ。

    「対話型レビュー生成」を活用したレビュー作成の流れ
    「対話型レビュー生成」を活用したレビュー作成の流れ

    ECサイトにとってレビューは非常に重要だが、現状のレビュー投稿について永山氏は「レビュー投稿を購買者側に依存しすぎだと思っている」と言う。

    「レビューを書くことが手間」だと感じている人や、文章力含めてさまざまな人がいるので、お願いしているだけではなかなかレビューが集まらないと思う。ポジティブ・ネガティブの両面からユーザーの意見を引き出すので、「絶賛だけ」というモノにはならない。

    商品購入時、「本当にこれで良かったのか」と少し思う瞬間があると思う。「これで自分は最適な選択をしたんだろうか」と思った際、「なぜこの商品を選んだのか」を聞いてあげることで、実はユーザーのインサイトを確実に引き出したレビューを書いてくれることにつながるのではないだろうか。(永山氏)

    地元氏は、ゴルフダイジェスト・オンラインが以前にPOCで実施したゴルフラウンド後のレビュー収集の取り組みを例にあげた。ゴルフダイジェスト・オンラインのサイトでゴルフ場を予約し、プレーしたユーザーに対してAIが感想を聞き出すという取り組みだ。

    会話を続けるにつれてさまざまな感想を引き出すことができた。この結果から、たとえば「スコアが悪かったのは道具のせいだ」と言うユーザーに対しては「では、パターの調子が悪いときはこのパターはいかがでしょうか」といった商品レコメンドやECサイトとの接点作りにもつなげられる。ユーザーが話したくなるモーメントを捉えて、書くような動機づけをさせてあげられるかが大事だと思う。(地元氏)

    AI活用でECサイトが「検討する場所」になる

    AIを活用したEコマースの支援事業を推進する電通デジタル。今後、AI活用でEコマースはどのように変化していくのか、またどのように活用されていくと考えているのだろうか。これに対し永山氏は「ECの存在自体が変わる」と話す。

    今のECは「買う場所」であって「検討する場所」にはなっていない。会話によって「実はこんなものもある」ということは自分から能動的に進めなければ見つからないのが現状。この先対話型のECが進むことでECが「欲しいものを見付ける場所」になるのではないか。(永山氏)

    2024年はAIを活用した事例も増えてきており、今後、世の中の人々のAIに対する意識や活用のハードルも下がっていくと思う。そうなると日常におけるさまざまな場面や接点でAIが当たり前に活用されていくような未来も近いのではないだろうか。(地元氏)

    藤田遥

    人気記事トップ10

    人気記事ランキングをもっと見る