addashboard-cli 0.9.4 → 0.10.1
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/dist/commands/submission.js +151 -8
- package/dist/commands/submission.js.map +1 -1
- package/dist/lib/apiError.js +7 -2
- package/dist/lib/apiError.js.map +1 -1
- package/package.json +1 -1
- package/skills/ad-ops/SKILL.md +3 -2
- package/skills/ad-ops/ad-planner.html +266 -28
- package/skills/ad-ops/scripts/plan_lint.py +14 -0
|
@@ -343,6 +343,91 @@ async function resolveGoogleImages(client, body, jsonFile, log) {
|
|
|
343
343
|
}
|
|
344
344
|
}
|
|
345
345
|
}
|
|
346
|
+
/**
|
|
347
|
+
* Demand Gen 動画広告の `videoPath` (ローカル動画) を先に
|
|
348
|
+
* POST /api/submission/google/upload-video へ送って YouTube 動画ID を取得し、
|
|
349
|
+
* `youtubeVideoId` に注入する(`videoPath` は削除)。
|
|
350
|
+
* 相対パスは JSON ファイルのあるディレクトリ基準で解決する。
|
|
351
|
+
*
|
|
352
|
+
* **動画は Google 管理チャンネルへ限定公開で上がる**(広告主チャンネルは未対応)。
|
|
353
|
+
* 上げた動画は `RemoveYouTubeVideoUpload` で消せるが、入稿が途中で失敗しても自動では消さない。
|
|
354
|
+
*
|
|
355
|
+
* 再実行で二重に上げないよう `videoPath` を消して ID を書き戻すが、**それがディスクに残るのは
|
|
356
|
+
* `submit-plan` 経路だけ**(`persistPlan` を通る)。`submit --json-file` は書き戻さないので、
|
|
357
|
+
* 途中で失敗して再実行すると同じ動画をもう一度上げる。
|
|
358
|
+
*/
|
|
359
|
+
async function resolveGoogleVideos(client, body, jsonFile, log,
|
|
360
|
+
/**
|
|
361
|
+
* パス → 動画ID。**呼び出し側が持つ。**
|
|
362
|
+
* submit-plan は 1 キャンペーンずつ解決するので、関数内に置くとキャンペーンを跨げず、
|
|
363
|
+
* テンプレ量産した 5 本の CP で同じ動画が 5 本 YouTube に上がる。
|
|
364
|
+
*/
|
|
365
|
+
byPath = new Map()) {
|
|
366
|
+
const baseDir = path_1.default.dirname(path_1.default.resolve(jsonFile));
|
|
367
|
+
const customerId = String(body?.customerId ?? '');
|
|
368
|
+
for (const cp of body?.campaigns ?? []) {
|
|
369
|
+
for (const ag of cp?.adGroups ?? []) {
|
|
370
|
+
for (const ad of ag?.ads ?? []) {
|
|
371
|
+
if (ad?.type !== 'DEMAND_GEN_VIDEO_RESPONSIVE_AD')
|
|
372
|
+
continue;
|
|
373
|
+
if (!ad?.videoPath || ad?.youtubeVideoId)
|
|
374
|
+
continue;
|
|
375
|
+
const abs = (0, localPath_1.resolveLocalMediaPath)(ad.videoPath, baseDir, 'video');
|
|
376
|
+
const cached = byPath.get(abs);
|
|
377
|
+
if (cached) {
|
|
378
|
+
ad.youtubeVideoId = cached;
|
|
379
|
+
delete ad.videoPath;
|
|
380
|
+
log(`[cli/submit] reuse video ${path_1.default.basename(abs)} → ${cached}`);
|
|
381
|
+
continue;
|
|
382
|
+
}
|
|
383
|
+
const buf = fs_1.default.readFileSync(abs);
|
|
384
|
+
const fileName = path_1.default.basename(abs);
|
|
385
|
+
const form = new FormData();
|
|
386
|
+
form.append('customerId', customerId);
|
|
387
|
+
form.append('video', new Blob([buf]), fileName);
|
|
388
|
+
if (ad.adName)
|
|
389
|
+
form.append('title', String(ad.adName));
|
|
390
|
+
// アップロード + YouTube 側の処理完了待ちでブロックするため、既定 15s では足りない
|
|
391
|
+
let res;
|
|
392
|
+
try {
|
|
393
|
+
res = await client.post('/api/submission/google/upload-video', form, { timeout: 600000 });
|
|
394
|
+
}
|
|
395
|
+
catch (e) {
|
|
396
|
+
// 消し損ねた動画があれば backend が resource_name を返す。手動削除に要る
|
|
397
|
+
const leftover = e?.response?.data?.resource_name;
|
|
398
|
+
/* 接続断・タイムアウト(応答なし)や、nginx の 504・backend の 5xx では、
|
|
399
|
+
**backend が切断後も走り続けて動画を作り切りうる**。
|
|
400
|
+
「失敗=何も上がっていない」と読ませない。黙ると再実行のたびに孤児が増える。 */
|
|
401
|
+
const status = e?.response?.status;
|
|
402
|
+
const mayHaveUploaded = status === undefined || status >= 500;
|
|
403
|
+
throw new Error(`upload-video 失敗 (${fileName}): ${describeUploadError(e, buf.length)}`
|
|
404
|
+
+ (leftover ? `\n ⚠ YouTube に動画が残っています。手動で削除してください: ${leftover}` : '')
|
|
405
|
+
+ (mayHaveUploaded && !leftover
|
|
406
|
+
? `\n ⚠ YouTube 側に動画が作られている可能性があります。`
|
|
407
|
+
+ `再実行の前にサーバーログ ([GoogleVideoUpload] uploaded) と Google Ads の動画を確認してください`
|
|
408
|
+
: ''));
|
|
409
|
+
}
|
|
410
|
+
if (!res.data?.video_id) {
|
|
411
|
+
throw new Error(`upload-video が video_id を返しませんでした (${fileName})`);
|
|
412
|
+
}
|
|
413
|
+
ad.youtubeVideoId = res.data.video_id;
|
|
414
|
+
byPath.set(abs, res.data.video_id);
|
|
415
|
+
/* **videoId から resourceName は復元できない。** 削除 (RemoveYouTubeVideoUpload) が
|
|
416
|
+
要求するのは `customers/.../youTubeVideoUploads/<id>` のほう。記録しないと、
|
|
417
|
+
入稿が失敗して計画を捨てたときに上げた動画を消す手段が無くなる。 */
|
|
418
|
+
recordUploadedVideo(body, {
|
|
419
|
+
videoId: String(res.data.video_id),
|
|
420
|
+
resourceName: res.data.resource_name ? String(res.data.resource_name) : undefined,
|
|
421
|
+
originalPath: ad.videoPath,
|
|
422
|
+
fileName,
|
|
423
|
+
});
|
|
424
|
+
// 消さないと計画ファイルの再実行で同じ動画をもう一度アップロードしてしまう
|
|
425
|
+
delete ad.videoPath;
|
|
426
|
+
log(`[cli/submit] uploaded video ${fileName} → ${ad.youtubeVideoId} (限定公開・Google 管理チャンネル)`);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}
|
|
346
431
|
/**
|
|
347
432
|
* アップロードしたロゴを計画ファイルへ記録する。
|
|
348
433
|
*
|
|
@@ -358,6 +443,31 @@ async function resolveGoogleImages(client, body, jsonFile, log) {
|
|
|
358
443
|
* 全件 undefined 同士になって 2 件目以降が落ちる。媒体を増やすときは
|
|
359
444
|
* キーの決め方から作り直す。
|
|
360
445
|
*/
|
|
446
|
+
/**
|
|
447
|
+
* アップロードした動画を計画ファイルへ記録する。
|
|
448
|
+
*
|
|
449
|
+
* **`videoId` だけでは足りない。** 削除 (`RemoveYouTubeVideoUpload`) が要求するのは
|
|
450
|
+
* `customers/.../youTubeVideoUploads/<id>` のほうで、`videoId` からは復元できない。
|
|
451
|
+
* 入稿が失敗して計画を捨てたときに、上げた動画を消す唯一の手がかりになる。
|
|
452
|
+
*/
|
|
453
|
+
function recordUploadedVideo(body, item) {
|
|
454
|
+
const videos = (((body.uploadedAssets ??= {}).google ??= {}).videos ??= []);
|
|
455
|
+
if (videos.some((v) => v?.videoId === item.videoId))
|
|
456
|
+
return;
|
|
457
|
+
videos.push(item);
|
|
458
|
+
}
|
|
459
|
+
/** 動画も同じ流儀で計画ファイルへ集める。重複判定は videoId(必ず返る値) */
|
|
460
|
+
function mergeUploadedGoogleVideos(plan, uploaded) {
|
|
461
|
+
const videos = uploaded?.google?.videos;
|
|
462
|
+
if (!Array.isArray(videos) || videos.length === 0)
|
|
463
|
+
return;
|
|
464
|
+
const dest = ((plan.uploadedAssets ??= {}).google ??= {}).videos ??= [];
|
|
465
|
+
for (const item of videos) {
|
|
466
|
+
if (dest.some((d) => d?.videoId === item?.videoId))
|
|
467
|
+
continue;
|
|
468
|
+
dest.push(item);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
361
471
|
function mergeUploadedGoogleLogos(plan, uploaded) {
|
|
362
472
|
const logos = uploaded?.google?.logos;
|
|
363
473
|
if (!Array.isArray(logos) || logos.length === 0)
|
|
@@ -553,6 +663,9 @@ function collectMediaRefs(platform, body) {
|
|
|
553
663
|
for (const p of paths)
|
|
554
664
|
refs.push({ value: p, kind: 'image', purpose: 'demand_gen_logo' });
|
|
555
665
|
}
|
|
666
|
+
if (ad?.type === 'DEMAND_GEN_VIDEO_RESPONSIVE_AD' && ad?.videoPath) {
|
|
667
|
+
refs.push({ value: String(ad.videoPath), kind: 'video' });
|
|
668
|
+
}
|
|
556
669
|
}
|
|
557
670
|
}
|
|
558
671
|
}
|
|
@@ -560,19 +673,33 @@ function collectMediaRefs(platform, body) {
|
|
|
560
673
|
return refs;
|
|
561
674
|
}
|
|
562
675
|
/**
|
|
563
|
-
* Demand Gen
|
|
676
|
+
* Demand Gen のロゴ・動画の指定が backend の受け入れ条件を満たすかを、**アップロードの前に**見る。
|
|
564
677
|
*
|
|
565
678
|
* backend の superRefine (either 必須 / 同時指定不可 / 合計5件) は入稿 POST の時点で効くが、
|
|
566
679
|
* CLI は**その前にアップロードを済ませてしまう**。同時指定や6件を CLI が素通りさせると、
|
|
567
680
|
* backend が 400 を返す頃には削除できない asset が作られている。同じ条件をここでも見る。
|
|
568
681
|
*/
|
|
569
|
-
function
|
|
682
|
+
function validateGoogleMediaSources(platform, body) {
|
|
570
683
|
if (platform !== 'google')
|
|
571
684
|
return [];
|
|
572
685
|
const errors = [];
|
|
573
686
|
for (const cp of body?.campaigns ?? []) {
|
|
574
687
|
for (const ag of cp?.adGroups ?? []) {
|
|
575
688
|
for (const ad of ag?.ads ?? []) {
|
|
689
|
+
const where0 = `広告「${ad?.adName ?? '(名前なし)'}」`;
|
|
690
|
+
/* 動画も同じ理由でここで見る。同時指定を素通りさせると、backend が 400 を
|
|
691
|
+
返す頃には YouTube に不要な動画が上がっている。 */
|
|
692
|
+
if (ad?.type === 'DEMAND_GEN_VIDEO_RESPONSIVE_AD') {
|
|
693
|
+
const hasId = !!ad?.youtubeVideoId;
|
|
694
|
+
const hasPath = !!ad?.videoPath;
|
|
695
|
+
if (!hasId && !hasPath) {
|
|
696
|
+
errors.push(`${where0}: 動画が指定されていません (youtubeVideoId、または未アップロードなら videoPath)`);
|
|
697
|
+
}
|
|
698
|
+
if (hasId && hasPath) {
|
|
699
|
+
errors.push(`${where0}: youtubeVideoId と videoPath は同時に指定できません(二重に動画を上げてしまいます)`);
|
|
700
|
+
}
|
|
701
|
+
continue;
|
|
702
|
+
}
|
|
576
703
|
if (ad?.type !== 'DEMAND_GEN_MULTI_ASSET_AD')
|
|
577
704
|
continue;
|
|
578
705
|
const assets = Array.isArray(ad?.logoImages) ? ad.logoImages.length : 0;
|
|
@@ -605,7 +732,7 @@ function validateGoogleLogoSources(platform, body) {
|
|
|
605
732
|
function validateLocalMediaPaths(platform, body, baseFile) {
|
|
606
733
|
const baseDir = path_1.default.dirname(path_1.default.resolve(baseFile));
|
|
607
734
|
const errors = [];
|
|
608
|
-
errors.push(...
|
|
735
|
+
errors.push(...validateGoogleMediaSources(platform, body));
|
|
609
736
|
for (const ref of collectMediaRefs(platform, body)) {
|
|
610
737
|
let abs;
|
|
611
738
|
try {
|
|
@@ -726,8 +853,9 @@ async function runSubmit(input) {
|
|
|
726
853
|
if (dup)
|
|
727
854
|
return dup;
|
|
728
855
|
}
|
|
729
|
-
// 本実行時のみ: Google
|
|
730
|
-
// アップロードして asset resource_name
|
|
856
|
+
// 本実行時のみ: Google のローカル画像(*ImagePaths)とローカル動画(videoPath)を先に
|
|
857
|
+
// アップロードして asset resource_name / YouTube 動画ID へ解決。
|
|
858
|
+
// dry-run では実 API を叩かない(動画は上げると後始末が要る)
|
|
731
859
|
if (input.platform === 'google' && !input.dryRun) {
|
|
732
860
|
try {
|
|
733
861
|
await resolveGoogleImages(client, body, input.jsonFile, log);
|
|
@@ -735,6 +863,12 @@ async function runSubmit(input) {
|
|
|
735
863
|
catch (e) {
|
|
736
864
|
return { ok: false, exitCode: 1, error: `image_upload_error: ${e.message}` };
|
|
737
865
|
}
|
|
866
|
+
try {
|
|
867
|
+
await resolveGoogleVideos(client, body, input.jsonFile, log);
|
|
868
|
+
}
|
|
869
|
+
catch (e) {
|
|
870
|
+
return { ok: false, exitCode: 1, error: `video_upload_error: ${e.message}` };
|
|
871
|
+
}
|
|
738
872
|
}
|
|
739
873
|
// 本実行時のみ: TikTok の動画 (videoPath) とカバー画像 (coverImagePath) を先に
|
|
740
874
|
// アップロードして videoId / imageIds へ解決。dry-run では実 API を叩かない
|
|
@@ -1008,6 +1142,8 @@ async function runSubmitPlan(input) {
|
|
|
1008
1142
|
* ID/hash へ解決する。cp は plan.campaigns[i] と同一参照なので、解決後に persist
|
|
1009
1143
|
* すれば再開時に再アップロードしない。
|
|
1010
1144
|
*/
|
|
1145
|
+
/** 動画のアップロード結果をキャンペーン跨ぎで使い回す(量産した CP が同じ動画を何本も上げない) */
|
|
1146
|
+
const googleVideoCache = new Map();
|
|
1011
1147
|
const resolveMedia = async (singleBody) => {
|
|
1012
1148
|
try {
|
|
1013
1149
|
await resolveMediaInner(singleBody);
|
|
@@ -1020,6 +1156,7 @@ async function runSubmitPlan(input) {
|
|
|
1020
1156
|
3枚中2枚目で落ちたとき、1枚目は Google に残る (asset は削除できない)。
|
|
1021
1157
|
記録を捨てると、その asset を追跡する手段が無くなる。 */
|
|
1022
1158
|
mergeUploadedGoogleLogos(plan, singleBody.uploadedAssets);
|
|
1159
|
+
mergeUploadedGoogleVideos(plan, singleBody.uploadedAssets);
|
|
1023
1160
|
}
|
|
1024
1161
|
};
|
|
1025
1162
|
const resolveMediaInner = async (singleBody) => {
|
|
@@ -1034,8 +1171,9 @@ async function runSubmitPlan(input) {
|
|
|
1034
1171
|
return;
|
|
1035
1172
|
}
|
|
1036
1173
|
if (platform === 'google') {
|
|
1037
|
-
// 動画は YouTube 動画ID を人間が用意する前提のためアップロード対象は画像だけ。
|
|
1038
1174
|
await resolveGoogleImages(client, singleBody, input.planFile, log);
|
|
1175
|
+
// Map はキャンペーンを跨いで共有する(量産した CP が同じ動画を何本も上げないため)
|
|
1176
|
+
await resolveGoogleVideos(client, singleBody, input.planFile, log, googleVideoCache);
|
|
1039
1177
|
return;
|
|
1040
1178
|
}
|
|
1041
1179
|
if (platform === 'bytedance') {
|
|
@@ -1052,8 +1190,13 @@ async function runSubmitPlan(input) {
|
|
|
1052
1190
|
for (const cp of plan.campaigns) {
|
|
1053
1191
|
const singleBody = buildSubmitPlanBody(platform, plan.accountId, [cp]);
|
|
1054
1192
|
try {
|
|
1055
|
-
await client.post(submitPath, singleBody, { params: { dry_run: '1' } });
|
|
1056
|
-
|
|
1193
|
+
const res = await client.post(submitPath, singleBody, { params: { dry_run: '1' } });
|
|
1194
|
+
/* 通るが意図とずれる指摘(未知の CTA・配信時間帯の切り上げなど)。
|
|
1195
|
+
捨てると本実行まで気づけないので、ログと結果の両方に出す。 */
|
|
1196
|
+
const warnings = Array.isArray(res.data?.warnings) ? res.data.warnings : [];
|
|
1197
|
+
for (const w of warnings)
|
|
1198
|
+
log(`[cli/submit-plan] ⚠ ${w}`);
|
|
1199
|
+
checks.push({ name: String(cp?.name ?? ''), ok: true, ...(warnings.length ? { warnings } : {}) });
|
|
1057
1200
|
}
|
|
1058
1201
|
catch (err) {
|
|
1059
1202
|
const msg = (0, apiError_1.describeApiError)(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../../src/commands/submission.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../../src/commands/submission.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/apiError.js
CHANGED
|
@@ -38,8 +38,13 @@ function describeErrorBody(data) {
|
|
|
38
38
|
return undefined;
|
|
39
39
|
const d = data;
|
|
40
40
|
const e = d.error;
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
/* backend は `{ error: '<コード>', message: '<理由>' }` の形でも返す
|
|
42
|
+
(google_ads_error / validation_error 等)。コードだけ返すと **理由が消える** ——
|
|
43
|
+
`formatGoogleAdsError()` が組み立てた本文が CLI に届かず、
|
|
44
|
+
運用者は `✗ google_ads_error` しか見られない。両方あるなら両方出す。 */
|
|
45
|
+
if (typeof e === 'string' && e) {
|
|
46
|
+
return typeof d.message === 'string' && d.message ? `${e}: ${d.message}` : e;
|
|
47
|
+
}
|
|
43
48
|
if (e && typeof e === 'object') {
|
|
44
49
|
const m = e.message;
|
|
45
50
|
if (typeof m === 'string' && m)
|
package/dist/lib/apiError.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiError.js","sourceRoot":"","sources":["../../src/lib/apiError.ts"],"names":[],"mappings":";;AAaA,4CASC;AAGD,
|
|
1
|
+
{"version":3,"file":"apiError.js","sourceRoot":"","sources":["../../src/lib/apiError.ts"],"names":[],"mappings":";;AAaA,4CASC;AAGD,8CA0BC;AAnDD;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAAC,GAAY,EAAE,QAAQ,GAAG,eAAe;IACvE,MAAM,GAAG,GAAI,GAA0D,EAAE,QAAQ,CAAC;IAClF,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG;QAAE,OAAO,cAAc,CAAC;IAE/C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,GAAG,GAAI,GAA6B,EAAE,OAAO,CAAC;IACpD,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzD,CAAC;AAED,sDAAsD;AACtD,SAAgB,iBAAiB,CAAC,IAAa;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,uCAAuC;QACvC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9C,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAExD,MAAM,CAAC,GAAG,IAA8C,CAAC;IACzD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAClB;;;uDAGmD;IACnD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAI,CAA2B,CAAC,OAAO,CAAC;QAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACzC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IACjE,2CAA2C;IAC3C,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU;IAC1B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
package/skills/ad-ops/SKILL.md
CHANGED
|
@@ -309,7 +309,7 @@ skills/ad-ops/scripts/adops.sh open yda <accountId> campaigns
|
|
|
309
309
|
| ---------------------- | ------------ | ------------ | ---------------------- | ---------------------------------------------- |
|
|
310
310
|
| **YDA** | ✅ 対応済み | ✅ 対応済み | 広告ごと | まず YDA から対応 (社内優先順位、名倉さん依頼) |
|
|
311
311
|
| **Meta** | ⏳ 未対応 | ✅ 対応済み (画像/動画) | 広告ごと (まとめ入稿でも広告単位で変わる) | ASC でも広告ごとに個別リンクを設定。**実 API への本入稿 PoC は未実施** |
|
|
312
|
-
| **Google (Demand Gen)** | ⏳ 未対応 | ✅ 対応済み (画像/動画) | 広告ごと | **実 API での入稿を確認済み**(2026-08-23・PAUSED
|
|
312
|
+
| **Google (Demand Gen)** | ⏳ 未対応 | ✅ 対応済み (画像/動画) | 広告ごと | **実 API での入稿を確認済み**(2026-08-23・PAUSED)。動画は動画IDかローカルパスで指定できる(パスは CLI が自動アップロード。**Google 管理チャンネルの限定公開**・実 API 未検証) |
|
|
313
313
|
| **TikTok / ByteDance** | ⏳ 未対応 | ✅ 対応済み (単一動画) | 広告ごと | **実 API での入稿検証は未了**。**配信オン (ENABLE) は backend が拒否**。動画とカバー画像はアップロード済みIDを使う |
|
|
314
314
|
|
|
315
315
|
***
|
|
@@ -326,13 +326,14 @@ skills/ad-ops/scripts/adops.sh open yda <accountId> campaigns
|
|
|
326
326
|
| dry-run で不備を潰す | ✅ できる |
|
|
327
327
|
| **本実行(実際の入稿)** | ✅ **できる**(2026-08-23 に実 API で確認済み)。ただし**配信オン (ENABLED) では入稿できない** — backend が 400 で拒否し、lint も ERROR で止める。**PAUSED で入稿し、管理画面で確認してから手で配信をオンにする**運用。広告が1件も作れなかった CP は自動削除される |
|
|
328
328
|
| 既存キャンペーン・広告グループへの広告追加 | ❌ 未対応。毎回あたらしいキャンペーンを作る形になる |
|
|
329
|
-
| 動画ファイルのアップロード |
|
|
329
|
+
| 動画ファイルのアップロード | ✅ **対応**(#246)。プランナーの広告行「動画パス」にローカル動画を指定すると、本実行の直前に CLI がアップロードして YouTube 動画IDに解決する(dry-run では上げない)。動画IDとパスを同時に載せない。⚠ **上がり先は Google 管理チャンネルの限定公開で、広告主のチャンネルには置けない**(手上げ運用とは置き場所が変わる)。⚠ **実 API での検証は未了** |
|
|
330
330
|
| 参照データの自動取込(`refs-import`) | ✅ `adops.sh refs-import google <accountId> [--write]`。既存の Demand Gen 広告から**ブランド名 / 長見出し / ロゴ**を集めてアカウントJSONへマージする。既定は差分表示のみ。`--write` は書き込み前に `<名前>.json.bak` へ退避する |
|
|
331
331
|
| 管理画面を開く | ✅ `adops.sh open google <customerId> [campaigns\|adgroups\|ads]`。アカウントJSONの `consoleMcc` を使う |
|
|
332
332
|
| 入稿後に状態を確認する | ✅ `webgram list --platform google --resource ads --account-id <id> [--campaign-id <cpId>]`。**キャンペーン / 広告グループ / 広告の status を名前で返す**(PAUSED で入ったかを管理画面を開かずに確認できる) |
|
|
333
333
|
| 画像のローカルパス入稿 | **ロゴのみ対応**。プランナーの「ロゴ画像パス」にローカル画像を指定すると、本実行の直前に CLI がアップロードして resource_name に解決する(dry-run では上げない)。**マーケティング画像(横長・正方形)は未対応**で、登録済みアセットの `resource_name` を用意する |
|
|
334
334
|
| 地域の指定漏れ | ✅ 安全弁あり。**未指定なら日本 (2392) を既定で入れる**(未指定は全世界配信になるため。Meta の JP 既定と同じ) |
|
|
335
335
|
| キャンペーン名の重複 | ✅ 三重に止める。**プランナー**(`refs.campaigns` と突き合わせ、代替名も提案)/ **CLI**(本実行の直前に実データと突き合わせ。**素材のアップロードより前**に止める)/ **backend**(live で 400)。dry-run は実 API を叩かないので従来どおり通る |
|
|
336
|
+
| **配信開始日時** | ✅ 案件設定チップで**日付+時刻**を指定する(既定 翌日 05:00・YDA / Meta と同じ)。**Google アカウントのタイムゾーンで解釈される**(JST 変換はしない)。**Demand Gen は 0 時以外の開始を拒否する**(2026-09-11 本番実測: `DATE_RANGE_ERROR_START_TIME_MUST_BE_THE_START_OF_A_DAY`)ので、backend が**日付を `start_date_time`(00:00:00)、時刻を全曜日の配信時間帯(その時刻〜24:00 の `ad_schedule`)**に分けて送る。⚠ **初日だけでなく毎日その時刻〜24時の配信になる**(手作業で作った既存 Demand Gen キャンペーンは全部「全曜日 5:00〜24:00」だったので、それと同じ設定)。時刻を空にして日付だけにすると 0〜24 時配信。分は 15 分刻みに切り上げ、dry-run の warnings で知らせる。配信時間帯を付けられなかったときは CP を残して warning を出す(0〜24 時配信になっている)。入稿後は `webgram list --platform google --resource campaigns --account-id <id>` の `startDateTime` / `adSchedules` で確かめる |
|
|
336
337
|
|
|
337
338
|
### キャンペーン型が Demand Gen 固定な理由
|
|
338
339
|
|
|
@@ -341,6 +341,12 @@
|
|
|
341
341
|
.planwarn[hidden]{display:none;}
|
|
342
342
|
.planwarn .planwarnx{margin-left:auto; border:none; background:transparent; color:inherit; cursor:pointer; font-size:13px; line-height:1; padding:2px 6px; border-radius:6px;}
|
|
343
343
|
.planwarn .planwarnx:hover{background:rgba(0,0,0,.06);}
|
|
344
|
+
/* エラーバナー。警告(amber)と区別が付くよう赤系にする */
|
|
345
|
+
.errbar{background:#fdecec; color:#8a1f1f; border-bottom-color:#e9b4b4;}
|
|
346
|
+
.errbar .errask{margin-left:auto; border:1px solid #d98a8a; background:#fff; color:#8a1f1f; cursor:pointer;
|
|
347
|
+
font-size:12px; line-height:1; padding:5px 10px; border-radius:6px; white-space:nowrap;}
|
|
348
|
+
.errbar .errask:hover{background:#fff5f5;}
|
|
349
|
+
.errbar .planwarnx{margin-left:6px;}
|
|
344
350
|
/* ── help modal ── */
|
|
345
351
|
.modal.help{width:min(760px,100%);}
|
|
346
352
|
.help .hlead{font-size:13px; color:var(--muted); line-height:1.7; margin:2px 0 14px;}
|
|
@@ -383,6 +389,7 @@
|
|
|
383
389
|
<input type="file" id="accFileInput" accept=".json,application/json" style="display:none">
|
|
384
390
|
</header>
|
|
385
391
|
<div id="planWarn" class="planwarn" hidden><span id="planWarnMsg"></span><button id="planWarnClose" class="planwarnx" title="閉じる">✕</button></div>
|
|
392
|
+
<div id="errBar" class="planwarn errbar" hidden><span id="errBarMsg"></span><button id="errBarAsk" class="errask" title="このエラーをAIに相談する">🤖 AIに相談</button><button id="errBarClose" class="planwarnx" title="閉じる">✕</button></div>
|
|
386
393
|
|
|
387
394
|
<main>
|
|
388
395
|
<!-- ============ 媒体要件ビュー ============ -->
|
|
@@ -701,12 +708,13 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
|
|
|
701
708
|
</tbody></table>
|
|
702
709
|
</div></details>
|
|
703
710
|
|
|
704
|
-
<details class="sec" open><summary><span class="num">2</span><span class="stitle">動画広告 —
|
|
711
|
+
<details class="sec" open><summary><span class="num">2</span><span class="stitle">動画広告 — 動画IDかローカル動画パスで指定する</span><span class="chev"></span></summary>
|
|
705
712
|
<div class="body">
|
|
706
|
-
<p class="lead"
|
|
713
|
+
<p class="lead">指定のしかたは2通り。<b>①既に YouTube にある動画</b>は参照データに動画IDを登録して番号で参照する(動画IDは URL から取れる)。<b>②手元にある動画ファイル</b>は広告行の「動画パス」に書くと、本実行の直前に自動でアップロードして動画IDに解決する(dry-run では上げない)。<b>動画IDとパスを同時に指定しない</b>(余計な動画が上がる)。</p>
|
|
714
|
+
<p class="lead"><b>⚠ 自動アップロードの置き場所は Google 管理チャンネルの「限定公開」固定で、広告主のチャンネルには置けない。</b>手で上げる運用とは動画の置き場所が変わるので、クライアントのチャンネルに残す必要がある場合は①を使う。<b>⚠ この経路は実 API での検証がまだ済んでいない。</b></p>
|
|
707
715
|
<p>参照データの「クリエイティブ」に <code>video</code> として YouTube 動画ID(例 <code>dQw4w9WgXcQ</code>)を登録し、広告行の形式を <code>VIDEO</code> にして番号で参照する。</p>
|
|
708
716
|
<table class="g"><thead><tr><th>項目</th><th>必須</th><th>制約</th></tr></thead><tbody>
|
|
709
|
-
<tr><td>YouTube動画ID</td><td><span class="pill green">必須</span></td><td
|
|
717
|
+
<tr><td>YouTube動画ID</td><td><span class="pill green">必須</span></td><td>参照データに登録した動画ID。未登録なら広告行の「動画パス」でローカル動画を指定する(どちらか一方)</td></tr>
|
|
710
718
|
<tr><td>見出し</td><td><span class="pill green">必須</span></td><td>表示幅30まで</td></tr>
|
|
711
719
|
<tr><td><b>長見出し</b></td><td><span class="pill green">必須</span></td><td>表示幅90まで。<b>動画広告だけが持つ項目</b>(画像広告にはない)</td></tr>
|
|
712
720
|
<tr><td>説明文</td><td><span class="pill green">必須</span></td><td>表示幅90まで</td></tr>
|
|
@@ -732,7 +740,8 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
|
|
|
732
740
|
<table class="g"><thead><tr><th>項目</th><th>置き場所</th><th>内容</th></tr></thead><tbody>
|
|
733
741
|
<tr><td>地域</td><td>広告グループ行</td><td>日本 = criterion ID 2392</td></tr>
|
|
734
742
|
<tr><td>言語</td><td>広告グループ行</td><td>日本語 = 1005 / 英語 = 1000</td></tr>
|
|
735
|
-
<tr><td
|
|
743
|
+
<tr><td>配信開始日時</td><td>共通設定</td><td>日付+時刻で指定する(<b>Google アカウントのタイムゾーン基準</b>)。空欄なら翌日 05:00。<b>Demand Gen は 0 時以外の開始を受け付けない</b>(2026-09-11 実測)ため、<b>日付は <code>start_date_time</code>(00:00:00)に、時刻は全曜日の配信時間帯(その時刻〜24:00 の広告スケジュール)に分けて送る</b>。<b>⚠ 初日だけでなく毎日その時刻〜24時の配信になる</b>(手作業で作った既存キャンペーンの「全曜日 5:00〜24:00」と同じ設定)。時刻を空にして日付だけにすると 0〜24 時配信。分は 15 分刻みに切り上げる。入稿後は <code>list --resource campaigns</code> の <code>startDateTime</code> / <code>adSchedules</code> で確かめられる</td></tr>
|
|
744
|
+
<tr><td>配信面</td><td>広告グループ行</td><td>インストリーム / インフィード / ショート を<b>面ごとに選ぶ</b>。縦動画はショート、横動画はインストリーム、のように出し分けたいときは<b>広告グループを縦用・横用で分ける</b>(配信面は広告グループ単位の設定のため)。「すべて」なら Google の既定に任せる</td></tr>
|
|
736
745
|
</tbody></table>
|
|
737
746
|
<p>Demand Gen は地域・言語を<b>広告グループ階層</b>に持つ(キャンペーン階層ではない)。デモグラフィック・オーディエンスのターゲティングは今回のスコープ外。</p>
|
|
738
747
|
</div></details>
|
|
@@ -854,7 +863,7 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
|
|
|
854
863
|
(cli/test/unit/plannerVersion.test.ts が package.json との一致を検証するので、
|
|
855
864
|
手で書き換えて放置するとテストが落ちる)。
|
|
856
865
|
利用者が「どの版のプランナーを開いているか」を言えないと、不具合報告が噛み合わない。 */
|
|
857
|
-
const APP_VERSION = '0.
|
|
866
|
+
const APP_VERSION = '0.10.1'; /* version:sync */
|
|
858
867
|
/* 案A: embed廃止。参照データ(refs)・初期プラン・共通設定は外部JSONから起動時に読み込む。
|
|
859
868
|
同梱デフォルト: アカウント/<媒体>/index.json の先頭アカウント (refs+principal+projectName+baseArticleUrl) と サンプルプラン.json (project+campaigns)。
|
|
860
869
|
固有名詞はハードコードせず、すべて外部JSON由来にする。 */
|
|
@@ -952,6 +961,138 @@ function toast(m, opts){
|
|
|
952
961
|
t._h=setTimeout(()=>t.classList.remove('show'),2200);
|
|
953
962
|
}
|
|
954
963
|
|
|
964
|
+
/* ============ エラーの可視化 (#155) ============
|
|
965
|
+
これまで catch は 30 箇所が完全な握り潰しで、未捕捉例外は画面に何も出なかった。
|
|
966
|
+
運用者からは「押したのに反応しない」としか見えず、原因を渡す手段も無かった。
|
|
967
|
+
|
|
968
|
+
**console.error は使わない。** E2E の collectPageErrors が console の error を
|
|
969
|
+
拾って expect([]) しているため、可視化のつもりで console に出すとテストが一斉に落ちる。
|
|
970
|
+
内部バッファに貯め、画面のバナーと「AIに相談」モーダルで見せる。 */
|
|
971
|
+
|
|
972
|
+
/** 直近のエラー。E2E とデバッグから読めるよう window に出す(既存の window.st と同じ思想) */
|
|
973
|
+
const PLANNER_ERRORS = [];
|
|
974
|
+
window.__plannerErrors = PLANNER_ERRORS;
|
|
975
|
+
|
|
976
|
+
/** 最後に押されたボタンの id。エラー時に「直前の操作」を添えるため */
|
|
977
|
+
let lastActionId = '';
|
|
978
|
+
|
|
979
|
+
/**
|
|
980
|
+
* AI に渡すテキストへ機密値が混ざるのを防ぐ。
|
|
981
|
+
*
|
|
982
|
+
* **これは二段構えの「二段目」。** 一段目は buildErrorPrompt が許可した項目しか
|
|
983
|
+
* 積まないこと。ここは、エラーメッセージやスタックに値が埋め込まれて漏れる分を潰す
|
|
984
|
+
* (例: `'アカウントJSONを読み込めません: '+name` のように message へ案件名を混ぜている実装が既にある)。
|
|
985
|
+
*/
|
|
986
|
+
function maskSensitive(text){
|
|
987
|
+
let out=String(text==null?'':text);
|
|
988
|
+
const p=(typeof st!=='undefined' && st && st.project) || {};
|
|
989
|
+
/* 伏せる値と、その置換後の見え方。長い値から順に消す(短い値が部分一致で先に消えると取りこぼす) */
|
|
990
|
+
const secrets=[
|
|
991
|
+
[p.accountName, '<アカウント名>'],
|
|
992
|
+
[p.accountId, '<アカウントID>'],
|
|
993
|
+
[p.name, '<案件名>'],
|
|
994
|
+
[p.principal, '<主体者>'],
|
|
995
|
+
[p.baseArticleUrl, '<記事URL>'],
|
|
996
|
+
[p.businessName, '<ブランド名>'],
|
|
997
|
+
[(typeof localStorage!=='undefined' && localStorage.getItem(AUTHOR_KEY)) || '', '<作業者>'],
|
|
998
|
+
].filter(([v])=>String(v||'').trim().length>=3)
|
|
999
|
+
.sort((a,b)=>String(b[0]).length-String(a[0]).length);
|
|
1000
|
+
secrets.forEach(([v,label])=>{ out=out.split(String(v)).join(label); });
|
|
1001
|
+
/* ローカルパスにはユーザー名が入る(/Users/<氏名>/... , C:\Users\<氏名>\...) */
|
|
1002
|
+
out=out.replace(/\/(Users|home)\/[^\/\s"')]+/g, '/$1/<user>')
|
|
1003
|
+
.replace(/[A-Za-z]:\\Users\\[^\\\s"')]+/g, 'C:\\Users\\<user>');
|
|
1004
|
+
return out;
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
/** エラーを記録してバナーを出す。**握り潰しの置き換え先はここ。** */
|
|
1008
|
+
function recordError(kind, err, ctx){
|
|
1009
|
+
const e = (err && typeof err==='object') ? err : { message:String(err) };
|
|
1010
|
+
PLANNER_ERRORS.push({
|
|
1011
|
+
at: new Date().toISOString(),
|
|
1012
|
+
kind: String(kind||'error'),
|
|
1013
|
+
name: String(e.name||'Error'),
|
|
1014
|
+
message: String(e.message||e),
|
|
1015
|
+
stack: String(e.stack||''),
|
|
1016
|
+
where: String(ctx||''),
|
|
1017
|
+
platform: (typeof curPf!=='undefined') ? curPf : '',
|
|
1018
|
+
view: (typeof activeView!=='undefined') ? activeView : '',
|
|
1019
|
+
action: lastActionId,
|
|
1020
|
+
});
|
|
1021
|
+
if(PLANNER_ERRORS.length>50) PLANNER_ERRORS.shift();
|
|
1022
|
+
renderErrBar();
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
function renderErrBar(){
|
|
1026
|
+
const bar=document.getElementById('errBar'), msg=document.getElementById('errBarMsg');
|
|
1027
|
+
if(!bar||!msg) return;
|
|
1028
|
+
const n=PLANNER_ERRORS.length;
|
|
1029
|
+
if(!n){ bar.hidden=true; return; }
|
|
1030
|
+
const last=PLANNER_ERRORS[n-1];
|
|
1031
|
+
/* 本文は画面内なのでマスクしない(運用者は自分の案件名を見てよい)。
|
|
1032
|
+
マスクするのは AI へ渡すテキストだけ。 */
|
|
1033
|
+
msg.textContent='⚠ エラーが発生しました: '+last.message+(n>1?'(ほか '+(n-1)+' 件)':'');
|
|
1034
|
+
bar.hidden=false;
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1037
|
+
/**
|
|
1038
|
+
* AI に貼るテキストを組み立てる。
|
|
1039
|
+
*
|
|
1040
|
+
* **許可した項目しか積まない。** st を丸ごと文字列化するようなことはしない
|
|
1041
|
+
* (広告文・見出し・説明文・paramCode・記事URL・ローカルパスが一気に漏れる)。
|
|
1042
|
+
* 積んだあとで maskSensitive を通し、メッセージやスタックに埋め込まれた値も潰す。
|
|
1043
|
+
*/
|
|
1044
|
+
function buildErrorPrompt(){
|
|
1045
|
+
const n=PLANNER_ERRORS.length;
|
|
1046
|
+
const last=PLANNER_ERRORS[n-1]||{};
|
|
1047
|
+
const counts=(function(){
|
|
1048
|
+
try{
|
|
1049
|
+
const cs=st.campaigns||[];
|
|
1050
|
+
let g=0,a=0; cs.forEach(c=>{ const gs=c.adGroups||[]; g+=gs.length; gs.forEach(x=>{ a+=(x.ads||[]).length; }); });
|
|
1051
|
+
return 'キャンペーン '+cs.length+' / 広告グループ '+g+' / 広告 '+a+' 件';
|
|
1052
|
+
}catch(e){ return '(取得できず)'; }
|
|
1053
|
+
})();
|
|
1054
|
+
const lines=[
|
|
1055
|
+
'入稿プランナーでエラーが出ました。原因の切り分けと修正をお願いします。',
|
|
1056
|
+
'',
|
|
1057
|
+
'# 状況',
|
|
1058
|
+
'- 発生時刻: '+(last.at||''),
|
|
1059
|
+
'- 媒体: '+(last.platform||''),
|
|
1060
|
+
'- 画面: '+(last.view||''),
|
|
1061
|
+
'- 直前に押したもの: '+(last.action||'(不明)'),
|
|
1062
|
+
'- プランの規模: '+counts,
|
|
1063
|
+
'- 配信元: '+(location.protocol||''),
|
|
1064
|
+
'- UA: '+(navigator.userAgent||''),
|
|
1065
|
+
'',
|
|
1066
|
+
'# エラー ('+n+' 件中、最新)',
|
|
1067
|
+
(last.name||'Error')+': '+(last.message||''),
|
|
1068
|
+
(last.stack||'(スタックなし)'),
|
|
1069
|
+
'',
|
|
1070
|
+
'# 対象ファイル',
|
|
1071
|
+
'- .claude/skills/ad-ops/ad-planner.html',
|
|
1072
|
+
'',
|
|
1073
|
+
'# お願い',
|
|
1074
|
+
'1. 上記のスタックから原因箇所を特定してください。',
|
|
1075
|
+
'2. 再現手順が必要なら聞いてください。',
|
|
1076
|
+
];
|
|
1077
|
+
if(n>1){
|
|
1078
|
+
lines.push('', '# ほかのエラー(古い順・最大5件)');
|
|
1079
|
+
PLANNER_ERRORS.slice(-6,-1).forEach(e=>lines.push('- ['+e.at+'] '+e.name+': '+e.message));
|
|
1080
|
+
}
|
|
1081
|
+
/* 案件名・アカウントID・主体者・記事URL・ブランド名・作業者名・ローカルパスを伏せる。
|
|
1082
|
+
アカウント名を出さないので、どの案件かは AI からは分からない。 */
|
|
1083
|
+
return maskSensitive(lines.join('\n'));
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1086
|
+
/** エラーをAIに相談する。既存の showPromptModal(コピーボタン内蔵)に載せるだけ */
|
|
1087
|
+
function askAiAboutError(){
|
|
1088
|
+
showPromptModal({
|
|
1089
|
+
title:'エラーをAIに相談',
|
|
1090
|
+
sub:'この内容を Claude Code に貼ってください。案件名・アカウントID・記事URL・ブランド名・作業者名・ローカルパスは自動で伏せています。',
|
|
1091
|
+
prompt:buildErrorPrompt(),
|
|
1092
|
+
hint:'貼る前に中身を目視してください。社外に出せない文言が残っていないかの最終確認はご自身でお願いします。',
|
|
1093
|
+
});
|
|
1094
|
+
}
|
|
1095
|
+
|
|
955
1096
|
/** 自動で消えないトーストを閉じる(Esc / 閉じるボタン)。 */
|
|
956
1097
|
function dismissStickyToast(){
|
|
957
1098
|
const t=document.getElementById('toast');
|
|
@@ -1861,7 +2002,7 @@ function defaultProject(){
|
|
|
1861
2002
|
/* S10: 同梱アカウントJSONの媒体固有項目 (Meta の pageId / instagramUserId / pixelId 等) も既定値に載せる。
|
|
1862
2003
|
写し込み規則は媒体スキーマ (account.apply) が唯一の定義元。 */
|
|
1863
2004
|
const acc=BUNDLES[curPf] && BUNDLES[curPf].account;
|
|
1864
|
-
if(acc){ try{ P.account.apply(acc, p); }catch(e){} }
|
|
2005
|
+
if(acc){ try{ P.account.apply(acc, p); }catch(e){ recordError('accountApply', e, 'アカウントJSONの媒体固有項目の写し込み'); } }
|
|
1865
2006
|
return p;
|
|
1866
2007
|
}
|
|
1867
2008
|
/* 参照データビューの先頭タブ (媒体の refTables 宣言順) */
|
|
@@ -1895,6 +2036,16 @@ function migrateArticleSlug(campaigns){
|
|
|
1895
2036
|
})));
|
|
1896
2037
|
return campaigns;
|
|
1897
2038
|
}
|
|
2039
|
+
|
|
2040
|
+
/* 媒体ごとの旧値変換。読み込んだ計画を**現行の語彙に揃えてから**画面へ渡す。
|
|
2041
|
+
揃えないと、選択肢に無い値を持つ行ができてサイドバーが現在値を表示できない
|
|
2042
|
+
(旧値のまま項目を押すと旧値と新値が併存し、見た目と結果が食い違う)。
|
|
2043
|
+
コアは媒体固有の語彙を持たないので、変換の中身は PLATFORMS 側が持つ。 */
|
|
2044
|
+
function migratePlatformValues(campaigns){
|
|
2045
|
+
const P=(typeof pf==='function') ? pf() : null;
|
|
2046
|
+
if(P && typeof P.migrateLoaded==='function') P.migrateLoaded(campaigns||[]);
|
|
2047
|
+
return campaigns;
|
|
2048
|
+
}
|
|
1898
2049
|
function initialState(){
|
|
1899
2050
|
const refs=buildRefs();
|
|
1900
2051
|
// 共通設定(project=案件名/主体者/アカウント等)はアカウントJSON由来。サンプルプランには campaigns と accountId のみ。
|
|
@@ -1915,6 +2066,7 @@ function initialState(){
|
|
|
1915
2066
|
campaigns=JSON.parse(JSON.stringify(samplePlan.campaigns));
|
|
1916
2067
|
campaigns.forEach(c=>{ c.uid=uid('c'); (c.adGroups||[]).forEach(g=>{ g.uid=uid('g'); (g.ads||[]).forEach(a=>{ a.uid=uid('a'); }); }); });
|
|
1917
2068
|
migrateArticleSlug(campaigns); // C8: 旧 articleSlug / articleUrl を除去
|
|
2069
|
+
migratePlatformValues(campaigns); // 媒体側の旧値を現行の語彙へ
|
|
1918
2070
|
}
|
|
1919
2071
|
}
|
|
1920
2072
|
return {schemaVersion:SCHEMA_VERSION, meta:defaultMeta(), project, refs, campaigns, ui:{expanded:{}}};
|
|
@@ -3491,7 +3643,8 @@ const GOOGLE_REF_TABLES = {
|
|
|
3491
3643
|
],
|
|
3492
3644
|
optionLabel:v=>String(v==null?'':v) },
|
|
3493
3645
|
/* image / square は IMAGE アセットの resource_name、video は YouTube 動画ID。
|
|
3494
|
-
|
|
3646
|
+
未登録の動画は広告行の「動画パス」でローカルファイルを指定でき、CLI が本実行の
|
|
3647
|
+
直前に上げて動画IDへ解決する(Google 管理チャンネル・限定公開)。 */
|
|
3495
3648
|
media:{ key:'media', label:'クリエイティブ', countLabel:'クリエイティブ', editable:true, required:true,
|
|
3496
3649
|
keyKind:'number', keyLabel:'番号', keyWidth:'80px',
|
|
3497
3650
|
addSub:'番号→横長画像 / 正方形画像のアセット名、YouTube動画ID',
|
|
@@ -3570,6 +3723,12 @@ const GOOGLE_COLS = {
|
|
|
3570
3723
|
width:'6ch', sequenceable:true, errCodes:[EC.DESC_UNRESOLVED, EC.DESC_TOO_LONG],
|
|
3571
3724
|
ghostKey:'desc', ddTitle:'説明文一覧から選択', ghostTitle:r=>r.descText,
|
|
3572
3725
|
ghost:r=>r.errCodes.includes(EC.DESC_UNRESOLVED)?'<span class="err">— 未解決</span>':esc(r.descText.slice(0,44))},
|
|
3726
|
+
/* 未登録動画用のローカルパス。**本実行の直前に CLI がアップロードして
|
|
3727
|
+
youtubeVideoId に解決する**(dry-run では上げない)。TikTok / Meta / YDA と同じ運用。
|
|
3728
|
+
上がり先は Google 管理チャンネルの限定公開で、広告主チャンネルは選べない。 */
|
|
3729
|
+
{field:'videoPath', label:'動画パス', kind:'mono', width:'150px',
|
|
3730
|
+
title:'クリエイティブ番号が参照データに無い(未登録)ときだけ使う。入稿前に CLI が自動アップロードして YouTube 動画IDに解決する(Google 管理チャンネル・限定公開)',
|
|
3731
|
+
errCodes:[EC.IMAGE_PATH_MISSING], placeholder:()=>'例: media/ad.mp4'},
|
|
3573
3732
|
{field:'paramCode', label:'paramCode(広告グループ)', kind:'mono', width:'120px',
|
|
3574
3733
|
scope:'parentGroup', sequenceable:true, readonlyOnExisting:true, errCodes:[EC.PARAM_CODE_EMPTY],
|
|
3575
3734
|
title:'広告グループ共通(変更で同グループ全広告に反映)。最終URLは 記事URL?ad={paramCode}',
|
|
@@ -3681,6 +3840,14 @@ PLATFORMS.google = {
|
|
|
3681
3840
|
projectFields:[
|
|
3682
3841
|
{key:'businessName', label:'ブランド名', kind:'text', width:'14ch', fallback:'',
|
|
3683
3842
|
title:'広告に表示される広告主名。Demand Gen 広告では必須(表示幅25まで)'},
|
|
3843
|
+
/* YDA / Meta と同じ 日付+時刻。既定は翌日 05:00。
|
|
3844
|
+
Google では日付=開始日、時刻=全曜日の配信時間帯(backend が分けて送る)。 */
|
|
3845
|
+
{key:'startDate', label:'配信開始日時', kind:'datetime', fallback:'',
|
|
3846
|
+
title:'配信を始める日時。**Google アカウントのタイムゾーン基準**で解釈されます。\n'
|
|
3847
|
+
+'空欄なら翌日 05:00 が既定です(当日配信は審査が間に合わず意図しない時間に出るため)。\n'
|
|
3848
|
+
+'⚠ Google は開始時刻を指定できないため、時刻は「毎日その時刻〜24時の配信時間帯」になります'
|
|
3849
|
+
+'(初日だけではありません。手作業の既存キャンペーンの「全曜日 5:00〜24:00」と同じ設定)。\n'
|
|
3850
|
+
+'時刻を空にして日付だけにすると 0〜24 時配信になります。分は 15 分刻みに切り上げます。'},
|
|
3684
3851
|
/* 参照表 refs.logos があれば選択、無ければ従来どおり手打ち(refselect のフォールバック)。
|
|
3685
3852
|
resource_name は長く手写しで取り違えやすいので、取り込み済みなら選ばせる。 */
|
|
3686
3853
|
{key:'logoAsset', label:'ロゴアセット', kind:'refselect', width:'18ch', fallback:'',
|
|
@@ -3714,8 +3881,13 @@ PLATFORMS.google = {
|
|
|
3714
3881
|
targeting:{
|
|
3715
3882
|
tg_location:{label:'地域', multi:true, allLabel:'指定なし(全世界)', opts:['指定なし(全世界)','日本']},
|
|
3716
3883
|
tg_language:{label:'言語', multi:true, allLabel:'指定なし', opts:['指定なし','日本語','英語']},
|
|
3884
|
+
/* YouTube は面ごとに分けて選ぶ。縦動画はショート、横動画はインストリーム、
|
|
3885
|
+
のように素材の向きで配信先を変えたいため(面は広告グループ層の設定なので、
|
|
3886
|
+
運用上は縦用・横用で広告グループを分ける)。
|
|
3887
|
+
旧プランの 'YouTube' は opts に無いが mappers.channels が3面として解釈する。 */
|
|
3717
3888
|
tg_channel:{label:'配信面', multi:true, allLabel:'すべて(Google既定)',
|
|
3718
|
-
opts:['すべて(Google既定)','YouTube','
|
|
3889
|
+
opts:['すべて(Google既定)','YouTube インストリーム','YouTube インフィード',
|
|
3890
|
+
'YouTube ショート','Discover','Gmail','ディスプレイ']}
|
|
3719
3891
|
},
|
|
3720
3892
|
|
|
3721
3893
|
enums:{
|
|
@@ -3745,12 +3917,17 @@ PLATFORMS.google = {
|
|
|
3745
3917
|
locationIds(s, P){ return mapByEnum(s, P.enums.location, P.targeting.tg_location.allLabel); },
|
|
3746
3918
|
languageIds(s, P){ return mapByEnum(s, P.enums.language, P.targeting.tg_language.allLabel); },
|
|
3747
3919
|
/* 配信面。「すべて」= 指定しない (キー自体を出さず Google 既定に任せる)。
|
|
3748
|
-
|
|
3920
|
+
選択肢と API のフィールドは 1:1。backend は元から6面を個別に受ける。
|
|
3921
|
+
|
|
3922
|
+
**旧プランの 'YouTube' は3面 ON として解釈する。** 保存済みの入稿計画には
|
|
3923
|
+
この値が入っており、1面だけに読み替えると再実行で配信面が減る。 */
|
|
3749
3924
|
channels(s, P){
|
|
3750
3925
|
const l=tgList(s);
|
|
3751
3926
|
if(!l.length || l.indexOf(P.targeting.tg_channel.allLabel)>=0) return null;
|
|
3752
|
-
const
|
|
3753
|
-
return {youtubeInStream:
|
|
3927
|
+
const legacyYt=l.indexOf('YouTube')>=0;
|
|
3928
|
+
return {youtubeInStream:legacyYt || l.indexOf('YouTube インストリーム')>=0,
|
|
3929
|
+
youtubeInFeed: legacyYt || l.indexOf('YouTube インフィード')>=0,
|
|
3930
|
+
youtubeShorts: legacyYt || l.indexOf('YouTube ショート')>=0,
|
|
3754
3931
|
discover:l.indexOf('Discover')>=0, gmail:l.indexOf('Gmail')>=0,
|
|
3755
3932
|
display:l.indexOf('ディスプレイ')>=0};
|
|
3756
3933
|
},
|
|
@@ -3761,12 +3938,16 @@ PLATFORMS.google = {
|
|
|
3761
3938
|
newCampaignBudget:12000,
|
|
3762
3939
|
targetCpa:8500,
|
|
3763
3940
|
project:{
|
|
3764
|
-
businessName:'', logoAsset:'', logoImagePath:'', cta:'詳しくはこちら',
|
|
3941
|
+
businessName:'', logoAsset:'', logoImagePath:'', cta:'詳しくはこちら', startDate:'',
|
|
3765
3942
|
deliveryStatus:'オフ'
|
|
3766
3943
|
},
|
|
3767
|
-
ad:{format:'VIDEO', imageNo:'', titleNo:'', longNo:'', descNo:'', adName:''},
|
|
3944
|
+
ad:{format:'VIDEO', imageNo:'', titleNo:'', longNo:'', descNo:'', videoPath:'', adName:''},
|
|
3768
3945
|
adGroup:{name:'', paramCode:'', isExisting:false,
|
|
3769
|
-
tg_location:'日本', tg_language:'日本語',
|
|
3946
|
+
tg_location:'日本', tg_language:'日本語',
|
|
3947
|
+
/* 従来の 'YouTube'(3面まとめて)と同じ配信範囲を、選択肢に載っている値で表す。
|
|
3948
|
+
旧値のままだと新規行が opts に無い値を持ち、サイドバーで選択状態にならない。 */
|
|
3949
|
+
tg_channel:'YouTube インストリーム, YouTube インフィード, YouTube ショート',
|
|
3950
|
+
deliveryStatus:''},
|
|
3770
3951
|
campaign:{name:'新規キャンペーン', campaignId:'', isExisting:false,
|
|
3771
3952
|
dailyBudget:12000, targetCpa:8500, urlNumber:''}
|
|
3772
3953
|
},
|
|
@@ -3807,7 +3988,22 @@ PLATFORMS.google = {
|
|
|
3807
3988
|
return String(urlNumber) + '_' + cr + '_' + today();
|
|
3808
3989
|
}
|
|
3809
3990
|
},
|
|
3810
|
-
|
|
3991
|
+
/* 読み込んだ計画の旧値を現行の語彙へ。**DB もサーバーも触らない**(画面上の値だけ)。
|
|
3992
|
+
旧「YouTube」は3面まとめての意味だったので、3つの面に展開する。意味は変わらない。
|
|
3993
|
+
展開しないと選択肢に無い値が残り、サイドバーが現在値を表示できず、
|
|
3994
|
+
そこで面を1つ押すと旧値と併存して「1面だけ選んだのに3面ON」になる。 */
|
|
3995
|
+
migrateLoaded(campaigns){
|
|
3996
|
+
const EXPANDED=['YouTube インストリーム','YouTube インフィード','YouTube ショート'];
|
|
3997
|
+
(campaigns||[]).forEach(c=>(c.adGroups||[]).forEach(g=>{
|
|
3998
|
+
if(!g) return;
|
|
3999
|
+
const l=String(g.tg_channel||'').split(',').map(x=>x.trim()).filter(Boolean);
|
|
4000
|
+
if(l.indexOf('YouTube')<0) return;
|
|
4001
|
+
const out=[];
|
|
4002
|
+
l.forEach(v=>{ (v==='YouTube'?EXPANDED:[v]).forEach(x=>{ if(out.indexOf(x)<0) out.push(x); }); });
|
|
4003
|
+
g.tg_channel=out.join(', ');
|
|
4004
|
+
}));
|
|
4005
|
+
},
|
|
4006
|
+
creativeFields:['imageNo','titleNo','longNo','descNo','videoPath'],
|
|
3811
4007
|
notSubmittedFields:[],
|
|
3812
4008
|
labels:{submitButton:'完成 → 保存して入稿', paramCodeLabel:'paramCode', tgDroppedWarn:''},
|
|
3813
4009
|
|
|
@@ -3868,9 +4064,18 @@ PLATFORMS.google = {
|
|
|
3868
4064
|
/* 地域未指定は全世界配信になる。作成自体は通るのでエラーではなく警告 */
|
|
3869
4065
|
if(!P.mappers.locationIds(group.tg_location, P).length) pushWarn('地域未指定(全世界配信)', EC.LOCATION_EMPTY);
|
|
3870
4066
|
if(pendingImage) pushWarn(fmt.id==='VIDEO'?'YouTube動画ID未登録':'画像アセット未登録', EC.MEDIA_MISSING);
|
|
4067
|
+
/* 未登録の動画はローカルパスから上げられる。画像アセットのパス入稿は別スコープ
|
|
4068
|
+
(ロゴだけが案件設定のパスに対応している) */
|
|
4069
|
+
const videoPath=String(ad.videoPath||'').trim();
|
|
4070
|
+
if(fmt.id==='VIDEO' && pendingImage && videoPath==='')
|
|
4071
|
+
pushWarn('動画パス未入力(未登録クリエイティブ)', EC.IMAGE_PATH_MISSING);
|
|
4072
|
+
if(fmt.id==='VIDEO' && !pendingImage && videoPath!=='')
|
|
4073
|
+
pushWarn('動画パス無視(動画IDが解決済み)', EC.IMAGE_PATH_IGNORED);
|
|
4074
|
+
if(fmt.id==='IMAGE' && videoPath!=='')
|
|
4075
|
+
pushWarn('動画パス無視(画像広告)', EC.IMAGE_PATH_IGNORED);
|
|
3871
4076
|
const aid=String(group.adGroupId||'').trim();
|
|
3872
4077
|
return {crName, adName, autoAdName, campaignId:'', adGroupId:aid, mediaKind:fmt.apiMediaKind, imageNo:noStr,
|
|
3873
|
-
mediaId:mediaId||'', imageAsset:imageAsset||'', squareAsset:squareAsset||'', pendingImage,
|
|
4078
|
+
mediaId:mediaId||'', imageAsset:imageAsset||'', squareAsset:squareAsset||'', pendingImage, videoPath,
|
|
3874
4079
|
titleText:titleText===undefined?'':titleText,
|
|
3875
4080
|
longText:longText===undefined?'':longText,
|
|
3876
4081
|
descText:descText===undefined?'':descText,
|
|
@@ -3892,6 +4097,16 @@ PLATFORMS.google = {
|
|
|
3892
4097
|
|
|
3893
4098
|
validateProject(p, state){
|
|
3894
4099
|
const errs=[];
|
|
4100
|
+
/* YDA と同じ理由: 空欄は翌日にフォールバックするが、「読めない書式」まで空と同じ扱いに
|
|
4101
|
+
すると入力した日付が黙って翌日にすり替わる。ここに来るのは旧JSONか手編集だけ。 */
|
|
4102
|
+
const sd=String((p&&p.startDate)||'').trim();
|
|
4103
|
+
if(sd && !dateOnly(sd))
|
|
4104
|
+
errs.push({code:EC.START_TIME_INVALID,
|
|
4105
|
+
msg:'共通設定「配信開始日時」の書式が不正です(例 2026-09-08 05:00): '+sd});
|
|
4106
|
+
/* 過去日は Google 側で弾かれる。素材をアップロードしたあとに落ちると後片付けが要るので手前で止める */
|
|
4107
|
+
else if(sd && dateOnly(sd) < today())
|
|
4108
|
+
errs.push({code:EC.START_TIME_INVALID,
|
|
4109
|
+
msg:'共通設定「配信開始日時」が過去の日付です('+dateOnly(sd)+')。今日以降を指定してください'});
|
|
3895
4110
|
if(!String((p&&p.businessName)||'').trim())
|
|
3896
4111
|
errs.push({code:EC.BUSINESS_NAME_MISSING, msg:'ブランド名を共通設定に入力してください(Demand Gen 広告で必須)'});
|
|
3897
4112
|
/* 画像広告を1件でも含むならロゴが要る (動画だけなら任意) */
|
|
@@ -4026,6 +4241,10 @@ PLATFORMS.google = {
|
|
|
4026
4241
|
};
|
|
4027
4242
|
/* 目標CPA があれば TARGET_CPA 入札。無ければ backend 側が MAXIMIZE_CONVERSIONS を選ぶ */
|
|
4028
4243
|
if(Number(c.targetCpa)>0) cp.targetCpaYen=Number(c.targetCpa);
|
|
4244
|
+
/* 配信開始日時。空欄なら翌日 05:00(YDA / Meta と同じ既定)。
|
|
4245
|
+
キー名も YDA と揃える。日付→`start_date_time`・時刻→全曜日の配信時間帯への分解は backend が持つ。
|
|
4246
|
+
時刻を落とさない(dateOnly を通すと配信時間帯が付かず 0〜24 時配信になる)。 */
|
|
4247
|
+
cp.startDate=String(p.startDate||'').trim()||defaultStartDateTime();
|
|
4029
4248
|
/* 既存キャンペーンへの追加は未対応。campaignId を載せても backend の zod が落とすため、
|
|
4030
4249
|
「指定したのに新規作成される」誤解を生まないよう最初から出さない。 */
|
|
4031
4250
|
return cp;
|
|
@@ -4058,7 +4277,13 @@ PLATFORMS.google = {
|
|
|
4058
4277
|
const logo=String(p.logoAsset||'').trim();
|
|
4059
4278
|
const logoPaths=P.mappers.logoImagePaths(p.logoImagePath);
|
|
4060
4279
|
if(isVideo){
|
|
4061
|
-
|
|
4280
|
+
/* 未登録なら動画IDの代わりにパスを出す。CLI が本実行の直前に上げて
|
|
4281
|
+
youtubeVideoId へ差し替える(両方出すと backend が 400 で弾く) */
|
|
4282
|
+
if(r.pendingImage && r.videoPath){ out.videoPath=r.videoPath; out.pendingMediaNo=r.imageNo; }
|
|
4283
|
+
/* 未登録でパスも無いと mediaId が空。空文字を出すと backend の zod が min(1) で落ち、
|
|
4284
|
+
superRefine の「動画が指定されていません」が出ない(zod は基底 parse に失敗すると
|
|
4285
|
+
refinement を走らせない)。キーごと出さないほうが理由が届く。 */
|
|
4286
|
+
else if(r.mediaId) out.youtubeVideoId=String(r.mediaId);
|
|
4062
4287
|
out.longHeadlines=r.longText?[String(r.longText)]:[];
|
|
4063
4288
|
if(logo) out.logoImages=[logo];
|
|
4064
4289
|
/* 動画広告のロゴは v23 では任意。ローカルパスからの作成は画像広告に絞る
|
|
@@ -4093,7 +4318,7 @@ PLATFORMS.google = {
|
|
|
4093
4318
|
const fileName = mode==='help' ? '<アカウント名>' : (name||'<アカウント名>');
|
|
4094
4319
|
const dir=P.account.dir;
|
|
4095
4320
|
const shape=[' - media は 管理番号 → {image(横長画像アセット), square(正方形画像アセット), video(YouTube動画ID)}',
|
|
4096
|
-
' -
|
|
4321
|
+
' - video には YouTube に上げ済みの動画IDを入れる(手元の動画ファイルから入稿する場合はここに登録せず、広告行の「動画パス」に書く)',
|
|
4097
4322
|
' - campaigns/adGroups は campaignId/adGroupId をキーに(adGroups.paramCode はURLパラメータ)'];
|
|
4098
4323
|
const lines=[];
|
|
4099
4324
|
if(mode==='ai'){
|
|
@@ -4125,10 +4350,11 @@ PLATFORMS.google = {
|
|
|
4125
4350
|
return ['Google広告(Demand Gen / YouTube)の入稿プランを一緒に作りたいです。まず戦略を壁打ちさせてください。','',
|
|
4126
4351
|
'# 前提','- アカウント: <アカウント名(日本語OK)>','- 商材 / LP: <商材名・URL>',
|
|
4127
4352
|
'- 予算・目標CPA: <キャンペーンの日予算 / 目標CPA>',
|
|
4128
|
-
'- 動画: <YouTube
|
|
4353
|
+
'- 動画: <YouTube の動画URL / 動画ID、または手元の動画ファイルのパス(例 media/ad.mp4)>',
|
|
4129
4354
|
'- 訴求したいポイント: <強み・オファー・ターゲット層>','',
|
|
4130
4355
|
'# お願い',
|
|
4131
|
-
'1. 上記をもとに配信面(YouTube / Discover / Gmail
|
|
4356
|
+
'1. 上記をもとに配信面(YouTube インストリーム / インフィード / ショート / Discover / Gmail / ディスプレイ)・キャンペーン/広告グループ構成・訴求軸を提案してください。',
|
|
4357
|
+
' - 動画の向きで配信面を分ける場合は、広告グループを縦用・横用に分けてください(配信面は広告グループ単位の設定です)。',
|
|
4132
4358
|
'2. 私が「OK」と言ったら、その戦略を ad-ops Skill の「サンプルプラン_google.json」に書き出して(上書きして)ください。',
|
|
4133
4359
|
' - 保存先: .claude/skills/ad-ops/サンプルプラン_google.json',
|
|
4134
4360
|
' - フォーマット: {"schemaVersion":'+SCHEMA_VERSION+', "platform":"google", "accountId":"<10桁のCustomer ID>", "campaigns":[ ... ]}',
|
|
@@ -5767,6 +5993,7 @@ window.applyAccountJson=function(obj){
|
|
|
5767
5993
|
st.campaigns=JSON.parse(JSON.stringify(samplePlan.campaigns));
|
|
5768
5994
|
st.campaigns.forEach(c=>{ c.uid=uid('c'); (c.adGroups||[]).forEach(g=>{ g.uid=uid('g'); (g.ads||[]).forEach(a=>{ a.uid=uid('a'); }); }); });
|
|
5769
5995
|
migrateArticleSlug(st.campaigns); // C8: 旧 articleSlug / articleUrl を除去
|
|
5996
|
+
migratePlatformValues(st.campaigns); // 媒体側の旧値を現行の語彙へ
|
|
5770
5997
|
planMismatchMsg='';
|
|
5771
5998
|
if(typeof renderPlanWarn==='function') renderPlanWarn();
|
|
5772
5999
|
}
|
|
@@ -5890,7 +6117,7 @@ function openCopyRefsModal(){
|
|
|
5890
6117
|
フォルダ(入稿計画/)接続時はファイルにも書き出す(二重保存)。 */
|
|
5891
6118
|
/* S9: 履歴・本体キーは媒体別 (histKey() / bodyKey(vid))。 */
|
|
5892
6119
|
function histList(){ try{ return JSON.parse(localStorage.getItem(histKey()))||[]; }catch(e){ return []; } }
|
|
5893
|
-
function histSave(list){ try{ localStorage.setItem(histKey(), JSON.stringify(list)); }catch(e){} }
|
|
6120
|
+
function histSave(list){ try{ localStorage.setItem(histKey(), JSON.stringify(list)); }catch(e){ recordError('histSave', e, '履歴の保存(localStorage の容量超過が典型)'); } }
|
|
5894
6121
|
function nextVersionId(){ return histList().reduce((m,h)=>Math.max(m,h.versionId||0),0)+1; }
|
|
5895
6122
|
function histGetBody(vid){ try{ return localStorage.getItem(bodyKey(vid)); }catch(e){ return null; } }
|
|
5896
6123
|
function histDelBody(vid){ try{ localStorage.removeItem(bodyKey(vid)); }catch(e){} }
|
|
@@ -5953,8 +6180,8 @@ async function folderPlanList(){
|
|
|
5953
6180
|
const ads=j.campaigns.reduce((n,c)=>n+(c.adGroups||[]).reduce((m,g)=>m+(g.ads||[]).length,0),0);
|
|
5954
6181
|
out.push({fileName:name, accountId:String(j.accountId||''), campaigns:j.campaigns.length, ads, savedAt:tsFromFileName(name)||new Date(f.lastModified).toISOString().replace('T',' ').slice(0,19)});
|
|
5955
6182
|
}
|
|
5956
|
-
}catch(e){}
|
|
5957
|
-
} }catch(e){}
|
|
6183
|
+
}catch(e){ recordError('histScan', e, '履歴フォルダ内の 1 ファイルの読み取り'); }
|
|
6184
|
+
} }catch(e){ recordError('histScan', e, '履歴フォルダの走査'); }
|
|
5958
6185
|
return out;
|
|
5959
6186
|
}
|
|
5960
6187
|
async function renderHist(){
|
|
@@ -5985,11 +6212,11 @@ function histEditVersion(vid){
|
|
|
5985
6212
|
h.name=v.name; h.memo=v.memo; histSave(list);
|
|
5986
6213
|
const patch=j=>{ j.meta=Object.assign({},j.meta,{name:v.name,memo:v.memo,updatedAt:new Date().toISOString()}); return j; };
|
|
5987
6214
|
const local=histGetBody(vid);
|
|
5988
|
-
if(local){ try{ histPutBody(vid, JSON.stringify(patch(JSON.parse(local)),null,2)); }catch(e){} }
|
|
6215
|
+
if(local){ try{ histPutBody(vid, JSON.stringify(patch(JSON.parse(local)),null,2)); }catch(e){ recordError('histRename', e, '履歴本体(localStorage)の更新'); } }
|
|
5989
6216
|
if(h.inFolder && dirHandle && h.fileName){
|
|
5990
6217
|
try{ const fh=await dirHandle.getFileHandle(h.fileName); const f=await fh.getFile(); const j=patch(JSON.parse(await f.text()));
|
|
5991
6218
|
const w=await(await dirHandle.getFileHandle(h.fileName,{create:true})).createWritable(); await w.write(JSON.stringify(j,null,2)); await w.close();
|
|
5992
|
-
}catch(e){}
|
|
6219
|
+
}catch(e){ recordError('histRename', e, '履歴ファイル(フォルダ内)の更新'); }
|
|
5993
6220
|
}
|
|
5994
6221
|
if(st.meta.versionId===vid){ st.meta.name=v.name; st.meta.memo=v.memo; persist(); }
|
|
5995
6222
|
renderHist(); toast('v'+vid+' を更新しました');
|
|
@@ -6208,7 +6435,7 @@ function applyLoadedJson(j){
|
|
|
6208
6435
|
}
|
|
6209
6436
|
snapshot();
|
|
6210
6437
|
st.project=Object.assign(defaultProject(),j.project);
|
|
6211
|
-
st.campaigns=migrateArticleSlug(j.campaigns); // C8:
|
|
6438
|
+
st.campaigns=migratePlatformValues(migrateArticleSlug(j.campaigns)); // C8: 旧キー除去 + 媒体側の旧値変換
|
|
6212
6439
|
st.ui=j.ui||{expanded:{}};
|
|
6213
6440
|
if(validRefs(j.refs)){ st.refs=normalizeRefs(j.refs); }
|
|
6214
6441
|
st.meta=Object.assign(defaultMeta(),j.meta||{});
|
|
@@ -6276,6 +6503,17 @@ document.getElementById('btnSubmitJson').addEventListener('click',exportSubmitJs
|
|
|
6276
6503
|
document.getElementById('btnHelp').addEventListener('click',openHelpModal);
|
|
6277
6504
|
document.getElementById('btnConsole').addEventListener('click',()=>openConsole('campaigns'));
|
|
6278
6505
|
document.getElementById('planWarnClose').addEventListener('click',()=>{ planMismatchMsg=''; renderPlanWarn(); });
|
|
6506
|
+
document.getElementById('errBarClose').addEventListener('click',()=>{ PLANNER_ERRORS.length=0; renderErrBar(); });
|
|
6507
|
+
document.getElementById('errBarAsk').addEventListener('click',askAiAboutError);
|
|
6508
|
+
/* エラー時に「直前に押したもの」を添えるため、ボタンの識別子だけ覚える(入力値は覚えない) */
|
|
6509
|
+
document.addEventListener('click', e=>{
|
|
6510
|
+
const b=e.target.closest('button');
|
|
6511
|
+
if(b) lastActionId=b.id || b.getAttribute('data-mo') || b.getAttribute('data-v') || (b.textContent||'').trim().slice(0,24);
|
|
6512
|
+
}, true);
|
|
6513
|
+
/* 未捕捉例外。**console.error は使わない**(E2E の collectPageErrors が console の error を
|
|
6514
|
+
拾って空配列を期待しており、ここで出すと全スイートが落ちる)。 */
|
|
6515
|
+
window.addEventListener('error', ev=>{ recordError('error', ev.error||{message:ev.message}, ev.filename?(ev.filename+':'+ev.lineno):''); });
|
|
6516
|
+
window.addEventListener('unhandledrejection', ev=>{ recordError('unhandledrejection', ev.reason, ''); });
|
|
6279
6517
|
document.getElementById('btnConnectFolder').addEventListener('click',connectFolder);
|
|
6280
6518
|
/* ---- B-1/B-3: アカウントバー wiring ---- */
|
|
6281
6519
|
/* F-3: 文言コピーは参照データビューへ移設。フォルダ接続/編集/インポートはヘッダープルダウンのアクション項目に集約 */
|
|
@@ -6414,7 +6652,7 @@ window.addEventListener('beforeunload', function(e){ if(_dirty){ e.preventDefaul
|
|
|
6414
6652
|
await Promise.all(Object.keys(PLATFORMS).map(id=>loadBundle(id)));
|
|
6415
6653
|
applyBundle(curPf);
|
|
6416
6654
|
await fetchAccountList();
|
|
6417
|
-
}catch(e){}
|
|
6655
|
+
}catch(e){ recordError('bootstrap', e, '同梱データ(アカウント一覧・サンプルプラン)の読み込み'); }
|
|
6418
6656
|
// 開いたときは必ずサンプルプランを読み込む(localStorage廃止)
|
|
6419
6657
|
if(bundledRefs || samplePlan){ st=initialState(); st.project.accountId=BUNDLED_ACCOUNT_ID; st.project.accountName=BUNDLED_ACCOUNT_NAME; if(typeof buildDatalists==='function') buildDatalists(); render(); _dirty=false; }
|
|
6420
6658
|
else { toast('初期データ(アカウント/サンプルプラン)を読み込めません。httpサーバー経由で開くか、アカウントを接続してください'); }
|
|
@@ -6439,7 +6677,7 @@ window.addEventListener('beforeunload', function(e){ if(_dirty){ e.preventDefaul
|
|
|
6439
6677
|
else toast('アクティブプランのアカウント「'+tn+'」が見つかりません。同梱の既定アカウントで開きます');
|
|
6440
6678
|
}
|
|
6441
6679
|
}
|
|
6442
|
-
}catch(e){}
|
|
6680
|
+
}catch(e){ recordError('activePlan', e, 'アクティブプラン.json の適用'); }
|
|
6443
6681
|
})();
|
|
6444
6682
|
</script>
|
|
6445
6683
|
</body>
|
|
@@ -576,6 +576,20 @@ def lint(plan: dict, plan_path: str = "") -> None:
|
|
|
576
576
|
f" → 解決先 {resolved}(相対パスの基準は計画JSONのディレクトリ "
|
|
577
577
|
f"{base_dir})")
|
|
578
578
|
|
|
579
|
+
# Google (Demand Gen) の動画は「動画IDかローカルパスのどちらか一方」。
|
|
580
|
+
# 両方あると CLI が余計にアップロードし、使われない動画が YouTube に残る。
|
|
581
|
+
# backend も superRefine で 400 にするが、CLI はその手前でアップロードを
|
|
582
|
+
# 済ませてしまうので lint でも止める(Google の安全弁は二重が原則)。
|
|
583
|
+
if platform == "google" and a.get("type") == "DEMAND_GEN_VIDEO_RESPONSIVE_AD":
|
|
584
|
+
if a.get("youtubeVideoId") and a.get("videoPath"):
|
|
585
|
+
err(f"CP「{name}」の広告に youtubeVideoId と videoPath が両方あります"
|
|
586
|
+
f"({a.get('adName') or ''})\n"
|
|
587
|
+
f" → アップロードした動画は使われません。差し替えたいなら "
|
|
588
|
+
f"youtubeVideoId を、既存動画のままでよいなら videoPath を消してください")
|
|
589
|
+
if not a.get("youtubeVideoId") and not a.get("videoPath"):
|
|
590
|
+
err(f"CP「{name}」の動画広告に動画がありません({a.get('adName') or ''})\n"
|
|
591
|
+
f" → youtubeVideoId か、アップロード前なら videoPath が必要")
|
|
592
|
+
|
|
579
593
|
# TikTok の SINGLE_VIDEO は **動画とカバー画像の両方**が必要。
|
|
580
594
|
# 片方だけだと lint を通り、live で動画だけアップロードされた後に
|
|
581
595
|
# backend の「カバー画像が指定されていません」で落ちる。
|