ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

WordPress上のApp StoreアプリのLinkShareリンクを新アフィリエイトプログラム(PHG)のものに書き換える方法

      2013/08/23

WordPress上のLinkShareリンクをPHGに書き換え

ひとりぶろぐのmoyashi (@hitoriblog) です。

iTunes Storeアフィリエイトプログラムの提携先が、LinkShareからPHGに変わって、ブロガー界はちょっとした騒動ですね。

リンク生成の方はAppStoreHelperをバージョンアップしてPHG対応しました。

ひとりぶろぐ » App Store取り扱いアプリのリンクタグを生成するブロガー用ツールAppStoreHelperのPHG対応バージョンアップ

2013年10月1日以降はLinkShareのリンクが無効になるので、ブログ上のリンクは、それまでにPHG対応のものに書き換えないといけない模様です。

手作業で対応しなければならない環境もあるかと思いますが、WordPressならSearch Regexというプラグインを使うことで対応が可能です。

Search Regex – WordPress search with regular expressions | Urban Giraffe

しかし、これで一発簡単ラクショー! みたいな方法ではありません。「なんか赤字の警告文が怖いし、面倒だからこれはパス。ほかにもっとないの?」という感想を抱く人が100人中765人ぐらいはいるかと思いますが、「これで一発簡単ラクショー!」という方法を模索した結果がコレです。アフィリエイトリンクの形式にはかなりバリエーションがあり、それを全部想定して網羅、お膳立てを完璧にするのは難しい。

例外的なパターンが出たときに自分で対処できる方法を身につけてもらうしかない、という結論の元に、こうした手順を提示しております。

いつ作業すべきか

2013年10月1日まで旧リンクが有効なら、ギリギリまで引っ張ろうという向きもあろうかと思いますが、料率はLinkShareが4%、PHGが7%と3%上がりますので、なる早でやった方が得ですね。(続きは[Read More]から)

Search Regexに潜むリスク

Search Regexは、WordPress上にあるエントリ全体を対象に一気に検索置換をするプラグインです。

強力で便利な一方、その強力さが破壊的な結果をもたらす可能性を秘めています。

といっても、偶発的に破壊的な結果がもたらされるということではありません。扱いを間違えなければ大丈夫。

検索置換が普通の検索置換のように一対一にならない場合があるところに危険性があります。

例えば、普通の検索置換なら「A」を「B」に置換するので、その逆をやれば元の状態に近くなりますが、Search Regexは、不特定の文字を「B」に置換統一することもできるのです。この検索置換は不可逆的で、「B」から不特定の文字に戻そうと思ってもできないのは分かりますよね?

ついては、作業に入る前にWordPressのデータベースのバックアップを取って作業前の状態に戻せるようにしておくことをおすすめします。

後で出てきますが、まず「Replace」ボタンでテストをし、置換結果を目で確かめてから「Replace & Save」を押す。この手順を守ることを約束してください。そうすれば、そうそう大変なことにはならないはずです。

なお、こうした危険性を孕むことから、自己責任での実行をお願い致します。

Search Regexのインストール

WordPressの「ダッシュボード>プラグイン>新規追加」からSearch Regexと検索してインストールしてください。

screenshot 13 08 21 18 26

インストールが完了すると、「ダッシュボード>ツール>Search Regex」から使うことができるようになります。

screenshot 13 08 21 18 29

作業手順

1: アフィリエイトURLの検索

Search Regexで「http://click.linksynergy.com/」で始まるURLを探します。

Search Regexを表示。Search patternに「http://click.linksynergy.com/」と入力し、「Search」ボタン。

screenshot 13 08 21 23 26

検索結果が出てきたら、「edit」ボタン。

screenshot 13 08 21 23 29

リンクをコピー。

screenshot 13 08 21 23 31


2: Replace Patternの組み立て

RD_PARM1、RD_PARM0の引数となっているURL、赤字の部分をコピー。

http://click.linksynergy.com/fs-bin/stat?id=ks8ekjeukjs6&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=https%253A%252F%252Fitunes.apple.com%252Fjp%252Fapp%252Fnotecube%252Fid657311491%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30

以下のzipをダウンロード、解凍して、中のunescape.appを実行。

unescape.zip

すると、クリップボード上のURLが加工されます。どこかにペーストしてみましょう。以下のURLが、

https%253A%252F%252Fitunes.apple.com%252Fjp%252Fapp%252Fnotecube%252Fid657311491%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30

次のように復元されます。このURLのうち、必要なのは赤字の部分のみで、「&partnerId=30」は不要なので削除。

https://itunes.apple.com/jp/app/notecube/id657311491?mt=8&uo=4&partnerId=30

「&partnerId=30」を削除したURLのうち、アプリ名に当たる青字の部分と、IDに当たる緑字の部分のみがそれぞれのアプリで異なる部分です。

https://itunes.apple.com/jp/app/notecube/id657311491?mt=8&uo=4

アプリ名、IDを$1、$2に置き換え。

https://itunes.apple.com/jp/app/$1/id$2?mt=8&uo=4

さらに、自分のアフィリエイトIDを「&at=」に続けてお尻にくっつける。ここではアフィリエイトIDを「99x9xx」とします。自分のアフィリエイトIDに読み替えてください。

https://itunes.apple.com/jp/app/$1/id$2?mt=8&uo=4&at=99x9xx

これを、Replace Patternにコピペ。

screenshot 13 08 22 20 55

