AMAZON AWS PHP 01 - アマゾンアソシエイトツール
アマゾンアソシエイトでアフィリエイトをしている人用に作成しました。
動作確認は、ヘテムル
で行っています。
PHP5とPEARの「Service_Amazon(Product Advertising API対応のバージョン)」が必要です。
ヘテムル
での導入方法は、「設置の準備」で説明しています。
プログラムソース内容の検索条件を変更することで、表示する商品を調整することができます。
文字コードは「UTF-8」です。アフィリエイトでも「UTF-8」が便利ですので、ホームページを作成する際の文字コードは「UTF-8」で作成することをオススメします。
動作サンプルは、無理やり2列にしてるんで、ガッチャガチャしてますが、レイアウトは好みに合わせて変更してください。
動作確認は、ヘテムル
PHP5とPEARの「Service_Amazon(Product Advertising API対応のバージョン)」が必要です。
ヘテムル
プログラムソース内容の検索条件を変更することで、表示する商品を調整することができます。
文字コードは「UTF-8」です。アフィリエイトでも「UTF-8」が便利ですので、ホームページを作成する際の文字コードは「UTF-8」で作成することをオススメします。
動作サンプルは、無理やり2列にしてるんで、ガッチャガチャしてますが、レイアウトは好みに合わせて変更してください。
動作サンプル
設置の準備
STEP01 PHP5で動くようにしよう!
いろいろありまして、PHP5で動かす必要があるので、ヘテムル
では、「.htaccess」を作って、
で、PHP5が動きます。
ちなみに新しいサーバーの方は、最初からPHP5が動くようです。
ファイルの拡張子を.php5 にするだけでもPHP5で動くようです。
AddHandler php5-script .php
を加えてください。コピペするだけです。これでヘテムル
ちなみに新しいサーバーの方は、最初からPHP5が動くようです。
ファイルの拡張子を.php5 にするだけでもPHP5で動くようです。
STEP02 PEAR :: Services_Amazon を手に入れるのだ!
PEARライブラリのServices_Amazonをダウンロードして、インストールしてください。
Services_Amazon 0.8.0のダウンロード

ダウンロードが完了したら、解凍してください。
Services_Amazonフォルダの中に、Services_Amazonフォルダと、package.xmlがありますので、Services_Amazonフォルダの名前を「Services」に変更して、「Services」フォルダだけを、下記のPHPプログラムと同じ階層(フォルダ内)に、アップロードしてください。

Services_Amazon 0.8.0のダウンロード


Services_Amazonフォルダの中に、Services_Amazonフォルダと、package.xmlがありますので、Services_Amazonフォルダの名前を「Services」に変更して、「Services」フォルダだけを、下記のPHPプログラムと同じ階層(フォルダ内)に、アップロードしてください。

