Quantcast
Channel: 神戸ホームページ制作会社ユニファースの代表ブログ
Viewing all articles
Browse latest Browse all 219

WordPressでA/Bテストを行うアイデア

$
0
0

Google広告は、一つのキャンペーン内に3つのURLしか登録できません。

LPを複数作ってコンバージョン率の検証をしたくても、この制約が足かせになり不満でした。

そこで、一つのURLからランダムに登録したURLへリダイレクトするという方法で解決することにしました。

作成した関数は以下の通りです。

function page_redirect(){
	if ( is_page(7967) ) { //7967は、リダイレクト元となるページのID
		$lpids = array(7967,13518,13474); //リダイレクトさせたいページのIDを登録
		shuffle($lpids);
		$uri = $_SERVER['REQUEST_URI'];
		$pm  = strstr($uri, '?'); //リダイレクト後にもGoogle広告のパラメーターを残す為の処理
		if( $lpids[0] != 7967 ){
			wp_redirect( get_permalink($lpids[0]).$pm , 302);
			exit;
		}
	}
}
add_action( 'get_header', 'page_redirect' );

これを、functions.php に書き込んでください。

これで無事に、LPのA/Bテストができるようになりました。

因みに、パラメーターを残す為の処理をしないと、Google広告からの流入にもかかわらず、Googleアナリティクス上の参照元は、google / organic と記録されてしまいます。

追記

上の関数だと、大量のアクセスがある場合には、等分の表示に収束するんでしょうが、小さいアクセス数で検証したい場合には偏るので不向きだなと。

そこで、ベースとなるページにカウントをするカスタムフィールドを設定して、LPを順に表示させる関数に変更しました。こちらの方が、小さいアクセスには向いていますね。

function page_redirect(){
	if ( is_page(7967) ) {
		$lpids = array(7967,13474,13518,13781);
		
		$lpids_num = count($lpids);
		$count_key = 'redirect_count';
		$count     = get_post_meta(7967, $count_key, true);
		$amari     = $count % $lpids_num;
		$count++;
		update_post_meta(7967, $count_key, $count);
		
		$uri = $_SERVER['REQUEST_URI'];
		$pm  = strstr($uri, '?');
		if( $lpids[$amari] != 7967 ){
			
			wp_redirect( get_permalink($lpids[$amari]).$pm , 302);
			exit;
		}
	}
}
add_action( 'get_header', 'page_redirect' );

 


Viewing all articles
Browse latest Browse all 219

Trending Articles