iTunesのアフィリエイトプログラムの提携先がLinkShareからPHGに変わりましたので、その対応について。男子ハックはWordpressを使っているので、DB上のアフィリエイトリンクを書き換えます。
LinkShareからPHGへ移行するためにやること
- 対応その1 : 過去作成したLinkShareへのリンクをPHG用に書き換え
- 対応その2 : JSを使って今後作るアフィリエイトリンクにIDが自動付与されるように設定する←今回やること
※まだPHGアカウントの発行は完了していない方はこちらから申請してみましょう。
今回の書き換えは以下を想定しています
// Beforehttp://click.linksynergy.com/fs-bin/stat?id=tawLR5WOYEQ&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=(iTunesのリンク先)// Afterhttps://itunes.apple.com/jp/app/reeder/(iTunesリンク先のID)
AfterのURLに本来はアフィリエイトIDのパラメータを付与する必要がありますが、JavaScript(Auto Link Maker)を使うとパラメータ自動付与してくれるのでこれを使う前提の書き換えです。
Search Regexで置換できればOK
先人にならってSearch Regexを使って置換します。なお、Search Regexでの正規表現を使った書き換えは、不可逆な置換をしてしまうケースもあるので、必ずバックアップを取るようにしましょう(※自己責任でお願い致します)
男子ハックの場合はこのようなURLなのでidとなる場所を再利用することにします。
// Beforehttp://click.linksynergy.com/fs-bin/stat?id=tawLR5WOYEQ&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=https%253A%252F%252Fitunes.apple.com%252Fjp%252Fapp%252Fcard-mo-fanoyouna-wu-liao%252Fid680252685%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30// Afterhttps://itunes.apple.com/jp/app/id680252685
Search Regexで正規表現を有効にして下記の置換を実施しました。Search Regexでは保存まえに内容を確認できるので、問題がないかチェックしてから保存するようにしましょう。
// Search pattern|"$error_url$"|// Replace pattern"https://itunes.apple.com/jp/app/id$1"
これで、過去に書いた記事のiTuneリンクがクリックされても、LinkShareではなく、PHGの実績としてレポーティングされます。
ラクイシさん(@rakuishi07)の記事をモロに参考させていただきました。
Search Regexが動かない場合には
しかし男子ハックの場合DBのサイズが大きいため、Search Regexが動きませんでした。そのため、下記の方法で、なんとか対応。
- phpMyAdminでwp_postsテーブルから対象の記事をエクスポート
- テキストエディタまたはスクリプト言語で置換
- SQLのINSERT文をUPDATE文に書き換え
- 作成したSQLをbigdump.phpを使ってインポート
作ったSQLのINSERT文をインポートすると毎回エラーで困り果てていましたが、bigdump.phpをというシンプルで切れ味のよいツールに助けられたおかげでなんとか書き換えが完了しました。
bigdump.phpの使い方はこちらが非常参考になります。あとSQLに逆クオートを使うと文字化けするので注意が必要です。
たかがDBの書き換えでしたが、結構苦労しました。やれやれ。