「時間の最適化を送る」

「時間を最適に活用する方法」

メール送信時間最適化(STO)によってオープン率が最大93%向上することを知っていますか?素晴らしいですね!でも実際は10%しか向上しない場合もあります。信憑性のあるケーススタディによると、適切なタイミングでのメッセージ配信は、オープン率55%、クリック率30%、およびコンバージョン率13%をもたらしました。もしROIがプラスになるなら、私はいつでもその増加を受け入れます。

最適化は様々な問題に適用できます。それはコンテンツにも適用でき、それは顧客の利益になる可能性があるように、最適化は商人にとって最大の価格を提供することができる価格にも適用できることを意味します。

残念なことに、正しいデータがなければ、どの特定の最適化の結果がどうなるかを事前に知る方法はありません。そのデータを得る唯一の方法は科学によるものです!

科学 + データ = 利益

例えば、メールのコンバージョン率の場合を考えてみましょう。私たちが支払い済みの顧客に送信されるメールメッセージを考慮している場合(配信可能性や「メッセージ送信元」のテキストには問題ありません)、顧客の行動に影響を与える要素は以下の表のようになります。これらの要素は、アルゴリズムの変数と考えることができます。いくつかの項目は無限の可能な値の範囲を持つ場合もあり、すべてを組み合わせると、不可能に入り組んだ潜在的な相互作用のセットが得られます。

上記に述べられたようなデータは、特定のメールメッセージの送信時間を変化させることが、コンバージョン率に重要な影響を与えることを示唆しています。では、いつメールを送信するのが最適なのかをどのように決定すればよいでしょうか?

問題:私たちは定期的に顧客にメールを送信する会社で働いています。私たちのSaaSアプリでは、ユーザーがメールの配信時間を最適なものに設定できますが、特に新規顧客の場合、まだ設定を行っていないユーザーもいます。設定がされていないユーザーのために、メールの配信時間の最適な時刻をどのように決定すればよいでしょうか?

私たちのケースでは、最適な時刻とは「最も高いコンバージョン率をもたらす時刻」を意味します。

N.B. 私たちは私たちの立場から話すとき、「送信時間」と言います。顧客の立場から話すときは、「配信時間」と言います。

科学!

スマートフォンやデスクトップ上の電子メールアプリを見てください。私のモバイルのGmailアカウントでは、スクロールするまで(メッセージの添付ファイルがあるかどうかによって異なりますが)6つのメッセージが表示されます。デスクトップ版では16つのメッセージが表示されます。私が使用している別のモバイルの電子メールアプリでは、10つのメッセージが表示されます。Office 365のデスクトップWebメールアプリでは10つ表示されます。

私たちには未検証の仮定があります。つまり、顧客に送信/配信されるメールメッセージの時刻がコンバージョン率に影響を与えるということです。言い換えれば、未読メッセージリストの中でメッセージが表示される位置が高いほど、メッセージが開かれる確率も高くなり、それが重要な最初のステップです。

もしSTO問題に対する解決策を提案するなら、私たちの同僚が私たちの推奨に自信を持つようにしたいものです。

素人の仮定を「帰無仮説」と「対立仮説」として設定してみましょう。帰無仮説は、分析されているデータセットまたは変数間に関係がないという主張です(これを否定しようとしているものです)。対立仮説は、否定すべき十分な証拠がある場合に受け入れられる、証明しようとしている仮説です。

  • 帰無仮説(送信時間の差はない):

コンバージョン率と送信時間の間には関係がありません。

  • 対立仮説(送信時間の差はある):

コンバージョン率はメールの送信時間によって異なります。

コンバージョン率は、メールを開き、メール内のアクションリンク(購入、売却、参加など)をクリックする顧客の割合です。

帰無仮説と対立仮説は、次の2つの変数に関連しています:

  1. 独立変数はメールの送信時間です。
  2. 従属変数はコンバージョン率の指標です。

また、制御が不十分な場合、実験は信頼性を欠くものになる可能性がある、干渉変数と呼ばれる第三の変数があります。

  • 干渉変数は従属および独立変数に影響を与え、見かけの関連性をもたらすものです。

私たちの場合、混同変数は以下の4つです:

  1. 顧客セグメント
  2. 件名
  3. メッセージの内容
  4. Call to actionの内容

デスクトップまたはモバイルアプリなどのより多くの混同要素があるかもしれませんが、私たちが制御できるのはこれら4つの変数だけです。

プロのヒント: 高いオープン率、読まれ率、変換率のある混同変数を使用しましょう。摩擦が少なく、無料または低コストで非常に望ましいです。本当のオファーをしている間に、私たちの目標は最適な送信時刻を決定することです。

