カテゴリAPI
カテゴリAPIを使用して、使用可能なすべてのカテゴリが含まれる階層ツリー構造であるOracle Data Cloudタクソノミのカテゴリ・データを取得、作成、更新およびフィルタ処理できます。タクソノミからカテゴリを選択し、OR論理を使用してカテゴリをセグメントにグループ化することでターゲット・オーディエンスを作成した後、ANDまたはNAND論理を使用して個々のセグメントを含めたり除外できます。
重要: カテゴリAPIでは、Self-ClassificationカテゴリおよびタクソノミAPIは非推奨になっています。古いAPIを使用している場合、追加パラメータのメリットを活用するには、このAPIに移行する必要があります。これらの新機能には、タクソノミの任意の場所にカテゴリを作成する機能や、Oracle Data Cloudサービス・チームによって作成されたカテゴリを編集する機能、新しい所有者と公開ビューを使用してファーストパーティ・カテゴリやサードパーティ・カテゴリを取得する機能、(国やIDソースで)カテゴリのリーチを表示する機能などがあります。
ノート: ユーザーがOracle Data CloudプラットフォームUIでキャンペーンを作成することはなくなりました。キャンペーン・ワークフローは、オーディエンス・ワークフローの一部になりました。ただし、プラットフォームでは引き続きキャンペーンを使用して、オーディエンス・データ配信を管理できます。キャンペーンは、UIユーザーがオーディエンスを配信する際に自動的に作成されます。APIでは、以前と同様にキャンペーンを作成して使用します。
このトピックの内容
APIについて知る
次の埋込みI/Oドキュメントを参照して、APIについての理解を深めることができます。I/Oドキュメントでは、各メソッドのパラメータについて説明し、コールのテンプレートを提供しています。ただし、ツールからライブAPIコールを実行することはできません。
次のリンクを新しいタブで開くと、I/Oドキュメントが3つのペインの形式で表示されます。
このAPIの詳細は、My Oracle Support (MOS)にお問い合せください。
サービスURI
カテゴリAPIのURIは、次のとおりです。
taxonomy.bluekai.com/taxonomy/categories
スキーマ
カテゴリAPIスキーマのURIは、次のとおりです。
taxonomy.bluekai.com/taxonomy/categories/category.schema

