get-campaign-statistics-retrieval
curl --request GET \
--url https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"lastCollectedAt": "2024-10-29 04:00:00",
"stats": [
{
"metricName": "구매_이벤트",
"metricType": "conversion",
"conversionType": "sales_conversion",
"totalSum": 930832,
"dailySums": [
{
"date": "2024-09-30",
"sum": 0,
"dimensionSums": [
{
"dimensionKey": "이름",
"dimensionValue": "이름1",
"sum": 0
}
]
}
]
},
{
"metricName": "send_success",
"metricType": "standard",
"totalCount": 550,
"dailyCounts": [
{
"date": "2024-10-28",
"count": 250,
"dimensionCounts": [
{
"dimensionKey": "region",
"dimensionValue": "us-east",
"count": 100
},
{
"dimensionKey": "region",
"dimensionValue": "us-west",
"count": 150
}
]
},
{
"date": "2024-10-29",
"count": 300,
"dimensionCounts": [
{
"dimensionKey": "region",
"dimensionValue": "us-east",
"count": 200
},
{
"dimensionKey": "region",
"dimensionValue": "us-west",
"count": 100
}
]
}
]
}
]
},
"error": null
}{
"data": null,
"error": "Invalid project ID"
}{
"data": null,
"error": "Unauthorized: Invalid Authorization Token"
}{
"data": null,
"error": "Internal Server Error: some-error-message"
}내보내기 & 분석
메시지 통계 상세 조회
특정 캠페인의 발송 현황과 전환 성과를 조회합니다.
GET
/
projects
/
{projectId}
/
campaigns
/
{campaignId}
/
stats
get-campaign-statistics-retrieval
curl --request GET \
--url https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.notifly.tech/projects/{projectId}/campaigns/{campaignId}/stats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"lastCollectedAt": "2024-10-29 04:00:00",
"stats": [
{
"metricName": "구매_이벤트",
"metricType": "conversion",
"conversionType": "sales_conversion",
"totalSum": 930832,
"dailySums": [
{
"date": "2024-09-30",
"sum": 0,
"dimensionSums": [
{
"dimensionKey": "이름",
"dimensionValue": "이름1",
"sum": 0
}
]
}
]
},
{
"metricName": "send_success",
"metricType": "standard",
"totalCount": 550,
"dailyCounts": [
{
"date": "2024-10-28",
"count": 250,
"dimensionCounts": [
{
"dimensionKey": "region",
"dimensionValue": "us-east",
"count": 100
},
{
"dimensionKey": "region",
"dimensionValue": "us-west",
"count": 150
}
]
},
{
"date": "2024-10-29",
"count": 300,
"dimensionCounts": [
{
"dimensionKey": "region",
"dimensionValue": "us-east",
"count": 200
},
{
"dimensionKey": "region",
"dimensionValue": "us-west",
"count": 100
}
]
}
]
}
]
},
"error": null
}{
"data": null,
"error": "Invalid project ID"
}{
"data": null,
"error": "Unauthorized: Invalid Authorization Token"
}{
"data": null,
"error": "Internal Server Error: some-error-message"
}조회 조건전일 데이터는 매일 오전 7시(KST)에 집계가 완료됩니다. 정확한 전일 데이터 조회를 위해서는 오전 7시 이후에 API를 호출하시기를 권장합니다.
Campaign Statistics API 변경 사항2025-07-06 부터, conversionType 필드가 추가되었습니다.
인증
POST /authenticate로 발급받은 인증 토큰을 Bearer 형식으로 전달합니다.
쿼리 매개변수
조회 시작일자 (yyyy-MM-ddTHH:00:00.000Z 형식, UTC 기준, start 시점 포)
조회 종료일자 (yyyy-MM-ddTHH:00:00.000Z 형식, UTC 기준, end 시점 미만)
⌘I