N.B.: 実験中に混同変数が変化しないようにすることが重要です。

実験

私たちは科学的な方法またはそれに近い方法を使用して仮説をテストします。出発点は独立変数です:実験中にメッセージを送信すべき時間はいつですか?この問題に対処するためには2つの方法があります:直感を使うかデータを使うかです。

前述のように、私たちのSaaSアプリではユーザーがメールの配信時間の設定をすることができます。ユーザーのローカル時間で設定データをクエリすると、通常の分布のようなものが得られます:

                     図1 メール配信時の通常分布;中央値:0730 (ローカル時間)

好みのあるユーザーによると、配信の中央値時間は午前7時30分前後です。5時間もの広い範囲で好みの時間があるのは残念です。理想的には、メッセージを1時間ごとに送信したいです。5時間の範囲では最低でも1,000人ずつの5つの顧客セグメントが必要です。

テストすべき独立変数(送信時間)の数は、実験に参加できる新規顧客の数に依存します。この場合、私たちは月に約30,000人の新規顧客がいるグローバル企業であり、通常、半分の顧客が優先する時間を選ぶまでに1か月かかります。これにより、世界中に広がる15,000人の顧客が残り、その半数はアメリカにいます。7,000人は3つの独立変数をテストするのに十分な数です。理想的には、最低でも1,000人の顧客が必要ですので、実験結果にかなりの自信が持てます。

N.B. すべての時間はローカル時間です。

私たちはメッセージを3回送信します:t1、t2、およびt3

以下のとおりです:

  1. t1は初期のメール送信時間です:0500 (ローカル時間) (ピーク時間の0730の2時間半前)。
  2. t2はt1の2時間後です。
  3. t3はt2の2時間後です。

                                     図2 2時間のウィンドウを持つ3つのコホート 

これにより、顧客の通常分布の大部分をカバーする6時間の配送時間ウィンドウが得られます。アメリカが6つのタイムゾーンをカバーしているため、各コホートの顧客ごとに正しいデータセンターまたはクラウド送信時間に到達するために、少しの時間計算を行う必要があります。

!重要: コホートの時間ウィンドウ内で送信時間を広げないでください。できるだけt1、t2、およびt3それぞれに近い時間に配信されるように、全メッセージを送信しましょう。

顧客セグメンテーション、またはコホートエンジニアリング

コホートを作成する際には、いくつかの他の基準も考慮する必要があります。以前の人口統計に関する作業では、90%の顧客が大都市に住んでいることがわかっています。郵便番号またはジオロケーションを使用して場所の述語を作成し、各大都市を3つのグループに分割できます。役立つかもしれない他の基準はありますか?

  • モバイル対デスクトップユーザー
  • Android対iOS
  • Windows対Mac
  • User-agent
  • 組織の規模
  • SaaSのサブスクリプションプラン

どのように切り分けるかはあなた次第ですが、可能な限りデモや心理データを使用し、3つのセグメントがバランス良くなるようにしてください。これにより、結果を分析的に探索する際にトラブルを回避できます。

3、2、1でローンチ! ホールドして!

メッセージを送信する前に、適切な観測性が確保されていることを確認する必要があります。メッセージが開封されたイベントやメッセージが変換されたイベントなど、いくつかの主要なイベントを知る必要があります。また、顧客/実験の経過中に何かが問題が発生した場合も知る必要があります。特定の失敗条件が満たされた場合にアラートを受け取る必要があり、実際の顧客が受け入れることを望む非常に本物のオファーを無駄にする前に実験を停止することができます。実際の送信時刻も含めるようにしてください。

いつも役立つ事実のグループは、ネットワークと地理位置情報のデータです。おそらく多くの顧客がコーヒーを飲みながらオンラインでメッセージを開封しているかもしれません。

すべての準備が整ったら、あとは大きな赤いGO!ボタンを押してデータを集めるだけです。どれくらいの間待つべきですか?

データの探索と分析

3つのグラフからわかるように、実験を開始して48時間以内に結果が途絶えました。これも非常に貴重な情報です。時間が経つにつれて、各顧客はより多くのメッセージを受け取ることが安全に想定されるため、実験的なメッセージはリストの下部に押しやられると思われます。これが、ユーザーごとのアプリやユーザーエージェントを追跡することで、メールアプリウィンドウのサイズとメッセージ開封率を相関させることができます。

各コホートを個別に見るだけでなく、すべての3つを組み合わせて共通のパターンがあるかどうかも見てください。たとえば、追跡された顧客の開封率、ウェブページリンクのクリック数、コールトゥアクションリンクのクリック数がお昼前に減少し、一日の終わりまで低いままであるかもしれません。