STEP03 ページ切り替えのスタイルシート
ここは、あまり必要ないのですが、サンプルプログラムのページ切り替え部分には、スタイルシートをつかっていますので、その内容を書いておきます。
すべてのページを表示できるように作ろうかと思ったんですが、時間がなかったので、とりあえず作ったものです。
.page_tag_select{
display:block;
padding:1px 10px 1px 10px;
float:left;
text-align:center;
font-size:16px;
margin:0px 5px 10px 0px;
background:#CEECFF;
border-right:1px solid #EEE;
border-bottom:1px solid #EEE;
border-right:1px solid #CCC;
border-bottom:1px solid #CCC;
}
.page_tag{
display:block;
padding:1px 10px 1px 10px;
float:left;
text-align:center;
font-size:16px;
margin:0px 5px 10px 0px;
background:#FAFAFA;
border-right:1px solid #EEE;
border-bottom:1px solid #EEE;
border-right:1px solid #CCC;
border-bottom:1px solid #CCC;
color:#CCC;
}
.page_tag:hover{
background:#CEECFF;
}
プログラム
下のプログラムをPHPファイルにコピペして、設定を自分の出したい商品に合わせて変更してください。設定のやり方は、「設定の方法」を見てください。
PHPファイルの文字コードはUTF-8でないといけません。UTF-8ではない場合は、プログラムを書き加えて、お使いの文字コードに合うようにしてください。
PHPファイルの文字コードはUTF-8でないといけません。UTF-8ではない場合は、プログラムを書き加えて、お使いの文字コードに合うようにしてください。
<?php
// 設定 ///////////////////////////////////////////////
// アクセスキーID
$access_key_id="◆◆◆";
// シークレットアクセスキー
$secret_access_key="◆◆◆";
// アソシエイトタグ
$associatetag="◆◆◆";
// バージョン
$version="2009-03-31";
// サーチインデックス
$search_index="◆◆◆";
// レスポンスグループ
$response_group="Medium,Reviews";
// キーワード
$keywords="◆◆◆";
// ソート - 空欄可
$sort="◆◆◆";
// ブラウズノード - 空欄可
$browse_node="◆◆◆";
// パワー - 空欄可
$power="◆◆◆";
// タイトル - 空欄可
$title_key="◆◆◆";
// ページ数設定
$max_page="◆◆◆";
// Amazonサービス情報取得 ////////////////////////////////////////////////
include_once 'Services/Amazon.php';
$amazon = new Services_Amazon($access_key_id,$secret_access_key,$associatetag);
$amazon->setLocale('JP');
// 表示ページ数取得
if(!$_GET[page]){ $_GET[page]=1; }
$page=$_GET[page];
// 検索条件
$option=array(
'Keywords' => $keywords,
'Sort' => $sort,
'ResponseGroup' => $response_group,
'Version' => $version,
'BrowseNode' => $browse_node,
'ItemPage' => $page,
'Power' => $power,
'Title' => $title_key,
);
// 商品情報取得
$item_list=$amazon->ItemSearch($search_index,$option);
// ページの切り替え
$total_page=$item_list["TotalPages"];
if($total_page>=$max_page){ $total_page=$max_page; }
print "<div>";
for($i=1; $i<=$total_page; $i++){
if($i==$_GET[page]){ $class="page_tag_select"; }else{ $class="page_tag"; }
$num=str_pad($i,2,0,STR_PAD_LEFT);
print<<<DISP
<a href="{$PHP_SELF}?page=$i" class="$class">$num</a>
DISP;
}
print "</div><br clear=\"all\" />";
// 商品表示
foreach($item_list["Item"] as $key=>$value){
$title=$value["ItemAttributes"]["Title"];
$author=$value["ItemAttributes"]["Author"][0];
$img=$value["MediumImage"]["URL"];
$url=$value["DetailPageURL"];
$price=$value["OfferSummary"]["LowestNewPrice"]["Amount"];
$ar=$value["CustomerReviews"]["AverageRating"];
if($ar){
$ar=str_replace(".","-",$ar);
$ar="<div>おすすめ平均"."<img src=\"http://g-images.amazon.com/images/G/01/detail/stars-$ar.gif\" border=\"0\" /></div>";
}else{ $ar=""; }
$review=$value["CustomerReviews"]["Review"];
if($img){
print<<<DISP
<div style="width:300px; float:left; height:250px; margin:0px 8px 30px 0px;">
<table border="0" cellspacing="0" cellpadding="0"><tr>
<td width="120" height="180"><a href="$url" target="_blank"><img src="$img" border="0" /></a></td>
<td style="padding-left:10px;">
<div><a href="$url" target="_blank" style="font-size:14px;">$title</a></div>
<div>$author</div>
<div>価格 $price 円</div>
$ar
</td>
</tr></table>
DISP;
for($i=0; $i<sizeof($review); $i++){
$summary=$review[$i]["Summary"];
if($review[$i][Rating]<4){ continue; }
$rating=$review[$i][Rating];
$rating="<div>$summary<img src=\"http://g-images.amazon.com/images/G/01/detail/stars-$rating-0.gif\" border=\"0\" /></div>";
print<<<DISP
$rating
DISP;
}
print<<<DISP
</div>
DISP;
}
}
print "<br clear=\"all\" />";
print "<div>";
for($i=1; $i<=$total_page; $i++){
if($i==$_GET[page]){ $class="page_tag_select"; }else{ $class="page_tag"; }
$num=str_pad($i,2,0,STR_PAD_LEFT);
print<<<DISP
<a href="{$PHP_SELF}?page=$i" class="$class">$num</a>
DISP;
}
print "</div><br clear=\"all\" />";
?>
設定
プログラムの設定部分について、それぞれ説明しています。
設定には、空欄でも可能なものがありますので、プログラム内に「空欄可」と書いています。
とりあえず、動かしたい方は、動作サンプルと同じ設定でサーバーにアップしてみてください。
設定には、空欄でも可能なものがありますので、プログラム内に「空欄可」と書いています。
とりあえず、動かしたい方は、動作サンプルと同じ設定でサーバーにアップしてみてください。
$search_index="Books";
$response_group="Large";
$keywords="PHP";
$sort="salesrank";
$browse_node="492352";
$power="";
$title_key="PHP";
$max_page="14";
$response_group="Large";
$keywords="PHP";
$sort="salesrank";
$browse_node="492352";
$power="";
$title_key="PHP";
$max_page="14";
アクセスキーID・シークレットアクセスキー
アマゾンのアソシエイト管理画面の「Product Advertising API」から、アカウント作成して取得してください。アソシエイトの申込とは別になりますので、アクセスキーIDを持っていない人は、新規申請となります。取得画面は、全て英語ですが、簡単だと思います。
アソシエイトタグ
使っているアソシエイトIDを入れてください。アマゾンアソシエイト管理画面の「○○○○-22」みたいなやつです。トラッキングIDのところでも確認できると思います。
バージョン
ECSのバージョンです。2010年7月現在では、「2009-03-31」が一番新しいようです。
特に変更する必要はないと思います。
特に変更する必要はないと思います。
サーチインデックス
検索の対象とするストアを指定します。
リストは2010年7月現在のものです。
ネットで情報を集めたので、これ以外にもいろいろあるかもしれません。
|
|
ネットで情報を集めたので、これ以外にもいろいろあるかもしれません。
レスポンスグループ
アマゾンから引っ張ってくるデータの種類なんかを指定するところなんです。
他にも相当あるようですが、興味がある方は調べてみてください。
複数のデータが必要な場合は、「Small,Images」のような指定も可能です。
| Small | 商品に関する最小限の情報。ASIN、URL、商品名、制作者、商品分類など。 |
| Medium | 商品に関する中くらいの情報。 |
| Large | 商品に関する沢山の情報。アマゾンの商品詳細のような情報が得られる。 |
| ItemIds | 商品のASIN、商品数、ページ数。 |
| Images | 商品画像のURL、大、中、小の3種類のサイズあり。 |
| Reviews | カスタマーレビュー |
| Tracks | CDの曲目リスト |
| SalesRank | アマゾンでの売上ランキング |
| BrowseNodes | 商品が属する分類情報 |
| Similarities | 関連商品 |
複数のデータが必要な場合は、「Small,Images」のような指定も可能です。
キーワード
検索したいキーワードです。商品が持っている情報のどの部分を見てるのか、いまいち分からないですが、キーワードに関連した商品が出てきます。
サーチインデックスで「Blended」を指定した場合は、キーワードのみ指定です。
サーチインデックスで「Blended」を指定した場合は、キーワードのみ指定です。
ソート
商品の並び順を指定できます。商品ジャンルによって指定できる値が違いますが、とりあえず、アフィリエイトでは、売上ランキング「salesrank」をオススメします。
Booksなどは、指定しても日付の古い順から並べることはできません。
| 売上ランキング | salesrank |
| 価格 安→高 | pricerank、price のいずれか |
| 価格 高→安 | inverse-pricerank、-pricerank、-price のいずれか |
| 日付 新→古 | daterank、-orig-rel-date、-release-date のいずれか |
| 日付 古→新 | origi-rel-date、release-date のいずれか |
| タイトル 昇順 | titlerank |
| タイトル 降順 | -titlerank |
ブラウズノード
商品カテゴリー(BrowseNodeコード)を指定できます。
ブラウズノードの調べ方なんですが、各カテゴリーのアドレス、たとえば和書であれば、
http://www.amazon.co.jp/%E6%9C%AC/b/ref=topnav_storetab_b?ie=UTF8&node=465392
というアドレスができますが、「node=465392」の「465392」が、そのカテゴリーのノードのようです。
ただ、階層になればなるほど、アドレスにいろんな変数が加わって、さらに「node=」というのがないようなアドレスになったりもするようですので、各商品の商品詳細にあるカテゴリーごとの売上ランキングを見るのが一番いいように思います。
商品詳細には中段くらいに下記のような、登録されているカテゴリー別のランキングがありますので、ノードを調べたいカテゴリーをクリックするとわかります。

