AMAZON AWS PHP 01 - アマゾンアソシエイトツール

ホームページ作成 徹底実践!無料講座。

AMAZON AWS PHP 01 - アマゾンアソシエイトツール

アマゾンアソシエイトでアフィリエイトをしている人用に作成しました。
動作確認は、ヘテムル で行っています。
PHP5とPEARの「Service_Amazon(Product Advertising API対応のバージョン)」が必要です。
ヘテムル での導入方法は、「設置の準備」で説明しています。

プログラムソース内容の検索条件を変更することで、表示する商品を調整することができます。
文字コードは「UTF-8」です。アフィリエイトでも「UTF-8」が便利ですので、ホームページを作成する際の文字コードは「UTF-8」で作成することをオススメします。

動作サンプルは、無理やり2列にしてるんで、ガッチャガチャしてますが、レイアウトは好みに合わせて変更してください。

動作サンプル

0102030405060708091011121314

たにぐち まこと
価格 2604 円
小川 雄大
価格 3780 円
谷藤賢一
価格 1890 円
鈴木 憲治
価格 2730 円
星野 香保子
価格 2814 円
西沢 直木
価格 3990 円
Jack D. Herrington
価格 3780 円
クジラ飛行机
価格 2520 円
Rasmus Lerdorf
価格 3990 円
GIJOE
価格 1890 円

0102030405060708091011121314



設置の準備

STEP01 PHP5で動くようにしよう!

いろいろありまして、PHP5で動かす必要があるので、ヘテムル では、「.htaccess」を作って、
AddHandler php5-script .php
を加えてください。コピペするだけです。これでヘテムル で、PHP5が動きます。
ちなみに新しいサーバーの方は、最初から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プログラムと同じ階層(フォルダ内)に、アップロードしてください。

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
// 設定 ///////////////////////////////////////////////
// アクセスキー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";

アクセスキーID・シークレットアクセスキー

アマゾンのアソシエイト管理画面の「Product Advertising API」から、アカウント作成して取得してください。アソシエイトの申込とは別になりますので、アクセスキーIDを持っていない人は、新規申請となります。取得画面は、全て英語ですが、簡単だと思います。

アソシエイトタグ

使っているアソシエイトIDを入れてください。アマゾンアソシエイト管理画面の「○○○○-22」みたいなやつです。トラッキングIDのところでも確認できると思います。

バージョン

ECSのバージョンです。2010年7月現在では、「2009-03-31」が一番新しいようです。
特に変更する必要はないと思います。

サーチインデックス

検索の対象とするストアを指定します。
全てのストア Blended
和書 Books
洋書 ForeignBooks
エレクトロニクス Electronics
ホーム&キッチン Kitchen
ミュージック Music
CDなどの中の曲名 MusicTracks
クラシック音楽 Classical
DVD DVD
VHS VHS
DVD&VHS Video
 
PCソフト Software
ゲーム VideoGames
おもちゃ Toys
ホビー Hobbies
スポーツ&アウトドア SportingGoods
ヘルス&ビューティー HealthPersonalCare
時計 Watches
ベビー&マタニティー Baby
アパレル Apparel
コスメ Beauty
食品&飲料 Grocery
リストは2010年7月現在のものです。
ネットで情報を集めたので、これ以外にもいろいろあるかもしれません。

レスポンスグループ

アマゾンから引っ張ってくるデータの種類なんかを指定するところなんです。
Small 商品に関する最小限の情報。ASIN、URL、商品名、制作者、商品分類など。
Medium 商品に関する中くらいの情報。
Large 商品に関する沢山の情報。アマゾンの商品詳細のような情報が得られる。
ItemIds 商品のASIN、商品数、ページ数。
Images 商品画像のURL、大、中、小の3種類のサイズあり。
Reviews カスタマーレビュー
Tracks CDの曲目リスト
SalesRank アマゾンでの売上ランキング
BrowseNodes 商品が属する分類情報
Similarities 関連商品
他にも相当あるようですが、興味がある方は調べてみてください。
複数のデータが必要な場合は、「Small,Images」のような指定も可能です。

キーワード

検索したいキーワードです。商品が持っている情報のどの部分を見てるのか、いまいち分からないですが、キーワードに関連した商品が出てきます。

サーチインデックスで「Blended」を指定した場合は、キーワードのみ指定です。

ソート