3: Search Patternの組み立て

今度はSearch Patternです。さきほどコピーしたURL全体。RD_PARM1、RD_PARM0の引数になっているURLのうち、アプリ名と、IDに当たる部分を探します。unescape.appで復元したURLを参考にすれば見当が付けやすいでしょう。この場合のアプリ名とIDは以下の青字と緑字の部分です。

http://click.linksynergy.com/fs-bin/stat?id=ks8ekjeukjs6&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=https%253A%252F%252Fitunes.apple.com%252Fjp%252Fapp%252Fnotecube%252Fid657311491%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30

アプリ名の部分を「([^”]+)」と。IDの部分を「([0-9]+)」と置き換えます。

http://click.linksynergy.com/fs-bin/stat?id=ks8ekjeukjs6&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=https%253A%252F%252Fitunes.apple.com%252Fjp%252Fapp%252F([^”]+)%252Fid([0-9]+)%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30

さらに、頭とお尻に「!」を付け、「stat?」のハテナの前に「\」(バックスラッシュ)を入れます(それぞれ赤字)。

バックスラッシュ(\)と円マーク(¥)は違いますので注意してください。このエントリからコピーすると間違いないかと思います。

!http://click.linksynergy.com/fs-bin/stat\?id=ks8ekjeukjs6&offerid=94348&type=3&subid=0&tmpid=2192&RD_PARM1=https%253A%252F%252Fitunes.apple.com%252Fjp%252Fapp%252F([^”]+)%252Fid([0-9]+)%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30!

出来たものをSearch Patternにコピペ。「Regex:」のチェックボックスをオンに。「Source:」は「Post content」に。

screenshot 13 08 22 21 11

4: 置き換えのテスト

「Replace」ボタンを押します。「Replace」ボタンを押すだけでは、置き換えは実行されないので心配しなくても大丈夫です。

screenshot 13 08 21 19 07

すると、検索にヒットした数だけ以下のような表示が繰り返されると思います。緑地が検索にヒットしたもの。オレンジ地は、置き換え後の結果。置き換えたURLが機能するか、コピーして試してみてください。心配なら、置換された結果を全件検査。

screenshot 13 08 22 21 15

5: 置き換えの実行

結果に満足したら、「Replace & Save」ボタンを押す。これでWordPressのデータベースの書き換えが実施され、変更が恒久的なものになります。後戻りはできないと思いますのでご注意を。

Screenshot 13 08 21 19 07

遷移した画面で、置き換え実行の件数が確認できました。

screenshot 13 08 21 19 59

6: アフィリエイトURLの検索を再度実行

ここで手順「1: アフィリエイトURLの検索」に戻ります。

大方のブログでは、「http://click.linksynergy.com/」で始まるURLを再度検索すると、置き換えは終わったはずなのに、また検索にヒットして出てくるかと思います。

使うツール、アプリの種類、時期などによって、生成したアフィリエイトURLが変化するため、それぞれに対処する必要があるのです。「http://click.linksynergy.com/」を検索して出てこなくなるまで、手順1〜5を繰り返します。

いろいろなURLの形と対処

RD_PARM1、RD_PARM0の引数は、いろいろなケースがあります。

1: アプリ名がないケース

アプリ名がない、IDだけのケースがあります。Replace Patternからは$2がなくなり、Search Patternからは「([^”]+)」がなくなります。

https://itunes.apple.com/jp/app/id$1?mt=8&uo=4&at=99x9xx

2: 「app」じゃなくて「artist」になっているケース

基本的には、基本形と変わりません。URLの「app」が「artist」になっている点に注意。

https://itunes.apple.com/jp/artist/$1/id$2?mt=12&uo=4&at=99x9xx

3: URLが二度出てくるケース

RD_PARM0(青字)、RD_PARM1(赤字)としてURLが二度出てくるケースがあります。

http://click.linksynergy.com/fs-bin/click?id=ks8ekjeukjs6&subid=0&offerid=94348&type=3&tmpid=2192&RD_PARM0=http%3A%2F%2Fitunes.apple.com%2Fjp%2Fapp%2Fnotecube%2Fid657311491%3Fmt%3D8%2526uo%3D4&RD_PARM1=http%3A%2F%2Fitunes.apple.com%2Fjp%2Fapp%2Fnotecube%2Fid657311491%3Fmt%3D8%2526uo%3D4

この場合も、アプリ名の部分を「([^”]+)」と。IDの部分を「([0-9]+)」と置き換えてSearch Patternを作ればOKです。

!http://click.linksynergy.com/fs-bin/click\?id=ks8ekjeukjs6&subid=0&offerid=94348&type=3&tmpid=2192&RD_PARM0=http%3A%2F%2Fitunes.apple.com%2Fjp%2Fapp%2F([^”]+)%2Fid([0-9]+)%3Fmt%3D8%2526uo%3D4&>RD_PARM1=http%3A%2F%2Fitunes.apple.com%2Fjp%2Fapp%2F([^”]+)%2Fid([0-9]+)%3Fmt%3D8%2526uo%3D4!

Replace PatternはRD_PARM0、RD_PARM1のどちらか一つをunescape.appで復元して作る以外は基本と変わらず。

4: 複合パターン

1〜3の複合パターンも出てくると思います。

URLの途中が「artist」で(2のケース)、URLが二度出てくる(3のケース)ケースなど。

応用で頑張ってください。

 - iPad, iPhone, OS X, WordPress, ブログ運営