Design Vault 用途・構成・配色・本文で検索 /
索引 カテゴリ タグ English
索引に戻る

件名A〜Dを公平に比べる — 顧客層と配信枠の偏りを抑える

マトリクス
件名A〜Dを公平に比べる — 顧客層と配信枠の偏りを抑える
120 82

1920 × 1080 作品として見る

持ち帰る

コピーして貼るか、ファイルに保存して渡す。ネットにつながらない環境には「全部入り」を 1 つ渡せば足りる。

全部入り

latin-square-subject-rotation-everything.md

このパネルの中身を、URL の先にあるファイルの中身まで含めて 1 つにまとめた Markdown

依頼文

1.5 KB
以下の仕様でスライドを 1 枚作ってください。

- 版面 1920 × 1080
- 余白 上 82 右 120 下 82 左 120

## 文字(版面 1920px に対する px)
title  44px / 700 / 字間 0.01em
subtitle  22px / 400
axisNote  20px / 500
corner  20px / 500
columnHead  22px / 700
rowHead  22px / 500
variant  48px / 700
cellCount  20px / 500
asideHeading  24px / 700
balanceMark  30px / 700
balanceCopy  20px / 400
totalValue  42px / 700 / 等幅数字
totalLabel  20px / 500
conclusion  25px / 500

## 配色
地 #FFFFFF / 面 #F4F6F9 / 文字 #131820 / 補助 #667183 / 強調 #1F5FA8 / 罫 #DBE1E9 / #2F6FB5 / #A85A2E / #1C8C79 / #4E7A3A

## 外すと崩れる点
- 顧客層を行、配信枠を列に置き、各行・各列へ件名A〜Dを1回ずつ割り当てる。案が特定の層や時刻に偏ると、件名の効果と条件差を分けられない
- 1セルの送信数を揃える。異なる件名の反応率を比べる前に、各案が受け取る母数を同じにする
- A〜Dの文字を色と一緒に残す。色だけで案を識別させない
- これは割付の例であり、無作為抽出・重複除外・配信到達を保証するものではない

内容は[ここに自分の内容を書く]に置き換えてください。寸法と配色はそのまま守ってください。
正確に再現する場合は、この HTML をそのまま使ってください: https://design-vault.pages.dev/designs/latin-square-subject-rotation/pattern.html

仕様

2.0 KB

/ai/designs/latin-square-subject-rotation.json

format: slide-16x9
density: medium
layout:
  kind: matrix
  canvas:
    w: 1920
    h: 1080
  margin:
    top: 82
    right: 120
    bottom: 82
    left: 120
type:
  title:
    size: 44
    weight: 700
    tracking: 0.01em
  subtitle:
    size: 22
    weight: 400
  axisNote:
    size: 20
    weight: 500
  corner:
    size: 20
    weight: 500
  columnHead:
    size: 22
    weight: 700
  rowHead:
    size: 22
    weight: 500
  variant:
    size: 48
    weight: 700
  cellCount:
    size: 20
    weight: 500
  asideHeading:
    size: 24
    weight: 700
  balanceMark:
    size: 30
    weight: 700
  balanceCopy:
    size: 20
    weight: 400
  totalValue:
    size: 42
    weight: 700
    numeric: tabular
  totalLabel:
    size: 20
    weight: 500
  conclusion:
    size: 25
    weight: 500
colors:
  ground: "#FFFFFF"
  surface: "#F4F6F9"
  ink: "#131820"
  muted: "#667183"
  accent: "#1F5FA8"
  rule: "#DBE1E9"
  series:
    - "#2F6FB5"
    - "#A85A2E"
    - "#1C8C79"
    - "#4E7A3A"
rules:
  - 顧客層を行、配信枠を列に置き、各行・各列へ件名A〜Dを1回ずつ割り当てる。案が特定の層や時刻に偏ると、件名の効果と条件差を分けられない
  - 1セルの送信数を揃える。異なる件名の反応率を比べる前に、各案が受け取る母数を同じにする
  - A〜Dの文字を色と一緒に残す。色だけで案を識別させない
  - これは割付の例であり、無作為抽出・重複除外・配信到達を保証するものではない

