curl --request POST \
--url https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"keyword": "<string>",
"location_name": "<string>",
"location_code": 123,
"priority": 123,
"postback_url": "<string>",
"pingback_url": "<string>",
"postback_data": "<string>"
}
]
'import requests
url = "https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post"
payload = [
{
"keyword": "<string>",
"location_name": "<string>",
"location_code": 123,
"priority": 123,
"postback_url": "<string>",
"pingback_url": "<string>",
"postback_data": "<string>"
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
keyword: '<string>',
location_name: '<string>',
location_code: 123,
priority: 123,
postback_url: '<string>',
pingback_url: '<string>',
postback_data: '<string>'
}
])
};
fetch('https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post', 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.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'keyword' => '<string>',
'location_name' => '<string>',
'location_code' => 123,
'priority' => 123,
'postback_url' => '<string>',
'pingback_url' => '<string>',
'postback_data' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post"
payload := strings.NewReader("[\n {\n \"keyword\": \"<string>\",\n \"location_name\": \"<string>\",\n \"location_code\": 123,\n \"priority\": 123,\n \"postback_url\": \"<string>\",\n \"pingback_url\": \"<string>\",\n \"postback_data\": \"<string>\"\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"keyword\": \"<string>\",\n \"location_name\": \"<string>\",\n \"location_code\": 123,\n \"priority\": 123,\n \"postback_url\": \"<string>\",\n \"pingback_url\": \"<string>\",\n \"postback_data\": \"<string>\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"keyword\": \"<string>\",\n \"location_name\": \"<string>\",\n \"location_code\": 123,\n \"priority\": 123,\n \"postback_url\": \"<string>\",\n \"pingback_url\": \"<string>\",\n \"postback_data\": \"<string>\"\n }\n]"
response = http.request(request)
puts response.read_body{
"version": "<string>",
"status_code": 123,
"status_message": "<string>",
"time": "<string>",
"cost": 123,
"tasks_count": 123,
"tasks_error": 123,
"tasks": [
"<string>"
],
"tasks[].id": "<string>",
"tasks[].status_code": 123,
"tasks[].status_message": "<string>",
"tasks[].cost": 123,
"tasks[].result_count": 123
}Setting Google Ads Advertisers SERP Tasks
Queues the advertisers matching a query in Google’s ads transparency data on Google, returning a task id in tasks[0].
curl --request POST \
--url https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"keyword": "<string>",
"location_name": "<string>",
"location_code": 123,
"priority": 123,
"postback_url": "<string>",
"pingback_url": "<string>",
"postback_data": "<string>"
}
]
'import requests
url = "https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post"
payload = [
{
"keyword": "<string>",
"location_name": "<string>",
"location_code": 123,
"priority": 123,
"postback_url": "<string>",
"pingback_url": "<string>",
"postback_data": "<string>"
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
keyword: '<string>',
location_name: '<string>',
location_code: 123,
priority: 123,
postback_url: '<string>',
pingback_url: '<string>',
postback_data: '<string>'
}
])
};
fetch('https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post', 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.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'keyword' => '<string>',
'location_name' => '<string>',
'location_code' => 123,
'priority' => 123,
'postback_url' => '<string>',
'pingback_url' => '<string>',
'postback_data' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post"
payload := strings.NewReader("[\n {\n \"keyword\": \"<string>\",\n \"location_name\": \"<string>\",\n \"location_code\": 123,\n \"priority\": 123,\n \"postback_url\": \"<string>\",\n \"pingback_url\": \"<string>\",\n \"postback_data\": \"<string>\"\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"keyword\": \"<string>\",\n \"location_name\": \"<string>\",\n \"location_code\": 123,\n \"priority\": 123,\n \"postback_url\": \"<string>\",\n \"pingback_url\": \"<string>\",\n \"postback_data\": \"<string>\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"keyword\": \"<string>\",\n \"location_name\": \"<string>\",\n \"location_code\": 123,\n \"priority\": 123,\n \"postback_url\": \"<string>\",\n \"pingback_url\": \"<string>\",\n \"postback_data\": \"<string>\"\n }\n]"
response = http.request(request)
puts response.read_body{
"version": "<string>",
"status_code": 123,
"status_message": "<string>",
"time": "<string>",
"cost": 123,
"tasks_count": 123,
"tasks_error": 123,
"tasks": [
"<string>"
],
"tasks[].id": "<string>",
"tasks[].status_code": 123,
"tasks[].status_message": "<string>",
"tasks[].cost": 123,
"tasks[].result_count": 123
}id in tasks[0].id. The charge lands here; fetching is free, including re-fetching. 💰 Measured at 0.002upstreamagainstthe0.012 billed - this family is the cheapest source of search data here, six times under the flat rate. Wrapped in DataForSEO’s envelope: data in tasks[0].result, outcome in tasks[0].status_code - a rejected request still returns HTTP 200. The live twin answers immediately and is simpler for a single query; queue when the batch would outlast a tool call.
Example
curl -X POST "https://api.aisa.one/apis/v1/dataforseo/serp/google/ads_advertisers/task_post" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[{"keyword": "...", "location_name": "...", "location_code": "..."}]'
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Keyword to search advertisers for
Full name of search engine location
Search engine location code
Task priority
URL for sending task results
Notification URL of a completed task
Postback datatype; only advanced is supported
Response
Successful response
The current version of the API
General status code
General informational message
Execution time, seconds
Total tasks cost, USD
The number of tasks in the tasks array
The number of tasks in the tasks array returned with an error
Array of task objects
Task identifier in UUID format
Task status code
Task status message
Cost of the task, USD
Number of elements in the result array