The SmartNews Ads Advertising API allows partners integrate with the SmartNews advertising platform in their own advertising solutions.
SmartNews Ads Advertising API provides programmatic access to advertising accounts. Partners can integrate their solutions with the API to promote SmartNews Ads advertising accounts, schedule campaigns, manage audiences, and more.
The Advertising API accessed on https://ads.smartnews.com/api. The Advertising API enforces HTTPS, Attempts to access an endpoint with HTTP will result in a redirect response.
The Advertising API outputs JSON. All identifiers are strings and all strings are UTF-8. The Advertising API is versioned and the version is specified as the first path element of any resource URL (such as /v1.0
or /v2.0
).
API authentication is achieved via a bearer token which identifies a single user. You can use a generated API key. You pass the API key into the X-Auth-Api
http header like this.
curl -H 'X-Auth-Api: <YOUR_API_KEY>' 'https://ads.smartnews.com/api'
⚠️ We have migrated our domain frompartners.smartnews-ads.com
toads.smartnews.com
. Please be aware that access to the old domain may return a 301 redirect response after Nov 15th, 2022.
DateTime values are always returned in UTC time. DateTimes may be specified in any timezone in a POST command using the ISO 8601 standard format for timezone. Time is represented using a subset of ISO-8601.
The type of a currency is identified using ISO-4217. This is a three-letter string like a JPY
.
Currently, it is supported JPY only.
SmartNews Ads Management API Basics provides you with some fundamental information around how todo some basic things. It has all the information you may need with regards to doing things about errors.
Successful responses are indicated with a 200-series HTTP code and JSON-based payload containing the object(s) requested, created, modified, or deleted along with an expression of the server's interpretation of your request.
The data field in JSON responses will contain the specific objects associated with the leveraged resource. The format of the data
node will be returned as JSON array when the response may contain one or more results.
{
"data": {
/* contents payload... */
}
}
Error Responses are served with a non-200-series HTTP code. Usually a JSON response will be attached, but some errors will respond with different kinds of body. For instance, you may occasionally see a HTTP 404 along with a HTML response. In this case, it's safe to assume that the content cannot be found.
The nature of the error will be communicated in an error
node of the response. The error/message
node will indicate a human-readable description of the error in English. Additional fields may be attached to indicate finer-grained detail about the error.
{
"error": {
"code": 1,
"message": "Bid Too Low: Your bid is below the minimum for its placement.",
"parameter": "bidAmount"
}
}
Work In Progress
Pagination & Sorting is currently not supported. It's future works.
Timezone is currently not supported. It's future works.
Programmatically schedule campaigns and manage ads on SmartNews through this suite of APIs.
- Retrive the account id -
GET /v1.0/accounts
andGET /v1.0/accounts/{accountId}/campaigns
- Create a campaign and associate it(account) -
POST /v1.0/accounts/{accountId}/campaigns
- Upload image for creative and Create some creatives and associate it(campaign) -
POST /v1.0/accounts/{accountId}/images/upload
andPOST /v1.0/campaigns/{campaignId}/creatives
- Request review campaign and associated creatives -
POST /v1.0/campaigns/{campaignId}/submit_review
- Enable campaign and creatives after approved -
POST /v1.0/campaigns/{campaignId}/update_enable
andPOST /v1.0/creatives/{creativeId}/update_enable
- Update campaign's item like a
budget
-POST /v1.0/campaigns/{campaignId}/update
Campaigns define the schedule and budget of an ad. The advertiser specifies a daily and overall budget. The campaign can be bound to a specific start and end time, and until the budget is spent. Campaign identifiers area the base-36 representation of the base-10 value we present in the SmartNews Ads Partners UI.
Retrieve all of the advertising-enabled accounts the authenticating user has access to.
{
"data": [
{
"accountId": "1000000",
"name": "SmartNews, Inc"
},
{
"accountId": "1000001",
"name": "Some company name"
}
]
}
Retrieve some or all campaigns associated with the current account. Note: Campaigns that has Dynamic Creative ON can not be retrieved through this API.
Name | Type | Description |
---|---|---|
accountId | string | required The identifier for a advertiser account associated with the authenticating user. |
{
"data": [
{
"name": "SmartNews Installs 7/12",
"actionType": "APP_INSTALL",
"campaignId": "1000003",
"accountId": "1000000",
"approvalStatus": "PENDING",
"enable": false,
"startTime": "2015-07-01T13:40:00Z",
"endTime": "2015-07-29T13:40:00Z",
"totalBudget": 20000,
"dailyBudget": 5000,
"bidAmount": 30,
"updatedAt": "2015-06-25T13:40:00Z"
},
{
"name": "SmartNews Installs 8/12",
"actionType": "APP_INSTALL",
"campaignId": "1000004",
"accountId": "1000000",
"approvalStatus": "PENDING",
"enable": false,
"startTime": "2015-08-01T13:40:00Z",
"endTime": "2015-08-29T13:40:00Z",
"totalBudget": 20000,
"dailyBudget": 5000,
"bidAmount": 30,
"updatedAt": "2015-06-25T13:40:00Z"
}
]
}
Please be familiarized with the general information of Ads Manager V2 support first.
For users to distinguish AMv2 data from AMv1 data, the amV2
object is added to the first level of each element of the data array.
Name | Type | Format | Description |
---|---|---|---|
campaignId | string | The identifier of the 3L campaign | |
adGroupId | string | The identifier of the 3L ad group | |
campaignName | string | The name of the 3L campaign | |
adGroupName | string | The name of the 3L ad group | |
campaignConfiguredStatus | string | The configured status of campaign with possible values as ACTIVE, PAUSED, or DELETED | |
adGroupConfiguredStatus | string | The configured status of ad group with possible values as ACTIVE, PAUSED, or DELETED | |
campaignSpendingLimit | number | long | The spending limit of the campaign in unit of JPY |
campaignDailyBudget | number | long | The daily budget of the campaign in unit of JPY |
isMigratedFromV1 | boolean | The flag to indicate if the ad object is migrated from Ads Manager V1 (AMv1) |
Because of the difference in the product specification of AMv1 and AMv2, the following response fields will not available for AMv2 Data.
Name | Description |
---|---|
sponsoredName | This field is always null for AMv2 Data |
appSpec | This field is always null for AMv2 Data |
trackingSpec | This field is always null for AMv2 Data |
creativeType | This field is always null for AMv2 Data |
targeting | This field is always null for AMv2 Data |
approvalStatus | This field is always null for AMv2 Data |
{
"data": [
// AMv1 campaign example
{
"name": "SmartNews Installs 7/12",
"actionType": "APP_INSTALL",
"campaignId": "1000003",
"accountId": "1000000",
"approvalStatus": "PENDING",
"enable": false,
"startTime": "2015-07-01T13:40:00Z",
"endTime": "2015-07-29T13:40:00Z",
"totalBudget": 20000,
"dailyBudget": 5000,
"bidAmount": 30,
"updatedAt": "2015-06-25T13:40:00Z"
},
// AMv2 Ad Group example
{
"name": "AMv2 Ad Group",
"sponsoredName": null,
"actionType": "WEBSITE_CONVERSION",
"creativeType": null,
"campaignId": "10000002",
"accountId": "1000000",
"status": "NORMAL",
"approvalStatus": null, //Always Null for AMv2 data
"enable": false,
"startTime": "2015-08-01T13:40:00Z",
"endTime": "2099-12-31T23:59:59Z",
"totalBudget": 0,
"dailyBudget": 0,
"bidAmount": 1000,
"targetCpa": 1000,
"billingEvent": "CLICK",
"appSpec": null,
"trackingSpec": null,
"targeting": null,
"isAutoBid": false,
"updatedAt": "2015-06-25T13:40:00Z",
"amV2": {
"campaignId": "10000001",
"adGroupId": "10000002",
"campaignName": "AMv2 Campaign",
"adGroupName": "AMv2 Ad Group",
"campaignConfiguredStatus": "ACTIVE",
"adGroupConfiguredStatus": "ACTIVE",
"campaignSpendingLimit": 100000,
"campaignDailyBudget": 1000,
"isMigratedFromV1": true
}
}
]
}
Retrieve details for a specific campaign. Note: Campaigns that has Dynamic Creative ON can not be retrieved through this API.
Name | Type | Description |
---|---|---|
campaignId | string | required The identifier for a campaign. |
{
"data": {
"actionType": "APP_INSTALL",
"name": "SmartNews Installs 7/12",
"campaignId": "1000005",
"accountId": "1000000",
"enable": false,
"startTime": "2015-07-01T13:40:00Z",
"endTime": "2015-07-29T13:40:00Z",
"totalBudget": 20000,
"dailyBudget": 5000,
"bidAmount": 30,
"sponsoredName": "SmartAds",
"targetCpa": 750,
"adCategoryId": 3,
"appSpec": {
"application": "579581125",
"urlscheme": "jp.gocro.smartnews://"
},
"trackingSpec": {
"trackingType": "SAT"
},
"targeting": {
"publishers": ["120", "121", "99810"],
"devices": ["IPHONE", "IPOD", "IPAD"],
"genders": ["FEMALE"],
"cities": [
{
"key": "13000"
}
],
"schedules": [
{
"startSecond": 0,
"endSecond": 14400
}
]
},
"approvalStatus": "PENDING",
"updatedAt": "2015-07-01T13:40:00Z"
}
}
Please be familiarized with the general information of Ads Manager V2 support first.
- campaignId in the API is the identifier of 3L ad group
For users to distinguish AMv2 data from AMv1 data, the amV2
object is added to the first level of each element of the data array.
Name | Type | Format | Description |
---|---|---|---|
campaignId | string | The identifier of the 3L campaign | |
adGroupId | string | The identifier of the 3L ad group | |
campaignName | string | The name of the 3L campaign | |
adGroupName | string | The name of the 3L ad group | |
campaignConfiguredStatus | string | The configured status of campaign with possible values as ACTIVE, PAUSED, or DELETED | |
adGroupConfiguredStatus | string | The configured status of ad group with possible values as ACTIVE, PAUSED, or DELETED | |
campaignSpendingLimit | number | long | The spending limit of the campaign in unit of JPY |
campaignDailyBudget | number | long | The daily budget of the campaign in unit of JPY |
isMigratedFromV1 | boolean | The flag to indicate if the ad object is migrated from Ads Manager V1 (AMv1) |
Because of the difference in the product specification of AMv1 and AMv2, the following response fields will not available for AMv2 Data.
Name | Description |
---|---|
sponsoredName | This field is always null for AMv2 Data |
appSpec | This field is always null for AMv2 Data |
trackingSpec | This field is always null for AMv2 Data |
creativeType | This field is always null for AMv2 Data |
targeting | This field is always null for AMv2 Data |
approvalStatus | This field is always null for AMv2 Data |
{
"data": {
"name": "AMv2 Ad Group",
"sponsoredName": null,
"actionType": "WEBSITE_CONVERSION",
"creativeType": null,
"campaignId": "10000002", // The identifier of 3L ad group
"accountId": "1000000",
"status": "NORMAL",
"approvalStatus": null,
"enable": true,
"startTime": "2024-02-19T13:40:00Z",
"endTime": "2024-10-19T13:40:00Z",
"totalBudget": 0,
"dailyBudget": 0,
"bidAmount": 1000,
"targetCpa": 1000,
"billingEvent": "CLICK",
"appSpec": null,
"trackingSpec": null,
"targeting": null,
"isAutoBid": false,
"updatedAt": "2024-02-15T13:40:00Z",
"amV2": {
"campaignId": "10000001",
"adGroupId": "10000002",
"campaignName": "AMv2 Campaign",
"adGroupName": "AMv2 Ad Group",
"campaignConfiguredStatus": "ACTIVE",
"adGroupConfiguredStatus": "ACTIVE",
"campaignSpendingLimit": 100000,
"campaignDailyBudget": 1000,
"isMigratedFromV1": true
}
}
}
Create a new campaign associated with the current account.
Name | Type | Format | Description |
---|---|---|---|
accountId | string | required The identifier for a advertiser account associated with the authenticating user. |
Name | Type | Format | Description |
---|---|---|---|
actionType | string | ActionType | required The objective type for campaign. |
name | string | required The name for campaign. | |
sponsoredName | string | required The sponsor name for this campaign. It is used by advertising display. | |
bidAmount | number | long | required in future The bid amount for this campaign. |
targetCpa | number | long | optional The target CPA(Cost Per Acquisition) amount for this campaign. |
totalBudget | number | long | required in future The total budget amount to be allocated to the campaign. |
dailyBudget | number | long | required in future The daily budget amount to be allocated to the campaign. |
startTime | string | ISO 8601 | required The UTC time that campaign will begin. |
endTime | string | ISO 8601 | required The UTC time that campaign will end. |
adCategoryId | string | int | required The ad_category for campaign. You get available ad_categories from GET /adcategories |
appSpec | object | AppSpec | optional The application information. (it is available if actionType is APP_INSTALL ) |
trackingSpec | object | TrackingSpec | optional The tracking tool spec if you need. (it is available if actionType is APP_INSTALL ) |
targeting | object | Targeting | optional The targeting for campaign. |
Name | Type | Format | Description |
---|---|---|---|
application | string | required The identifier for AppStore or PlayStore. | |
urlscheme | string | optional |
Name | Type | Format | Description |
---|---|---|---|
trackingType | string | TrackingType | required The tracking tool type if you need. |
Name | Type | Format | Description |
---|---|---|---|
publishers | array of string | string | optional media targeting. |
media | array of string | string | optional media targeting. this parameter is deprecated and delete near future release. please use publishers |
devices | array of string | DeviceType | optional device targeting. |
genders | array of string | GenderType | optional gender targeting. |
gender | string | GenderType | optional gender targeting. this parameter is deprecated and delete near future release. please use publishers |
cities | array of object | CityTargeting | optional area targeting. |
schedules | array of object | TimeSchedule | optional schedule targeting. |
Name | Type | Format | Description |
---|---|---|---|
key | string | int | optional media targeting. |
{
"actionType": "APP_INSTALL",
"name": "SmartNews Installs 7/12",
"sponsoredName": "SmartAds",
"bidAmount": 30,
"targetCpa": 300,
"totalBudget": 20000,
"dailyBudget": 5000,
"startTime": "2015-07-01T13:40:00Z",
"endTime": "2015-07-29T13:40:00Z",
"adCategoryId": "3",
"appSpec": {
"application": "579581125",
"urlscheme": "jp.gocro.smartnews://"
},
"trackingSpec": {
"trackingType": "SAT"
},
"targeting": {
"publishers": ["120", "121", "99810"],
"devices": ["IPHONE", "IPOD", "IPAD"],
"genders": ["MALE"],
"cities": [
{
"key": "13000"
}
],
"schedules": [
{
"startSecond": 0,
"endSecond": 14400
}
]
}
}
{
"data": {
"campaignId": "1000006"
}
}
Update an existing campaign.
Name | Type | Format | Description |
---|---|---|---|
campaignId | string | long | required The identifier for a campaign. |
Name | Type | Format | Description |
---|---|---|---|
name | string | optional | |
sponsoredName | string | optional | |
bidAmount | number | long | optional |
targetCpa | number | long | optional |
totalBudget | number | long | optional |
dailyBudget | number | long | optional |
startTime | string | ISO 8601 | optional |
endTime | string | ISO 8601 | optional |
adCategoryId | string | int | optional |
appSpec | object | AppSpec | optional |
trackingSpec | object | TrackingSpec | optional |
targeting | object | Targeting | optional |
{
"name": "SmartNews Installs 7/12",
"sponsoredName": "SmartAds",
"bidAmount": 30,
"targetCpa": 3000,
"totalBudget": 20000,
"dailyBudget": 5000,
"startTime": "2015-07-01T13:40:00Z",
"endTime": "2015-07-29T13:40:00Z",
"adCategoryId": "3",
"appSpec": {
"application": "579581125",
"urlscheme": "jp.gocro.smartnews://"
},
"trackingSpec": {
"trackingType": "SAT"
},
"targeting": {
"publishers": ["250", "251", "252"],
"devices": ["IPHONE", "IPOD", "IPAD"],
"genders": ["MALE"],
"cities": [
{
"key": "13000"
}
],
"schedules": [
{
"startSecond": 0,
"endSecond": 14400
}
]
}
}
{
"data": {
"campaignId": "1000007"
}
}
Request to review all of pending
creatives associated with the given campaign.
Request with no content body.
{
"data": [
{ "creativeId": "1000007", "approvalStatus": "PENDING_REVIEW" },
{ "creativeId": "1000008", "approvalStatus": "PENDING_REVIEW" },
{ "creativeId": "1000009", "approvalStatus": "PENDING_REVIEW" }
]
}
Pull back all of creatives in status of pending_review
.
Request with no content body.
{
"data": [
{ "creativeId": "1000010", "approvalStatus": "PENDING" },
{ "creativeId": "1000011", "approvalStatus": "PENDING" },
{ "creativeId": "1000012", "approvalStatus": "PENDING" }
]
}
Change campaign enable
field to true
or false
. (true
means deliverable state, and false
means NOT deliverable state)
true
{
"data": {
"campaignId": "1000007"
}
}
Retrieve the list of creatives for the specified campaignId
.
For general image or video creative
{
"data": [
{
"name": "label for creative management",
"creativeId": "1000013",
"enable": false,
"title": "Trending News & Stories",
"text": "Your news in one minute. Get the award-winning, addictively simple news app downloaded by over 12 million readers in 150 countries!",
"imageset": {
"a": {
"imageId": "1000015",
"imageUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg"
},
"b": {
"imageId": "1000016",
"imageUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg"
},
"c": {
"imageId": "1000017",
"imageUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg"
}
},
"trackingUrl": "http://foo.trackingsystem.com/?a=b&c=d&e=f",
"approvalStatus": "PENDING",
"merchandiseCatalogId": "1000024",
"urlTags": "utm_source=smartnews&key=val"
}
]
}
If it is carousel type creative, creative object does not have title
and imageset
property under the object root. Instead, it has an assetGroups
property.
You can determine if the carousel feature is enabled by the isStoryCreative
flag.
{
"data": [
{
"name": "label for creative management",
"creativeId": "1000013",
"enable": false,
"text": "Your news in one minute. Get the award-winning, addictively simple news app downloaded by over 12 million readers in 150 countries!",
"assetGroups": {
"a": {
"title": "First Carousel Item Title",
"image": {
"imageId": "1000015",
"imageUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg"
}
},
"b": {
"title": "Second Carousel Item Title",
"image": {
"imageId": "1000016",
"imageUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg"
}
},
"c": {
"title": "Third Carousel Item Title",
"image": {
"imageId": "1000017",
"imageUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg"
}
}
},
"approvalStatus": "PENDING",
"isStoryCreative": true,
"merchandiseCatalogId": "1000024",
"urlTags": "utm_source=smartnews&key=val"
}
]
}
Please be familiarized with the general information of Ads Manager V2 support first.
For users to distinguish AMv2 data from AMv1 data, the amV2
object is added to the first level of each element of the data array.
Name | Type | Format | Description |
---|---|---|---|
campaignId | string | The identifier of the 3L campaign | |
adGroupId | string | The identifier of the 3L ad group | |
adId | string | The identifier of the 3L ad | |
campaignName | string | The name of the 3L campaign | |
adGroupName | string | The name of the 3L ad group | |
adName | string | The name of the 3L ad | |
campaignConfiguredStatus | string | The configured status of campaign with possible values as ACTIVE, PAUSED, or DELETED | |
adGroupConfiguredStatus | string | The configured status of ad group with possible values as ACTIVE, PAUSED, or DELETED | |
adConfiguredStatus | string | The configured status of ad with possible values as ACTIVE, PAUSED, or DELETED | |
adCreativeFormatType | string | The format of the Creative that defines the view attribution of the 3L ad | |
isMigratedFromV1 | boolean | The flag to indicate if the ad object is migrated from Ads Manager V1 (AMv1) |
Because of the difference in the product specification of AMv1 and AMv2, the following response fields will not available for AMv2 Data.
Name | Description |
---|---|
urlTags | This field is always null for AMv2 Data |
skanMeasurement | This field is always null for AMv2 Data |
merchandiseCatalogId | This field is always null for AMv2 Data |
measurements | This field is always null for AMv2 Data |
trackingUrl | This field is always null for AMv2 Data |
{
"data": [
{
"name": "label for creative management",
"creativeId": "10000003",
"enable": false,
"title": "Trending News & Stories",
"text": "Your news in one minute. Get the award-winning, addictively simple news app downloaded by over 12 million readers in 150 countries!",
"imageset": {
"a": {
"imageId": "1000015",
"imageUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg",
"thumbnailUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg",
"width": 300,
"height": 300,
"filename": "aaa.jpg"
}
},
"approvalStatus": "PENDING",
"urlTags": null,
"skanMeasurement": null,
"merchandiseCatalogId": null,
"measurements": null,
"trackingUrl": null,
"amV2": {
"campaignId": "10000001",
"adGroupId": "10000002",
"adId": "10000003",
"campaignName": "AMv2 Campaign",
"adGroupName": "AMv2 Ad Group",
"adName": "AMv2 Ad",
"campaignConfiguredStatus": "ACTIVE",
"adGroupConfiguredStatus": "ACTIVE",
"adConfiguredStatus": "ACTIVE",
"adCreativeFormatType": "IMAGE",
"isMigratedFromV1": true
}
}
]
}
Retrieve the detail of a creative for the specified creativeId
.
{
"data": {
"name": "label for creative management",
"creativeId": "1000020",
"enable": false,
"title": "Trending News & Stories",
"text": "Your news in one minute. Get the award-winning, addictively simple news app downloaded by over 12 million readers in 150 countries!",
"imageset": {
"a": {
"imageId": "1000022",
"imageUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg"
},
"b": {
"imageId": "1000023",
"imageUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg"
},
"c": {
"imageId": "1000024",
"imageUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg"
}
},
"trackingUrl": "http://foo.trackingsystem.com/?a=b&c=d&e=f",
"approvalStatus": "PENDING",
"merchandiseCatalogId": "1000024",
"urlTags": "utm_source=smartnews&key=val"
}
}
Please be familiarized with the general information of Ads Manager V2 support first.
For users to distinguish AMv2 data from AMv1 data, the amV2
object is added to the first level of each element of the data array.
Name | Type | Format | Description |
---|---|---|---|
campaignId | string | The identifier of the 3L campaign | |
adGroupId | string | The identifier of the 3L ad group | |
adId | string | The identifier of the 3L ad | |
campaignName | string | The name of the 3L campaign | |
adGroupName | string | The name of the 3L ad group | |
adName | string | The name of the 3L ad | |
campaignConfiguredStatus | string | The configured status of campaign with possible values as ACTIVE, PAUSED, or DELETED | |
adGroupConfiguredStatus | string | The configured status of ad group with possible values as ACTIVE, PAUSED, or DELETED | |
adConfiguredStatus | string | The configured status of ad with possible values as ACTIVE, PAUSED, or DELETED | |
adCreativeFormatType | string | The format of the Creative that defines the view attribution of the 3L ad | |
isMigratedFromV1 | boolean | The flag to indicate if the ad object is migrated from Ads Manager V1 (AMv1) |
Because of the difference in the product specification of AMv1 and AMv2, the following response fields will not available for AMv2 Data.
Name | Description |
---|---|
urlTags | This field is always null for AMv2 Data |
skanMeasurement | This field is always null for AMv2 Data |
merchandiseCatalogId | This field is always null for AMv2 Data |
measurements | This field is always null for AMv2 Data |
trackingUrl | This field is always null for AMv2 Data |
{
"data": {
"name": "label for creative management",
"creativeId": "10000003",
"enable": false,
"title": "Trending News & Stories",
"text": "Your news in one minute. Get the award-winning, addictively simple news app downloaded by over 12 million readers in 150 countries!",
"imageset": {
"a": {
"imageId": "1000015",
"imageUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg",
"thumbnailUrl": "http://creative.smartnews-ads.com/path/to/aaa.jpg",
"width": 300,
"height": 300,
"filename": "aaa.jpg"
}
},
"approvalStatus": "PENDING",
"urlTags": null,
"skanMeasurement": null,
"merchandiseCatalogId": null,
"measurements": null,
"trackingUrl": null,
"amV2": {
"campaignId": "10000001",
"adGroupId": "10000002",
"adId": "10000003",
"campaignName": "AMv2 Campaign",
"adGroupName": "AMv2 Ad Group",
"adName": "AMv2 Ad",
"campaignConfiguredStatus": "ACTIVE",
"adGroupConfiguredStatus": "ACTIVE",
"adConfiguredStatus": "ACTIVE",
"adCreativeFormatType": "IMAGE",
"isMigratedFromV1": true
}
}
}
Creates a new creative associated to a given campaign.
Name | Type | Format | Description |
---|---|---|---|
campaignId | string | required The identifier for a campaign. |
Name | Type | Format | Description |
---|---|---|---|
name | string | required The name for creative. | |
title | string | required The title for creative. It is used as creative short text. | |
text | string | required The text for creative. It is used as creative long text. | |
imageset | object | ImageSetC | required The image set for creative. |
linkUrl | string | url | required if actionType is APP_INSTALL The link destination on click ad. |
trackingUrl | string | url | optional The url for tracking tool. |
targeting | object | CreativeTargeting | optional The targeting for creative. |
Name | Type | Format | Description |
---|---|---|---|
a | object | Image | required The image type for A (size of 300x300). |
b | object | Image | required The image type for B (size of 600x500). |
c | object | Image | required The image type for C (size of 1280x720). |
Name | Type | Format | Description |
---|---|---|---|
imageId | string | required The identifier for a image. |
Name | Type | Format | Description |
---|---|---|---|
genres | array | number | optional Genre targeting. |
{
"name": "label for creative management",
"title": "Trending News & Stories",
"text": "Your news in one minute. Get the award-winning, addictively simple news app downloaded by over 12 million readers in 150 countries!",
"imageset": {
"a": { "imageId": "1000041" },
"b": { "imageId": "1000042" },
"c": { "imageId": "1000043" }
},
"trackingUrl": "http://foo.trackingsystem.com/?a=b&c=d&e=f",
"targeting": {
"genres": ["1", "2"]
}
}
{
"data": {
"creativeId": "1000025"
}
}
Updates an existing creative.
Name | Type | Format | Description |
---|---|---|---|
creativeId | string | required The identifier for a creative. |
Name | Type | Format | Description |
---|---|---|---|
name | string | optional The name for creative. | |
title | string | optional The title for creative. It is used as creative short text. | |
text | string | optional The text for creative. It is used as creative long text. | |
imageset | object | ImageSetU | optional The image set for creative. |
linkUrl | string | url | optional The link destination on click ad. |
trackingUrl | string | url | optional The url for tracking tool. |
targeting | object | CreativeTargeting | optional The taregeting for creative. |
Name | Type | Format | Description |
---|---|---|---|
a | object | Image | optional The image type for A (size of 300x300). |
b | object | Image | optional The image type for B (size of 600x500). |
c | object | Image | optional The image type for C (size of 1280x720). |
{
"name": "label for creative management",
"creativeId": "10000030",
"title": "Trending News & Stories",
"text": "Your news in one minute. Get the award-winning, addictively simple news app downloaded by over 12 million readers in 150 countries!",
"imageset": {
"a": { "imageId": "10000031" },
"b": { "imageId": "10000032" },
"c": { "imageId": "10000033" }
},
"trackingUrl": "http://foo.trackingsystem.com/?a=b&c=d&e=f",
"targeting": {
"genres": ["1", "2"]
}
}
{
"data": {
"creativeId": "10000030"
}
}
Change creative enable
to true
or false
. (true
means deliverable state, and false
means NOT deliverable state)
true
{
"data": {
"creativeId": "1000037"
}
}
Upload an image for creative.
This api needs request's content body as multipart/form-data
with file
form parameter, and image upload size is up to 500KB.
curl -v --header "X-Auth-Api: {api_key}" -F [email protected] {endpoint}/accounts/1000648/images/upload
{
"data": {
"imageId": "1000884",
"imageUrl": "https://xxxx.xxxx.xxx/1000648/201510/pX9yAXmW5iBJjQjY/1000884.png",
"filename": "1035456.png",
"width": 1280,
"height": 720,
"imageType": "C"
}
}
Retrieve available media for targeting.
{
"data": [
{
"publisherId": "120",
"name": "SmartNews"
},
{
"publisherId": "121",
"name": "mixi"
},
{
"publisherId": "99810",
"name": "cookpad"
}
]
}
Retrieve available categories for targeting.
{
"data": [
{
"name": "エンタテイメント",
"categoryId": "3",
"parentId": null,
"level": 1
},
{
"name": "ショー/演劇",
"categoryId": "23",
"parentId": "3",
"level": 2
},
{
"name": "コンピューター/電子機器",
"categoryId": "5",
"parentId" : null,
"level": 1
}
]
}
Retrieve available genres for targeting.
{
"data": [
{
"genreId": "1",
"name": "エンタメ"
},
{
"genreId": "2",
"name": "グルメ"
}
]
}
Retrieve available cities for targeting.
{
"data": [
{
"name": "東京都",
"cityId": "13000",
"parentId": null,
"level": 1
},
{
"name": "渋谷区",
"cityId": "13113",
"parentId": "13000",
"level": 2
},
{
"name": "神奈川県",
"categoryId": "14000",
"parentId" : null,
"level": 1
}
]
}
Name | Type | Spec |
---|---|---|
boolean | boolean | (or true false) |
looseUrl | string | /^https?://.+/ |
looseUrlScheme | string | /^[^:]+:.*/ |
Name | Type | Format | Required | Spec |
---|---|---|---|---|
actionType | string | ActionType | Y | |
name | string | Y | (and nonEmpty (maxLength 128)) | |
sponsoredName | string | Y | (and nonEmpty (maxLength 128)) | |
bidAmount | long | Y | (min floorPrice) | |
targetCpa | long | N | (min (multiple 100 1_000_000)) | |
totalBudget | long | Y | (min 1_000_000) | |
dailyBudget | long | Y | (min 1_000_000) | |
startTime | string | ISO 8601 | Y | (and (format "yyyy-MM-dd'T'HH:mm:ssZ") (min currentTime)) |
endTime | string | ISO 8601 | Y | (and (format "yyyy-MM-dd'T'HH:mm:ssZ") (min startTime)) |
adCategoryId | int | Y | (existIn /adcategories) | |
appSpec | object | AppSpec | Y if APP_INSTALL | (and nonEmpty (maxLength 256) (or androidAppId iosAppId)) |
trackingSpec | object | TrackingType | N | it is available if actionType is APP_INSTALL |
Name | Type | Format | Required | Spec |
---|---|---|---|---|
application | string | Y | (and nonEmpty (maxLength 256) (or androidAppId iosAppId)) | |
urlscheme | string | N | (and (maxLength 1024) looseUrlScheme) |
Name | Type | Format | Required | Spec |
---|---|---|---|---|
trackingType | string | TrackingType | N |
Name | Type | Format | Required | Spec |
---|---|---|---|---|
publishers | array of string | N | (existIn (GET /publishers)) | |
devices | array of string | DeviceType | N | |
genders | array of string | GenderType | N | |
cities | array of object | CityTargeting | N | (existIn (GET /cities)) |
schedules | array of object | ScheduleTargeting | N |
Name | Type | Format | Required | Spec |
---|---|---|---|---|
key | string | Y | (existIn /cities) |
Name | Type | Format | Required | Spec |
---|---|---|---|---|
startSecond | number | int | Y | (and (min 0) (max 86400) (max endSecond)) |
endSecond | number | int | Y | (and (min 0) (max 86400) (min startSecond)) |
Name | Type | Format | Required | Spec |
---|---|---|---|---|
name | string | Y | (and nonEmpty (maxLength 128)) | |
title | string | Y | (and (minLength 10) (maxLength 25)) | |
text | string | Y | (and (minLength 10) (maxLength 90)) | |
imageset | object | CreativeImageSet | N | |
video | object | N | ||
assetGroups | object | N | Exist only when is_story_creative = ture for 2L creatives or creative.format_type == CAROUSEL for 3L creatives |
|
linkUrl | string | Y | (and nonEmpty (maxLength 1024) looseUrl) | |
trackingUrl | string | N | (and nonEmpty (maxLength 1024) looseUrl) |
Name | Type | Format | Required | Spec |
---|---|---|---|---|
imageId | string | Y |
Name | Type | Format | Required | Spec |
---|---|---|---|---|
a | object | CreativeImage | Y | |
b | object | CreativeImage | Y | |
c | object | CreativeImage | Y | |
e | object | CreativeImage | Y |
Name | Type | Format | Required | Spec |
---|---|---|---|---|
genres | array of string | N | (existIn (GET /genres)) |
ActionType |
---|
APP_INSTALL |
WEBSITE_CONVERSION |
TrackingType | Vendor Description |
---|---|
NONE | no tracking used |
FOX | FOX |
ADX | AD-X Tracking |
MAT | Mobile App Tracking |
KOCHAVA | |
PARTYTRACK | |
KING | |
ADJUST | |
SAT | SmartNews Ads Tracking |
DeviceType |
---|
IPHONE |
IPOD |
IPAD |
ANDROID |
ANDROID_TABLET |
GenderType |
---|
MALE |
FEMALE |
CampaignApprovalStatus |
---|
PENDING |
APPROVED |
CreativeApprovalStatus |
---|
PENDING |
PENDING_REVIEW |
APPROVED |
REJECTED |
The SmartNews Ads Custom Audience API allows partners to manipulate custom audiences without accessing the SmartNews advertising web console.
Steps
- Upload CSV formatted audience file to SmartNews Ads server
- Register the uploaded file as a Custom Audience data in SmartNews Ads platform
- You can get your audience file status. Once you can confirm the custom audience data is ready to use, you can use it
- If you don’t need the audience data anymore, you can delete the data file physically from SmartNews Ads server
Upload CSV formatted audience file to SmartNews Ads server. The file should contain 1 ID per line, and the first line
of the file should contain a string with the ID type (currently the only accepted type is madid
).
Name | Type | Format | Description |
---|---|---|---|
file | (string, object) | (string, file data) | |
accountId | string | accountId you allow to access |
{
"data": {
"idlistId": "L2N1c3RvbWF1ZGllbmNlL2lkbGC8yMaU1BvT0xLQS5neg=="
}
}
Register the uploaded file as a Custom Audience data in SmartNews Ads platform
Name | Type | Format | Description |
---|---|---|---|
name | string | required The name of the custom audience | |
idlistId | string | required idlistId that you got by idlist request | |
description | string | optional description for this custom audience | |
accountId | string | required accountId to create audience under | |
type | string | required must be "idlist" |
{
"data":{
"audienceId":10000001,
"accountId":10000000,
"name":"Audience API test",
"description":"This is a test ",
"type":"idlist",
"status":"enabled",
"ready":false,
"size":0,
"configuration":{
"type":"idlist",
"data":{
"type":"idlist",
"idlistId":"L2N1c3RvbWF1ZGllbmNlL2lkbGC8yMaU1BvT0xLQS5neg=="
}
},
"createdAt":"2021-07-20T09:32:25+0000",
"updatedAt":"2021-07-20T09:32:25+0000"
}
}
Retrieve an idlist status using idlistId
{
"data":{
"idlistId":"L2N1c3RvbWF1ZGllbmNlL2lkbGC8yMaU1BvT0xLQS5neg==",
"idlistStatus":"UPLOADED"
}
}
Get all audience info of an accountId. By adding &audienceIds={audienceId1},…,{audienceIdk} to the url paramenter, you can get the audienceIds specific information.
{
"data":[
{
"audienceId":10000001,
"accountId":10000000,
"name":"Audience API test",
"description":"this is a test",
"type":"idlist",
"status":"archived",
"ready":false,
"size":0,
"configuration":{
"type":"idlist",
"data":{
"type":"idlist",
"idlistId":"L2N1c3RvbWF1ZGllbmNlL2lkbGC8yMaU1BvT0xLQS5neg=="
}
},
"createdAt":"2021-07-13T07:40:35+0000",
"updatedAt":"2021-07-13T09:49:41+0000"
},
{
"audienceId":10000002,
"accountId":10000000,
"name":"Audience API test2",
"description":"this is a test2",
"type":"idlist",
"status":"archived",
"ready":false,
"size":0,
"configuration":{
"type":"idlist",
"data":{
"type":"idlist",
"idlistId":"F1ZGllbmNlL2lkbGC8yMaU1BvkbGC8yMaU1BvT0xLQS5neg=="
}
},
"createdAt":"2021-07-13T07:41:05+0000",
"updatedAt":"2021-07-13T09:49:30+0000"
}
]
}
Retrieve an audience info by audienceId
{
"data":{
"audienceId":10000002,
"accountId":1000000,
"name":"Audience API test2",
"description":"this is a test2",
"type":"idlist",
"status":"enabled",
"ready":false,
"size":0,
"configuration":{
"type":"idlist",
"data":{
"type":"idlist",
"idlistId":" F1ZGllbmNlL2lkbGC8yMaU1BvkbGC8yMaU1BvT0xLQS5neg=="
}
},
"createdAt":"2021-07-13T07:43:48+0000",
"updatedAt":"2021-07-13T07:43:48+0000"
}
}
Delete an idlistId file from SmartNews Ads server physically
{
"success":true
}
Update status of specified audience. There are following rules
- To switch status to "archive", the current status must be "disabled"
- In case the current status is "archived", you cannot switch to "enable" or "disable"
Name | Type | Format | Description |
---|---|---|---|
status | string | must be one of "enable", "disable", "archive" |
{
"success":true
}
Update name and description of an existing audience. Note: at least one parameter must be set to receive a successful response.
Name | Type | Format | Description |
---|---|---|---|
name | string | optional The name of the custom audience | |
description | string | optional The description of the custom audience |
{
"success":true
}