addashboard-cli 0.9.3 → 0.10.0

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.
@@ -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 のロゴ指定が backend の受け入れ条件を満たすかを、**アップロードの前に**見る。
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 validateGoogleLogoSources(platform, body) {
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(...validateGoogleLogoSources(platform, body));
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 ディスプレイ広告のローカル画像(*ImagePaths)を先に
730
- // アップロードして asset resource_name へ解決。dry-run では実 API を叩かない
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') {
@@ -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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"}
@@ -38,8 +38,13 @@ function describeErrorBody(data) {
38
38
  return undefined;
39
39
  const d = data;
40
40
  const e = d.error;
41
- if (typeof e === 'string' && e)
42
- return e;
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)
@@ -1 +1 @@
1
- {"version":3,"file":"apiError.js","sourceRoot":"","sources":["../../src/lib/apiError.ts"],"names":[],"mappings":";;AAaA,4CASC;AAGD,8CAoBC;AA7CD;;;;;;;;;;;;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,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACzC,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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "addashboard-cli",
3
- "version": "0.9.3",
3
+ "version": "0.10.0",
4
4
  "description": "webgram CLI — ad-dashboard (https://macchiato.site) を Claude Code / Codex CLI から操作するための CLI",
5
5
  "bin": {
6
6
  "webgram": "./dist/index.js"
@@ -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)。動画は YouTube 動画IDを人が用意する |
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,7 +326,7 @@ 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
- | 動画ファイルのアップロード | ❌ 未対応。**Google Ads API には窓口があるが(`YouTubeVideoUploadService`)、使っている Node ライブラリ(Opteo `google-ads-api`)が非対応**。運用者が YouTube へ手で上げ、動画IDを渡す |
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 で入ったかを管理画面を開かずに確認できる) |
@@ -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
  <!-- ============ 媒体要件ビュー ============ -->
@@ -652,6 +659,7 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
652
659
  <tr><td>曜日・時間帯</td><td>配信スケジュール</td></tr>
653
660
  <tr><td>デバイス</td><td>配信デバイス</td></tr>
654
661
  <tr><td>性別</td><td>—</td></tr>
662
+ <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
663
  <tr><td>年齢</td><td>—</td></tr>
656
664
  <tr><td>オーディエンスリスト</td><td>どのデータ(カスタム/類似オーディエンス)に配布するか。<code>fetchAudiences</code> で取得可</td></tr>
657
665
  <tr><td>プレイスメント</td><td>配信面の指定</td></tr>
@@ -700,12 +708,13 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
700
708
  </tbody></table>
701
709
  </div></details>
702
710
 
703
- <details class="sec" open><summary><span class="num">2</span><span class="stitle">動画広告 — YouTube 動画IDを人が用意する</span><span class="chev"></span></summary>
711
+ <details class="sec" open><summary><span class="num">2</span><span class="stitle">動画広告 — 動画IDかローカル動画パスで指定する</span><span class="chev"></span></summary>
704
712
  <div class="body">
705
- <p class="lead"><b>動画ファイルのアップロードは未対応。</b>YouTube に上げた動画のIDを使う。Google Ads API には窓口(<code>YouTubeVideoUploadService</code>)があるが、使っている Node ライブラリが非対応のため、運用者が YouTube へ手で上げる。<b>手で上げた場合、動画IDはアップロード直後に URL から取得できる</b>(処理完了を待つ必要はない)。</p>
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>
706
715
  <p>参照データの「クリエイティブ」に <code>video</code> として YouTube 動画ID(例 <code>dQw4w9WgXcQ</code>)を登録し、広告行の形式を <code>VIDEO</code> にして番号で参照する。</p>
707
716
  <table class="g"><thead><tr><th>項目</th><th>必須</th><th>制約</th></tr></thead><tbody>
708
- <tr><td>YouTube動画ID</td><td><span class="pill green">必須</span></td><td>事前に YouTube へアップロードしておく</td></tr>
717
+ <tr><td>YouTube動画ID</td><td><span class="pill green">必須</span></td><td>参照データに登録した動画ID。未登録なら広告行の「動画パス」でローカル動画を指定する(どちらか一方)</td></tr>
709
718
  <tr><td>見出し</td><td><span class="pill green">必須</span></td><td>表示幅30まで</td></tr>
710
719
  <tr><td><b>長見出し</b></td><td><span class="pill green">必須</span></td><td>表示幅90まで。<b>動画広告だけが持つ項目</b>(画像広告にはない)</td></tr>
711
720
  <tr><td>説明文</td><td><span class="pill green">必須</span></td><td>表示幅90まで</td></tr>
@@ -731,7 +740,8 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
731
740
  <table class="g"><thead><tr><th>項目</th><th>置き場所</th><th>内容</th></tr></thead><tbody>
732
741
  <tr><td>地域</td><td>広告グループ行</td><td>日本 = criterion ID 2392</td></tr>
733
742
  <tr><td>言語</td><td>広告グループ行</td><td>日本語 = 1005 / 英語 = 1000</td></tr>
734
- <tr><td>配信面</td><td>広告グループ行</td><td>YouTube を選ぶとインストリーム・インフィード・ショートの3面が有効になる。「すべて」なら Google の既定に任せる</td></tr>
743
+ <tr><td>配信開始日</td><td>共通設定</td><td><b>その日の 0:00 から配信が始まる</b>(Google アカウントのタイムゾーン基準)。空欄なら翌日。<b>開始時刻は指定できない</b> — v23 の <code>start_date_time</code> は時刻を持てる書式だが、公式が「時刻粒度は一部のキャンペーンタイプでのみサポート」としており Demand Gen が対象か記載がないため 0:00 固定にしている</td></tr>
744
+ <tr><td>配信面</td><td>広告グループ行</td><td>インストリーム / インフィード / ショート を<b>面ごとに選ぶ</b>。縦動画はショート、横動画はインストリーム、のように出し分けたいときは<b>広告グループを縦用・横用で分ける</b>(配信面は広告グループ単位の設定のため)。「すべて」なら Google の既定に任せる</td></tr>
735
745
  </tbody></table>
736
746
  <p>Demand Gen は地域・言語を<b>広告グループ階層</b>に持つ(キャンペーン階層ではない)。デモグラフィック・オーディエンスのターゲティングは今回のスコープ外。</p>
737
747
  </div></details>
@@ -853,7 +863,7 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
853
863
  (cli/test/unit/plannerVersion.test.ts が package.json との一致を検証するので、
854
864
  手で書き換えて放置するとテストが落ちる)。
855
865
  利用者が「どの版のプランナーを開いているか」を言えないと、不具合報告が噛み合わない。 */
856
- const APP_VERSION = '0.9.3'; /* version:sync */
866
+ const APP_VERSION = '0.10.0'; /* version:sync */
857
867
  /* 案A: embed廃止。参照データ(refs)・初期プラン・共通設定は外部JSONから起動時に読み込む。
858
868
  同梱デフォルト: アカウント/<媒体>/index.json の先頭アカウント (refs+principal+projectName+baseArticleUrl) と サンプルプラン.json (project+campaigns)。
859
869
  固有名詞はハードコードせず、すべて外部JSON由来にする。 */
@@ -951,6 +961,138 @@ function toast(m, opts){
951
961
  t._h=setTimeout(()=>t.classList.remove('show'),2200);
952
962
  }
953
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
+
954
1096
  /** 自動で消えないトーストを閉じる(Esc / 閉じるボタン)。 */
955
1097
  function dismissStickyToast(){
956
1098
  const t=document.getElementById('toast');
@@ -1860,7 +2002,7 @@ function defaultProject(){
1860
2002
  /* S10: 同梱アカウントJSONの媒体固有項目 (Meta の pageId / instagramUserId / pixelId 等) も既定値に載せる。
1861
2003
  写し込み規則は媒体スキーマ (account.apply) が唯一の定義元。 */
1862
2004
  const acc=BUNDLES[curPf] && BUNDLES[curPf].account;
1863
- 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の媒体固有項目の写し込み'); } }
1864
2006
  return p;
1865
2007
  }
1866
2008
  /* 参照データビューの先頭タブ (媒体の refTables 宣言順) */
@@ -1894,6 +2036,16 @@ function migrateArticleSlug(campaigns){
1894
2036
  })));