他のパターンは、購読プランや顧客の携帯電話モデルに関連するかもしれません。例えば、iPhoneユーザーは、朝を始める15分前にダブルソイチャイラテを手に入れる忙しい時間帯であり、そのときにメールアプリをチェックする可能性があります。

最後に、メールが送信された時刻に関係なく、地元の時間で8:30 a.m.前後にメールを開封するピークが明らかにあります。個人の結果は異なるかもしれません。

結果

ついに、結果が出ました。明確な結果が得られました。新しい顧客は朝の8:24 a.m.にメールを読むことを好むことがはっきりわかりました。これ以降、新しい顧客向けのデフォルトのメール送信時間はこの時間に設定できます。やったね!

今やすることは、論文をまとめ、同僚に配布し、結果について議論するための承認を得ることです。また、解析探索や仮定を含めたすべての結果について、ビジネスユニットの責任者や製品オーナーとのミーティングを行いたいと希望する場合もあります。仮定とは?

議論/仮定

私たちは皆、仮定を立てるものだと思います。この質問についての研究は見たことがありませんが、まあ仮定しておきましょう。結論を書き上げて論文を送信する前に、仮定したことを考える良い機会ですので、それらを議論セクションに含めてください。例えば、コホートを準備する際に、購読プラン、企業サイズなどの確定的な顧客属性をできるだけバランスを取るようにしました。しかし、企業文化はかなり異なることがわかっています。一部の企業-おそらくほとんどの企業-は在宅勤務を完全に採用しているかもしれません。

STOと深層学習

実験の結果が各コホートまたはすべてのコホートに強い信号を示さない場合、または実験結果のデータを探索している間に、ロサンゼルスの顧客がiPhoneを使用して強い信号を示していることに気付くかもしれません。彼らは朝の後、ビーチでのランニング後または405号線の渋滞中などにメールをチェックしたいと希望している可能性があります。

その後、希望を示した既存の顧客のデータを見ると、LAでもiPhoneを使用している顧客グループは9:00〜10:00 amの間にメールを受け取ることを強く希望しています。おそらく、顧客データベースにはこれと同様の強い相関が他にもあるかもしれません。そうであれば、新しいユーザーにメールを送信するための最適な時刻を予測するために機械学習モデルをトレーニングできるかもしれません。これまでに機械学習のトレーニングをしたことがない場合、どのようにすればいいのでしょうか?それは可能なのでしょうか?

もちろん可能です!中~上級のプログラマーのほとんどは、コードでほとんどすべての困難な問題に勝利した経験がありますので、私はコードでほぼ何でもできると確信しています。それでは、試してみましょう。組織のデータセットがMLモデルのトレーニングに適していなくても、データサイエンスやエンジニアリングの同僚がどれほど困難な仕事をしているかを理解し、彼らに酷いデータを送ることでどれほど彼らの仕事を困難にしているかを知り、これからの数年間にわたってプログラマーの仕事の中で重要な概念と用語を学ぶことができます。

二つの方法:教師あり学習と教師なし学習

この問題の核心は予測です。新しいユーザーが最も選びやすい10分または15分の送信時刻はどれでしょうか?この問題には教師あり学習と教師なし学習の2つのMLモデルを使用することができます。あなたの場合に最適な方法は、データを探索し理解するために教師なしクラスタリングを使用することかもしれません。その場合、クラスタリングを使用して送信時刻を予測することができます。または教師あり学習の道を試し続けることもできます。では、主な違いは何でしょうか?あなたにとっては、教師あり学習はラベル付きデータが必要ですが、教師なし学習は必要ありませんので、教師なし学習の方が少し簡単です。幸いなことに、お客様のデータには彼らの好みのメール送信時刻(または使用例に応じた同等のもの)が含まれている場合、ラベル付きデータの半分は手に入れることができます。

XGBoostによる教師あり学習

XGBoostは、この問題に対して優れた選択肢です。この問題に関連する直接的なPythonやRの実装チュートリアルが数多く存在します。大量の計算リソースを必要とせず、パラメータの最適化や調整も必要ありません。あなたや私のような初心者に最適です。

この記事では各ステップを詳しく説明するスペースがありませんが、以下のPythonチュートリアルを強くお勧めします:PythonでのXGBoostの利用。このチュートリアルは、ダイヤモンドの価格の予測(分類)問題を中心に展開されています。チュートリアルを実行するのに1時間以上かかることはありません。ダイヤモンドの価格は、顧客の好みのメール配信時刻に似ていると言えるでしょうか?実際、ビジネスやデータのドメインは、MLモデルにとってほとんど関係ありません。

