【WordPress】ABテストなどのクリック率のテストでコンテンツ配信の最適化を行う

emblemmatic-ucb-recommend-logo-22

クリック率をもとにしたコンテンツ配信の最適化を行うプラグインを作成しました。

UCB Recommend
このプラグインはクリック率から配信するコンテンツの最適化を行います。 配信コンテンツの最適化にはABテストが有名ですが、Google Analyticsでも使用されている腕バンデット問題...

開発中のプラグインです。

高速化はまだ行っていないため非常にアクセスの多いサイトでは動作が重くなる可能性があります。

スポンサーリンク

どんなプラグイン?

表示したコンテンツがどれくらいクリックされるか計算し、表示させるコンテンツの最適化を自動で行うプラグインです。

関連記事の最適化、異なるデザインのテストなどを行うことができます。

配信コンテンツの最適化

Google Analyticsやクックパッドで使用されている多腕バンディット問題のモデルを使用しています。

Steven L. Scott、博士、経済アナリストGoogle アナリティクス ウェブテストの基盤を成す統計手法について説明します。Google アナリティクスでは、ウェ
こんにちは。技術部検索グループの原島です。 上の画像は、スマートフォン(ブラウザ版)で見たクックパッドの検索結果ページです。レシピだけでなく、ニュースも表示されていますね。献立や掲示板のスレッドなどが表示されることもあります。 クックパッドでは、検索結果ページに表示するコンテンツをクエリなどに応じて最適化しています。最...

解法としてはUCBアルゴリズムを使用しています。

UCBアルゴリズムはデータの少なさを評価に含めることで、テストの回数が少ない記事は積極的にテストを行う仕組みになっています。

したがって新規に追加した記事に対してもテストが行われ、その結果が良ければそのままおすすめされますが、悪ければおすすめに表示されなくなっていきます。

インストール方法

公式ディレクトリに登録してあるため、プラグインの新着追加画面から検索できます。

「ucb」と検索するとヒットします。

ucb54

ucb55

開発版

Githubで管理しています。

Contribute to UCB-Recommend development by creating an account on GitHub.

関連記事を設定する

ウィジェットを作成

管理画面左メニューから「UCB Recommend」→「ウィジェット」を選択します。

ucb49

ucb16

右の新規作成で新しくウィジェットを作成します。

ucb17

ショートコードをコピーします。

ショートコードの設置

関連記事を表示したい位置にショートコードを貼り付けます。

Simplicityの場合

Simplicityでは関連記事の下にウィジェットを追加できます。

ucb39

テキストウィジェットを追加してショートコードを貼り付けることで表示されるようになります。

Simplicityを使用していない場合

Simplicityを使用していない場合は子テーマのfunctions.phpなどに以下のコードを貼り付けることで投稿の下に表示させることが可能です。

注意点

関連記事の候補が多い場合は最適化に多くのデータが必要になります。

同カテゴリーや同タグを持つ記事に絞る条件を追加するなどして候補を減らすことを検討して下さい。

条件の設定に関してはこちらを参照して下さい。

UCB Recommend
このプラグインはクリック率から配信するコンテンツの最適化を行います。 配信コンテンツの最適化にはABテストが有名ですが、Google Analyticsでも使用されている腕バンデット問題...

ABテストをする

例として赤枠と緑枠どちらがよいかテストする手順を説明します。

ucb43 ucb44

デザインパーツを作成

新規にデザインパーツを作成します。

ucb51

タイトル、本文、タグ、リダイレクトURLを設定します。

ucb45

ucb46

ウィジェットを作成

新しくウィジェットを作成します。

ucb25

表示数を、コンテキストなしモードをONにします。

デザインでリストテンプレートアイテムテンプレートNot Found テンプレートを編集します。

ucb26

検索条件でデザインパーツの条件グループをテンプレーから追加します。

ucb52

条件にタグ名を設定します。

ucb28

ucb29

正しく検索条件が設定されたかどうかチェックします。

ucb30

先程作成した2件のデザインパーツのみが表示されれば問題ありません。

プレビューで確認

プレビューに移動し、プレビュー取得で確認します。

ucb47

ホバーなどでリンクが「javascript:void(0)」になっていることを確認します。

ucb32

このようになっている場合は、作成したデザインパーツの「{$url{1}}」などが正しく入力されているか確認して下さい。

「{$url{ 1} }」などスペースなどが入っていると正しく動作しません。

ショートコードの設置

ucb33

ダッシュボードに行きショートコードをコピーします。

管理メニューの外観からウィジェットに行き、設置したい箇所にショートコードを貼り付けます。

ucb53

ucb48

動作確認

デフォルトでは管理者はカウントされない設定なので、シークレットウィンドウを利用したり、一度ログアウトしてログインしていない状態でアクセスします。

ucb44

検索条件の検索条件テストで表示数とクリック数を確認できます。

ucb38

CFilteringとの違い

「CFiltering」は「この記事を読んだ方はこんな記事も読んでいます」の機能を提供するプラグインです。

CFiltering
このプラグインは「この記事を読んだ方はこんな記事も読んでいます」の機能を実現するためのものです。 有効化することで関連記事を取得するいくつかの関数を使用できるようになります。 テー...

このプラグインは経路によらず同じ人が同時に見る記事を記録して、その結果から同時に見られやすい記事を計算します。

一方「UCB Recommend」は過去の表示回数とクリック率により表示するものを決定し、実際にクリックされたかどうかを記録して次に表示するものを決定するというテストを繰り返します。

どちらも関連記事を提案できるという点では同じですが、前者は他の様々な経路によってたまたま同時に読まれやすいだけで、関連記事として表示してもクリックされない可能性があります。

例えば記事の中でリンクを貼っていればその記事は同時に読まれる可能性は高いですが、すでに記事でリンクに飛んでいるので関連記事では必要ないかもしれません。

「UCB Recommend」は実際のクリックを測定しているため、関連記事の経路のみに対して最適化を行うことができます。

また「CFiltering」はデータが少ない場合はそもそも関連記事の候補として上がりにくい欠点があります。

その点UCBアルゴリズムはデータの少なさを評価に含めているため、新規投稿した記事でもテストが実施されます。

関連記事として使用する場合、どちらがよいか

仕組み的には「UCB Recommend」のほうが関連記事の提案としてはよいと考えています。

なぜならこちらはテストを行い最適化を行うからです。

「CFiltering」はあくまで同時に読まれやすい記事の結果を表示しているだけで最適化は行いません。

一方で「UCB Recommend」はデザインを考慮する必要があるため、ある程度HTMLやCSSの知識が必要になります。

また「CFiltering」よりもデータが集まりにくく、最適化に時間がかかる可能性が高いです。

CFilteringの方は同時に読まれやすい記事の解析として使用し、関連記事の最適化は「UCB Recommend」で行うという使い方もできます。

まとめ

関連記事の最適化やABテストを行うことができるプラグインの紹介を行いました。

統計情報の表示やデザインのプリセットの追加などの機能を今後のバージョンアップで追加予定です。

まだ開発中ですがある程度の機能は使用できるので、よければ試してみて下さい。