Content セッティングオブジェクトは Content コンフィグレーションオブジェクト の一部です。
またContent セッティングオブジェクトは入れ子構造を取ることができるので、一つのオブジェクト内に複数のサブセッティングを含むこともあります。
各Contentセッティングは "type" フィールドによって定義されます。 "type" の設定によって、他の設定フィールドも有効になるかが決まります。 更新時に指定されなかったフィールドは、null値として判断されます。つまり、フィールドを明示的に指定しない限り、更新前に指定されていた値も失われます。
全ての type に共通のフィールド
すべての Content セッティングオブジェクトは、その type によらず以下のフィールドを含むことができます:
|
名前 |
タイプ |
説明 |
|---|---|---|
|
|
String |
このフィールドはその設定内容や理由を記載するためのものです。動作には影響を与えません。 |
|
|
String |
以下にて、10桁以内の小文字(a-z)を指定できます。
コンテントセッティングオブジェクト内に指定できる tags は最大10個までです。 |
|
|
Integer |
この設定による結果が使用される相対的頻度。
|
|
|
Integer |
このブランチからの結果を優先します("uniquified"設定でさらなるブランチの場合に使用)。 |
|
|
Object |
"条件付き" type のContentセッティング内で分岐する条件を設定します。
|
|
|
Object |
サブセッティングに共通で使用されるデフォルト値を指定します。文字列値のみが使用可能です。" "tagging" recs clicks for Cxense Insight にて利用例をご紹介しています。 |
type ごと個別の設定
基本の type(少なくとも1つの指定が必須)
"fixed"
0以上の事前定義されたリストを返します。
Cxense Content のターゲティングで管理されるテストの際やユーザーメッセージに有効です。
"recs"
システムからレコメンデーションを取得します。特有の項目は以下の通りです
(項目によってはデフォルト値がありますのでご注意ください)
|
名前 |
タイプ |
説明 |
|---|---|---|
|
|
Array of String |
レコメンデーションを実施するサイトのIDを指定します。
|
|
|
Object |
下記参照 |
|
|
Array of String |
レコメンド結果として返すフィールドです。
|
|
|
Integer |
廃止予定。ここで指定した分数よりも古い記事やアイテムが表示されなくなります。
|
|
|
String |
ここで指定した時間(period で表記)よりも古い記事は表示されなくなります。デフォルトは無作為の古い記事やアイテムを返します。"recs-publishtime"のフィールドで計算されます。 |
|
|
Integer |
廃止予定。全ての記事がここで指定した分数よりも古い記事やアイテムになります。"recs-publishtime"のフィールドで計算されます。 |
|
|
String |
全ての記事がここで指定した時間(period で表記)よりも古い記事やアイテムになります。"recs-publishtime"のフィールドで計算されます。 |
|
|
Integer |
廃止予定。記事やアイテムの有効期限までの時間が指定値(分単位)以下のものに絞ります。"recs-expirationtime"のフィールドで計算されます(フィールドが存在する場合)。 |
|
|
String |
記事やアイテムの有効期限までの時間が指定値(period で表記)以下のものに絞ります。"recs-expirationtime"のフィールドで計算されます(フィールドが存在する場合)。 |
|
|
Integer |
廃止予定。記事やアイテムの有効期限まで少なくとも指定値(分単位)以上残っているものに絞ります。"recs-expirationtime"のフィールドで計算されます(フィールドが存在する場合)。 |
|
|
String |
記事やアイテムの有効期限まで少なくとも指定値(period で表記)以上残っているものに絞ります。"recs-expirationtime"のフィールドで計算されます(フィールドが存在する場合)。 |
|
|
String |
検索実施する際のカスタムクエリ句 ( 詳しくは /document/search を確認ください ) の指定に使われます。
|
|
|
String |
カスタムフィルタ句 (詳しくは /document/search を確認ください ) |
|
|
String |
コンテンツマッチに使用する検索クエリの挙動のカスタマイズ。 |
|
|
String |
重複削除に使用するキーのカスタム指定(※重複排除はブランチ毎でのみ行われます) |
|
|
String |
/public/widget/data リクエストのlikes/dislikesと共に使用される |
|
|
Boolean |
リクエストに含まれるキーワードによって
null は false と解釈される |
|
|
Boolean |
true の場合レコメンデーションをパーソナライズしない
|
|
|
Boolean |
If |
|
|
Boolean |
true の場合、コンテキスト(例えば参照中のページ)によってレコメンデーションを調整しない
|
|
|
Object |
トラフィッククエリに使用される Traffic filter 。 'trend' モードのみで使用される。 |
|
|
String |
レコメンデーションのランキング(結果順位)に記事の新しさがどの程度影響するかを指定します。 "norank", "publishfreshhigh", "publishfreshmed"の3種類が指定可能です。
|
|
|
Array of Objects |
key/valueの対の値をもつオブジェクトです。 詳しくはこちらをご確認ください。 |
|
deboost |
String |
どのインプレッションがデブーストのインプレッションでカウントされるかの期間を指定します。
macthingMode が "recent" の場合、デブーストは実行されません。 |
|
pageviewCapping |
Object |
pageviewCappingについての詳細はこちらをご確認ください。 |
|
|
Boolean |
true に設定すると、backfill の結果が配信されません。backfill は通常、結果が返ってこない(記事が出ない)よりは望ましいため、デフォルトは false です。 |
minAge, maxTimeLeft, minTimeLeftに関する詳細
"minAge":0m, 0d または 0w とすると、未来日付の発行日の記事はレコメンドされません。
minAgeは負の値を取ることが可能です。
多くのタイムゾーンからアクセスされるサイトではminAgeを -1d に設定することをお勧めします。
maxTimeLeft や minTimeLeft を設定した場合、有効期限を設定したアイテムしかレコメンドされないことに注意してください。
有効期限はメタタグ "cXenseParse:recs:expirationtime" で指定します( Cxense Content - Review and Refinement 参照)。
minTimeLeftが指定されない場合、有効期限を過ぎたものは表示されません。
"reporting" に関する詳細
"reporting" オブジェクトは key と value の対を含みます。key の長さは最大30文字で、valueの長さは最大40文字です。
key と value は プレースホルダ に置き換えることができます。
"reporting" のパラメーターは DMPインプレッションやクリックイベントのカスタムパラメータを追加できるようになります。
|
matchingModeに関する詳細
matchingMode オブジェクトには以下のモードがあります:
|
名前 |
タイプ |
説明 |
|---|---|---|
|
|
Object / Integer |
最もアクセスの多い記事(periodで指定される直近の期間で評価) |
|
|
Object / Integer |
今読んでいる記事に似ている記事 |
|
|
Object / Integer |
これまで読んだ記事に似ている記事 |
|
|
Object / Integer |
この記事を読んだ人がほかに読んだ記事 |
|
|
Object / Integer |
似たユーザたちがほかに読んだ記事 |
|
explicit |
Object / Integer |
クエリー、フィルター、およびランクのみを使用して抽出した記事 ⚠廃止予定。searchを使用してください。 |
|
search |
Object / Integer |
クエリー、フィルター、およびランクのみを使用して抽出した記事 |
|
recent |
Object |
そのユーザーが直近に読んだ記事
レコメンデーションは直近からのソート順になります。
|
|
rate |
Object |
コンテンツウィジェットに表示された時にクリック率が高い記事 ⚠試用版: このmatchingMode は試用版です。アルゴリズムは将来、変更されたり削除される可能性があります。 |
整数 n はオブジェクト { "weight": n} として解釈されます。
各 matchingMode のオブジェクトでは少なくとも一つのmodeフィールドと0でないweightが指定されなければなりません。
matchingMode セッティングオブジェクトには以下のフィールドを含みます:
|
名前 |
タイプ |
説明 |
|---|---|---|
|
|
Integer |
相対的な重み(正数)。必須の設定項目です。 |
|
|
Integer |
廃止予定。指定期間(秒)内にトラフィック(ページビュー)があったページのみをレコメンドの対象とします。
最大値: 604800 秒(=7日) |
|
period |
String |
指定期間(秒)内にトラフィック(ページビュー)があったページのみをレコメンドの対象とします。
指定可能な期間の最大値: 7日 |
|
sort |
Array of sort objects |
query と filter でレコメンドされるドキュメントはこのソート仕様によって決まります。 "search" のみで使用可能です。 スコアによる降順ソートがデフォルトです。 sort オブジェクトは /document/search で指定されます。 プレースホルダ は以下のフィールドで利用可能です: sort はいくつかのマッチングモードやバックフィルの組み合わせで使われ、
|
|
event |
Object |
"pageview"を指定する際に、現在のユーザーが直近に見た記事をレコメンドします。 DMPイベントの type と origin を指定する際に、そのようなイベントが発生した、
"recent" でのみ有効です。 |
例:
-
"trend": {"weight": 1, "period": "1h"}}という指定は「直近1時間に最も読まれた記事」を意味します。 -
"search": {"weight": 1, "sort": [{"type": "string", "field": "xyz-myfield", "order": "ascending"}]}という指定をすると、query/filterの指定にマッチしたページを "xyz-myfield" がアルファベット順にソートして返すという意味になります。 -
"recent": {"weight": 1, "event": {"type": "buy", "origin": "xyz-shop"}} という指定はそのユーザーが最も最近に行った購入(DMPの"buy"イベントが発生した記事)を意味します。
期間の仕様
期間は "1000s"(過去1000秒以内) や "2w"(過去2週間以内)のような、ある期間として指定されます。可能な単位は s(seconds,秒)、m(minutes,分)、h(hours,時間)、d(days,日)、w(weeks,週)、M(Months,月)、y(years,年)です。
"resultFields" に関する詳細
"resultFields" では各アイテムに対して返されるフィールドを指定します。
しかしこれは結果セットを制限することにはなりません。
指定フィールドが含まれているアイテムのみが返されるようにするには"filter"を用いてください。
もし"resultFields"が指定されない場合にはデフォルト値が使用されます。
"resultFields" に指定できるフィールド名:
contenthash, description, dominantimage, dominantimagedimensions, dominantthumbnail, dominantthumbnaildimensions, dominantthumbnail, dominantthumbnaildimensions, id,
keywords, kw-category, og-description, og-image, og-title, og-type, og-url, publishtime, recs-publishtime, recs-rawtitle, siteid,
thumbnail, thumbnailfullheightdimensions, timestamp, title, wordcount, charactercount, url
"url" が指定された場合、結果には "click_url" も併せて返されます( render templates 参照)。
"pageviewCapping" に関する詳細
ユーザが period で指定された期間内に少なくとも count で指定された回数以上訪問したドキュメントを結果から除外します。matchingMode が "recent" の場合、"pageviewCapping" は実行されません。
|
名前 |
タイプ |
説明 |
|---|---|---|
|
|
String |
どのページビューがカウントされたかを示す期間の指定をします |
|
|
Positive integer |
任意項目、デフォルト値は1 |
期間の指定
期間はどのイベントを含めるかを以下のように指定します。
-
"published"– 全てのイベントをカウントします。デフォルト値です。 -
"modified"– ドキュメントが最後に修正されてからのイベントのみをカウントします。 -
"never"– イベントはカウントされません。 -
"1000s"(直近1000秒のイベントのみをカウント)や"2w"(直近2週間のイベントのみをカウント)
のようなオフセット。
可能な単位は秒(s),分(m),時間(h),日(d),週(w),月(M),年(y)です。
例:
-
ページビューキャッピングなし:
"pageviewCapping": {"period": "never"}
|
periodに指定できる期間に上限はありませんが、以下の制約があります:
|
"import"
存在している content settings object をこのノードの子ブランチとしてインポートします。
import は各データリクエストに対して解決され、親の設定をコピーしたり格納したりしません。したがって、インポートされた content の変更は親の設定に影響します。親の設定に基づくの defaults はインポートした設定に適用されます。親の設定を作成や更新したりする時にインポートされた content は同じサイトグループのものである必要があります。インポートされた content が失われた場合、インポートしているノードは結果を返さなくなります(エラーにはなりません)。
|
名前 |
タイプ |
説明 |
|---|---|---|
|
contentId |
String |
インポートする別の content object のID |
"creative"
クリエイティブからフィールドを返します。
|
名前 |
タイプ |
説明 |
|---|---|---|
|
|
String |
クリエイティブID |
|
|
Array of Objects |
キーと値を含むオブジェクト。詳しくはこちらをご覧ください。 |
クリエイティブはフィールド内にその要素を含むアイテムとして返され、レコメンド設定の結果のフォーマットと似ています。
例えば、要素を含むクリエイティブは以下のようになります。
|
次のようなフィールドを含む単一アイテムを取得することもあります。
|
組み合わせのtype
"combined"
複数のブランチからの結果を結合します。
ブランチごとに異なる"weight"を付与することで、各ブランチからの取得件数を制御できます。
ブランチから返される記事が不足する可能性がある際は、そのブランチに"bufferElements"で0より大きい値を持たせることができます。
それぞれのcombinedのコンテントセッティングオブジェクトは通常 uniquified オブジェクトでラップします。
これにより、ブランチの内容に関係なく、記事の重複を避け、最高の結果をもたらします。
|
名前 |
タイプ |
説明 |
|---|---|---|
|
branches |
Array of Object |
コンテントセッティングオブジェクトの配列 |
|
bufferElements |
Integer |
非推奨:影響はありません |
|
ordering |
Array of Integer |
レコメンドが表示される順序 |
例: "ordering" が [0, 2, 2, 2, 1] の時に意味することは、1件は最初のブランチ(0番目のブランチ)から、3件は2番のブランチから、1件は1番のブランチから取得します。
ブランチ間で重複する結果が発生する場合にはuniquifiedオブジェクトでラップする必要があります(上述の通り)。
これらのブランチは並列に処理されるため、"combined"内のブランチの数には制限があります。
"recs"でキーワードが有効化されている場合や複数のサイトIDが指定されている場合には2ブランチ以上にカウントされます。
"conditional"
複数のブランチの中から条件(例として現在時刻やユーザ、ページなど)にマッチするものを選択して処理します。
|
名前 |
タイプ |
説明 |
|---|---|---|
|
branches |
Array of Object |
Content 設定オブジェクトの空ではない配列 |
オプションでブランチに condition フィールドを指定することができます。条件の満たされた最初のブランチが選択されます。condition フィールドのないブランチはフォールバックブランチと呼ばれます。少なくとも1つのフォールバックブランチが必要で、フォールバックブランチの後にあるブランチに条件は指定できません。ブランチが条件を持つ必要がないことにご注意下さい。
条件を満たすブランチがない場合、フォールバックブランチの中から重み付けをしたランダムなブランチが選択されます。各フォールバックブランチは(他のブランチと比較して)これらのサブ設定で使用される頻度を指定する weight フィールドを設定できます。デフォルトのブランチ weight は 10です。
"randomized"
廃止予定。"conditional" をご利用ください。
"shuffled"
結果順序をシャッフルします。
|
名前 |
タイプ |
説明 |
|---|---|---|
|
innerSettings |
Object |
コンテントセッティングオブジェクト |
|
level |
Integer |
シャッフルするレベル: 0 - シャッフルしない (順序を変更しない)
|
"uniquified"
結果から重複するアイテムを排除します。
|
名前 |
タイプ |
説明 |
|---|---|---|
|
innerSettings |
Object |
コンテントセッティングオブジェクト |
|
margin |
Integer |
「オーバーブッキング」のレベルを指定。下記参照。 |
|
preference |
String |
"best"(デフォルト)または"unmodified"を指定。
"best" の場合、結果がスコアの高い順にソートされます。
|
重複を排除後にも十分な数の結果件数が残るように、innerSettingsからある程度の予備を返すようにしておきます。"margin"フィールドではそのレベルを指定します:
0 - オーバーブッキングしない(重複排除が起こった場合結果件数が少なくなる場合がある)
100 - 100%(すなわち2倍)の数のアイテムを要求
200 - 200%を要求
"budget"
インプレッション数/クリック数/ページビュー数が指定した予算を超えている記事はレコメンドしません。
イベントはウィジェットのサイト内でカウントされ、同じサイトに属する2つのウィジェットでは予算が共有されます。
予算の制約は1日ごとお客様ごと100記事まで適用されます。
特別なフィールド:
|
名前 |
タイプ |
説明 |
|---|---|---|
|
|
Object |
予算によって制限される Content セッティングオブジェクト。 |
|
|
Number |
このインプレッション数を超えるURLは削除します |
|
|
Number |
このクリック数を超えるURLは削除します。 |
|
maxPageviews |
Number |
このページビュー数を超えるURLは削除します。maxImpressions または maxClicks と一緒に指定することはできません。 |
|
|
String |
この期間内のイベントのみを含みます。1ヶ月以上は指定できません。デフォルトは使用可能な全ての期間がカウントされます。 |
利用を推奨するタイプ
"defaults"
"recs"コンテントセッティングのデフォルトを定義します。
|
名前 |
タイプ |
説明 |
|---|---|---|
|
innerSettings |
Object |
ここで指定するデフォルト値が適用されるコンテントセッティングオブジェクト |
|
|
String |
追加の defaults をインポートするための別のコンテンツID |
|
[any field] |
... |
デフォルト値を指定するフィールドとその値 |
多くのブランチを含むセッティングオブジェクトでは各ブランチそれぞれに同じパラメータを指定することになります(例えば resultFields の指定はどのブランチでも同じ)。defaults の目的はこれを簡素化するものです。すなわち、ここで指定されたパラメータはinnerSettingsの内部では繰り返す必要がありません(上書きすることも可能です)。
defaults がネストされた場合、最も内側の default の値が使われます。共通のフィールド(tag、weight、conditionなど)はデフォルト値として解釈されませんのでご注意ください。
importFromContentId を使って参照された Content 設定は innerSettings を持たない単一の defaults ノードで構成しなければなりません。指定したフィールドはインポートされたContent設定のフィールドを上書きします。インポートは各データリクエストに対して解決され、親の設定をコピーせず、保存もしません。したがってインポートされたContent への変更は現在の設定に反映されてしまいます。設定を作成または更新する時はインポートされるContentは存在し、同じサイトグループ内のContentでなければなりません。インポートされた Content オブジェクトが削除されると importFromContentId は無効になります。
例)
{ "type": "defaults",
"siteIds":[ "01234" ],
"innerSettings":{
"type": "recs",
[ここでのsiteIdsの指定は不要]
}
...
}
その他のタイプ
"schemeAdjusted"
この設定は、参照中のページがhttpsの場合にURLの書き換えを行うために使用します。これは"mixed content"(混在コンテンツ)の警告を避けるために使用します。
|
名前 |
タイプ |
説明 |
|---|---|---|
|
innerSettings |
Object |
コンテントセッティングオブジェクト |
|
fields |
Array of String |
書き換えを行うURLを含んだフィールドのリスト |
基本的な Content widget setting の例
複数のレコメンデーションのロジックをミックスした例です:
-
直近24時間で最もポピュラーな記事("trend"および"period")
-
参照中のページ(ウィジェットが設置されたページ)に似ている記事("contextual")
-
ユーザの興味にマッチするもの("behavioral")
-
どの場合も7日以上前の記事は表示しない設定("maxAge")
-
記事に画像があることが必須("query(dominantthumnail:\"*\")")
|
複雑な Content widget setting
この例は現実的な設定ではないかもしれませんが、上記で説明した各設定値の使用法の解説のために作成してあります:
|