{
"$schema" : "https://json-schema.org/draft-04/schema#",
"id" : "#category",
"type" : "object",
"title" : "Category Schema",
"description" : "The details of a particular Category",
"additionalProperties" : false,
"properties" : {
"id" : {
"type" : "integer",
"description" : "ID of a category",
"minimum" : 1,
"o:queryable" : "true"
},
"name" : {
"type" : "string",
"description" : "Name of a category",
"minLength" : 1,
"maxLength" : 255,
"o:queryable" : "true"
},
"parentCategory" : {
"type" : "object",
"description" : "Parent of a category",
"properties" : {
"id" : {
"type" : "integer",
"description" : "ID of a category",
"minimum" : 1
},
"name" : {
"type" : "string",
"description" : "Name of a category",
"minLength" : 1,
"maxLength" : 255
}
},
"required" : [ "id" ]
},
"description" : {
"type" : "string",
"description" : "Generic Description of a category"
},
"notes" : {
"type" : "string",
"description" : "Notes for a category"
},
"partner" : {
"type" : "object",
"description" : "Owner partner of a category",
"properties" : {
"id" : {
"type" : "integer",
"description" : "ID of a partner"
},
"name" : {
"type" : "string",
"description" : "Name of a partner",
"minLength" : 1,
"maxLength" : 255
}
}
},
"vertical" : {
"type" : "object",
"description" : "Vertical of a category",
"properties" : {
"id" : {
"type" : "integer",
"description" : "ID of a Vertical",
"minimum" : 1
},
"name" : {
"type" : "string",
"description" : "Name of a Vertical",
"minLength" : 1,
"maxLength" : 255
}
}
},
"isForNavigationOnlyFlag" : {
"type" : "boolean",
"description" : "If true, this category will be a parent node used for navigation and cannot be added to an audience"
},
"ownershipType" : {
"enum" : [ "firstParty", "secondParty", "thirdParty" ],
"description" : "Describes ownership type of this category (read-only field)"
},
"isLeafFlag" : {
"type" : "boolean",
"description" : "flag to indicate if this category is a leaf node in the current view (read-only field)"
},
"categoryPrice" : {
"type" : "number",
"description" : "the price of a category"
},
"universalPrice" : {
"type" : "number",
"description" : "the universal price of a category"
},
"buyerPrice" : {
"type" : "number",
"description" : "the buyer price of a category"
},
"stats" : {
"type" : "object",
"description" : "various statistics for this category",
"properties" : {
"reach" : {
"javaType" : "java.lang.Long",
"description" : "reach for this category (read-only field)"
},
"audienceCount" : {
"type" : "integer",
"description" : "number of audiences using this category (read-only field)"
},
"campaignCount" : {
"type" : "integer",
"description" : "number of campaigns using this category (read-only field)"
}
}
},
"pathFromRoot" : {
"type" : "object",
"description" : "Path from root to a particular category",
"properties" : {
"ids" : {
"type" : "array",
"items" : {
"type" : "integer"
},
"description" : "List of category ids that form a path from the root",
"minItems" : 1
},
"names" : {
"type" : "array",
"items" : {
"type" : "string"
},
"description" : "List of category names that form a path from the root",
"minItems" : 1
}
}
},
"status" : {
"enum" : [ "active", "deleted", "draft" ],
"description" : "Describes status of current resource",
"default" : "active"
},
"links" : {
"type" : "array",
"description" : "Link objects mandated by Oracle Rest standards",
"items" : {
"$ref" : "orarestschemas.json#definitions/instanceLink"
}
}
},
"required" : [ "name", "parentCategory", "partner" ]
}
キャンペーンの読取り
キャンペーンの情報を取得するには、次のGETコールに示すように、そのIDを指定します。
taxonomy.bluekai.com/taxonomy/categories/categoryID&bkuid=BKUID&bksig=BKSIG
たとえば、/taxonomy/categories/288885
へのGETコールにより、次のレスポンスが返されます。
{
"id" : 288885,
"name" : "Cat Owner",
"parentCategory" : {
"id" : 288884
},
"description" : "ACXM Interest, Pet Owner, Cat Owner",
"partner" : {
"id" : 303,
"name" : "Acxiom Corporation"
},
"vertical" : {
"id" : 23,
"name" : "Branded Data - Acxiom"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : true,
"pathFromRoot" : {
"ids" : [ 344, 24148, 150555, 319645, 288849, 288884, 288885 ],
"names" : [ "ROOT", "Branded Data", "Acxiom", "Basic Rate", "ACXM Interest", "Pet Owner", "Cat Owner" ]
},
"status" : "active",
"links" : [ ]
}
カテゴリのリスト
様々な問合せパラメータを組み合せて、フィルタ処理された一連のカテゴリをリクエストできます。
所有しているすべてのカテゴリのリスト
自分が所有しているすべてのカテゴリを表示するには、次のGETコールに示すように、必須のview
およびpartner.id
パラメータを指定します。
taxonomy.bluekai.com/taxonomy/categories?view=OWNER&partner.id=partnerID&bkuid=BKUID&bksig=BKSIG
サンプル・リスト・レスポンス:

{
"items": [
{
"id": 322463,
"name": "Self-Classification",
"parentCategory": {
"id": 322462
},
"partner": {
"id": 2208
},
"verticalName": "Private DMP - Test Partner",
"isPublicFlag": false,
"isForNavigationOnlyFlag": true,
"ownershipType": "thirdParty",
"isLeafFlag": true,
"pathFromRoot": {
"ids": [
344,
322462,
322463
],
"names": [
"ROOT",
"Test Partner - Private",
"Self-Classification"
]
},
"status": "active",
"links": []
},
{
"id": 322462,
"name": "Test Partner - Private",
"parentCategory": {
"id": 344
},
"partner": {
"id": 2208
},
"verticalName": "Private DMP - Test Partner",
"isPublicFlag": false,
"isForNavigationOnlyFlag": true,
"ownershipType": "thirdParty",
"isLeafFlag": false,
"pathFromRoot": {
"ids": [
344,
322462
],
"names": [
"ROOT",
"Test Partner - Private"
]
},
"status": "active",
"links": []
}
],
"totalResults": 2,
"limit": 2,
"offset": 0,
"count": 2,
"hasMore": false
}
パブリック・カテゴリのリスト
すべてのパブリック(サードパーティ)・カテゴリを表示するには、次のGETコールに示すように、view=PUBLIC
およびパートナIDを指定します。
taxonomy.bluekai.com/taxonomy/categories?view=PUBLIC&partner.id=partnerID&bkuid=BKUID&bksig=BKSIG
ノート: このコールには多くのカテゴリが含まれている可能性があるため、レスポンスを取得するまで時間がかかる場合があります。
サンプル・リスト・レスポンス:

{
"items" : [ {
"id" : 1,
"name" : "Geographic",
"parentCategory" : {
"id" : 344
},
"description" : "This category contains people whose geographic location was either self-declared or determined from their IP address. Locations in the United States are organized on the basis of U.S. Census Bureau Core Based Statistical Areas.",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Geographic"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"pathFromRoot" : {
"ids" : [ 344, 1 ],
"names" : [ "ROOT", "Geographic" ]
},
"status" : "active",
"links" : [ ]
}, {
"id" : 8,
"name" : "Self-Declared",
"parentCategory" : {
"id" : 1
},
"description" : "This category contains people who submitted information about their geographic location.",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Geographic"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : true,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"pathFromRoot" : {
"ids" : [ 344, 1, 8 ],
"names" : [ "ROOT", "Geographic", "Self-Declared" ]
},
"status" : "active",
"links" : [ ]
}, {
"id" : 65,
"name" : "United States",
"parentCategory" : {
"id" : 8
},
"description" : "This category contains people who submitted information about their geographic location, arranged by U.S. state.",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Geographic"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"pathFromRoot" : {
"ids" : [ 344, 1, 8, 65 ],
"names" : [ "ROOT", "Geographic", "Self-Declared", "United States" ]
},
"status" : "active",
"links" : [ ]
},
...
{
"id" : 542544,
"name" : "76 & Older",
"parentCategory" : {
"id" : 542532
},
"description" : "This audience contains people who have been validated as 76 and older.",
"notes" : "",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Oracle - Demographic"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : false, "ownershipType" : "thirdParty",
"isLeafFlag" : true,
"pathFromRoot" : {
"ids" : [ 344, 671901, 697212, 215759, 542532, 542544 ],
"names" : [ "ROOT", "Oracle", "Demographic", "Validated Demographic", "Age Narrow", "76 & Older" ]
},
"status" : "active",
"links" : [ ]
} ],
"count" : 63178
}
カテゴリの購入者ビューのリスト
すべてのパブリック(サードパーティ)・カテゴリおよびプライベート(管理対象)ツリーとSelf-Classificationツリーのファーストパーティ・カテゴリやセカンドパーティ・カテゴリを表示するには、次のGETコールに示すように、view=BUYER
およびパートナIDを指定します。
taxonomy.bluekai.com/taxonomy/categories?view=BUYER&partner.id=partnerID&bkuid=BKUID&bksig=BKSIG
ノート: このコールには多くのカテゴリが含まれている可能性があるため、レスポンスを取得するまで時間がかかる場合があります。
サンプル・リスト・レスポンス:

{
"items" : [ {
"id" : 369765,
"name" : "Television",
"parentCategory" : {
"id" : 344
},
"description" : "This vertical contains viewership data aggregated at the household level across TV show, viewing frequency, daypart, and genre.",
"notes" : "",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Television"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"pathFromRoot" : {
"ids" : [ 344, 369765 ],
"names" : [ "ROOT", "Television" ]
},
"status" : "active",
"links" : [ ]
},
...
{
"id" : 823501,
"name" : "3+",
"parentCategory" : {
"id" : 458880
},
"description" : "This audience is comprised of individuals who have more than three children in their household.",
"notes" : "",
"partner" : {
"id" : 2992
},
"vertical" : {
"name" : "Branded Data - Infogroup"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : true,
"pathFromRoot" : {
"ids" : [ 344, 24148, 458841, 557017, 458842, 458843, 458866, 458878, 458879, 458880, 823501 ],
"names" : [ "ROOT", "Branded Data", "Infogroup, Inc", "Infogroup Corporate", "Consumer", "Demographics", "Family", "Children", "Yes", "Number of Children", "3+" ]
},
"status" : "active",
"links" : [ ]
} ],
"count" : 63239
}
リーチのないカテゴリのリスト例
次のリスト・コールは、ルート・カテゴリ(parentCategory.id=344
)から4レベル(numOfLevels=4
)の深さまでのすべてのカテゴリをリクエストします。デフォルトでは、レスポンスには各カテゴリのリーチ統計は含まれません。
https://taxonomy.bluekai.com/taxonomy/categories?parentCategory.id=344&numOfLevels=4&partner.id=partnerID&view=BUYER&bkuid=BKUID&bksig=BKSIG
リーチ統計のないサンプル・リスト・レスポンス:

{
"items" : [ {
"id" : 369765,
"name" : "Television",
"parentCategory" : {
"id" : 344
},
"description" : "This vertical contains viewership data aggregated at the household level across TV show, viewing frequency, daypart, and genre.",
"notes" : "",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Television"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"pathFromRoot" : {
"ids" : [ 344, 369765 ],
"names" : [ "ROOT", "Television" ]
},
"status" : "active",
"links" : [ ]
}, {
"id" : 1,
"name" : "Geographic",
"parentCategory" : {
"id" : 344
},
"description" : "This category contains people whose geographic location was either self-declared or determined from their IP address. Locations in the United States are organized on the basis of U.S. Census Bureau Core Based Statistical Areas.",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Geographic"
},
"isPublicFlag": true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"pathFromRoot" : {
"ids" : [ 344, 1 ],
"names" : [ "ROOT", "Geographic" ]
},
"status" : "active",
"links" : [ ]
}, {
"id" : 3,
"name" : "In-Market",
"parentCategory" : {
"id" : 344
},
"description" : "This category contains people who have demonstrated intent to make purchases in several key verticals. Intent is demonstrated by activities like searching for particular products, reading product specifications, adding items to a shopping cart, placing bids in online auctions, and requesting quotes for goods and services.",
"notes" : "DO NOT EDIT THIS CATEGORY UNTIL QUALIFIED IN-MARKET IS PUBLIC",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Private - Default"
},
"isPublicFlag": true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"pathFromRoot" : {
"ids" : [ 344, 3 ],
"names" : [ "ROOT", "In-Market" ]
},
"status" : "active",
"links" : [ ]
}, {
"id" : 43876,
"name" : "Past Purchases",
"parentCategory" : {
"id" : 344
},
"description" : "This category contains people who are likely to have made various purchases.",
"notes" : "",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Past Purchases"
},
"isPublicFlag": true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"pathFromRoot" : {
"ids" : [ 344, 43876 ],
"names" : [ "ROOT", "Past Purchases" ]
},
"status" : "active",
"links" : [ ]
},
...
{
"id" : 802803,
"name" : "West Midlands",
"parentCategory" : {
"id" : 802654
},
"description" : "Targetable profiles > CACI Limited > UK Towns > West Midlands",
"partner" : {
"id" : 4521
},
"vertical" : {
"name" : "Branded Data - CACI Limited"
},
"isPublicFlag": true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"pathFromRoot" : {
"ids" : [ 344, 24148, 801846, 802654, 802803 ],
"names" : [ "ROOT", "Branded Data", "CACI Limited", "UK Towns", "West Midlands" ]
},
"status" : "active",
"links" : [ ]
} ],
"count" : 12518
}
リーチのあるカテゴリのリスト例
次のリスト・コールは、4レベルの深さまでのすべてのカテゴリをリクエストし、showReach=true
を指定しているため各カテゴリのリーチ統計が含まれます。
https://taxonomy.bluekai.com/taxonomy/categories?parentCategory.id=344&numOfLevels=4&partner.id=partnerID&showReach=true&view=BUYER&bkuid=BKUID&bksig=BKSIG
レスポンスには、"reach" : integer
を指定する各カテゴリのstats
オブジェクトが含まれます。
重要: showReach
をtrue
に設定した場合、返されるカテゴリの数と、指定されたオプションによっては、レスポンス時間が大幅に長くなる可能性があります。
リーチ統計のあるサンプル・リスト・レスポンス:

{
"items" : [ {
"id" : 369765,
"name" : "Television",
"parentCategory" : {
"id" : 344
},
"description" : "This vertical contains viewership data aggregated at the household level across TV show, viewing frequency, daypart, and genre.",
"notes" : "",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Television"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"stats" : {
"reach" : 792431680
},
"pathFromRoot" : {
"ids" : [ 344, 369765 ],
"names" : [ "ROOT", "Television" ]
},
"status" : "active",
"links" : [ ]
}, {
"id" : 1,
"name" : "Geographic",
"parentCategory" : {
"id" : 344
},
"description" : "This category contains people whose geographic location was either self-declared or determined from their IP address. Locations in the United States are organized on the basis of U.S. Census Bureau Core Based Statistical Areas.",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Geographic"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"stats" : {
"reach" : 8012719040
},
"pathFromRoot" : {
"ids" : [ 344, 1 ],
"names" : [ "ROOT", "Geographic" ]
},
"status" : "active",
"links" : [ ]
}, {
"id" : 3,
"name" : "In-Market",
"parentCategory" : {
"id" : 344
},
"description" : "This category contains people who have demonstrated intent to make purchases in several key verticals. Intent is demonstrated by activities like searching for particular products, reading product specifications, adding items to a shopping cart, placing bids in online auctions, and requesting quotes for goods and services.",
"notes" : "DO NOT EDIT THIS CATEGORY",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Private - Default"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"stats" : {
"reach" : 983929920
},
"pathFromRoot" : {
"ids" : [ 344, 3 ],
"names" : [ "ROOT", "In-Market" ]
},
"status" : "active",
"links" : [ ]
}, {
"id" : 43876,
"name" : "Past Purchases",
"parentCategory" : {
"id" : 344
},
"description" : "This category contains people who are likely to have made various purchases.",
"notes" : "",
"partner" : {
"id" : 0
},
"vertical" : {
"name" : "Past Purchases"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"stats" : {
"reach" : 1206922560
},
"pathFromRoot" : {
"ids" : [ 344, 43876 ],
"names" : [ "ROOT", "Past Purchases" ]
},
"status" : "active",
"links" : [ ]
},
...
{
"id" : 802803,
"name" : "West Midlands",
"parentCategory" : {
"id" : 802654
},
"description" : "Targetable profiles > CACI Limited > UK Towns > West Midlands",
"partner" : {
"id" : 4521
},
"vertical" : {
"name" : "Branded Data - CACI Limited"
},
"isPublicFlag" : true,
"isForNavigationOnlyFlag" : false,
"ownershipType" : "thirdParty",
"isLeafFlag" : false,
"stats" : {
"reach" : 12856320
},
"pathFromRoot" : {
"ids" : [ 344, 24148, 801846, 802654, 802803 ],
"names" : [ "ROOT", "Branded Data", "CACI Limited", "UK Towns", "West Midlands" ]
},
"status" : "active",
"links" : [ ]
} ],
"count" : 12518
}
カテゴリのエクスポート
カテゴリをエクスポートするには、次の例に示すように、必要な問合せパラメータでGETリクエストをフィルタ処理します。
/taxonomy/categories/export?view=BUYER&partner.id=2208&showReach=true&parentCategory.id=17&parentCategory.id=3&numOfLevels=1
サンプル・レスポンス:
17 Autos ROOT>In-Market>Autos 3 252351600
3 In-Market ROOT>In-Market 344 1016820000
ノート: エクスポートでは、addStats
パラメータはサポートされません。
カテゴリの作成
カテゴリを作成するには、次のPOSTコールにパートナIDとリクエスト本文を含めます。
/taxonomy/categories?partner.id={yourPartnerId}
必須フィールドを指定するサンプル・リクエスト本文:

{
"name": "Test node",
"parentCategory": {
"id": 410579
},
"partner": {
"id": 2362
}
}
指定しない場合、type
とverticalName
の値は親カテゴリから継承されます。POSTリクエストで指定しない場合、他のオプション・フィールドにはデフォルト値が使用されます。
レスポンス:
{
"id": 420063,
"name": "Test node",
"parentCategory": {
"id": 410579,
"name": "Child2"
},
"links": {
"self": "https://taxonomy.bluekai.com/taxonomy/categories/420063",
"parent": "https://taxonomy.bluekai.com/taxonomy/categories/410579"
}
}
バルク作成
複数のカテゴリを作成するには、次のPOSTコールにパートナIDとリクエスト本文を含めます。
/taxonomy/categories?partner.id={yourPartnerId}
複数のカテゴリを指定するサンプル・リクエスト本文:

[
{
"name": "Test node1",
"parentCategory": {
"id": 322463
},
"partner": {
"id": 2208
}
},
{
"name": "Test node2",
"parentCategory": {
"id": 322463
},
"partner": {
"id": 2208
}
}
]
指定しない場合、type
とverticalName
の値は親カテゴリから継承されます。POSTリクエストで指定しない場合、他のオプション・フィールドにはデフォルト値が使用されます。
レスポンス:
{
"items": [
{
"httpStatusCode": 200,
"item": {
"id": 3,
"name": "In-Market",
"parentCategory": {
"id": 344,
"name": "ROOT"
},
"links": {
"self": "https://taxonomy.bluekai.com/taxonomy/categories/3",
"parent": "https://taxonomy.bluekai.com/taxonomy/categories/344"
}
}
},
{
"httpStatusCode": 200,
"item": {
"id": 17,
"name": "Autos",
"parentCategory": {
"id": 3,
"name": "In-Market"
},
"links": {
"self": "https://taxonomy.bluekai.com/taxonomy/categories/17",
"parent": "https://taxonomy.bluekai.com/taxonomy/categories/3"
}
}
}
],
"size": 2
}
バルク・インポート(ファイル・アップロード経由)
TSVまたはTXTファイルのアップロードによる、複数のカテゴリを同時に作成と編集するには:
- カテゴリAPIへのコールの問合せ文字列で、パスに
import
を追加します。serviceUrl = 'https://taxonomy.bluekai.com/taxonomy/categories/import?partner.id={yourPartnerId}'
headers
フィールドで、Content-Type
をmultipart/form-data
に設定します。headers = {"Content-Type": "multipart/form-data; "Accept": "application/json","User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:22.0) Gecko/20100101 Firefox/22.0"}
- インポートする.tsvまたは.txtファイルの名前に設定されるパラメータを含めます。
- インポート・ファイルに次の列があることを確認します。
フィールド データ型 必須かどうか 説明 Id
文字列 必須(カテゴリの編集の場合) カテゴリに割り当てられているユニークID。バルク・インポート経由でカテゴリを編集する場合、この列は必須となります。これは、バルク・インポートでは、一意のカテゴリIDに基づいてカテゴリが識別されるためです。 Name
文字列 オプション 簡潔なカテゴリ固有の名前。タクソノミでは、カテゴリはこの名前で表示されます。最大255文字の名前を指定できます。カテゴリの名前を変更する場合は、名前を指定することのみが必要です。 Path
文字列 必須(カテゴリの追加の場合) カテゴリのタクソノミのフルパス。バルク・インポート経由でカテゴリを追加する場合、この列は必須となります。これは、バルク・インポートではタクソノミにカテゴリを追加する場所を決定するためです。 ParentCategory
整数 オプション(カテゴリを移動する場合は必須) タクソノミの選択したカテゴリのすぐ上にあるカテゴリに割り当てられるユニークID。バルク・インポート経由でカテゴリを移動する場合、この列は必須となります。 Description
文字列 オプション このカテゴリに含まれているユーザーのタイプの詳細なサマリー。最大255文字の説明を指定できます。 Status
列挙 オプション カテゴリをアクティブ状態にするかドラフト状態にするかを選択します。この設定のデフォルト値は、親カテゴリに基づきます。親カテゴリのステータスを変更すると、その下のすべての子カテゴリのステータスも更新されます。親ノードがドラフト状態の場合、その子ノードのいずれかをアクティブにすることはできません。 - Active。カテゴリはタクソノミに公開されます。つまり、オーディエンス・ビルダーとタクソノミ・ビューアに表示され、オーディエンスに追加したり、他のクライアントと共有できます。
- Draft。カテゴリは、Taxonomy Managerにのみ表示されます。オーディエンス・ビルダーおよびタクソノミ・ビューアで使用できず、共有できません。
NavigationOnly
ブール オプション このカテゴリの機能を、ユーザー・プロファイル・データの格納、インベントリの累積またはオーディエンスへの追加が不可能な親ノードに制限します。ナビゲーション・ノードは、基本的には1つ以上の子カテゴリのフォルダとして機能します。デフォルト値はfalseです。 ExcludeFromAnalytics
ブール オプション カテゴリをオーディエンス・アナリティクス・レポートから除外します。デフォルト値はfalseです。 MutuallyExclusiveChildren
ブール オプション このカテゴリの下の子カテゴリを相互排他的にします(最近タグ付けされた子カテゴリのみがユーザーのプロファイル内にあります)。相互排他的な子カテゴリのフラット・リストのみ作成できます。相互排他的なカテゴリの下に子カテゴリを含めることはできません。ただし、相互排他的なカテゴリをナビゲーション専用ノードとしてマークした場合を除きます
バルク・インポートのデモ
サンプルのbulk_categories_import.py Pythonコードは、カテゴリAPIを使用したバルク・カテゴリ・インポートの実行方法を示します。このスクリプトの実行に必要なものは、次のとおりです。
リクエスト・ライブラリのインストールに役立つPIP (Python Package Installationツール)を使用できます。PIPをダウンロードしてインストールするには、リクエスト・ライブラリをインストールしてPIPインストール・ファイルを削除し、コンソールに次のコマンドを入力します。
curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
sudo python get-pip.py
sudo pip install requests
rm get-pip.py
このスクリプトを実行するには、編集または作成するカテゴリが含まれるcategory_import.tsvという名前のTSVファイル(テンプレートのダウンロード)を作成し、次のパラメータを指定する必要があります。
url
: Oracle Data Cloudプラットフォームの本番環境のURL (services.bluekai.com)verbosity
: 印刷情報の一連の4つの詳細オプションを入力します。partnerid
: カテゴリをアップロードするシートに関連付けられているパートナID。bkuid
: Webサービス・ユーザー・キーbksecretkey
: Webサービス秘密キー
次の例は、このスクリプトをコールするために必要な構文を示しています。
bulk_categories_import.py --url https://services.bluekai.com -v -v -v -v --partnerid Partner ID--bkuid WebServiceUserKey --bksecretkey WebServicePrivateKey

