curl --request POST \
--url https://api.topsort.com/public/v1/offsite-ads/audiences/user-list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My user list audience",
"dsp": [
"google_ads"
],
"description": "This is a user list audience description."
}
'import requests
url = "https://api.topsort.com/public/v1/offsite-ads/audiences/user-list"
payload = {
"name": "My user list audience",
"dsp": ["google_ads"],
"description": "This is a user list audience description."
}
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({
name: 'My user list audience',
dsp: ['google_ads'],
description: 'This is a user list audience description.'
})
};
fetch('https://api.topsort.com/public/v1/offsite-ads/audiences/user-list', 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.topsort.com/public/v1/offsite-ads/audiences/user-list",
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([
'name' => 'My user list audience',
'dsp' => [
'google_ads'
],
'description' => 'This is a user list audience description.'
]),
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.topsort.com/public/v1/offsite-ads/audiences/user-list"
payload := strings.NewReader("{\n \"name\": \"My user list audience\",\n \"dsp\": [\n \"google_ads\"\n ],\n \"description\": \"This is a user list audience description.\"\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.topsort.com/public/v1/offsite-ads/audiences/user-list")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My user list audience\",\n \"dsp\": [\n \"google_ads\"\n ],\n \"description\": \"This is a user list audience description.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topsort.com/public/v1/offsite-ads/audiences/user-list")
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 \"name\": \"My user list audience\",\n \"dsp\": [\n \"google_ads\"\n ],\n \"description\": \"This is a user list audience description.\"\n}"
response = http.request(request)
puts response.read_body{
"jobId": "123e4567-e89b-12d3-a456-426614174000",
"url": "https://offsite-ads-user-list-uploads.s3.us-east-2.amazonaws.com/123e4567-e89b-12d3-a456-426614174000.csv"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Create Offsite Audiences Job
Create a new offsite audience job.
This endpoint creates a job to create an offsite audience alongside a presigned url to upload the audience csv file. The presigned url is valid for 1 hour and should be used to upload the audience csv file. The audience creation will begin once the csv file is uploaded.
The audience CSV should contain one or more of the following columns with hashed and normalized identifiers: hashed_email, hashed_phone, hashed_first_name, hashed_last_name, hashed_mobile_device_id. Strongest identifiers are hashed_email and hashed_phone. Hashing should use the SHA256 method. The audience will be synced to the specified DSPs.
curl --request POST \
--url https://api.topsort.com/public/v1/offsite-ads/audiences/user-list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My user list audience",
"dsp": [
"google_ads"
],
"description": "This is a user list audience description."
}
'import requests
url = "https://api.topsort.com/public/v1/offsite-ads/audiences/user-list"
payload = {
"name": "My user list audience",
"dsp": ["google_ads"],
"description": "This is a user list audience description."
}
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({
name: 'My user list audience',
dsp: ['google_ads'],
description: 'This is a user list audience description.'
})
};
fetch('https://api.topsort.com/public/v1/offsite-ads/audiences/user-list', 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.topsort.com/public/v1/offsite-ads/audiences/user-list",
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([
'name' => 'My user list audience',
'dsp' => [
'google_ads'
],
'description' => 'This is a user list audience description.'
]),
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.topsort.com/public/v1/offsite-ads/audiences/user-list"
payload := strings.NewReader("{\n \"name\": \"My user list audience\",\n \"dsp\": [\n \"google_ads\"\n ],\n \"description\": \"This is a user list audience description.\"\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.topsort.com/public/v1/offsite-ads/audiences/user-list")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My user list audience\",\n \"dsp\": [\n \"google_ads\"\n ],\n \"description\": \"This is a user list audience description.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topsort.com/public/v1/offsite-ads/audiences/user-list")
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 \"name\": \"My user list audience\",\n \"dsp\": [\n \"google_ads\"\n ],\n \"description\": \"This is a user list audience description.\"\n}"
response = http.request(request)
puts response.read_body{
"jobId": "123e4567-e89b-12d3-a456-426614174000",
"url": "https://offsite-ads-user-list-uploads.s3.us-east-2.amazonaws.com/123e4567-e89b-12d3-a456-426614174000.csv"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Autorisierungen
Abfrageparameter
Body
The DSPs to sync the audience to. Include one or more of: google_ads, meta, tiktok_ads, snapchat_ads.
1DSPs an offsite audience is synced to.
google_ads, meta, tiktok_ads, snapchat_ads ["google_ads"]
["google_ads", "meta"]
Antwort
Successful Response
War diese Seite hilfreich?