商品の並び順を指定できます。商品ジャンルによって指定できる値が違いますが、とりあえず、アフィリエイトでは、売上ランキング「salesrank」をオススメします。
売上ランキング salesrank
価格 安→高 pricerank、price のいずれか
価格 高→安 inverse-pricerank、-pricerank、-price のいずれか
日付 新→古 daterank、-orig-rel-date、-release-date のいずれか
日付 古→新 origi-rel-date、release-date のいずれか
タイトル 昇順 titlerank
タイトル 降順 -titlerank
Booksなどは、指定しても日付の古い順から並べることはできません。

ブラウズノード

商品カテゴリー(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」がブラウズノードだとわかります。

パワー

パワーパラメーターは、複雑な検索条件を指定できます。
ただし、サーチインデックスが「Books」もしくは、「ForeignBooks」の場合のみ可能です。
それ以外は、空欄にしてください。
keywords: キーワード
title: 商品名
subject: 分類
author: 著者
 
publisher: 出版社
asin: 商品のASIN
language: 言語
これだけ見ると、他のパラメーターだけあれば、十分検索できるんじゃないかと思いますが、パワーパラメーターは、どちらかというと組み合わせて力を発揮するようです。

たとえば、
title: not キーワード
と指定すれば、キーワードが商品名に含まれている商品は、排除されます。
title: not キーワード1 and title: not キーワード2
と指定すれば、キーワード1とキーワード2が商品名に含まれている商品は排除されます。
title: キーワード1 or title: キーワード2
と指定すれば、キーワード1もしくは、キーワード2を含む商品を表示します。

いろいろと組み合わせることで、表示する商品をコントロールしてください。

タイトル

商品名を検索するキーワードです。
シリーズ化されている商品や、雑誌などに使うと便利です。部分一致ですので、たとえば、「PHP」というキーワードを入れると、商品名にPHPというキーワードが入った商品が表示されます。

ページ数

半角数字でページ切り替えの最大表示数を入力してください。
すべてのページを表示したい場合は、ページ切り替えの部分をカスタマイズしてください。

注意事項

このプログラムは、主に書籍を対象に作っていますので、サーチインデックスが「Books」以外の場合、以下の事に注意してください。

◆ サーチインデックスが「Blended」の場合、指定できるのは、キーワードのみ。

◆ Powerを指定できるのは、サーチインデックスが「Books」「ForeignBooks」の場合のみ。
◆ このプログラムで設定できる検索パラメーター以外にも、パラメーターが存在します。

他にもいろいろとルールがあるようですので、詳しくは公式リファレンスを見てください。

新着情報 / 一覧

2010年07月26日
アマゾンアフィリエイトツール「アマゾンツール」公開しました!
アマゾンのアソシエイトでアフィリエイトしている方向けに簡単にアフィリエイトリンクが貼れるツールを公開しました!いろんなレイアウトが作れるので、ブログにもウェブサイトにも最適です。
2010年07月17日
アマゾンアソシエイトツール01公開!
「AMAZON AWS PHP 01」を公開してみました。アマゾンでアフィリエイトしている方は見てみてください!
2010年07月17日
我流ホームページ作成 徹底実践!無料講座オープン
サイト名通り我流ですが、参考程度にご覧頂けたら、幸いです。

ホームページ運営必須サイト

YAHOO!サイトエクスプローラー
サイト作ったらまず無料登録すべし!YAHOO!に自分のサイトを巡回、登録してもらえます。被リンク数やインデックスされたページ数も確認できます。
Googleウェブマスターツール
当然こちらも無料登録するべし!Googleに自分サイトを知ってもらいましょう。被リンク数やインデックス数も確認できます。
Ferret PLUS / フェレットプラス
無料で使えるSEO・SEMツール

使えますこのサイト

格安ドメイン取得サービス─ムームードメイン─
やっぱり安い!複数ドメインを管理するのも機能が充実していて使いやすい!
お財布にやさしい、導入コスト0円のレンタルサーバー
アクセスの多いメインサイトやガチャガチャプログラムが動くサイトを作るなら、カゴヤの専用サーバーがオススメ!
独自ドメイン追加無制限! マルチドメイン対応サーバー『ヘテムル』
サテライトサイトやら、SEO実験サイト、アフィリエイトサイトを作るなら、ドメイン追加無制限のヘテムルがオススメ!

最新記事一覧


我流ホームページ作成

カテゴリー

アマゾンアソシエイトツール



モルディブ / ジョンガリアーノ / ベーグル / 福岡脱毛 / プリンターインク・トナーカートリッジ / 商品撮影・モデル撮影 / ヘンケルス / ISD個性心理学スクール /
Copyright (C) 2010 我流ホームページ作成 徹底実践!無料講座。 All Rights Reserved.