建立區段
Creates a new player segment by defining the conditions on player properties. Also, create actions to target the player segments for a title.
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| InvalidSegment | 1242 |
| NameNotAvailable | 1058 |
| ProductDisabledForTitle | 1609 |
| SegmentManagementInvalidInput | 10005 |
| SegmentManagementInvalidSegmentId | 10004 |
| SegmentManagementInvalidSegmentName | 10006 |
| SegmentManagementNoExpressionTree | 10001 |
| SegmentManagementSegmentCountOverLimit | 10003 |
| SegmentManagementTriggerActionCountOverLimit | 10002 |
| UnknownError | 1039 |
POST
/
Admin
/
CreateSegment
Create Segment
curl --request POST \
--url https://{titleId}.playfabapi.com/Admin/CreateSegment \
--header 'Content-Type: application/json' \
--header 'X-SecretKey: <api-key>' \
--data '
{
"SegmentModel": {
"Name": "My user segment",
"SegmentOrDefinitions": [
{
"SegmentAndDefinitions": [
{
"AllPlayersFilter": {}
}
]
}
],
"EnteredSegmentActions": [
{
"BanPlayerAction": {
"BanHours": 2,
"ReasonForBan": "Not played for a year"
}
}
],
"LeftSegmentActions": [
{
"ExecuteAzureFunctionAction": {
"AzureFunction": "AzureFunction1",
"FunctionParameter": "{\"InputParam\": \"1\"}"
}
}
]
}
}
'import requests
url = "https://{titleId}.playfabapi.com/Admin/CreateSegment"
payload = { "SegmentModel": {
"Name": "My user segment",
"SegmentOrDefinitions": [{ "SegmentAndDefinitions": [{ "AllPlayersFilter": {} }] }],
"EnteredSegmentActions": [{ "BanPlayerAction": {
"BanHours": 2,
"ReasonForBan": "Not played for a year"
} }],
"LeftSegmentActions": [{ "ExecuteAzureFunctionAction": {
"AzureFunction": "AzureFunction1",
"FunctionParameter": "{\"InputParam\": \"1\"}"
} }]
} }
headers = {
"X-SecretKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-SecretKey': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
SegmentModel: {
Name: 'My user segment',
SegmentOrDefinitions: [{SegmentAndDefinitions: [{AllPlayersFilter: {}}]}],
EnteredSegmentActions: [{BanPlayerAction: {BanHours: 2, ReasonForBan: 'Not played for a year'}}],
LeftSegmentActions: [
{
ExecuteAzureFunctionAction: {AzureFunction: 'AzureFunction1', FunctionParameter: '{"InputParam": "1"}'}
}
]
}
})
};
fetch('https://{titleId}.playfabapi.com/Admin/CreateSegment', 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://{titleId}.playfabapi.com/Admin/CreateSegment",
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([
'SegmentModel' => [
'Name' => 'My user segment',
'SegmentOrDefinitions' => [
[
'SegmentAndDefinitions' => [
[
'AllPlayersFilter' => [
]
]
]
]
],
'EnteredSegmentActions' => [
[
'BanPlayerAction' => [
'BanHours' => 2,
'ReasonForBan' => 'Not played for a year'
]
]
],
'LeftSegmentActions' => [
[
'ExecuteAzureFunctionAction' => [
'AzureFunction' => 'AzureFunction1',
'FunctionParameter' => '{"InputParam": "1"}'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-SecretKey: <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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Admin/CreateSegment"
payload := strings.NewReader("{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-SecretKey", "<api-key>")
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://{titleId}.playfabapi.com/Admin/CreateSegment")
.header("X-SecretKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Admin/CreateSegment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-SecretKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {
"ErrorMessage": "<string>",
"SegmentId": "<string>"
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}授權
This API requires a title secret key, available to title admins, from PlayFab Game Manager.
主體
application/json
Send all the segment details part of CreateSegmentRequest
Send all the segment details part of CreateSegmentRequest
Segment model with all of the segment properties data.
Show child attributes
Show child attributes
最後修改於 2026年10月6日
這個頁面有幫助嗎?
⌘I
Create Segment
curl --request POST \
--url https://{titleId}.playfabapi.com/Admin/CreateSegment \
--header 'Content-Type: application/json' \
--header 'X-SecretKey: <api-key>' \
--data '
{
"SegmentModel": {
"Name": "My user segment",
"SegmentOrDefinitions": [
{
"SegmentAndDefinitions": [
{
"AllPlayersFilter": {}
}
]
}
],
"EnteredSegmentActions": [
{
"BanPlayerAction": {
"BanHours": 2,
"ReasonForBan": "Not played for a year"
}
}
],
"LeftSegmentActions": [
{
"ExecuteAzureFunctionAction": {
"AzureFunction": "AzureFunction1",
"FunctionParameter": "{\"InputParam\": \"1\"}"
}
}
]
}
}
'import requests
url = "https://{titleId}.playfabapi.com/Admin/CreateSegment"
payload = { "SegmentModel": {
"Name": "My user segment",
"SegmentOrDefinitions": [{ "SegmentAndDefinitions": [{ "AllPlayersFilter": {} }] }],
"EnteredSegmentActions": [{ "BanPlayerAction": {
"BanHours": 2,
"ReasonForBan": "Not played for a year"
} }],
"LeftSegmentActions": [{ "ExecuteAzureFunctionAction": {
"AzureFunction": "AzureFunction1",
"FunctionParameter": "{\"InputParam\": \"1\"}"
} }]
} }
headers = {
"X-SecretKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-SecretKey': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
SegmentModel: {
Name: 'My user segment',
SegmentOrDefinitions: [{SegmentAndDefinitions: [{AllPlayersFilter: {}}]}],
EnteredSegmentActions: [{BanPlayerAction: {BanHours: 2, ReasonForBan: 'Not played for a year'}}],
LeftSegmentActions: [
{
ExecuteAzureFunctionAction: {AzureFunction: 'AzureFunction1', FunctionParameter: '{"InputParam": "1"}'}
}
]
}
})
};
fetch('https://{titleId}.playfabapi.com/Admin/CreateSegment', 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://{titleId}.playfabapi.com/Admin/CreateSegment",
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([
'SegmentModel' => [
'Name' => 'My user segment',
'SegmentOrDefinitions' => [
[
'SegmentAndDefinitions' => [
[
'AllPlayersFilter' => [
]
]
]
]
],
'EnteredSegmentActions' => [
[
'BanPlayerAction' => [
'BanHours' => 2,
'ReasonForBan' => 'Not played for a year'
]
]
],
'LeftSegmentActions' => [
[
'ExecuteAzureFunctionAction' => [
'AzureFunction' => 'AzureFunction1',
'FunctionParameter' => '{"InputParam": "1"}'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-SecretKey: <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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Admin/CreateSegment"
payload := strings.NewReader("{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-SecretKey", "<api-key>")
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://{titleId}.playfabapi.com/Admin/CreateSegment")
.header("X-SecretKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Admin/CreateSegment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-SecretKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {
"ErrorMessage": "<string>",
"SegmentId": "<string>"
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}