Google広告は、一つのキャンペーン内に3つのURLしか登録できません。
LPを複数作ってコンバージョン率の検証をしたくても、この制約が足かせになり不満でした。
そこで、一つのURLからランダムに登録したURLへリダイレクトするという方法で解決することにしました。
作成した関数は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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を順に表示させる関数に変更しました。こちらの方が、小さいアクセスには向いていますね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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' ); |