curl --request GET \
--url https://mm-api.merchantspring.io/advertising/adGroups \
--header 'x-api-key: <api-key>'import requests
url = "https://mm-api.merchantspring.io/advertising/adGroups"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://mm-api.merchantspring.io/advertising/adGroups', 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://mm-api.merchantspring.io/advertising/adGroups",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://mm-api.merchantspring.io/advertising/adGroups"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://mm-api.merchantspring.io/advertising/adGroups")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mm-api.merchantspring.io/advertising/adGroups")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"channel_id": "<string>",
"campaign_id": "<string>",
"ad_group_id": "<string>",
"ad_type": "<string>",
"campaign_name": "<string>",
"ad_group_name": "<string>",
"ad_group_status": "<string>",
"default_bid": 123,
"cost_type": "<string>",
"impressions": 123,
"clicks": 123,
"cost": 123,
"attributed_sales": 123,
"attributed_sales_same_sku": 123,
"attributed_conversions": 123,
"attributed_conversions_same_sku": 123,
"attributed_units_ordered": 123,
"attributed_units_ordered_same_sku": 123,
"attributed_orders_ntb": 123,
"attributed_units_ordered_ntb": 123,
"attributed_sales_ntb": 123,
"attributed_orders_ntb_percentage": 123,
"attributed_units_ordered_ntb_percentage": 123,
"attributed_sales_ntb_percentage": 123,
"attributed_detail_page_views_clicks": 123,
"acos": 123,
"click_through_rate": 123,
"cost_per_click": 123,
"conversion_rate": 123,
"roas": 123
}
],
"pagination": {
"pageIndex": 123,
"pageSize": 123,
"count": 123
},
"meta": {
"currency": "<string>"
}
}Retrieve multi-channel advertising ad group performance
Returns paginated advertising ad group performance across up to 5 channels for the selected date range, optionally filtered to specific campaigns. Values are currency-adjusted based on each store’s country and the requested currency. Supports filtering by ad group status, sorting by any response column, and zero-based page indexing.
curl --request GET \
--url https://mm-api.merchantspring.io/advertising/adGroups \
--header 'x-api-key: <api-key>'import requests
url = "https://mm-api.merchantspring.io/advertising/adGroups"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://mm-api.merchantspring.io/advertising/adGroups', 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://mm-api.merchantspring.io/advertising/adGroups",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://mm-api.merchantspring.io/advertising/adGroups"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://mm-api.merchantspring.io/advertising/adGroups")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mm-api.merchantspring.io/advertising/adGroups")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"channel_id": "<string>",
"campaign_id": "<string>",
"ad_group_id": "<string>",
"ad_type": "<string>",
"campaign_name": "<string>",
"ad_group_name": "<string>",
"ad_group_status": "<string>",
"default_bid": 123,
"cost_type": "<string>",
"impressions": 123,
"clicks": 123,
"cost": 123,
"attributed_sales": 123,
"attributed_sales_same_sku": 123,
"attributed_conversions": 123,
"attributed_conversions_same_sku": 123,
"attributed_units_ordered": 123,
"attributed_units_ordered_same_sku": 123,
"attributed_orders_ntb": 123,
"attributed_units_ordered_ntb": 123,
"attributed_sales_ntb": 123,
"attributed_orders_ntb_percentage": 123,
"attributed_units_ordered_ntb_percentage": 123,
"attributed_sales_ntb_percentage": 123,
"attributed_detail_page_views_clicks": 123,
"acos": 123,
"click_through_rate": 123,
"cost_per_click": 123,
"conversion_rate": 123,
"roas": 123
}
],
"pagination": {
"pageIndex": 123,
"pageSize": 123,
"count": 123
},
"meta": {
"currency": "<string>"
}
}Authorizations
Query Parameters
Channel ID. Repeat the parameter for multiple channels (max 5).
Filter to ad groups belonging to the given campaign(s). Repeatable (max 10), numeric.
Start of date range as unix epoch seconds. Defaults to 30 days ago.
End of date range as unix epoch seconds. Defaults to now. The range must not exceed 6 months.
3-letter ISO currency code (default USD).
Filter by ad group status bucket. Repeatable.
active, paused, archived Response column to sort by (default ad_group_name).
channel_id, campaign_id, ad_group_id, ad_type, campaign_name, ad_group_name, ad_group_status, default_bid, cost_type, impressions, clicks, cost, attributed_sales, attributed_sales_same_sku, attributed_conversions, attributed_conversions_same_sku, attributed_units_ordered, attributed_units_ordered_same_sku, attributed_orders_ntb, attributed_units_ordered_ntb, attributed_sales_ntb, attributed_orders_ntb_percentage, attributed_units_ordered_ntb_percentage, attributed_sales_ntb_percentage, attributed_detail_page_views_clicks, acos, click_through_rate, cost_per_click, conversion_rate, roas Sort direction (default desc).
asc, desc Zero-based page index (default 0).
x >= 0Number of ad groups per page, max 100 (default 10).
1 <= x <= 100Was this page helpful?