ファイル

pattern.html

11.1 KB

/designs/latin-square-subject-rotation/pattern.html — 版そのものの HTML。書体の部分集合ごと同梱で、開けばこの絵がそのまま出ます。

中身を見る
<!doctype html>
<meta charset="utf-8">
<title>件名A〜Dを公平に比べる — 顧客層と配信枠の偏りを抑える</title>
<meta name="dv-font" content="Zen Kaku Gothic New:400;500;700">
<link rel="stylesheet" href="./font.css">
<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="1080" viewBox="0 0 1920 1080" data-artboard="true">
  <style>
    :root {
      --ground: #FFFFFF; --surface: #F4F6F9; --ink: #131820;
      --muted: #667183; --accent: #1F5FA8; --rule: #DBE1E9;
      --series-1: #2F6FB5; --series-2: #A85A2E; --series-3: #1C8C79; --series-4: #4E7A3A;
    }
    svg { font-family: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", sans-serif; }
    .ground { fill: var(--ground); }
    .ink { fill: var(--ink); }
    .muted { fill: var(--muted); }
    .accent { fill: var(--accent); }
    .rule { stroke: var(--rule); }
    .title { font-size: 44px; font-weight: 700; letter-spacing: .01em; }
    .subtitle { font-size: 22px; font-weight: 400; }
    .axis-note { font-size: 20px; font-weight: 500; }
    .corner { font-size: 20px; font-weight: 500; }
    .column-head { font-size: 22px; font-weight: 700; }
    .row-head { font-size: 22px; font-weight: 500; }
    .variant { font-size: 48px; font-weight: 700; }
    .cell-count { font-size: 20px; font-weight: 500; }
    .aside-heading { font-size: 24px; font-weight: 700; }
    .balance-mark { font-size: 30px; font-weight: 700; }
    .balance-copy { font-size: 20px; font-weight: 400; }
    .total-value { font-size: 42px; font-weight: 700; font-variant-numeric: tabular-nums; }
    .total-label { font-size: 20px; font-weight: 500; }
    .conclusion { font-size: 25px; font-weight: 500; }
    .v-a { fill: var(--series-1); }
    .v-b { fill: var(--series-2); }
    .v-c { fill: var(--series-3); }
    .v-d { fill: var(--series-4); }
  </style>
  <rect class="ground" x="0" y="0" width="1920" height="1080"/>
  <g transform="translate(120 82)" data-content="true">
    <rect x="0" y="0" width="1680" height="916" fill="transparent"/>
    <text class="title ink" data-type="title" x="0" y="56">件名A〜Dを公平に比べる — 顧客層と配信枠の偏りを抑える</text>
    <text class="subtitle muted" data-type="subtitle" x="0" y="105">架空の案内メール実験 / 4つの顧客層 × 4つの配信枠 / 各セル200件</text>
    <line class="rule" x1="0" y1="142" x2="1680" y2="142" stroke-width="2"/>

    <text class="axis-note muted" data-type="axisNote" x="276" y="187">配信枠 →</text>
    <text class="corner muted" data-type="corner" x="0" y="229">顧客層 ↓</text>
    <text class="column-head ink" data-type="columnHead" x="383" y="229" text-anchor="middle">月曜 9時</text>
    <text class="column-head ink" data-type="columnHead" x="621" y="229" text-anchor="middle">月曜 13時</text>
    <text class="column-head ink" data-type="columnHead" x="859" y="229" text-anchor="middle">火曜 9時</text>
    <text class="column-head ink" data-type="columnHead" x="1097" y="229" text-anchor="middle">火曜 13時</text>
    <line x1="270" y1="246" x2="1210" y2="246" stroke="var(--ink)" stroke-width="2"/>

    <g class="row-head ink"><rect x="0" y="260" width="250" height="122" fill="var(--surface)"/><rect x="0" y="260" width="4" height="122" fill="var(--rule)"/><text data-type="rowHead" x="20" y="330">初回利用</text></g>
    <g class="row-head ink"><rect x="0" y="392" width="250" height="122" fill="var(--surface)"/><rect x="0" y="392" width="4" height="122" fill="var(--rule)"/><text data-type="rowHead" x="20" y="462">月1〜2回利用</text></g>
    <g class="row-head ink"><rect x="0" y="524" width="250" height="122" fill="var(--surface)"/><rect x="0" y="524" width="4" height="122" fill="var(--rule)"/><text data-type="rowHead" x="20" y="594">週1回以上利用</text></g>
    <g class="row-head ink"><rect x="0" y="656" width="250" height="122" fill="var(--surface)"/><rect x="0" y="656" width="4" height="122" fill="var(--rule)"/><text data-type="rowHead" x="20" y="726">法人管理者</text></g>

    <g>
      <rect x="260" y="260" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="260" y="260" width="228" height="4" class="v-a"/><text class="variant v-a" data-type="variant" x="374" y="323" text-anchor="middle">A</text><text class="cell-count muted" data-type="cellCount" x="374" y="357" text-anchor="middle">200件</text>
      <rect x="498" y="260" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="498" y="260" width="228" height="4" class="v-b"/><text class="variant v-b" data-type="variant" x="612" y="323" text-anchor="middle">B</text><text class="cell-count muted" data-type="cellCount" x="612" y="357" text-anchor="middle">200件</text>
      <rect x="736" y="260" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="736" y="260" width="228" height="4" class="v-c"/><text class="variant v-c" data-type="variant" x="850" y="323" text-anchor="middle">C</text><text class="cell-count muted" data-type="cellCount" x="850" y="357" text-anchor="middle">200件</text>
      <rect x="974" y="260" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="974" y="260" width="228" height="4" class="v-d"/><text class="variant v-d" data-type="variant" x="1088" y="323" text-anchor="middle">D</text><text class="cell-count muted" data-type="cellCount" x="1088" y="357" text-anchor="middle">200件</text>
    </g>
    <g>
      <rect x="260" y="392" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="260" y="392" width="228" height="4" class="v-b"/><text class="variant v-b" data-type="variant" x="374" y="455" text-anchor="middle">B</text><text class="cell-count muted" data-type="cellCount" x="374" y="489" text-anchor="middle">200件</text>
      <rect x="498" y="392" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="498" y="392" width="228" height="4" class="v-c"/><text class="variant v-c" data-type="variant" x="612" y="455" text-anchor="middle">C</text><text class="cell-count muted" data-type="cellCount" x="612" y="489" text-anchor="middle">200件</text>
      <rect x="736" y="392" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="736" y="392" width="228" height="4" class="v-d"/><text class="variant v-d" data-type="variant" x="850" y="455" text-anchor="middle">D</text><text class="cell-count muted" data-type="cellCount" x="850" y="489" text-anchor="middle">200件</text>
      <rect x="974" y="392" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="974" y="392" width="228" height="4" class="v-a"/><text class="variant v-a" data-type="variant" x="1088" y="455" text-anchor="middle">A</text><text class="cell-count muted" data-type="cellCount" x="1088" y="489" text-anchor="middle">200件</text>
    </g>
    <g>
      <rect x="260" y="524" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="260" y="524" width="228" height="4" class="v-c"/><text class="variant v-c" data-type="variant" x="374" y="587" text-anchor="middle">C</text><text class="cell-count muted" data-type="cellCount" x="374" y="621" text-anchor="middle">200件</text>
      <rect x="498" y="524" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="498" y="524" width="228" height="4" class="v-d"/><text class="variant v-d" data-type="variant" x="612" y="587" text-anchor="middle">D</text><text class="cell-count muted" data-type="cellCount" x="612" y="621" text-anchor="middle">200件</text>
      <rect x="736" y="524" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="736" y="524" width="228" height="4" class="v-a"/><text class="variant v-a" data-type="variant" x="850" y="587" text-anchor="middle">A</text><text class="cell-count muted" data-type="cellCount" x="850" y="621" text-anchor="middle">200件</text>
      <rect x="974" y="524" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="974" y="524" width="228" height="4" class="v-b"/><text class="variant v-b" data-type="variant" x="1088" y="587" text-anchor="middle">B</text><text class="cell-count muted" data-type="cellCount" x="1088" y="621" text-anchor="middle">200件</text>
    </g>
    <g>
      <rect x="260" y="656" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="260" y="656" width="228" height="4" class="v-d"/><text class="variant v-d" data-type="variant" x="374" y="719" text-anchor="middle">D</text><text class="cell-count muted" data-type="cellCount" x="374" y="753" text-anchor="middle">200件</text>
      <rect x="498" y="656" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="498" y="656" width="228" height="4" class="v-a"/><text class="variant v-a" data-type="variant" x="612" y="719" text-anchor="middle">A</text><text class="cell-count muted" data-type="cellCount" x="612" y="753" text-anchor="middle">200件</text>
      <rect x="736" y="656" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="736" y="656" width="228" height="4" class="v-b"/><text class="variant v-b" data-type="variant" x="850" y="719" text-anchor="middle">B</text><text class="cell-count muted" data-type="cellCount" x="850" y="753" text-anchor="middle">200件</text>
      <rect x="974" y="656" width="228" height="122" fill="var(--ground)" stroke="var(--rule)"/><rect x="974" y="656" width="228" height="4" class="v-c"/><text class="variant v-c" data-type="variant" x="1088" y="719" text-anchor="middle">C</text><text class="cell-count muted" data-type="cellCount" x="1088" y="753" text-anchor="middle">200件</text>
    </g>

    <rect x="1260" y="212" width="360" height="566" fill="var(--surface)"/>
    <rect x="1260" y="212" width="360" height="5" fill="var(--accent)"/>
    <text class="aside-heading ink" data-type="asideHeading" x="1288" y="267">偏りを割り当てで均す</text>
    <text class="balance-mark accent" data-type="balanceMark" x="1308" y="336" text-anchor="middle">行</text>
    <text class="balance-copy ink" data-type="balanceCopy" x="1342" y="330">各顧客層に</text><text class="balance-copy ink" x="1342" y="359">A〜Dが1回ずつ</text>
    <line class="rule" x1="1288" y1="384" x2="1592" y2="384"/>
    <text class="balance-mark accent" x="1308" y="430" text-anchor="middle">列</text>
    <text class="balance-copy ink" x="1342" y="424">各配信枠にも</text><text class="balance-copy ink" x="1342" y="453">A〜Dが1回ずつ</text>
    <line class="rule" x1="1288" y1="478" x2="1592" y2="478"/>
    <text class="balance-mark accent" x="1308" y="524" text-anchor="middle">数</text>
    <text class="balance-copy ink" x="1342" y="518">各セルの送信数</text><text class="balance-copy ink" x="1342" y="547">を同じにする</text>
    <line class="rule" x1="1288" y1="572" x2="1592" y2="572"/>
    <text class="total-value accent" data-type="totalValue" x="1288" y="650">3,200件</text>
    <text class="total-label muted" data-type="totalLabel" x="1288" y="686">合計 / 件名ごとに800件</text>

    <line x1="0" y1="836" x2="1680" y2="836" stroke="var(--ink)" stroke-width="2"/>
    <text class="conclusion ink" data-type="conclusion" x="0" y="884">件名だけを比べるなら、顧客層と配信枠にA〜Dを均等に割り当てる。</text>
  </g>
</svg>

font.css

2.8 KB

/designs/latin-square-subject-rotation/font.css — 全部入りには入れていない

中身を見る
/* dv-subset v2 — generated by scripts/subset-font.mjs. Do not edit.
 * font    Zen Kaku Gothic New 400;500;700
 * chars   92 (4c376e6d7daedda1)
 *
 * pattern.html の文字だけを含む部分集合。描画時に外部へ取りに行かないよう同梱する。
 * 版の文字を変えたら取り直すこと — 忘れると足りない字が豆腐になる。
 * その取り忘れは pattern-entries.test.ts が上の指紋で検出する。
 */

@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url(./font-0.woff2) format('woff2');
  unicode-range: U+2c, U+2f-34, U+38-39, U+41-44, U+d7, U+2014, U+2192-2193, U+3001-3002, U+301c, U+3048, U+304b-304c, U+3051-3054, U+3057-305a, U+305f-3060, U+3064-306b, U+306e, U+3078-3079, U+3082, U+3089-308b, U+3092, U+3099, U+30bb-30bc, U+30e1, U+30eb, U+30fc, U+4e0a, U+4eba, U+4ee5, U+4ef6, U+4fe1, U+504f, U+516c, U+5185, U+5217, U+521d, U+5229, U+5272, U+5404, U+5408, U+540c-540d, U+56de, U+5747, U+5b9f, U+5ba2, U+5c64, U+5e73, U+5f53, U+6291, U+6570, U+6642, U+66dc, U+6708, U+67a0, U+67b6, U+6848, U+6bd4, U+6cd5, U+706b, U+7406, U+7528, U+7a7a, U+7b49, U+7ba1, U+8005, U+884c, U+8a08, U+9001, U+9031, U+914d, U+9867, U+9a13;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url(./font-1.woff2) format('woff2');
  unicode-range: U+2c, U+2f-34, U+38-39, U+41-44, U+d7, U+2014, U+2192-2193, U+3001-3002, U+301c, U+3048, U+304b-304c, U+3051-3054, U+3057-305a, U+305f-3060, U+3064-306b, U+306e, U+3078-3079, U+3082, U+3089-308b, U+3092, U+3099, U+30bb-30bc, U+30e1, U+30eb, U+30fc, U+4e0a, U+4eba, U+4ee5, U+4ef6, U+4fe1, U+504f, U+516c, U+5185, U+5217, U+521d, U+5229, U+5272, U+5404, U+5408, U+540c-540d, U+56de, U+5747, U+5b9f, U+5ba2, U+5c64, U+5e73, U+5f53, U+6291, U+6570, U+6642, U+66dc, U+6708, U+67a0, U+67b6, U+6848, U+6bd4, U+6cd5, U+706b, U+7406, U+7528, U+7a7a, U+7b49, U+7ba1, U+8005, U+884c, U+8a08, U+9001, U+9031, U+914d, U+9867, U+9a13;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: block;
  src: url(./font-2.woff2) format('woff2');
  unicode-range: U+2c, U+2f-34, U+38-39, U+41-44, U+d7, U+2014, U+2192-2193, U+3001-3002, U+301c, U+3048, U+304b-304c, U+3051-3054, U+3057-305a, U+305f-3060, U+3064-306b, U+306e, U+3078-3079, U+3082, U+3089-308b, U+3092, U+3099, U+30bb-30bc, U+30e1, U+30eb, U+30fc, U+4e0a, U+4eba, U+4ee5, U+4ef6, U+4fe1, U+504f, U+516c, U+5185, U+5217, U+521d, U+5229, U+5272, U+5404, U+5408, U+540c-540d, U+56de, U+5747, U+5b9f, U+5ba2, U+5c64, U+5e73, U+5f53, U+6291, U+6570, U+6642, U+66dc, U+6708, U+67a0, U+67b6, U+6848, U+6bd4, U+6cd5, U+706b, U+7406, U+7528, U+7a7a, U+7b49, U+7ba1, U+8005, U+884c, U+8a08, U+9001, U+9031, U+914d, U+9867, U+9a13;
}

ノート

件名テストは、配信時刻と受け手の違いが反応に影響する。件名Aを朝に新規ユーザーへ、件名Bを 夕方に常連へ送って比べても、違いが件名によるものか条件によるものか分からない。

この割付では、4つの顧客層と4つの配信枠を交差させ、16セルすべてにA〜Dを1回ずつ配置した。 各案は各層・各時刻に一度ずつ現れ、各セル200件なので、件名ごとの送信数も800件で揃う。 実運用ではセル内の対象を無作為に割り当て、配信失敗や重複を別に確認する。