1895
2037
  return campaigns;
1896
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
+ }
1897
2049
  function initialState(){
1898
2050
  const refs=buildRefs();
1899
2051
  // 共通設定(project=案件名/主体者/アカウント等)はアカウントJSON由来。サンプルプランには campaigns と accountId のみ。
@@ -1914,6 +2066,7 @@ function initialState(){
1914
2066
  campaigns=JSON.parse(JSON.stringify(samplePlan.campaigns));
1915
2067
  campaigns.forEach(c=>{ c.uid=uid('c'); (c.adGroups||[]).forEach(g=>{ g.uid=uid('g'); (g.ads||[]).forEach(a=>{ a.uid=uid('a'); }); }); });
1916
2068
  migrateArticleSlug(campaigns); // C8: 旧 articleSlug / articleUrl を除去
2069
+ migratePlatformValues(campaigns); // 媒体側の旧値を現行の語彙へ
1917
2070
  }
1918
2071
  }
1919
2072
  return {schemaVersion:SCHEMA_VERSION, meta:defaultMeta(), project, refs, campaigns, ui:{expanded:{}}};
@@ -2063,6 +2216,11 @@ function renderTplChips(){
2063
2216
  + (noDate?' disabled':'')
2064
2217
  + ' title="'+(noDate?'先に日付を選んでください(時刻だけの指定はできません)':'時刻(任意)。空欄なら日付のみの指定になります')+'">';
2065
2218
  };
2219
+ /* kind:'date' = 日付だけ。時刻を送れない媒体で使う(時刻欄を出すと、入れた値が
2220
+ 黙って捨てられて「5時開始にしたのに0時に出た」になる)。
2221
+ data-dt を付けない = datetime の分岐を通らず [data-proj] の汎用処理に乗る。 */
2222
+ const dateOnly_=(f,v,d)=>
2223
+ '<input class="chipin" type="date" data-proj="'+f+'" value="'+esc(splitDateTime(v).date)+'"'+hint(d)+'>';
2066
2224
  /* S14: kind:'freq' = チェックでONにしたときだけ 適用/期間/回数 を出す案件既定。
2067
2225
  キャンペーン行と同じ freqSectionsHtml を使い、data-proj で汎用チップハンドラに乗せる。 */