たとえば、演劇・舞台をクリックすると、
http://www.amazon.co.jp/gp/bestsellers/books/492252/ref=pd_zg_hrsr_b_3_3_last
というアドレスになりますので、「492252」がブラウズノードだとわかります。
ブラウズノードの調べ方なんですが、各カテゴリーのアドレス、たとえば和書であれば、
http://www.amazon.co.jp/%E6%9C%AC/b/ref=topnav_storetab_b?ie=UTF8&node=465392
というアドレスができますが、「node=465392」の「465392」が、そのカテゴリーのノードのようです。
ただ、階層になればなるほど、アドレスにいろんな変数が加わって、さらに「node=」というのがないようなアドレスになったりもするようですので、各商品の商品詳細にあるカテゴリーごとの売上ランキングを見るのが一番いいように思います。
商品詳細には中段くらいに下記のような、登録されているカテゴリー別のランキングがありますので、ノードを調べたいカテゴリーをクリックするとわかります。

たとえば、演劇・舞台をクリックすると、
http://www.amazon.co.jp/gp/bestsellers/books/492252/ref=pd_zg_hrsr_b_3_3_last
というアドレスになりますので、「492252」がブラウズノードだとわかります。
パワー
パワーパラメーターは、複雑な検索条件を指定できます。
ただし、サーチインデックスが「Books」もしくは、「ForeignBooks」の場合のみ可能です。
それ以外は、空欄にしてください。
これだけ見ると、他のパラメーターだけあれば、十分検索できるんじゃないかと思いますが、パワーパラメーターは、どちらかというと組み合わせて力を発揮するようです。
たとえば、
いろいろと組み合わせることで、表示する商品をコントロールしてください。
ただし、サーチインデックスが「Books」もしくは、「ForeignBooks」の場合のみ可能です。
それ以外は、空欄にしてください。
|
|
たとえば、
title: not キーワード
と指定すれば、キーワードが商品名に含まれている商品は、排除されます。
title: not キーワード1 and title: not キーワード2
と指定すれば、キーワード1とキーワード2が商品名に含まれている商品は排除されます。
title: キーワード1 or title: キーワード2
と指定すれば、キーワード1もしくは、キーワード2を含む商品を表示します。いろいろと組み合わせることで、表示する商品をコントロールしてください。
タイトル
商品名を検索するキーワードです。
シリーズ化されている商品や、雑誌などに使うと便利です。部分一致ですので、たとえば、「PHP」というキーワードを入れると、商品名にPHPというキーワードが入った商品が表示されます。
シリーズ化されている商品や、雑誌などに使うと便利です。部分一致ですので、たとえば、「PHP」というキーワードを入れると、商品名にPHPというキーワードが入った商品が表示されます。
ページ数
半角数字でページ切り替えの最大表示数を入力してください。
すべてのページを表示したい場合は、ページ切り替えの部分をカスタマイズしてください。
すべてのページを表示したい場合は、ページ切り替えの部分をカスタマイズしてください。
注意事項
このプログラムは、主に書籍を対象に作っていますので、サーチインデックスが「Books」以外の場合、以下の事に注意してください。
◆ サーチインデックスが「Blended」の場合、指定できるのは、キーワードのみ。
◆ Powerを指定できるのは、サーチインデックスが「Books」「ForeignBooks」の場合のみ。
◆ このプログラムで設定できる検索パラメーター以外にも、パラメーターが存在します。
他にもいろいろとルールがあるようですので、詳しくは公式リファレンスを見てください。
◆ サーチインデックスが「Blended」の場合、指定できるのは、キーワードのみ。
◆ Powerを指定できるのは、サーチインデックスが「Books」「ForeignBooks」の場合のみ。
◆ このプログラムで設定できる検索パラメーター以外にも、パラメーターが存在します。
他にもいろいろとルールがあるようですので、詳しくは公式リファレンスを見てください。










