本番環境と開発環境

多くのお客様が、本番環境に適用する前に開発環境でウィジェットのデザインやインタフェースのテストを行います。

これを行うためにはいくつかの方法があります。これらには、それぞれ良い点と悪い点があります。

本番環境と開発環境で別の組織として維持する

開発環境で使うための、Javascriptスニペットの別のキーのセットを提供することができます。別のキーでは、別の組織としてすべてが分けて管理されます。例えばそれぞれの環境が下記のように異なる情報を持つことになります:

  • 異なるインベントリを持つ
  • 異なるアクティビティを持つ
  • インベントリをアクティビティをもとにした異なる機械学習のModelを持つ

この方法を選択する場合、下記の点に注意してください。

  • 実際のリコメンデーションに使用されるアイテムは、開発環境の組織になります。例えば、これらは開発環境でアクティビティが発生したアイテムだけに限定され、アイテムの数は少なくなります。
  • リコメンデーションの内容は開発環境をベースに構成され、その環境の中でアクセスする少人数の行動によって左右されることになります。

これらの注意事項の上でも、この方法がリコメンデーションの表示と組み込みの詳細をテストする上で十分な場合があります。

本番環境のキーのみで、開発環境は本番環境からリコメンデーションを取得する

本番環境のキーのみで、開発環境では同じキーを使用して、本番環境からリコメンデーションを取得することもできます。

ここでの注意事項は、開発環境でのテストを行うことで、本番環境のアクティビティやインベントリの流れに影響を与えないようにすることです。場合によっては、リコメンデーションの質が最適ではなくなることもあります。この詳細については別途説明します:

  • インベントリの流れへの影響: 開発環境が本番環境に対して同一のインベントリを持つ場合は、特に問題はありません。もし異なるインベントリを持っている場合は、JavaScript snippetの[$p("init")]doc:pinit)関数のコールにinventory.collectのフィールド値をfalseに設定することで、開発環境からのインベントリ送信をブロックすることができます。
  • アクティビティの流れへの影響: 開発環境でのアクティビティは本番環境でのアクティビティに比べて極めて少ないため、特に問題はありません。
  • 最適ではないリコメンデーション(URLの構成が異なる場合): 開発環境で使用するURLが本番環境で使用するものと一致していない場合、ユーザのコンテキストを特定することができなくなり、本番環境と比べて質の低いリコメンデーションを返す可能性があります。