直URLとアフィリエイトURLって?
アフィリエイト報酬があなたに支払われる仕組み
http://hb.afl.rakuten.co.jp/hgc/[アフィリエイトID]
/?pc=[商品URL(PC)]&m=[商品URL(モバイル)]
※アフィリエイトURLの例(長いので改行しています)
アフィリエイトURLは、提携先企業が商品やサービスを紹介したアフィリエイターを特定するためのアフリエイトIDを含んだURLです。従って、アフィリエイトURLのリンクからの訪問者が商品やサービスを購入するとそのアフィリエイトURLへのリンクを設置したアフィリエイターに報酬が発生する仕組みです。一方、直URLのリンクからの場合には、紹介者が不明になり、報酬は支払われません(実際には、PCで30日、モバイルで7日など、アフィリエイトリンクからの訪問があった場合の権利期間があることが多い為に、直URLへのリンクからの訪問でも報酬が発生することがありますが、ここでは理解を助けるために権利期間は無いとしています)。
権利は権利として放棄しない!それが、アフィリエイトという立派な提携行為に基づくビジネスなんですよ。それは私の言葉であり、その想いのあるページとして見ていただけると幸いです。
PHPでAPIを利用1(前回作成:test.php)の復習
アフリィエイトURLになってないじゃん
前回は、楽天ウェブサービスセンターブログから取得したコードを動かすのにてこずりつつ、ファイル名依存を回避する改良をPHPで施したのでしたね。ところが、商品画像のURLとショップ名のリンク先が直URLという問題が残っているんです。嘘だと思ったら、楽天検索API(test.php)で何か検索して、商品画像やショップ名にマウスを置いてみてくださいね。ブラウザのステータスバーにはリンク先URLが出ますよ。すると「ほんとだ!」ってなる筈!
test.phpのソースを見てみよう
アフィリエイトIDと応答先のPC/モバイルの種別がありませんね
<td width="8%" align="center"><a href="<?=$item['ITEMURL']?>" target="_top"><img src="<?=$item['SMALLIMAGEURL']?>" border=0></a></td>
<td width="47%" align="left"><a href="<?=$item['AFFILIATEURL']?>" target="_top"><font size="-1"><?=$item['ITEMNAME']?></a></td>
<td width="15%" align="right" nowrap> <?=$item['ITEMPRICE']?> 円</td>
<td width="47%" align="left"><a href="<?=$item['SHOPURL']?>" target="_top"><font size="-1"><?=$item['SHOPNAME']?></a></td>
赤部の上が商品画像リンクで、下がショップリンクですが、PHPが実行された後は、
<td width="8%" align="center"><a href="http://item.rakuten.co.jp/book/11228837/" target="_top"><img src="http://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/6151/9784087806151.jpg?_ex=64x64" border=0></a></td>
<td width="47%" align="left"><a href="http://hb.afl.rakuten.co.jp/hgc/0886499f.ab3ebb8a.088649a0.53501179/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Fbook%2F11228837%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Fbook%2Fi%2F14707459%2F" target="_top"><font size="-1">木村拓哉 プレミアムボックス!【木村拓哉×HYS 特製コラボTシャツ付】</font></a></td>
<td width="15%" align="right" nowrap> 8925 円</td>
<td width="47%" align="left"><a href="http://www.rakuten.co.jp/book/" target="_top"><font size="-1">楽天ブックス</font></a></td>
こんなXHTMLになっています。
明らかに、赤部はアフィエイトIDとは無縁のリンク先URLになっています。このままで実運用するのは権利の放棄ですね。そこで、画像リンクとショップリンクにもアフィリエイトリンクを入れる必要があります。
【深〜いかもメモ】ズリズリっとスライダーを右に。・・・pc=とm=がありますよね。これはそれぞれ、PC用とモバイル用のURLの接頭句ですが、製品テキスト用のリンクコードには、PC用とモバイル用が含まれていることが興味深いです。アフィリエイトテキストのURLが入る$item['AFFILIATEURL']には、PC用のデータをリクエストしている場合にもPC用とモバイル用のURLが返されることが見て取れます。覚えておくと良いのかも知れませんよ(?はパラメータの開始マーク,&はパラメータの区切りマークです)。
画像リンクとショップリンクにアフィリエイトURLを追加する
PHPの改造イメージ
<td width="8%" align="center"><a href="http://hb.afl.rakuten.co.jp/hgc/[アフィリエイトID]/?pc=<?=$item['ITEMURL']?>" target="_top"><img src="<?=$item['SMALLIMAGEURL']?>" border=0></a></td>
<td width="47%" align="left"><a href="<?=$item['AFFILIATEURL']?>" target="_top"><font size="-1"><?=$item['ITEMNAME']?></a></td>
<td width="15%" align="right" nowrap> <?=$item['ITEMPRICE']?> 円</td>
<td width="47%" align="left"><a href="http://hb.afl.rakuten.co.jp/hgc/[アフィリエイトID]/?pc=<?=$item['SHOPURL']?>" target="_top"><font size="-1"><?=$item['SHOPNAME']?></a></td>
赤部を挿入することで、画像リンクとショップリンクにアフィリエイトURLが追加できます。但し?pc=部にはご注意ください。?pc=は、PC用のURLを示す接頭句です。リクエストしたデータがモバイルの場合にはここが?m=となります。
PHPでソースの利便性をアップ
/* ---------------- 出力先がPCかモバイルか ---------------------- */
//
$PC_OR_MOBILE = "?pc"; //PC時はこちらを指定 注意:同時に連想構造体の"carrier"を""にする
//$PC_OR_MOBILE = "?m"; //モバイル時はこちらを指定 注意:同時に連想構造体の"carrier"を"1"にする
・(省略)
・
<td width="8%" align="center"><a href="http://hb.afl.rakuten.co.jp/hgc/<?php echo $AFFILIATE_ID; ?>/<?php echo $PC_OR_MOBILE; ?>=<?=$item['ITEMURL']?>" target="_top"><img src="<?=$item['SMALLIMAGEURL']?>" border=0></a></td>
<td width="47%" align="left"><a href="<?=$item['AFFILIATEURL']?>" target="_top"><font size="-1"><?=$item['ITEMNAME']?></font></a></td>
<td width="15%" align="right" nowrap> <?=$item['ITEMPRICE']?> 円</td>
<td width="47%" align="left"><a href="http://hb.afl.rakuten.co.jp/hgc/<?php echo $AFFILIATE_ID; ?>/<?php echo $PC_OR_MOBILE; ?>=<?=$item['SHOPURL']?>" target="_top"><font size="-1"><?=$item['SHOPNAME']?></font></a></td>
最終的には、派生開発やソース利用を考慮し、変数設定のみで対応可能となるよう、PHPの記述を追加しました。
赤が変数設定の追加部分で、どちらをコメントアウトせず生かすかにより、リンクコードに?pc(PC用)と?m(モバイル用)のどちらを反映させるかを設定します。
緑は、リンク先URLに、アフィリエイトIDと、PCまたはモバイル用のURLを示す接頭句をセットさせるPHPの記述です。アフィリエイトIDは、元々$AFFILIATE_IDに定義する仕様ですので、そのまま$AFFILIATE_IDを使用しています。
お試しとソースのダウンロードは次からどうぞ
2012.10.6:$item['AFFILIATEURL']に不正なアフィリエイトIDが返される場合があることを発見したため、上記ダウンロード版に対策を施しました。
※お試しの方は、私のデベロッパーIDとアフィリエイトIDが入っております。また、ダウンロードされた場合には、デベロッパーIDとアフィリエイトIDは入っておりませんので、ご設定ください。尚、お試しや、ダウンロードの結果のいかなる損害に対してもノテータ式−ホームページ作成講座は一切の責任を負わないものと致します。
次のPHPでのAPI利用のテーマ
いよいよ次はAPI利用で取得したデータを整理されたページで見せるページングです。PHPでのAPI開発者の多くが当たる壁だと聞いていますので、是非とも、その壁を破りたいと思っています。どうぞご期待ください。