2068
2226
  const freq=(d)=>{
@@ -2083,6 +2241,7 @@ function renderTplChips(){
2083
2241
  const ctrl = f.kind==='freq' ? freq(f)
2084
2242
  : f.kind==='toggle' ? tgl(f.key, v, f)
2085
2243
  : f.kind==='datetime' ? dt(f.key, v, f)
2244
+ : f.kind==='date' ? dateOnly_(f.key, v, f)
2086
2245
  : f.kind==='refselect' ? refsel(f, v, f)
2087
2246
  : f.kind==='selectv' ? selv(f.key, v, f.options)
2088
2247
  : f.kind==='select' ? sel(f.key, v, f.options)
@@ -2820,6 +2979,16 @@ const META_COLS = {
2820
2979
  },
2821
2980
  title:'空欄にすると上限なし(age_max を送りません)。特別広告カテゴリ選択時は 65 固定となり上限なしは無視されます'},
2822
2981
  {field:'tg_gender', label:'性別', kind:'tgpick', tgKey:'tg_gender', readonlyOnExisting:true, roEmptyDash:true},
2982
+ /* S16: Advantage+ オーディエンス (targeting.targeting_automation.advantage_audience)。
2983
+ **性別を指定するときは Meta が必須にする**(無いと広告セット作成が 1870227 で落ちる。
2984
+ 2026-09-03 に v26.0 の実 API で確認)。空欄 = オン(1) で、これは従来 Meta が暗黙に
2985
+ 付けていた値と同じ。オフ(0) にすると指定した年齢・性別どおりに限定して配信される。 */
2986
+ {field:'advantageAudience', label:'Advantage+', kind:'select', options:['','オン','オフ'], minWidth:'78px',
2987
+ readonlyOnExisting:true, roEmptyDash:true,
2988
+ coerce:v=>{const t=String(v==null?'':v).trim(); return (t==='オン'||t==='オフ')?t:'';},
2989
+ title:'Advantage+ オーディエンス。空欄・オンなら Meta が指定した年齢・性別・オーディエンスを'
2990
+ +'「出発点」として対象を広げます。オフにすると指定どおりに限定して配信します。'
2991
+ +'(性別を指定する広告セットでは Meta 側でこの指定が必須です)'},
2823
2992
  {field:'tg_device', label:'デバイス', kind:'tgpick', tgKey:'tg_device', readonlyOnExisting:true, roEmptyDash:true},
2824
2993
  {field:'tg_placement', label:'配置', kind:'tgpick', tgKey:'tg_placement', readonlyOnExisting:true, roEmptyDash:true},
2825
2994
  /* 配信日時: 空欄 = 案件設定チップの値を継承(buildPlan 側で解決)。placeholder に継承先を出す */
@@ -2974,6 +3143,8 @@ PLATFORMS.meta = {
2974
3143
  mappers:{
2975
3144
  devices(s, P){ return mapByEnum(s, P.enums.device, P.targeting.tg_device.allLabel); },
2976
3145
  genders(s, P){ return mapByEnum(s, P.enums.gender, P.targeting.tg_gender.allLabel); },
3146
+ /* S16: 空欄・未知の値・旧プラン(キー無し)はオン(1)。'オフ' のときだけ 0 */
3147
+ advantageAudience(v){ return String(v==null?'':v).trim()==='オフ' ? 0 : 1; },
2977
3148
  placements(s, P){
2978
3149
  const l=tgList(s);
2979
3150
  if(!l.length || l.indexOf(P.targeting.tg_placement.allLabel)>=0)
@@ -3088,7 +3259,7 @@ PLATFORMS.meta = {
3088
3259
  ad:{format:'IMAGE', imageNo:'', titleNo:'', descNo:'', adName:'', paramCode:''},
3089
3260
  adGroup:{name:'', paramCode:'', isExisting:false, dailyBudget:1000, bidAmount:null,
3090
3261
  ageMin:18, ageMax:65, tg_gender:'すべて', tg_device:'すべてのデバイス',
3091
- tg_placement:'自動配置', startDate:'', endDate:'', deliveryStatus:''},
3262
+ tg_placement:'自動配置', advantageAudience:'', startDate:'', endDate:'', deliveryStatus:''},
3092
3263
  campaign:{name:'新規キャンペーン', campaignId:'', isExisting:false,
3093
3264
  objective:'OUTCOME_SALES', specialAdCategory:'NONE', urlNumber:''}
3094
3265
  },
@@ -3294,6 +3465,10 @@ PLATFORMS.meta = {
3294
3465
  : (String(g.ageMax==null?'':g.ageMax).trim()!=='' && Number(g.ageMax)>0
3295
3466
  ? {ageMax:Number(g.ageMax)} : {})),
3296
3467
  genders: constrained?[]:P.mappers.genders(g.tg_gender, P),
3468
+ /* S16: Advantage+ オーディエンスは**常に送る**。性別を指定した広告セットだけ
3469
+ 1870227 で落ちる、という条件付きの不具合を再発させないため。
3470
+ 旧プラン(キー無し)・空欄はオン(1) = 従来 Meta が暗黙に付けていた値。 */
3471
+ advantageAudience: P.mappers.advantageAudience(g.advantageAudience),
3297
3472
  devicePlatforms:P.mappers.devices(g.tg_device, P),
3298
3473
  placements:P.mappers.placements(g.tg_placement, P),
3299
3474
  customAudiences:[], excludedAudiences:[], /* ID解決が必要なため常に空 */
@@ -3474,7 +3649,8 @@ const GOOGLE_REF_TABLES = {
3474
3649
  ],
3475
3650
  optionLabel:v=>String(v==null?'':v) },
3476
3651
  /* image / square は IMAGE アセットの resource_name、video は YouTube 動画ID。
3477
- 動画は Google Ads API へアップロードできないため、人が YouTube に上げた動画IDを使う。 */
3652
+ 未登録の動画は広告行の「動画パス」でローカルファイルを指定でき、CLI が本実行の
3653
+ 直前に上げて動画IDへ解決する(Google 管理チャンネル・限定公開)。 */
3478
3654
  media:{ key:'media', label:'クリエイティブ', countLabel:'クリエイティブ', editable:true, required:true,
3479
3655
  keyKind:'number', keyLabel:'番号', keyWidth:'80px',
3480
3656
  addSub:'番号→横長画像 / 正方形画像のアセット名、YouTube動画ID',
@@ -3553,6 +3729,12 @@ const GOOGLE_COLS = {
3553
3729
  width:'6ch', sequenceable:true, errCodes:[EC.DESC_UNRESOLVED, EC.DESC_TOO_LONG],
3554
3730
  ghostKey:'desc', ddTitle:'説明文一覧から選択', ghostTitle:r=>r.descText,
3555
3731
  ghost:r=>r.errCodes.includes(EC.DESC_UNRESOLVED)?'<span class="err">— 未解決</span>':esc(r.descText.slice(0,44))},
3732
+ /* 未登録動画用のローカルパス。**本実行の直前に CLI がアップロードして
3733
+ youtubeVideoId に解決する**(dry-run では上げない)。TikTok / Meta / YDA と同じ運用。
3734
+ 上がり先は Google 管理チャンネルの限定公開で、広告主チャンネルは選べない。 */
3735
+ {field:'videoPath', label:'動画パス', kind:'mono', width:'150px',
3736
+ title:'クリエイティブ番号が参照データに無い(未登録)ときだけ使う。入稿前に CLI が自動アップロードして YouTube 動画IDに解決する(Google 管理チャンネル・限定公開)',
3737
+ errCodes:[EC.IMAGE_PATH_MISSING], placeholder:()=>'例: media/ad.mp4'},
3556
3738
  {field:'paramCode', label:'paramCode(広告グループ)', kind:'mono', width:'120px',
3557
3739
  scope:'parentGroup', sequenceable:true, readonlyOnExisting:true, errCodes:[EC.PARAM_CODE_EMPTY],
3558
3740
  title:'広告グループ共通(変更で同グループ全広告に反映)。最終URLは 記事URL?ad={paramCode}',
@@ -3664,6 +3846,18 @@ PLATFORMS.google = {
3664
3846
  projectFields:[
3665
3847
  {key:'businessName', label:'ブランド名', kind:'text', width:'14ch', fallback:'',
3666
3848
  title:'広告に表示される広告主名。Demand Gen 広告では必須(表示幅25まで)'},
3849
+ /* YDA / Meta は日付+時刻だが、Google は**日付だけ**。
3850
+ v23 の `start_date_time` は時刻を持てる書式だが、公式が「時刻粒度は一部の
3851
+ キャンペーンタイプでのみサポート」としており Demand Gen は未確認。
3852
+ 送れない時刻の入力欄を出すと「5時にしたのに0時に出た」になるので出さない。
3853
+ 時刻の指定は #278(広告スケジュール)で扱う。 */
3854
+ {key:'startDate', label:'配信開始日', kind:'date', fallback:'',
3855
+ title:'配信を始める日。**その日の 0:00 から**配信が始まります(Google アカウントの'
3856
+ +'タイムゾーン基準)。\n'
3857
+ +'空欄なら翌日が既定です(当日配信は審査が間に合わず意図しない時間に出るため)。\n'
3858
+ +'開始時刻は今のところ指定できません。Google Ads API v23 の start_date_time は'
3859
+ +'時刻を持てる書式ですが、公式が「時刻粒度は一部のキャンペーンタイプでのみサポート」'
3860
+ +'としており Demand Gen が対象か記載がないため、確認できるまで 0:00 固定にしています。'},
3667
3861
  /* 参照表 refs.logos があれば選択、無ければ従来どおり手打ち(refselect のフォールバック)。
3668
3862
  resource_name は長く手写しで取り違えやすいので、取り込み済みなら選ばせる。 */
3669
3863
  {key:'logoAsset', label:'ロゴアセット', kind:'refselect', width:'18ch', fallback:'',
@@ -3697,8 +3891,13 @@ PLATFORMS.google = {
3697
3891
  targeting:{
3698
3892
  tg_location:{label:'地域', multi:true, allLabel:'指定なし(全世界)', opts:['指定なし(全世界)','日本']},
3699
3893
  tg_language:{label:'言語', multi:true, allLabel:'指定なし', opts:['指定なし','日本語','英語']},
3894
+ /* YouTube は面ごとに分けて選ぶ。縦動画はショート、横動画はインストリーム、
3895
+ のように素材の向きで配信先を変えたいため(面は広告グループ層の設定なので、
3896
+ 運用上は縦用・横用で広告グループを分ける)。
3897
+ 旧プランの 'YouTube' は opts に無いが mappers.channels が3面として解釈する。 */
3700
3898
  tg_channel:{label:'配信面', multi:true, allLabel:'すべて(Google既定)',
3701
- opts:['すべて(Google既定)','YouTube','Discover','Gmail','ディスプレイ']}
3899
+ opts:['すべて(Google既定)','YouTube インストリーム','YouTube インフィード',
3900
+ 'YouTube ショート','Discover','Gmail','ディスプレイ']}
3702
3901
  },
3703
3902
 
3704
3903
  enums:{
@@ -3728,12 +3927,17 @@ PLATFORMS.google = {
3728
3927
  locationIds(s, P){ return mapByEnum(s, P.enums.location, P.targeting.tg_location.allLabel); },
3729
3928
  languageIds(s, P){ return mapByEnum(s, P.enums.language, P.targeting.tg_language.allLabel); },
3730
3929
  /* 配信面。「すべて」= 指定しない (キー自体を出さず Google 既定に任せる)。
3731
- YouTube を選ぶと in-stream / in-feed / shorts の3面がまとめて ON になる。 */
3930
+ 選択肢と API のフィールドは 1:1。backend は元から6面を個別に受ける。
3931
+
3932
+ **旧プランの 'YouTube' は3面 ON として解釈する。** 保存済みの入稿計画には
3933
+ この値が入っており、1面だけに読み替えると再実行で配信面が減る。 */
3732
3934
  channels(s, P){
3733
3935
  const l=tgList(s);
3734
3936
  if(!l.length || l.indexOf(P.targeting.tg_channel.allLabel)>=0) return null;
3735
- const yt=l.indexOf('YouTube')>=0;
3736
- return {youtubeInStream:yt, youtubeInFeed:yt, youtubeShorts:yt,
3937
+ const legacyYt=l.indexOf('YouTube')>=0;
3938
+ return {youtubeInStream:legacyYt || l.indexOf('YouTube インストリーム')>=0,
3939
+ youtubeInFeed: legacyYt || l.indexOf('YouTube インフィード')>=0,
3940
+ youtubeShorts: legacyYt || l.indexOf('YouTube ショート')>=0,
3737
3941
  discover:l.indexOf('Discover')>=0, gmail:l.indexOf('Gmail')>=0,
3738
3942
  display:l.indexOf('ディスプレイ')>=0};
3739
3943
  },
@@ -3744,12 +3948,16 @@ PLATFORMS.google = {
3744
3948
  newCampaignBudget:12000,
3745
3949
  targetCpa:8500,
3746
3950
  project:{
3747
- businessName:'', logoAsset:'', logoImagePath:'', cta:'詳しくはこちら',
3951
+ businessName:'', logoAsset:'', logoImagePath:'', cta:'詳しくはこちら', startDate:'',
3748
3952
  deliveryStatus:'オフ'
3749
3953
  },
3750
- ad:{format:'VIDEO', imageNo:'', titleNo:'', longNo:'', descNo:'', adName:''},
3954
+ ad:{format:'VIDEO', imageNo:'', titleNo:'', longNo:'', descNo:'', videoPath:'', adName:''},
3751
3955
  adGroup:{name:'', paramCode:'', isExisting:false,
3752
- tg_location:'日本', tg_language:'日本語', tg_channel:'YouTube', deliveryStatus:''},
3956
+ tg_location:'日本', tg_language:'日本語',
3957
+ /* 従来の 'YouTube'(3面まとめて)と同じ配信範囲を、選択肢に載っている値で表す。
3958
+ 旧値のままだと新規行が opts に無い値を持ち、サイドバーで選択状態にならない。 */
3959
+ tg_channel:'YouTube インストリーム, YouTube インフィード, YouTube ショート',
3960
+ deliveryStatus:''},
3753
3961
  campaign:{name:'新規キャンペーン', campaignId:'', isExisting:false,
3754
3962
  dailyBudget:12000, targetCpa:8500, urlNumber:''}
3755
3963
  },
@@ -3790,7 +3998,22 @@ PLATFORMS.google = {
3790
3998
  return String(urlNumber) + '_' + cr + '_' + today();
3791
3999
  }
3792
4000
  },
3793
- creativeFields:['imageNo','titleNo','longNo','descNo'],
4001
+ /* 読み込んだ計画の旧値を現行の語彙へ。**DB もサーバーも触らない**(画面上の値だけ)。
4002
+ 旧「YouTube」は3面まとめての意味だったので、3つの面に展開する。意味は変わらない。
4003
+ 展開しないと選択肢に無い値が残り、サイドバーが現在値を表示できず、
4004
+ そこで面を1つ押すと旧値と併存して「1面だけ選んだのに3面ON」になる。 */
4005
+ migrateLoaded(campaigns){
4006
+ const EXPANDED=['YouTube インストリーム','YouTube インフィード','YouTube ショート'];
4007
+ (campaigns||[]).forEach(c=>(c.adGroups||[]).forEach(g=>{
4008
+ if(!g) return;
4009
+ const l=String(g.tg_channel||'').split(',').map(x=>x.trim()).filter(Boolean);
4010
+ if(l.indexOf('YouTube')<0) return;
4011
+ const out=[];
4012
+ l.forEach(v=>{ (v==='YouTube'?EXPANDED:[v]).forEach(x=>{ if(out.indexOf(x)<0) out.push(x); }); });
4013
+ g.tg_channel=out.join(', ');
4014
+ }));
4015
+ },
4016
+ creativeFields:['imageNo','titleNo','longNo','descNo','videoPath'],
3794
4017
  notSubmittedFields:[],
3795
4018
  labels:{submitButton:'完成 → 保存して入稿', paramCodeLabel:'paramCode', tgDroppedWarn:''},
3796
4019
 
@@ -3851,9 +4074,18 @@ PLATFORMS.google = {
3851
4074
  /* 地域未指定は全世界配信になる。作成自体は通るのでエラーではなく警告 */
3852
4075
  if(!P.mappers.locationIds(group.tg_location, P).length) pushWarn('地域未指定(全世界配信)', EC.LOCATION_EMPTY);
3853
4076
  if(pendingImage) pushWarn(fmt.id==='VIDEO'?'YouTube動画ID未登録':'画像アセット未登録', EC.MEDIA_MISSING);
4077
+ /* 未登録の動画はローカルパスから上げられる。画像アセットのパス入稿は別スコープ
4078
+ (ロゴだけが案件設定のパスに対応している) */
4079
+ const videoPath=String(ad.videoPath||'').trim();
4080
+ if(fmt.id==='VIDEO' && pendingImage && videoPath==='')
4081
+ pushWarn('動画パス未入力(未登録クリエイティブ)', EC.IMAGE_PATH_MISSING);
4082
+ if(fmt.id==='VIDEO' && !pendingImage && videoPath!=='')
4083
+ pushWarn('動画パス無視(動画IDが解決済み)', EC.IMAGE_PATH_IGNORED);
4084
+ if(fmt.id==='IMAGE' && videoPath!=='')
4085
+ pushWarn('動画パス無視(画像広告)', EC.IMAGE_PATH_IGNORED);
3854
4086
  const aid=String(group.adGroupId||'').trim();
3855
4087
  return {crName, adName, autoAdName, campaignId:'', adGroupId:aid, mediaKind:fmt.apiMediaKind, imageNo:noStr,
3856
- mediaId:mediaId||'', imageAsset:imageAsset||'', squareAsset:squareAsset||'', pendingImage,
4088
+ mediaId:mediaId||'', imageAsset:imageAsset||'', squareAsset:squareAsset||'', pendingImage, videoPath,
3857
4089
  titleText:titleText===undefined?'':titleText,
3858
4090
  longText:longText===undefined?'':longText,
3859
4091
  descText:descText===undefined?'':descText,
@@ -3875,6 +4107,16 @@ PLATFORMS.google = {
3875
4107
 
3876
4108
  validateProject(p, state){
3877
4109
  const errs=[];
4110
+ /* YDA と同じ理由: 空欄は翌日にフォールバックするが、「読めない書式」まで空と同じ扱いに
4111
+ すると入力した日付が黙って翌日にすり替わる。ここに来るのは旧JSONか手編集だけ。 */
4112
+ const sd=String((p&&p.startDate)||'').trim();
4113
+ if(sd && !dateOnly(sd))
4114
+ errs.push({code:EC.START_TIME_INVALID,
4115
+ msg:'共通設定「配信開始日」の書式が不正です(例 2026-09-08): '+sd});
4116
+ /* 過去日は Google 側で弾かれる。素材をアップロードしたあとに落ちると後片付けが要るので手前で止める */
4117
+ else if(sd && dateOnly(sd) < today())
4118
+ errs.push({code:EC.START_TIME_INVALID,
4119
+ msg:'共通設定「配信開始日」が過去の日付です('+dateOnly(sd)+')。今日以降を指定してください'});
3878
4120
  if(!String((p&&p.businessName)||'').trim())
3879
4121
  errs.push({code:EC.BUSINESS_NAME_MISSING, msg:'ブランド名を共通設定に入力してください(Demand Gen 広告で必須)'});
3880
4122
  /* 画像広告を1件でも含むならロゴが要る (動画だけなら任意) */
@@ -4009,6 +4251,9 @@ PLATFORMS.google = {
4009
4251
  };
4010
4252
  /* 目標CPA があれば TARGET_CPA 入札。無ければ backend 側が MAXIMIZE_CONVERSIONS を選ぶ */
4011
4253
  if(Number(c.targetCpa)>0) cp.targetCpaYen=Number(c.targetCpa);
4254
+ /* 配信開始日。空欄なら翌日(YDA / Meta と同じ既定)。
4255
+ キー名も YDA と揃える。API 側の `start_date_time` への変換は backend が持つ。 */
4256
+ cp.startDate=dateOnly(p.startDate)||defaultStart();
4012
4257
  /* 既存キャンペーンへの追加は未対応。campaignId を載せても backend の zod が落とすため、
4013
4258
  「指定したのに新規作成される」誤解を生まないよう最初から出さない。 */
4014
4259
  return cp;
@@ -4041,7 +4286,13 @@ PLATFORMS.google = {
4041
4286
  const logo=String(p.logoAsset||'').trim();
4042
4287
  const logoPaths=P.mappers.logoImagePaths(p.logoImagePath);
4043
4288
  if(isVideo){
4044
- out.youtubeVideoId=String(r.mediaId);
4289
+ /* 未登録なら動画IDの代わりにパスを出す。CLI が本実行の直前に上げて
4290
+ youtubeVideoId へ差し替える(両方出すと backend が 400 で弾く) */
4291
+ if(r.pendingImage && r.videoPath){ out.videoPath=r.videoPath; out.pendingMediaNo=r.imageNo; }
4292
+ /* 未登録でパスも無いと mediaId が空。空文字を出すと backend の zod が min(1) で落ち、
4293
+ superRefine の「動画が指定されていません」が出ない(zod は基底 parse に失敗すると
4294
+ refinement を走らせない)。キーごと出さないほうが理由が届く。 */
4295
+ else if(r.mediaId) out.youtubeVideoId=String(r.mediaId);
4045
4296
  out.longHeadlines=r.longText?[String(r.longText)]:[];
4046
4297
  if(logo) out.logoImages=[logo];
4047
4298
  /* 動画広告のロゴは v23 では任意。ローカルパスからの作成は画像広告に絞る
@@ -4076,7 +4327,7 @@ PLATFORMS.google = {
4076
4327
  const fileName = mode==='help' ? '<アカウント名>' : (name||'<アカウント名>');
4077
4328
  const dir=P.account.dir;
4078
4329
  const shape=[' - media は 管理番号 → {image(横長画像アセット), square(正方形画像アセット), video(YouTube動画ID)}',
4079
- ' - 動画は Google Ads API へアップロードできないため、YouTube に上げた動画のIDを入れる',
4330
+ ' - video には YouTube に上げ済みの動画IDを入れる(手元の動画ファイルから入稿する場合はここに登録せず、広告行の「動画パス」に書く)',
4080
4331
  ' - campaigns/adGroups は campaignId/adGroupId をキーに(adGroups.paramCode はURLパラメータ)'];
4081
4332
  const lines=[];
4082
4333
  if(mode==='ai'){
@@ -4108,10 +4359,11 @@ PLATFORMS.google = {
4108
4359
  return ['Google広告(Demand Gen / YouTube)の入稿プランを一緒に作りたいです。まず戦略を壁打ちさせてください。','',
4109
4360
  '# 前提','- アカウント: <アカウント名(日本語OK)>','- 商材 / LP: <商材名・URL>',
4110
4361
  '- 予算・目標CPA: <キャンペーンの日予算 / 目標CPA>',
4111
- '- 動画: <YouTube にアップロード済みの動画URL または動画ID>',
4362
+ '- 動画: <YouTube の動画URL / 動画ID、または手元の動画ファイルのパス(例 media/ad.mp4)>',
4112
4363
  '- 訴求したいポイント: <強み・オファー・ターゲット層>','',
4113
4364
  '# お願い',
4114
- '1. 上記をもとに配信面(YouTube / Discover / Gmail)・キャンペーン/広告グループ構成・訴求軸を提案してください。',
4365
+ '1. 上記をもとに配信面(YouTube インストリーム / インフィード / ショート / Discover / Gmail / ディスプレイ)・キャンペーン/広告グループ構成・訴求軸を提案してください。',
4366
+ ' - 動画の向きで配信面を分ける場合は、広告グループを縦用・横用に分けてください(配信面は広告グループ単位の設定です)。',
4115
4367
  '2. 私が「OK」と言ったら、その戦略を ad-ops Skill の「サンプルプラン_google.json」に書き出して(上書きして)ください。',
4116
4368
  ' - 保存先: .claude/skills/ad-ops/サンプルプラン_google.json',
4117
4369
  ' - フォーマット: {"schemaVersion":'+SCHEMA_VERSION+', "platform":"google", "accountId":"<10桁のCustomer ID>", "campaigns":[ ... ]}',
@@ -5750,6 +6002,7 @@ window.applyAccountJson=function(obj){
5750
6002
  st.campaigns=JSON.parse(JSON.stringify(samplePlan.campaigns));
5751
6003
  st.campaigns.forEach(c=>{ c.uid=uid('c'); (c.adGroups||[]).forEach(g=>{ g.uid=uid('g'); (g.ads||[]).forEach(a=>{ a.uid=uid('a'); }); }); });
5752
6004
  migrateArticleSlug(st.campaigns); // C8: 旧 articleSlug / articleUrl を除去
6005
+ migratePlatformValues(st.campaigns); // 媒体側の旧値を現行の語彙へ
5753
6006
  planMismatchMsg='';
5754
6007
  if(typeof renderPlanWarn==='function') renderPlanWarn();
5755
6008
  }
@@ -5873,7 +6126,7 @@ function openCopyRefsModal(){
5873
6126
  フォルダ(入稿計画/)接続時はファイルにも書き出す(二重保存)。 */
5874
6127
  /* S9: 履歴・本体キーは媒体別 (histKey() / bodyKey(vid))。 */
5875
6128
  function histList(){ try{ return JSON.parse(localStorage.getItem(histKey()))||[]; }catch(e){ return []; } }
5876
- function histSave(list){ try{ localStorage.setItem(histKey(), JSON.stringify(list)); }catch(e){} }
6129
+ function histSave(list){ try{ localStorage.setItem(histKey(), JSON.stringify(list)); }catch(e){ recordError('histSave', e, '履歴の保存(localStorage の容量超過が典型)'); } }
5877
6130
  function nextVersionId(){ return histList().reduce((m,h)=>Math.max(m,h.versionId||0),0)+1; }
5878
6131
  function histGetBody(vid){ try{ return localStorage.getItem(bodyKey(vid)); }catch(e){ return null; } }
5879
6132
  function histDelBody(vid){ try{ localStorage.removeItem(bodyKey(vid)); }catch(e){} }
@@ -5936,8 +6189,8 @@ async function folderPlanList(){
5936
6189
  const ads=j.campaigns.reduce((n,c)=>n+(c.adGroups||[]).reduce((m,g)=>m+(g.ads||[]).length,0),0);
5937
6190
  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)});
5938
6191
  }
5939
- }catch(e){}
5940
- } }catch(e){}
6192
+ }catch(e){ recordError('histScan', e, '履歴フォルダ内の 1 ファイルの読み取り'); }
6193
+ } }catch(e){ recordError('histScan', e, '履歴フォルダの走査'); }
5941
6194
  return out;
5942
6195
  }
5943
6196
  async function renderHist(){
@@ -5968,11 +6221,11 @@ function histEditVersion(vid){
5968
6221
  h.name=v.name; h.memo=v.memo; histSave(list);
5969
6222
  const patch=j=>{ j.meta=Object.assign({},j.meta,{name:v.name,memo:v.memo,updatedAt:new Date().toISOString()}); return j; };
5970
6223
  const local=histGetBody(vid);
5971
- if(local){ try{ histPutBody(vid, JSON.stringify(patch(JSON.parse(local)),null,2)); }catch(e){} }
6224
+ if(local){ try{ histPutBody(vid, JSON.stringify(patch(JSON.parse(local)),null,2)); }catch(e){ recordError('histRename', e, '履歴本体(localStorage)の更新'); } }
5972
6225
  if(h.inFolder && dirHandle && h.fileName){
5973
6226
  try{ const fh=await dirHandle.getFileHandle(h.fileName); const f=await fh.getFile(); const j=patch(JSON.parse(await f.text()));
5974
6227
  const w=await(await dirHandle.getFileHandle(h.fileName,{create:true})).createWritable(); await w.write(JSON.stringify(j,null,2)); await w.close();
5975
- }catch(e){}
6228
+ }catch(e){ recordError('histRename', e, '履歴ファイル(フォルダ内)の更新'); }
5976
6229
  }
5977
6230
  if(st.meta.versionId===vid){ st.meta.name=v.name; st.meta.memo=v.memo; persist(); }
5978
6231
  renderHist(); toast('v'+vid+' を更新しました');
@@ -6191,7 +6444,7 @@ function applyLoadedJson(j){
6191
6444
  }
6192
6445
  snapshot();
6193
6446
  st.project=Object.assign(defaultProject(),j.project);
6194
- st.campaigns=migrateArticleSlug(j.campaigns); // C8: 旧 articleSlug / articleUrl を除去
6447
+ st.campaigns=migratePlatformValues(migrateArticleSlug(j.campaigns)); // C8: 旧キー除去 + 媒体側の旧値変換
6195
6448
  st.ui=j.ui||{expanded:{}};
6196
6449
  if(validRefs(j.refs)){ st.refs=normalizeRefs(j.refs); }
6197
6450
  st.meta=Object.assign(defaultMeta(),j.meta||{});
@@ -6259,6 +6512,17 @@ document.getElementById('btnSubmitJson').addEventListener('click',exportSubmitJs
6259
6512
  document.getElementById('btnHelp').addEventListener('click',openHelpModal);
6260
6513
  document.getElementById('btnConsole').addEventListener('click',()=>openConsole('campaigns'));
6261
6514
  document.getElementById('planWarnClose').addEventListener('click',()=>{ planMismatchMsg=''; renderPlanWarn(); });
6515
+ document.getElementById('errBarClose').addEventListener('click',()=>{ PLANNER_ERRORS.length=0; renderErrBar(); });
6516
+ document.getElementById('errBarAsk').addEventListener('click',askAiAboutError);
6517
+ /* エラー時に「直前に押したもの」を添えるため、ボタンの識別子だけ覚える(入力値は覚えない) */
6518
+ document.addEventListener('click', e=>{
6519
+ const b=e.target.closest('button');
6520
+ if(b) lastActionId=b.id || b.getAttribute('data-mo') || b.getAttribute('data-v') || (b.textContent||'').trim().slice(0,24);
6521
+ }, true);
6522
+ /* 未捕捉例外。**console.error は使わない**(E2E の collectPageErrors が console の error を
6523
+ 拾って空配列を期待しており、ここで出すと全スイートが落ちる)。 */
6524
+ window.addEventListener('error', ev=>{ recordError('error', ev.error||{message:ev.message}, ev.filename?(ev.filename+':'+ev.lineno):''); });
6525
+ window.addEventListener('unhandledrejection', ev=>{ recordError('unhandledrejection', ev.reason, ''); });
6262
6526
  document.getElementById('btnConnectFolder').addEventListener('click',connectFolder);
6263
6527
  /* ---- B-1/B-3: アカウントバー wiring ---- */
6264
6528
  /* F-3: 文言コピーは参照データビューへ移設。フォルダ接続/編集/インポートはヘッダープルダウンのアクション項目に集約 */
@@ -6397,7 +6661,7 @@ window.addEventListener('beforeunload', function(e){ if(_dirty){ e.preventDefaul
6397
6661
  await Promise.all(Object.keys(PLATFORMS).map(id=>loadBundle(id)));
6398
6662
  applyBundle(curPf);
6399
6663
  await fetchAccountList();
6400
- }catch(e){}
6664
+ }catch(e){ recordError('bootstrap', e, '同梱データ(アカウント一覧・サンプルプラン)の読み込み'); }
6401
6665
  // 開いたときは必ずサンプルプランを読み込む(localStorage廃止)
6402
6666
  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; }
6403
6667
  else { toast('初期データ(アカウント/サンプルプラン)を読み込めません。httpサーバー経由で開くか、アカウントを接続してください'); }
@@ -6422,7 +6686,7 @@ window.addEventListener('beforeunload', function(e){ if(_dirty){ e.preventDefaul
6422
6686
  else toast('アクティブプランのアカウント「'+tn+'」が見つかりません。同梱の既定アカウントで開きます');
6423
6687
  }
6424
6688
  }
6425
- }catch(e){}
6689
+ }catch(e){ recordError('activePlan', e, 'アクティブプラン.json の適用'); }
6426
6690
  })();
6427
6691
  </script>
6428
6692
  </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 の「カバー画像が指定されていません」で落ちる。