#! /usr/bin/env python -B
# -*- coding: utf-8 -*-
import sys, requests, json, argparse, unittest, hmac, base64, urllib, urlparse, hashlib
def cli_options():
parser = argparse.ArgumentParser(description='Demo for Category REST API')
parser.add_argument('-u','--url', default='https://localhost:8080/', help='Web service base URL')
parser.add_argument('-p','--partnerid', help='Partner id to use with this request')
parser.add_argument('-i','--bkuid', default='', help='UID')
parser.add_argument('-k','--bksecretkey', default='', help='Secret key')
parser.add_argument('-v','--verbose', default=0, action='count', help='Prints additional information')
return parser.parse_args()
args = cli_options()
URL = args.url.strip()
PARTNERID = args.partnerid
BKUID = args.bkuid
BKSECRETKEY = args.bksecretkey
VERBOSITY = args.verbose
USER_AGENT = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:22.0) Gecko/20100101 Firefox/22.0'}
JSON_HEADERS = {'Content-Type': 'multipart/form-data', 'Accept':'application/json'}
COMMON_HEADERS = dict(USER_AGENT.items() + JSON_HEADERS.items())
class CategoryRest():
res = False
def info(self, message, verbosityLevel = 1):
if VERBOSITY >= verbosityLevel:
if not isinstance(message, basestring):
print json.dumps(message, indent=4)
else:
print message
def prepare_headers(self, headers = None):
if headers is None:
return COMMON_HEADERS.copy()
else:
return dict(COMMON_HEADERS.items() + headers.items())
def parse_query_params(self, query):
parameterList = query.split('&')
params = {}
if len(parameterList) > 0:
for entry in parameterList:
kvPair = entry.split('=')
params[kvPair[0]] = kvPair[1] if len(kvPair) > 1 else '';
return params
def prepare_request(self, endpoint, method = 'GET', params = None, data = None, headers = None, files = None, sign=True):
if files is not None:
headers.pop('Content-Type', None)
req = requests.Request(method, URL + endpoint, data = data, headers = headers, files = files)
prepared = req.prepare()
if sign:
if params is None:
params = {}
parsedUrl = urlparse.urlparse(URL)
parsedEndpoint = urlparse.urlparse(endpoint)
servletPath = "" if parsedEndpoint.path.strip().startswith("/") else "taxonomy/"
urlPath = parsedUrl.path.strip('/')
if urlPath:
urlPath = urlPath + '/'
fullPath = '/'+ urlPath + servletPath + parsedEndpoint.path.strip('/')
stringToSign = method + fullPath
params = dict(params.items() + self.parse_query_params(parsedUrl.query).items() + self.parse_query_params(parsedEndpoint.query).items())
queryParameterStr = '';
for key in params.keys():
if len(key) > 0:
if isinstance(params[key], list):
for listItem in params[key]:
value = urllib.quote(str(listItem))
stringToSign += value
queryParameterStr += urllib.quote(key) + '=' + value + '&'
else:
value = urllib.quote(str(params[key]))
stringToSign += value
queryParameterStr += urllib.quote(key) + '=' + value + '&'
if prepared.body is not None:
stringToSign += prepared.body
h = hmac.new(BKSECRETKEY, stringToSign.strip(), hashlib.sha256)
s = base64.standard_b64encode(h.digest())
signature = urllib.quote_plus(s)
finalURL = parsedUrl.scheme + '://' + parsedUrl.netloc + fullPath + '?' + queryParameterStr + 'bkuid=' + BKUID + '&bksig=' + signature
else:
finalURL = URL + endpoint
self.info('Sending %s request to: %s' %(method, finalURL))
prepared.url = finalURL
if VERBOSITY >=4:
print "Request object:"
for key, value in prepared.headers.iteritems():
print "%s: %s" % (key, value)
if prepared.body is not None and len(prepared.body)>0:
print ""
print prepared.body
return prepared
def post(self, endpoint, payload = None, params = None, headers = None, files = None):
if payload is not None:
data = payload if isinstance(payload, basestring) else json.dumps(payload)
else:
data = None
self.res = requests.Session().send(self.prepare_request(endpoint, method = 'POST', params = params, data = data, files = files, headers = self.prepare_headers(headers)), verify = False)
return self
def test_bulk_category_rest_create(self):
files = {'categoryFile': open('category_import.tsv', 'rb')}
created_categories = self.post('categories/import', files = files, params={'partner.id':PARTNERID}).res.json()
self.info(created_categories, 2)
instance=CategoryRest()
instance.test_bulk_category_rest_create()
カテゴリの更新
プライベート・タクソノミのカテゴリを更新するには、PUTコールに、パートナIDとカテゴリIDが含まれるリクエスト本文を含めます。
サンプルPUTリクエスト:
/taxonomy/categories/{categoryId?partner.id={yourPartnerId}
カテゴリ値を指定するサンプル・リクエスト本文:

{
"id": 322463,
"name": "Self-Classification - xyz",
"parentCategory": {
"id": 322462
},
"partner": {
"id": 2208,
"name": "Example Partner"
},
"vertical": {
"id": 336,
"name": "Private DMP - Example Vertical"
},
"isPublicFlag": false,
"isForNavigationOnlyFlag": true,
"ownershipType": "thirdParty",
"isLeafFlag": false,
"pathFromRoot": {
"ids": [
344,
322462,
322463
],
"names": [
"ROOT",
"Example Partner - Private",
"Self-Classification"
]
},
"status": "active",
"links": []
}
レスポンス:
{
"id": 322463,
"name": "Self-Classification - xyz",
"parentCategory": {
"id": 322462,
"name": "Example Partner - Private"
},
"links": {
"self": "https://taxonomy.bluekai.com/taxonomy/categories/322463",
"parent": "https://taxonomy.bluekai.com/taxonomy/categories/322462"
}
}
一括更新
プライベート・タクソノミの複数のカテゴリを更新するには、PUTコールのリクエスト本文で、それらのカテゴリを指定します。
サンプル・バルクPUTリクエスト:
/taxonomy/categories?partner.id={yourPartnerId}
複数のカテゴリへの更新を指定するサンプル・リクエスト本文:

[
{
"id": 489266,
"name": "Test node1",
"parentCategory": {
"id": 322463
},
"description": "This is a sample category in our private taxonomy.",
"notes": "change 33",
"partner": {
"id": 2208,
"name": "Example Partner"
},
"vertical": {
"id": 336,
"name": "Private DMP - Example Vertical"
},
"isPublicFlag": true,
"isForNavigationOnlyFlag": false,
"ownershipType": "thirdParty",
"isLeafFlag": false,
"pathFromRoot": {
"ids": [
344,
322463,
489266
],
"names": [
"ROOT",
"Example Partner - Private",
"Self-Classification - xyz",
"Test node1"
]
},
"status": "active",
"links": []
},
{
"id": 489267,
"name": "Test node2",
"parentCategory": {
"id": 322463
},
"description": "This is a sample category in our private taxonomy.",
"notes": "change 33",
"partner": {
"id": 2208,
"name": "Example Partner"
},
"vertical": {
"id": 336,
"name": "Private DMP - Example Vertical"
},
"isPublicFlag": true,
"isForNavigationOnlyFlag": false,
"ownershipType": "thirdParty",
"isLeafFlag": false,
"pathFromRoot": {
"ids": [
344,
322463,
489267
],
"names": [
"ROOT",
"Example Partner - Private",
"Self-Classification - xyz",
"Test node2"
]
},
"status": "active",
"links": []
}
]
レスポンス:
{
"items": [
{
"httpStatusCode": 201,
"item": {
"id": 489266,
"name": "Test node1",
"parentCategory": {
"id": 322463,
"name": "Self-Classification - xyz"
},
"links": {
"self": "https://taxonomy.bluekai.com/taxonomy/categories/489266",
"parent": "https://taxonomy.bluekai.com/taxonomy/categories/322463"
}
}
},
{
"httpStatusCode": 201,
"item": {
"id": 489267,
"name": "Test node2",
"parentCategory": {
"id": 322463,
"name": "Self-Classification - xyz"
},
"links": {
"self": "https://taxonomy.bluekai.com/taxonomy/categories/489267",
"parent": "https://taxonomy.bluekai.com/taxonomy/categories/322463"
}
}
}
],
"size": 2
}
問合せパラメータ
カテゴリAPIでは、次の問合せパラメータがサポートされています。
パラメータ | タイプ | 説明 |
---|---|---|
addStats
|
ブール | true に設定すると、指定したカテゴリの様々な統計情報(リーチなど)が含まれるstats オブジェクトが返されます。デフォルト値はfalse です。例: &addStats=true 注意: エクスポートでは、このパラメータはサポートされません。 |
countryCode
|
文字列 | カテゴリの統計情報を制限する国の2文字のコード。他の値を指定しないかぎり米国にデフォルト設定されます。詳細は、国APIを参照してください。 例: &showReach=true&countryCode=GB |
deviceType
|
文字列 | (非推奨) desktop またはmobile を指定して、デバイス・タイプで統計情報を問い合せます。例: &addStats=true&deviceType=mobile |
expand
|
ブール | true に設定すると、詳細が返されます。このパラメータは、TSVファイルのエクスポートにのみ使用されます。デフォルト値はfalse です。例: &expand=true |
idTypes
|
整数 |
次のいずれかの標準タイプのIDソースでフィルタ処理します。
&showReach=true&idTypes=9 |
numOfLevels
|
整数 | カテゴリ・ツリー検索をレベルで制限します |
parentCategory.id
|
整数 | 親カテゴリのIDを指定します。 デフォルト値は、ルート・カテゴリである 344 です。例: &parentCategory.id=17 |
partner.id
|
整数 | (必須)親のユニークID このパラメータは、 view などの他のパラメータとともに使用できます。例: &partner.id=1234 |
q
|
文字列 |
返されたカテゴリを 例: |
recency
|
整数 | ユーザーがカテゴリのカテゴリ属性で最後にタグ付けされた時点からの最大日数を指定します(デフォルトは90日)。この数値は、リーチを計算するために使用されます。 例: addStats=true&recency=2 |
showPriceAt
|
日付 | ISO 8601の日時書式(yyyy-MM-dd'T'HH:mm:ssZ)の日付で、その日付での価格を決定します。例: showPriceAt=2017-06-18T17:46:32-05:00 |
showReach
|
ブール | true に設定した場合、指定したカテゴリのインベントリの数値が含まれます。showReach をtrue に設定した場合、返されるカテゴリの数と、指定したオプションによっては、レスポンス時間が大幅に長くなる可能性があります。 |
view
|
文字列 | (必須)次の値に基づいてレスポンスをフィルタ処理します。
view パラメータでpartner.id を含める必要があります。 例: |
FAQ

カテゴリAPIでは、どのタイプのデータが提供されますか。
カテゴリAPIでは、次のタイプのカテゴリについてアクセス可能なすべての情報が返されます。
- ファーストパーティ・カテゴリ: プライベートのファーストパーティ・タクソノミ内のカテゴリ。これらのカテゴリは、ホワイトリストに登録しているかオーディエンスを共有している場合を除き、DMPでのみ使用できます。
- セカンドパーティ・カテゴリ: 別のDMPパートナが次のいずれかの方法を使用して共有しているプライベート・カテゴリ。
- ホワイトリスト登録: データ・プロバイダとそのプライベート・タクソノミ内のカテゴリを共有できるため、そのカテゴリ内のユーザーをターゲット、分析およびモデリングできます。DMPユーザーでは、通常、その消費者データをホワイトリストに登録し、別のDMPユーザーでこれを使用してアクティブ化し、相互のメリットを実現できるようにしています。カテゴリは、Oracle Data Cloudプラットフォームでタクソノミ・パートナ権限APIまたはタクソノミ共有ツールを使用してホワイトリストに登録できます。
- オーディエンス共有: DMPパートナとオーディエンスを共有できるため、そのオーディエンスを使用してキャンペーンを作成し、オーディエンスを分析できます。DMPユーザーは、一般的には、キャンペーンを実行するエージェンシとオーディエンスを共有します。オーディエンス権限APIまたはOracle Data CloudプラットフォームUIのオーディエンス管理ツールを使用してオーディエンスを共有できます。
- サードパーティ・カテゴリ: すべてのDMPパートナが使用可能なOracle Data Marketplace内のカテゴリ
カテゴリAPIを使用して、Oracle Data Cloudから受信したユーザー・データを理解するにはどうすればよいですか。
Oracle Data Cloudプラットフォームのデータを受信したら、カテゴリAPIを使用して、どのカテゴリを受け取ったかと、誰がデータを所有しているかを判別できます。たとえば、カテゴリID 6737
のキャンペーンを受信した場合は、カテゴリAPIを使用して、このカテゴリIDがIn-Market > Autos > Makes & Models > Chevrolet > Camaroを意味し、データがプラットフォームによって所有されていることを確認できます。
カテゴリAPIはいつ使用しますか。
- データの検出: カテゴリAPIを使用して、受信したカテゴリの詳細情報を取得できます。
- ファーストパーティ・カテゴリ: DMPユーザーは、カテゴリAPIを使用して、プライベート・タクソノミのファーストパーティ・カテゴリを取得し、各カテゴリの一意のユーザーのインベントリを表示できます。
- サードパーティ・カテゴリ: データ購入者は、カテゴリAPIを使用して、Oracle Data Marketplaceのサードパーティ・カテゴリとインベントリを表示できます。
- オーディエンス・アナリティクス: オーディエンス・アナリティクスをプログラマティックに実行しているデータ・アプリ・パートナは、カテゴリAPIをコールして、返されたカテゴリを、Audience Discoveryレポート(複数のオーディエンスAPI)に対するコールの入力として使用できます。
- データ配信の構成: カテゴリAPIを使用して、ユーザー・データを表示および受信するようにシステムを構成できます。
- ユーザー・インタフェース: データ・アプリ・パートナは、カテゴリAPIを使用して、独自のUIでサードパーティ・カテゴリを表示できます。
- データ・マッピング: データ・アプリ・パートナは、カテゴリAPIを使用して、サードパーティ・オーディエンス・ターゲッティング・セグメントにカテゴリをマッピングできます。カテゴリとセグメントのマッピングを保守するために、毎日カテゴリAPIをコールします。
- データ配信: カテゴリAPIを使用して、ユーザー・データを配信できます。
- オーディエンスとキャンペーンの作成: オーディエンスとキャンペーンをプログラマティックに作成しているデータ・アプリ・パートナは、最初にカテゴリAPIをコールして、返されたカテゴリを、オーディエンスAPIとキャンペーンAPIに対するコールの入力として使用する必要があります。
- データ配信方法: カテゴリの転送方法は、データ配信方法によって異なります。
- サーバー・データ・トランスファー(SDT)を介してデータを受信する場合は、カテゴリIDが返されるJSON形式のデータ(POST)、URL (GET)またはファイル(バッチ)に含まれます。
- イメージ・ピクセルを介してデータを受信する場合は、ピクセルに、カテゴリIDを受信するための
$CATEGORIES
マクロが含まれている必要があります。 - JSONリターンを介してデータを受信する場合は、カテゴリIDがWebページに返される非表示の
bk_results
オブジェクトに含まれます。 - ユーザー・データAPIを介してデータを受信する場合は、カテゴリIDがリクエストの成功後に返されるJSON形式のデータに含まれます。
関連するAPIコール
次に、通常、カテゴリAPIを使用した後に実行するAPIコールを示します。
カテゴリAPIの後 | ユースケース |
---|---|
オーディエンスAPI | カテゴリを使用して、ターゲッティング、モデリング、最適化または分析を実施するオーディエンスを作成します。 |
キャンペーンAPI | パートナにオーディエンスを配信するための指示を作成します。 |
セグメント・リーチAPI | オーディエンスの個々のカテゴリとセグメントのリーチ(一意のユーザーの推定数)を取得します。 |
タクソノミ・パートナ権限API | ファーストパーティ・カテゴリへのアクセスを共有または制限します。 |