サイト内の直リンクを一括でアフィリエイトリンクに作成変更してみた

参照先にリンクを貼っていたら、リンク先がASP(アフィリエイトサービスプロバイダ)に登録した。そこで、直リンクをアフィリエイトリンクに変更したい時ってありますよね。

最近、「食べログ」さんが、ASPのバリューコマースに登録されたんです。管理人は飲食店を紹介するブログを運営していて、食べログにたくさん直リンクを貼っていたので、アフィリエイトリンクに変換することにしたんです。


google広告

LinkSwitch(リンクスイッチ 元オートマイリンク)を使ってみたいけど。。。

まず、バリューコマースには LinkSwitch(リンクスイッチ)という便利な機能があります。これは、ヘッダー部分に指定のjavascriptコードを貼るだけで、ECサイトへの直リンクを、すべてアフィリエイトリンクに変更してくれるというもの。(もちろん提携と登録が必須)

まさしく、今回のケースにうってつけのサービス。手間もかからないしありがたい!
・・・と飛びつきたいところですが、一つ懸念があります。

Googleのリンク評価基準に抵触するのではないか?という問題。(参考:特定のリンクに対して rel=”nofollow” を使用する – Search Console ヘルプ

ネットで情報を探すと、そんなの気にしないという人と、判断が微妙で設置に踏み切れないという人に分かれるようですね。

これは運営者の考え方次第だと思いますが、管理人は後者の考えです。全く問題ないという確実な見解が出ればやりますが、イマイチ踏み切れないというのが本音。

そこで以下の手順で直リンクをアフィリエイトリンクに貼り換えることにしました。

  1. プラグインで直リンクをショートコードに変換する
  2. ショートコードからアフィリエイトリンクに変換するコードを書く

直リンクをアフィリエイトリンクに変更するには?

直リンクの基本構造は、こんな感じですよね。

<a href="(リンクurl)" target="blank">(リンク名)</a>

バリューコマースのアフィリエイトリンク(Myリンク)は以下の通り。

<a href="//ck.jp.ap.valuecommerce.com/servlet/referral?sid=(あなたに割り当てられた番号)&pid=(この広告コードの番号)&vc_url=(エンコードされたリンクurl)" target="_blank" rel="nofollow"><img src="//ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=(あなたに割り当てられた番号)&pid=(この広告コードの番号)" height="1" width="0" border="0">(リンク名)</a>

sid=の番号は、あなたに割り当てられた番号。pid=の番号は、この広告コードに割り当てられた番号。リンクurlはエンコード化しないといけません。

まずはバリューコマースのマイリンク機能を使って、お試しのアフィリエイトリンクを作りましょう。そしてsid(あなたに割り当てられた番号)とpid(この広告コードの番号)を確認して記録しておきます。

ショートコードからアフィリエイトリンクに変換するコードを書く

次にショートコードからアフィリエイトリンクに変換するコードを書きます。本文中に書くショートコードは以下の通り

[affiliatelinkhyojivc pid=(割り当てられた広告コード番号) url=(ECサイトのurl) alinkname='(リンク名)']

次に、テーマ内のfuncitons.phpに以下のコードを書き込みます。(あなたのsid番号)部分を変更してください。

//▼▼アフィリエイトリンク(バリュコマ)変換▼▼
function affiliatelinkhenkanvc($arrparameter) {
 $defparameter = array(
  'pid'=> '',
  'url'=>'',
  'alinkname'=>''
 );
 $optparameter = shortcode_atts($defparameter,$arrparameter);
 $optpid = $optparameter['pid'];
 $opturl = $optparameter['url'];
 $optalinkname = $optparameter['alinkname'];
$affiliatelinkurl = urlencode($opturl);
$hyojiaffiliatelink = "<a href=\"//ck.jp.ap.valuecommerce.com/servlet/referral?sid=(あなたのsid番号)&pid=$optpid&vc_url=$affiliatelinkurl\" target=\"_blank\" rel=\"nofollow\"><img src=\"//ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=(あなたのsid番号)&pid=$optpid\" height=\"1\" width=\"0\" border=\"0\">$optalinkname</a>";
return $hyojiaffiliatelink;
}
add_shortcode('affiliatelinkhyojivc','affiliatelinkhenkanvc');
//▲▲アフィリエイトリンク(バリュコマ)変換▲▲

テスト投稿でショートコードを貼ってみて、正常に作動するか確認します。ちゃんとアフィリエイトリンクが出来ていれば成功です。

プラグイン(search regex)で、直リンクをショートコードに一括変換する

次にプラグイン sarch regex(Search Regex — WordPress プラグイン)を使って、直リンクをショートコードタグに貼り換えます。管理人は食べログのリンクを貼り換えたので以下のような感じ

変更前1:|<a href="(https://tabelog.com/.+)" target="blank">(.+)</a>|
↓
変更後1:[affiliatelinkhyojivc pid=(広告コードの番号) url=\1 alinkname='\2']

変更前2:|<a href="(https://tabelog.com/.+)">(.+)</a>|
↓
変更後2:[affiliatelinkhyojivc pid=(広告コードの番号) url=\1 alinkname='\2']

zzz001

一度変換してしまうと元に戻せませんので、

  1. バックアップを取る
  2. 変更後のショートコードを一つだけ手動で変更してみて、動作が問題ないかテストする

をやった上で、一括変換するのがおすすめです。

管理人はchromeのプラグインcreat link(Create Link – Chrome ウェブストア)を使って直リンクを作っていました、食べログはページタイトルの末尾に”[食べログ]”と入ってます。リンク名のこの記述が問題で、(ショートコードの”[]”とかぶる)上手く作動しませんでした。そこで、上記操作の前に

変更前:[食べログ]
↓
変更後:食べログ

で一括変換した後に上記のショートコード一括変換を行っています。

カスタム投稿の内容がsearch regexでは変換できない

search regexは、通常投稿と固定ページの変更はできますが、カスタム投稿の内容を変換することができません。

Search Regexでカスタム投稿の本文が置き換わらない | 西沢直木のIT講座

こちらの内容を参考にして、search regexのファイル(search-regex/searches/post_content.php)を一時的に書き換えて変換を行い、変換後は元に戻しています。カスタム投稿の直リンクを変換したい方はご参考に。

この方法のメリット

この方法は、手間はかかりますが2つのメリットがあります。

ECサイトがマイリンクに対応していれば、簡単にアフィリエイトリンクを作れる

ECサイトがマイリンク対応なら同じ方法で簡単にアフィリエイトリンクを作ることができます。クロムブラウザを使っていれば、Create Linkなどを使って、右クリック一発でアフィリリンクを作れるのでらくちんです。

同じバリューコマース登録のECサイトなら、pidの番号を変更するだけでいいし、マイリンクと同じような機能がある他のASP(a8やアクセストレードなど)でも、functions.phpの中身を変えれば、アフィリエイトリンクを作ることができます。

もう一つのメリットは、ECサイトがアフィリエイトをやめた場合、簡単に直リンクに戻せてリンク切れを防げること。search regexを使って

変更前:|\[affiliatelinkhyojivc pid=(広告コードの番号) url=(.+?) alinkname='(.+?)'\]|
↓
変更後:<a href="\1" target="blank">\2</a>

と変換すれば元通りです。

感謝:正規表現の記述は以下の2サイトを参考にしました。ありがとうございます。

google広告

コメントを残す

*

このページの先頭へ