# solari tiktok content aggregate

> TikTok 投稿を列挙せずに集計します。

- **CLI**: `solari tiktok content aggregate`
- **MCP ツール**: `solari_tiktok_content_aggregate`
- **アクセス権**: `solari:read` — サインイン済みの SOLARI アカウントであれば利用できます。

追跡中の TikTok 投稿に対する件数とエンゲージメントの集計。個別の投稿ではなく数値で答える問いにお使いください。アカウントごとの月間投稿数、あるトピックで優勢なハッシュタグ、フォーマット別の平均再生数など。account、post_type、hashtag、mention、caption_keyword でグループ化し、さらに各グループを day、week、month で分割できます。post_count は常に返ります。metrics を指定すると like/comment/view/share/collect の合計と平均 (view_* 系の指標は再生数を数える)、フォロワー数の平均、ユニークアカウント数が返ります。フリーテキストの query (キャプションと動画の文字起こしが対象)、usernames、hashtags、mentions、post_types (video、carousel) で対象を絞り込みます。mentions で絞り込み account でグループ化すると、特定のハンドルをタグ付けしたアカウントが分かります。カバー範囲は KR、JP、US、TW のリージョンで、おおよそ直近 6 か月分を保持します。それより古い since は切り詰められ、適用された値がレスポンスに返されます。バケットは大きい順。truncated=true は limit で返した数より多くのグループが存在したことを意味します。件数ではなく投稿そのものが必要な場合は solari_tiktok_content_search をお使いください。サインイン済みの SOLARI アカウントであれば利用できます。

**どんなときに使うか** — 数値で答える問い。アカウントごとの投稿頻度、トピック内のハッシュタグ分布、フォーマット別の平均再生数など。

**何が返るか** — グループごとの件数とエンゲージメント集計。大きいグループ順。

## パラメータ

- `region` (enum, 任意, 既定値 "KR") — 集計対象のリージョン。インデックスされているのはこの 4 リージョンのみ。 値: `KR`, `JP`, `US`, `TW`.
- `group_by` (enum, 任意) — グループ化する軸。省略すると、絞り込んだ集合全体を 1 つの合計バケットに集計します。 値: `account`, `post_type`, `hashtag`, `mention`, `caption_keyword`.
- `interval` (enum, 任意) — 分割するカレンダー間隔。単独で指定すると期間ごとに 1 バケットを返し、group_by と組み合わせると各グループが時系列を持ちます。 値: `day`, `week`, `month`.
- `metrics` (string[], 任意) — 常に返る post_count に加えて取得する指標。view_* 系の指標は再生数を数えます。指標値はスナップショットであり、リアルタイムの数値より遅れることがあります。 値: `like_sum`, `like_avg`, `comment_sum`, `comment_avg`, `view_sum`, `view_avg`, `share_sum`, `share_avg`, `collect_sum`, `collect_avg`, `follower_avg`, `account_count`.
- `query` (string, 任意) — キャプションと動画の文字起こしに対して照合するフリーテキストのフィルタ。
- `usernames` (string[], 任意) — これらの TikTok ハンドルに限定します。
- `hashtags` (string[], 任意) — これらのハッシュタグをすべて含む投稿に限定します。
- `mentions` (string[], 任意) — これらのハンドルをすべてタグ付けしている投稿に限定します。group_by=account と組み合わせると、特定のハンドルをタグ付けしているアカウントをランキングできます。
- `post_types` (string[], 任意) — これらの投稿フォーマットに限定します。 値: `video`, `carousel`.
- `since` (string, 任意, pattern ^\d{4}-\d{2}-\d{2}$) — この UTC 日付以降の投稿のみ。YYYY-MM-DD 形式で当日を含みます。デフォルトは 183 日前で、これが受け付ける最も古い境界でもあります。
- `until` (string, 任意, pattern ^\d{4}-\d{2}-\d{2}$) — この UTC 日付以前の投稿のみ。YYYY-MM-DD 形式で当日を含みます。
- `limit` (integer, 任意, ≥ 1) — group_by を指定したときに返るグループの最大数、デフォルトは 20。50 を超える値は上限の 50 に切り詰められます。

