addashboard-cli 0.9.3 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -652,6 +652,7 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
|
|
|
652
652
|
<tr><td>曜日・時間帯</td><td>配信スケジュール</td></tr>
|
|
653
653
|
<tr><td>デバイス</td><td>配信デバイス</td></tr>
|
|
654
654
|
<tr><td>性別</td><td>—</td></tr>
|
|
655
|
+
<tr><td>Advantage+ オーディエンス</td><td>広告セット行の「Advantage+」列。<b>空欄・オンなら Meta が指定した年齢・性別を「出発点」として対象を広げる</b>/オフなら指定どおりに限定して配信する。<b>性別を指定する広告セットでは Meta 側でこの指定が必須</b>(無いと広告セット作成が <code>subcode 1870227</code> で落ちる。2026-09-03 に v26.0 の実 API で確認)。従来はこの列が無く、性別を指定した広告セットが全滅していた</td></tr>
|
|
655
656
|
<tr><td>年齢</td><td>—</td></tr>
|
|
656
657
|
<tr><td>オーディエンスリスト</td><td>どのデータ(カスタム/類似オーディエンス)に配布するか。<code>fetchAudiences</code> で取得可</td></tr>
|
|
657
658
|
<tr><td>プレイスメント</td><td>配信面の指定</td></tr>
|
|
@@ -853,7 +854,7 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
|
|
|
853
854
|
(cli/test/unit/plannerVersion.test.ts が package.json との一致を検証するので、
|
|
854
855
|
手で書き換えて放置するとテストが落ちる)。
|
|
855
856
|
利用者が「どの版のプランナーを開いているか」を言えないと、不具合報告が噛み合わない。 */
|
|
856
|
-
const APP_VERSION = '0.9.
|
|
857
|
+
const APP_VERSION = '0.9.4'; /* version:sync */
|
|
857
858
|
/* 案A: embed廃止。参照データ(refs)・初期プラン・共通設定は外部JSONから起動時に読み込む。
|
|
858
859
|
同梱デフォルト: アカウント/<媒体>/index.json の先頭アカウント (refs+principal+projectName+baseArticleUrl) と サンプルプラン.json (project+campaigns)。
|
|
859
860
|
固有名詞はハードコードせず、すべて外部JSON由来にする。 */
|
|
@@ -2820,6 +2821,16 @@ const META_COLS = {
|
|
|
2820
2821
|
},
|
|
2821
2822
|
title:'空欄にすると上限なし(age_max を送りません)。特別広告カテゴリ選択時は 65 固定となり上限なしは無視されます'},
|
|
2822
2823
|
{field:'tg_gender', label:'性別', kind:'tgpick', tgKey:'tg_gender', readonlyOnExisting:true, roEmptyDash:true},
|
|
2824
|
+
/* S16: Advantage+ オーディエンス (targeting.targeting_automation.advantage_audience)。
|
|
2825
|
+
**性別を指定するときは Meta が必須にする**(無いと広告セット作成が 1870227 で落ちる。
|
|
2826
|
+
2026-09-03 に v26.0 の実 API で確認)。空欄 = オン(1) で、これは従来 Meta が暗黙に
|
|
2827
|
+
付けていた値と同じ。オフ(0) にすると指定した年齢・性別どおりに限定して配信される。 */
|
|
2828
|
+
{field:'advantageAudience', label:'Advantage+', kind:'select', options:['','オン','オフ'], minWidth:'78px',
|
|
2829
|
+
readonlyOnExisting:true, roEmptyDash:true,
|
|
2830
|
+
coerce:v=>{const t=String(v==null?'':v).trim(); return (t==='オン'||t==='オフ')?t:'';},
|
|
2831
|
+
title:'Advantage+ オーディエンス。空欄・オンなら Meta が指定した年齢・性別・オーディエンスを'
|
|
2832
|
+
+'「出発点」として対象を広げます。オフにすると指定どおりに限定して配信します。'
|
|
2833
|
+
+'(性別を指定する広告セットでは Meta 側でこの指定が必須です)'},
|
|
2823
2834
|
{field:'tg_device', label:'デバイス', kind:'tgpick', tgKey:'tg_device', readonlyOnExisting:true, roEmptyDash:true},
|
|
2824
2835
|
{field:'tg_placement', label:'配置', kind:'tgpick', tgKey:'tg_placement', readonlyOnExisting:true, roEmptyDash:true},
|
|
2825
2836
|
/* 配信日時: 空欄 = 案件設定チップの値を継承(buildPlan 側で解決)。placeholder に継承先を出す */
|
|
@@ -2974,6 +2985,8 @@ PLATFORMS.meta = {
|
|
|
2974
2985
|
mappers:{
|
|
2975
2986
|
devices(s, P){ return mapByEnum(s, P.enums.device, P.targeting.tg_device.allLabel); },
|
|
2976
2987
|
genders(s, P){ return mapByEnum(s, P.enums.gender, P.targeting.tg_gender.allLabel); },
|
|
2988
|
+
/* S16: 空欄・未知の値・旧プラン(キー無し)はオン(1)。'オフ' のときだけ 0 */
|
|
2989
|
+
advantageAudience(v){ return String(v==null?'':v).trim()==='オフ' ? 0 : 1; },
|
|
2977
2990
|
placements(s, P){
|
|
2978
2991
|
const l=tgList(s);
|
|
2979
2992
|
if(!l.length || l.indexOf(P.targeting.tg_placement.allLabel)>=0)
|
|
@@ -3088,7 +3101,7 @@ PLATFORMS.meta = {
|
|
|
3088
3101
|
ad:{format:'IMAGE', imageNo:'', titleNo:'', descNo:'', adName:'', paramCode:''},
|
|
3089
3102
|
adGroup:{name:'', paramCode:'', isExisting:false, dailyBudget:1000, bidAmount:null,
|
|
3090
3103
|
ageMin:18, ageMax:65, tg_gender:'すべて', tg_device:'すべてのデバイス',
|
|
3091
|
-
tg_placement:'自動配置', startDate:'', endDate:'', deliveryStatus:''},
|
|
3104
|
+
tg_placement:'自動配置', advantageAudience:'', startDate:'', endDate:'', deliveryStatus:''},
|
|
3092
3105
|
campaign:{name:'新規キャンペーン', campaignId:'', isExisting:false,
|
|
3093
3106
|
objective:'OUTCOME_SALES', specialAdCategory:'NONE', urlNumber:''}
|
|
3094
3107
|
},
|
|
@@ -3294,6 +3307,10 @@ PLATFORMS.meta = {
|
|
|
3294
3307
|
: (String(g.ageMax==null?'':g.ageMax).trim()!=='' && Number(g.ageMax)>0
|
|
3295
3308
|
? {ageMax:Number(g.ageMax)} : {})),
|
|
3296
3309
|
genders: constrained?[]:P.mappers.genders(g.tg_gender, P),
|
|
3310
|
+
/* S16: Advantage+ オーディエンスは**常に送る**。性別を指定した広告セットだけ
|
|
3311
|
+
1870227 で落ちる、という条件付きの不具合を再発させないため。
|
|
3312
|
+
旧プラン(キー無し)・空欄はオン(1) = 従来 Meta が暗黙に付けていた値。 */
|
|
3313
|
+
advantageAudience: P.mappers.advantageAudience(g.advantageAudience),
|
|
3297
3314
|
devicePlatforms:P.mappers.devices(g.tg_device, P),
|
|
3298
3315
|
placements:P.mappers.placements(g.tg_placement, P),
|
|
3299
3316
|
customAudiences:[], excludedAudiences:[], /* ID解決が必要なため常に空 */
|