はじめに
- QiitaAPIを使用して記事一覧を取得する
- 取得結果をAIに分析してもらう
- ついでにGoogleAnalyticsのデータを組み合わせて分析してみる
QiitaAPIドキュメント
手順
1.アクセストークンを取得する
アクセストークンの発行ページからアクセストークンを発行します。
今回は記事一覧を取得できればいいため、スコープはread_qiitaにチェックしています。
2.APIをたたく(curlコマンド)
APIは「GET /api/v2/items」を使用します。
curlコマンドを作成しましょう。取得結果をCSVに加工して出力しています。
# 1ページ目(最初の100件)
echo '"タイトル","URL","作成日時","いいね数","タグ"' > output.csv && \
curl -H 'Authorization: Bearer XXXXXX' \
'https://qiita.com/api/v2/items?query=user:ymgc3+created:>2024-01-01&per_page=100&page=1' | \
jq -r '.[] | [
.title,
.url,
.created_at,
.likes_count,
([.tags[].name] | join(";"))
] | @csv' >> output.csv
「Bearer XXXXXX」のXXX部分に、APIトークンを設定します。
検索条件に、ユーザIDと期間を設定します。
curl -H 'Authorization: Bearer XXXXXX'
「query=user:ymgc3+created:>2024-01-01」
1リクエストでの取得は最大100件です。100件以上ある場合は、「&page=n」繰り返し。
「output.csv」に追記していきます。
# 2ページ目
curl -H 'Authorization: Bearer XXXXXX' \
'https://qiita.com/api/v2/items?query=user:ymgc3+created:>2024-01-01&per_page=100&page=2' | \
jq -r '.[] | [
.title,
.url,
.created_at,
.likes_count,
([.tags[].name] | join(";"))
] | @csv' >> output.csv
3. 取得結果を確認
output.csvの中身を確認しましょう。
取得できていそうです!
4. 取得結果を分析する
AIに分析を依頼してみましょう。
雑な依頼からも、以下を出力してくれました。
データの分析結果から以下のような興味深い洞察が得られました:
1. 投稿数と頻度
- 総記事数: 137記事
- 最も投稿が多かった月は2024年4月(35記事)
- 月平均約11.4記事のペースで投稿
2. いいね数の分析
- 総いいね数: 250
- 平均いいね数: 1.82
- 中央値: 0
- 最大いいね数: 24
これは投稿の反響にかなりばらつきがあることを示しています。
3. タグの傾向
トップ5タグ:
- LLM (47回)
- Python (32回)
- langchain (11回)
- AI (10回)
- GPT-4 (9回)
LLMとAI関連の記事が非常に多いことがわかります。
4. 記事の公開状態
- 公開記事: 64.2%
- プライベート記事: 35.8%
約3分の1の記事がプライベート設定になっています。
5. 月別の投稿傾向
- 4月が突出して多い(35記事)
- 6月も比較的多い(20記事)
- 11月、12月は少なめ(各4記事)
これらのデータは、主にAIとプログラミング(特にLLMとPython)に焦点を当てた技術ブログとしての特徴を示しています。
5. GAデータの取得
Google アナリティクスのデータも分析したいです。
レポートのスナップショットを1年分取得します。
6. GAデータの分析
同じく、AIに分析を依頼してみましょう。
はい、GAデータを分析していきましょう。主要なメトリクスについて解析と可視化を行います。
データを視覚化するためのダッシュボードを作成します:
分析結果から以下の主要な洞察が得られました:
1. トラフィックと成長
- 週間アクティブユーザー(WAU)は74人から最大2,270人まで成長
- 平均WAUは約1,398人
- 成長曲線は段階的な上昇を示し、特に25-26週目あたりでピークを記録
2. コンテンツパフォーマンス
トップ5の人気記事:
1. チャンキング戦略 (5,219ビュー)
2. LLMのパラメータ数解説 (4,658ビュー)
3. ガウス混合モデル解説 (4,612ビュー)
4. GNN入門 (4,030ビュー)
5. UMAPによる次元削減 (3,477ビュー)
3. ユーザー行動
総イベント数の分布:
- Show: 51.94%
- セッション開始: 13.88%
- ページビュー: 13.42%
- 初回訪問: 10.72%
- ユーザーエンゲージメント: 8.23%
4. 地理的分布
- 日本: 67,280ユーザー (98.9%)
- 米国: 456ユーザー
- 中国: 93ユーザー
- 台湾: 63ユーザー
- イギリス: 62ユーザー
5. エンゲージメント指標
- 総セッション数: 97,687
- 総ページビュー: 94,443
- 新規ユーザー: 75,429
- いいね数: 298
- 記事ストック数: 211
特筆すべき点:
- LLMとPython関連の記事が特に人気
- ユーザーベースは主に日本国内
- エンゲージメント率(いいね、ストック)は比較的低い
- 記事の技術的な深さと実践的な内容が評価されている
これらの指標に基づくと、サイトは技術系コンテンツに特化し、着実な成長を遂げていることがわかります。
7. 2つのデータを組み合わせた分析
Qiitaの記事データとGAデータを組み合わせた分析から、以下の主要な洞察が得られました:
1. コンテンツ効果性
- 最も効果的なタグ(ビュー数/記事):
1. LLM (2,341 views/記事)
2. Python (1,872 views/記事)
3. グラフ理論 (1,654 views/記事)
4. ChatGPT (1,432 views/記事)
5. langchain (1,298 views/記事)
2. 時期別パフォーマンス
- 最も生産性が高かった月:2024年4月(35記事)
- 最もビュー数が多かった月:2024年4月(21,450ビュー)
- 記事数とビュー数には正の相関がある
3. コンテンツタイプ別の効果
- 技術解説記事が最も高いエンゲージメント(平均2,800ビュー)
- チュートリアル形式が2番目に効果的(平均2,100ビュー)
- 論文解説は中程度の効果(平均1,900ビュー)
4. エンゲージメントパターン
- 長期的に人気な記事:
- チャンキング戦略(5,219ビュー)
- LLMのパラメータ数解説(4,658ビュー)
- 技術解説系の記事が安定した閲覧数を獲得
5. 改善の機会
- いいね数とビュー数の比率が低い(約0.3%)
- コメント数が非常に少ない(2件)
- SNSシェア数も限定的(35件)
推奨アクション:
1. LLMとPython関連のコンテンツに注力
2. 技術解説形式のコンテンツを増やす
3. 読者エンゲージメントを促す仕組みの検討
4. チュートリアル形式のコンテンツを強化
5. 人気記事のフォローアップ記事の作成
これらの分析結果は、今後のコンテンツ戦略立案に活用できます。
特に、技術解説とチュートリアルに重点を置きながら、LLMやPythonなどの人気トピックをカバーすることで、より効果的なコンテンツ作成が期待できます。