## レスポンス

### `Response`

- `region` (string) — 集計を実行したリージョン。
- `since` (date) — 実際に適用された開始日。保持期間より古いリクエストは切り詰められ、その値がここに返されます。
- `until` (date | null) — 実際に適用された終了日。
- `group_by` (string | null) — 適用されたグループ化の軸。
- `interval` (string | null) — 適用されたカレンダー間隔。
- `total_posts` (integer) — フィルタに一致した投稿数。グループが重複する場合、バケット件数の合計と一致しないことがあります。
- `truncated` (boolean) — limit で返した数より多くのグループが存在した場合に true。
- `buckets` (object[]) — グループごとに 1 エントリ。大きい順。

### `buckets[]`

- `key` (string) — グループの値。ハンドル、ハッシュタグ、フォーマットなど。group_by を省略した場合は合計バケット 1 つになります。
- `metrics.post_count` (integer) — 投稿数。常に返ります。
- `metrics.like_sum / like_avg` (number | null) — いいねの合計と平均。metrics で要求した場合のみ。
- `metrics.comment_sum / comment_avg` (number | null) — コメントの合計と平均。
- `metrics.view_sum / view_avg` (number | null) — 再生数の合計と平均。
- `metrics.share_sum / collect_sum` (number | null) — シェアと保存の合計、および対応する _avg 版。
- `metrics.follower_avg` (number | null) — 投稿したアカウントのフォロワー数の平均。
- `metrics.account_count` (integer | null) — グループ内のユニークアカウント数。
- `series` (object[] | null) — 期間ごとの内訳。interval を指定した場合に含まれます。

## 例

```console
$ solari tiktok content aggregate group_by=account query="이니스프리" metrics='["view_sum","like_avg","account_count"]' limit=5
```

_読みやすさのため、長い文字列と繰り返しの配列要素を省略しています。_

```json
{
  "region": "KR",
  "since": "2026-03-04",
  "until": null,
  "group_by": "account",
  "interval": null,
  "total_posts": 20,
  "truncated": true,
  "buckets": [
    {
      "key": "merryview_",
      "metrics": {
        "post_count": 2,
        "like_sum": null,
        "like_avg": 2378.5,
        "comment_sum": null,
        "comment_avg": null,
        "view_sum": 179504,
        "view_avg": null,
        "share_sum": null,
        "share_avg": null,
        "collect_sum": null,
        "collect_avg": null,
        "follower_avg": null,
        "account_count": 1
      },
      "series": null
    },
    {
      "key": "_kimdayun_",
      "metrics": {
        "post_count": 1,
        "like_sum": null,
        "like_avg": 1829,
        "comment_sum": null,
        "comment_avg": null,
        "view_sum": 102000,
        "view_avg": null,
        "share_sum": null,
        "share_avg": null,
        "collect_sum": null,
        "collect_avg": null,
        "follower_avg": null,
        "account_count": 1
      },
      "series": null
    },
    "… 3 more"
  ]
}
```

## MCP 呼び出しとして

```json
{
  "name": "solari_tiktok_content_aggregate",
  "arguments": {
    "group_by": "account",
    "query": "이니스프리",
    "metrics": [
      "view_sum",
      "like_avg",
      "account_count"
    ],
    "limit": 5
  }
}
```

## 注意点

- view_* 系の指標は再生数を数えます。
- Instagram 版と違い、share_* と collect_* には実際に値が入ります。また transcription_keyword によるグループ化はありません。
- インデックスは KR、JP、US、TW をおおよそ直近 6 か月分カバーします。since の下限は 183 日前。それより古い値は切り詰められ、適用値が返されます。

## 関連ツール

- [`solari_tiktok_content_search`](https://solari.sh/docs/tools/tiktok-content-search.md?lang=ja)
- [`solari_instagram_content_aggregate`](https://solari.sh/docs/tools/instagram-content-aggregate.md?lang=ja)
