この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
こんにちは、中村です。
Messaging APIに統計情報を取得するエンドポイントが追加されましたにてアナウンスがありましたが、Messaging APIに統計情報を取得する機能ができました。
今回は、各エンドポイントでどのようなデータが取得できるのかみていきます。
新しく追加されたエンドポイント
今回は統計情報に関わる3つのエンドポイントが追加されています。
- メッセージの送信数を取得する
- 友だち数を取得する
- 友だちの属性情報に基づく統計情報を取得する
これらのデータは従来、LINE Official Account Managerの分析タブに表示されていましたがこのエンドポイントの作成によって、プログラムで取得できるようになりました。
本日紹介するAPIは、サービス統合前のLINE公式アカウントおよびLINE@アカウントでは使用できません。サービス統合後のLINE公式アカウントに移行する必要があります。
各エンドポイント
メッセージの送信数を取得する
日単位のメッセージ送信数が取得できます。
リクエストサンプル
$ curl -v -X GET https://api.line.me/v2/bot/insight/message/delivery?date=20190709 \
-H 'Authorization: Bearer {channel access token}'
ご覧いただけるように指定するパラメータは、日付のみです。
- フォーマット:
yyyyMMdd
- タイムゾーン: UTC+9
レスポンスサンプル
{
"status": "ready",
"broadcast": 5385,
"targeting": 522
}
これ以外にも利用状況によってレスポンス内容が異なります。
プロパティ | タイプ | 説明 |
---|---|---|
status | String | ready ・unready ・out_of_service *1 |
broadcast | Number | LINE公式アカウントと友だちになっているすべてのユーザーに送信されたプッシュメッセージ(ブロードキャストメッセージ)の数。 |
targeting | Number | LINE公式アカウントと友だちになっているユーザーの中から属性で絞り込んで送信されたプッシュメッセージ(ターゲティングメッセージ、セグメントメッセージ)の数。 |
autoResponse | Number | 送信された応答メッセージの数。 |
welcomeResponse | Number | 送信されたあいさつメッセージの数。 |
chat | Number | LINE Official Account Managerのチャット基本画面から送信されたメッセージの数。 |
apiBroadcast | Number | API経由でブロードキャストメッセージが送信されたメッセージの数。 |
apiPush | Number | API経由でプッシュメッセージが送信されたメッセージの数。 |
apiMulticast | Number | API経由でマルチキャストメッセージが送信されたメッセージの数。 |
apiReply | Number | API経由でリプライメッセージが送信されたメッセージの数。 |
*1:ready
の場合のみメッセージ数が取得できます。unready
の場合はまだ集計が完了していない(通常翌日中に完了する)状態です。out_of_date
は、指定した日付が2017/3/1より以前の場合に返されます。
Developers.IO CAFEのLINE Botのデータで叩くとこのようなレスポンスを取得できました。
{
"status" : "ready",
"welcomeResponse" : 2,
"apiPush" : 1,
"apiReply" : 6
}
またBotが利用されていないときのレスポンスは、statusはreadyですが他プロパティが含まれない状態でした。
{
"status" : "ready"
}
友だち数を取得する
日単位の友だち数が取得できます。
リクエストサンプル
$ curl -v -X GET https://api.line.me/v2/bot/insight/followers?date=20190418 \
-H 'Authorization: Bearer {channel access token}'
こちらもメッセージ数同様指定するパラメータは、日付のみです。
- フォーマット: yyyyMMdd
- タイムゾーン: UTC+9
レスポンスサンプル
{
"status": "ready",
"followers": 7620,
"targetedReaches": 5848,
"blocks": 237
}
プロパティ | タイプ | 説明 |
---|---|---|
status | String | ready ・unready ・out_of_service *1 |
followers | Number | 指定した日付までに、アカウントが友だち追加された回数。アカウントがブロックされたり、あなたを友だち追加したユーザーがLINEアカウントを削除したりしても、この値は減少しない。 |
targetReaches | Number | 指定した日付時点の、性別や年齢、地域で絞り込んだターゲティングメッセージの配信先となりうる友だちの総数。LINEおよびその他のLINEサービスの利用頻度が高く、属性の高精度な推定が可能な友だちが含まれる。 |
blocks | Number | 指定した日付時点で、アカウントをブロックしているユーザーの数。ブロックが解除されるとこの値は減少する。 |
Developers.IO CAFEのLINE Botのデータで叩くとこのようなレスポンスを取得できました。
{
"status" : "ready",
"followers" : 67,
"targetedReaches" : 65,
"blocks" : 2
}
友だちの属性情報に基づく統計情報を取得する
現在の友だちの属性情報に基づく、統計情報を取得できます。
統計情報の反映は、最大3日ほどかかります。取得データは3日前のものが確認できます。また、統計情報を表示するには20人以上のターゲットリーチが必要です。
リクエストサンプル
curl -v -X GET https://api.line.me/v2/bot/insight/demographic \
-H 'Authorization: Bearer {channel access token}'
レスポンスサンプル
{
"available": true,
"genders": [
{
"gender": "unknown",
"percentage": 37.6
},
{
"gender": "male",
"percentage": 31.8
},
{
"gender": "female",
"percentage": 30.6
}
],
"ages": [
{
"age": "unknown",
"percentage": 37.6
},
{
"age": "from50",
"percentage": 17.3
},
...
],
"areas": [
{
"area": "unknown",
"percentage": 42.9
},
{
"area": "徳島",
"percentage": 2.9
},
...
],
"appTypes": [
{
"appType": "ios",
"percentage": 62.4
},
{
"appType": "android",
"percentage": 27.7
},
{
"appType": "others",
"percentage": 9.9
}
],
"subscriptionPeriods": [
{
"subscriptionPeriod": "over365days",
"percentage": 96.4
},
{
"subscriptionPeriod": "within365days",
"percentage": 1.9
},
{
"subscriptionPeriod": "within180days",
"percentage": 1.2
},
{
"subscriptionPeriod": "within90days",
"percentage": 0.5
},
{
"subscriptionPeriod": "within30days",
"percentage": 0.1
},
{
"subscriptionPeriod": "within7days",
"percentage": 0
}
]
}
プロパティ | タイプ | 説明 |
---|---|---|
available | boolean | 友だちの属性情報に基づく統計情報が利用できる場合は、true |
genders | Array | 性別ごとの割合 |
genders[].gender | String | 性別 |
genders[].percentage | Number | 割合 |
age | Array | 年齢ごとの割合 |
age[].age | String | 年齢 |
age[].percentage | Number | 割合 |
areas | Array | 地域ごとの割合 |
areas[].area | String | 地域 |
areas[].percentage | Number | 割合 |
appTypes | Array | OSごとの割合 |
appTypes[].appType | String | OS |
appTypes[].percentage | Number | 割合 |
subscriptionPeriods | Array | 友だち期間ごとの割合 |
subscriptionPeriods[].subscriptionPeriod | String | 友だち期間 |
subscriptionPeriods[].percentage | Number | 割合 |
availableがtrueの時のみ、各Arrayがレスポンスに含まれます。
Developers.IO CAFEのLINE Botのデータで叩くとこのようなレスポンスを取得できました。
{
"available" : true,
"genders" : [ {
"gender" : "male",
"percentage" : 76.9
}, {
"gender" : "female",
"percentage" : 23.1
} ],
"ages" : [ {
"age" : "from35to39",
"percentage" : 27.7
}, {
"age" : "from25to29",
"percentage" : 27.7
}, {
"age" : "from30to34",
"percentage" : 20.0
}, {
"age" : "from40to44",
"percentage" : 10.8
}, {
"age" : "from20to24",
"percentage" : 7.7
}, {
"age" : "from50",
"percentage" : 3.1
}, {
"age" : "from45to49",
"percentage" : 3.1
}, {
"age" : "from0to14",
"percentage" : 0.0
}, {
"age" : "from15to19",
"percentage" : 0.0
} ],
"areas" : [ {
"area" : "東京",
"percentage" : 78.5
}, {
"area" : "神奈川",
"percentage" : 4.6
}, {
"area" : "大阪",
"percentage" : 4.6
}, {
"area" : "北海道",
"percentage" : 3.1
}, {
"area" : "京都",
"percentage" : 3.1
}, {
"area" : "千葉",
"percentage" : 1.5
}, {
"area" : "宮城",
"percentage" : 1.5
}, {
"area" : "栃木",
"percentage" : 1.5
}, {
"area" : "兵庫",
"percentage" : 1.5
}, {
"area" : "和歌山",
"percentage" : 0.0
}, {
"area" : "埼玉",
"percentage" : 0.0
}, {
"area" : "岡山",
"percentage" : 0.0
}, {
"area" : "広島",
"percentage" : 0.0
}, {
"area" : "鳥取",
"percentage" : 0.0
}, {
"area" : "群馬",
"percentage" : 0.0
}, {
"area" : "島根",
"percentage" : 0.0
}, {
"area" : "新潟",
"percentage" : 0.0
}, {
"area" : "香川",
"percentage" : 0.0
}, {
"area" : "富山",
"percentage" : 0.0
}, {
"area" : "愛媛",
"percentage" : 0.0
}, {
"area" : "山口",
"percentage" : 0.0
}, {
"area" : "徳島",
"percentage" : 0.0
}, {
"area" : "山梨",
"percentage" : 0.0
}, {
"area" : "石川",
"percentage" : 0.0
}, {
"area" : "高知",
"percentage" : 0.0
}, {
"area" : "福井",
"percentage" : 0.0
}, {
"area" : "福岡",
"percentage" : 0.0
}, {
"area" : "佐賀",
"percentage" : 0.0
}, {
"area" : "静岡",
"percentage" : 0.0
}, {
"area" : "大分",
"percentage" : 0.0
}, {
"area" : "愛知",
"percentage" : 0.0
}, {
"area" : "宮崎",
"percentage" : 0.0
}, {
"area" : "長野",
"percentage" : 0.0
}, {
"area" : "長崎",
"percentage" : 0.0
}, {
"area" : "岐阜",
"percentage" : 0.0
}, {
"area" : "熊本",
"percentage" : 0.0
}, {
"area" : "秋田",
"percentage" : 0.0
}, {
"area" : "青森",
"percentage" : 0.0
}, {
"area" : "三重",
"percentage" : 0.0
}, {
"area" : "鹿児島",
"percentage" : 0.0
}, {
"area" : "岩手",
"percentage" : 0.0
}, {
"area" : "滋賀",
"percentage" : 0.0
}, {
"area" : "沖縄",
"percentage" : 0.0
}, {
"area" : "茨城",
"percentage" : 0.0
}, {
"area" : "山形",
"percentage" : 0.0
}, {
"area" : "福島",
"percentage" : 0.0
}, {
"area" : "奈良",
"percentage" : 0.0
} ],
"appTypes" : [ {
"appType" : "ios",
"percentage" : 81.5
}, {
"appType" : "android",
"percentage" : 18.5
}, {
"appType" : "others",
"percentage" : 0.0
} ],
"subscriptionPeriods" : [ {
"subscriptionPeriod" : "within90days",
"percentage" : 61.5
}, {
"subscriptionPeriod" : "within30days",
"percentage" : 26.2
}, {
"subscriptionPeriod" : "within7days",
"percentage" : 12.3
}, {
"subscriptionPeriod" : "within180days",
"percentage" : 0.0
}, {
"subscriptionPeriod" : "within365days",
"percentage" : 0.0
}, {
"subscriptionPeriod" : "over365days",
"percentage" : 0.0
} ]
}
まとめ
上記3つのエンドポイントの登場により、LINEに関わる管理ツール等への容易に機能追加ができるようになりました。
これらのデータは、例えば契約プランの最適化や統計情報を利用したマーケティング施作の変更など日々の運用の中で役に立つのではないでしょうか。
ちなみにDevelopers.IO CAFEのLINEアカウントはこちらから追加できますのでぜひLINE Payを使ったモバイルオーダーアンドペイをご利用ください。(最近認証済みアカウントになりました。)