それぞれの場合、重要なのはデータ内の属性です。顧客データには、与えられた新しい顧客のデータが既存の顧客グループに十分に似ているかどうかという基本的な質問に答えるために十分な属性/フィールド/列があるかどうかを確認する必要があります。2つ目のMLモデルがその質問に答えるのに役立つかもしれません。

XGBoostのチュートリアルを進めた後、自分のデータでも同様に試してみてください。使用するデータのバリエーションを何回も試行する必要があるかもしれません。うまくいかない場合は、クラスタリングに進んでください。

クラスタリングによる教師なし学習

クラスタリングとは何でしょうか?Datacamp.comにはクラスタリングの非常に良い導入があります。

「クラスタリングは、多様な応用がある非教師付き機械学習手法であり、パターン認識、画像解析、顧客分析、市場セグメンテーション、ソーシャルネットワーク分析などに頻繁に使用されます。…これは、情報の発見の反復プロセスであり、望ましい結果を達成するためにデータとモデルパラメータの調整を頻繁に行うため、ドメインの知識と人間の判断が必要となります。」

基本的に、クラスタリングモデルの選択されたアルゴリズムは、データを処理し、データ内の各レコードに対してX座標とY座標の結果セットを生成します。これはテーブルとして表示することも、次のような可視化として表示することもできます。このようにすると、クラスタが見やすくなります。

 

今のところは、K-meansクラスタリングから始めましょう。これは、直感的で実装が容易なため、クラスタリングタスクに広く使用されているアルゴリズムです。このアルゴリズムは、ユーザーが作成したいクラスターの数を定義する必要がある、セントロイドベースのアルゴリズムです。今回の場合、クラスターの数は予測を行いたい送信時刻スロットの数です。例えば、午前7時から午前10時までの間の15分ごとで、12つのクラスター(K = 12)になります。

また、まずチュートリアルから始めてから、カスタマーデータに進むことを強くお勧めします。こちらのKaggleのチュートリアルがとてもおすすめです:Customer-Segmentation with k-means

データを使用する準備ができたら、全体のワークフローは次のようになります:

  1. データを調査し、既存のユーザーの送信時刻との相関が表示される可能性がある特徴を直感的に特定してください。既存のデータには存在するが好みがないデータが多すぎる可能性があります。
  1. クラスタリングが表示されるまで、属性/列/フィールドを繰り返し試してください。
  1. クラスタリングしたい送信時刻の大部分をカバーする十分なクラスターがあるまで、精度を高めてください。
  1. データに送信時刻との相関が全くない場合、2つの選択肢があります:

    1. 好みを判別するのに役立つデータを特定して収集するか、

    2. 敗北を受け入れる。時には、帰無仮説が勝つこともあります。

  2. データセットのいずれかに送信時刻に関連するクラスターが表示される場合、黄金のチケットを手に入れました!

  3. 次に、クラスターの重心(各送信時クラスターの中央にある実際のまたは合成ベクトル)を導出する必要があります。

  4. 送信時刻の好みを表明していない新規ユーザーのデータセットを収集します。新しいユーザーごとに、クラスターベクトルを作成する際に使用された同じ手法を使用して、ユーザーのベクトルを計算します。

  5. 各ユーザーのベクトル(#7)と各クラスター重心との間の差(コサイン類似度またはユークリッド距離)を測定し、最も差が小さい重心が最適な送信時刻です。

  6. 次の数週間、その新しいユーザーセットをチェックして、彼らの好みの送信時刻が予測した時刻と一致するかどうかを確認してください。

  7. 既存のユーザーデータセットに対しても、この方法をテストすることができます。

  8. 奇跡的に、これがすべてとてもうまく行った場合、黄金のチケットを手に入れました!

  9. 別の実験を試してみてください。今度は、予測されたメール送信時刻を使用して新しい実験的なメールメッセージを送信し、変換率が最初の実験よりも高いかどうかを確認してください。

結論

オンラインでこのトピックについて調査した場合、この問題への解決策を提供する多くの企業が存在することに気づいたかもしれません。この問題を解決できるか、または変換率を十分に向上させることができるだけで十分な収益性があるため、それは非常に価値があります。

組織に経済的な利益をもたらすことに加えて、CVに新しい重要なセクションを追加できるでしょう:メッセージ送信時刻の最適化に関するデータサイエンスの実験を作成し、実施し、変換率を27%向上させ、ARRを4%増加させました。

さあ、それは目指す価値があるものです。幸運を祈ります!

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more