トラッキング方法について 2006/04/26版

更新履歴

2006.04.26 ライブラリのバグ修正・テストモード追加
2006.04.29 ライブラリのバグ修正
2006.06.30 記述ミス修正(サーバー間通信用のバナークリック時URL付加パラメーターを ref_useridとref_siteidからaff_useridとaff_siteidに)



○トラッキングシステムの組み込み方法について

貴サイト側で売り上げがあった時に、それを弊社サーバーへ通知する方法として次の二つを用意しています。


1. IMGタグによる方法

ユーザーの購入決済後の画面に専用の空画像のIMGタグを埋め込んでいただく方法。HTMLに埋め込まれた不可視の空画像タグを通じて、ユーザーのブラウザから弊社サーバーにアクセスすることになります。

メモ IMGタグ方式によるトラッキングの流れ

最初にユーザーがバナーをクリックした時、ユーザーのPCには、どのサイトでバナーをクリックしたのかを示す
Cookieがセットされます。
購入後画面で空画像を表示させる時に、そのクッキー情報が弊社サーバーに送信されるので、それを元にして
どのサイトに貼ってあったバナーをクリックして貴サイトに行き購入したのかがわかります。

2. サーバー間通信で送信する方法

御社サーバー側より、HTTPまたはHTTPSのPOSTメソッドで、弊社サーバーに売り上げ通知のアクセスしていただく方法。
(バックグラウンドでの、御社サーバーから弊社サーバーへのアクセスになります。)

1番目のIMGタグの方が実装は簡単ですが、例えば、ユーザーの毎月の契約更新を自動引き落としで行っている場合などは対応できないというデメリットがあります。

初回購入時だけIMGタグ方式にして、2回目以降はサーバー間通信で通知する方法も可能ですが、
若干の制限があります。(後述)


 

○IMGタグの記述方法

IMGタグは次のように、URL中に各パラメーターを挿入する形式になります。

(記述例)

<img src="https://affiliate.fc2.com/tracking/tracking_img.php?shopid=26&uname=tarou&email=tarou%40hogehoge.com
& amount_y=1980&unique_id=100&ts=20060228185000&recurring=0&item_code=sample1&unit_num=1" width="1" height="1">

(表示上、改行していますが、実際には改行を入れないで1行で記述してください)

(タグを作成するPHP用のライブラリを用意しています。コメント部分に使用方法を書いていますので
参考にしてください。ダウンロード

[各パラメーターの意味]


(必須パラメーター)
shopid ショップID
弊社が発行するID番号。
unique_id ユニークな文字列を入れる。半角80文字まで。記号使用可。
(後で承認の時にこの番号を参照すると便利。値が重複しても特に問題は無い。)

amount_y 購入金額 (円)
amount_d

購入金額 (ドル)

[amount_y][amount_d] は、どちらか片方があればいい。0円の時はamount_y=0とする。

 

(省略可能パラメーター)

下記のパラメーターは省略可能ですが、承認する時の確認作業をしやすくしたり、
ユーザーの不正行為を防ぐためにも、ご利用になられることを推奨します。

uname 購入者のユーザー名。32文字以内の半角英数字。重複しても特に問題無い。
email 購入者のメールアドレス。
recurring 新規時は0。継続時は1。省略した時は新規とみなす。
item_code 任意の商品コードまたは商品名。32文字以内の半角英数字。
unit_num 商品個数。
ts

IMGタグの発行時刻(日本時間)。yyyymmddhhmmss形式
(例: 2005年6月26日 14時30分25秒は 20050626143025 となる)。
この発行時刻から1時間以上経過してからのアクセスは無視するようにしている。

ユーザーが購入完了画面のHTMLをローカルファイルに保存して、後で再び表示させると
その都度、トラッキング通知が発生するので、承認作業でキャンセルする手間がかかるが、
このパラメーターを入れておけばそれを防止できる。

sh

不正防止用ハッシュ値。
これがあるとユーザーによる金額・ユーザー情報等の改竄・偽造トラッキングを防止できる。

各パラメーターを下記のように文字列として連結した値のSHA1値になる。

sha1( (各ショップ別のパスワード) + shopid + unique_id + uname + email + amount_y + amount_d + ts + recurring + item_code + unit_num )

省略したパラメーターは空文字のままでいい。また、SHA1なので値は40文字になるが、頭から16文字までに切り詰めてもいい。

ライブラリを使用する場合は、これらの値は自動で設定されます。


テストモード


emailを test@fc2.com にするか、URLパラメーター末尾に &test=on と加えるとテストモードになります。
テストモードで作成したタグURLをブラウザで開くとエラーメッセージ等を確認できるようになり、バナーをクリックしていない
状態でも売上が登録されてオーナー管理画面で確認できるようになります。


 

○サーバー間通信でのデータ送信方法

(IMGタグ方式にする場合は、ここから先は不要ですので読み飛ばしても大丈夫です。)

下記のパラメーターを、https(またはhttp)://affiliate.fc2.com/tracking/tracking_post.php にPOSTメソッドで送信してください。

(サーバー間通信を行うPHP用のライブラリを用意しています。コメント部分に使用方法を書いていますので
参考にしてください。ダウンロード


(必須パラメーター)
shopid ショップID
弊社が発行するID番号。
unique_id ユニークな文字列を入れる。半角80文字まで。記号使用可。
(後で承認の時にこの値を参照すると便利。値が重複しても特に問題は無い。)
amount_y 購入金額 (円)
amount_d

購入金額 (ドル)

[amount_y][amount_d] は、どちらか片方があればいい。0円の時はamount_y=0とする。

ref_userid バナークリック時にショップ側に渡していたuserid (後述)
ref_siteid バナークリック時にショップ側に渡していたsiteid (後述)

(省略可能パラメーター)
uname 購入者のユーザー名。32文字以内の半角英数字。重複しても特に問題無い。
email 購入者のメールアドレス。
recurring 新規時は0。継続時は1。新規時は
item_code 商品コードまたは商品名。32文字以内の半角英数字。
unit_num 商品個数。
ip ユーザーのアクセス元IPアドレス。COOKIEから紹介元を特定できなかった時は、
これを元に紹介元の追跡を試みる。また、不正行為のチェックにも使える。

前もって御社サーバーのホスト名かIPアドレスを登録していた場合は以下のパラメーターは不要だが、
登録外のホストから送信する場合は、passwd か sh のどちらかを送信する必要がある。
passwd ショップ用パスワード。SSL(HTTPS)アクセスが使えない時は、生で送信するのは危険なので、次のshを使用するのが望ましい。
sh

不正防止用ハッシュ値。
これがあるとユーザーによる金額・ユーザー情報等の改竄・偽造トラッキングを防止できる。

各パラメーターを下記のように文字列として連結した値のSHA1値になる。

sha1( (各ショップ別のパスワード) + shopid + unique_id + uname + email + amount_y + amount_d + ts + recurring + item_code + unit_num )

省略したパラメーターは空文字のままでいい。また、SHA1なので値は40文字になるが、頭から16文字までに切り詰めてもいい。

ライブラリを使用する場合は、この値は自動で設定されます。

アクセス成功時に、このスクリプトは "OK" という文字列を表示して終了します。

 

 

○サーバー間通信方式にする場合に必要になること

IMGタグを使わずに、サーバー間のバックグラウンドでデータを送信する場合、ユーザーのPCに保存されたCookieを利用してトラッキングすることが出来なくなりますので、以下の回避策を取る必要があります。

まず、訪問ユーザーがバナーをクリックした時のリンク先を貴サイトにするわけですが、 この時、パラメーターとして aff_useridとaff_siteidという二つのパラメーターをURLに埋め込みますので、これを貴サイト側で取得し、Cookieやサーバー上DBなどに保存するようにしてください。

例)

もし貴サイトの入り口ページのURLが http://www.abc.co.jp/ と設定してあった場合、 バナーをクリックした時のリンク先は
それにパラメーターを埋め込んだ

http://www.abc.co.jp/?aff_userid=xxxx&aff_siteid=xxxx

となります (xxxxの部分には数字が入ります)。

ユーザーの購入手続きの時または自動更新時に、その値をサーバー間通信で弊社サーバーへ送信してください。


また、バナーを貼るアフィリエイターによっては、広告効果を高めるために貴サイト内の特定のページにリンクしたいという状況も出てくると思います。そういう場合のために、jumpというパラメーターでジャンプ先が指定された時はそこにリダイレクトするようにしていただけると対応可能になります。

例)

バナークリック時のリンク先を  http://aaa.com/abc/def.html にしたい時は、FC2アフィリエイト側で次のように指定します。

http://www.abc.co.jp/?aff_userid=xxxx&aff_siteid=xxxx&jump=%2Fabc%2Fdef.html

(注: %2F は /(スラッシュ)をURLエンコードした値 )

貴サイト側で、このパラメーターjumpの値を取得し、そこにリダイレクトするようにしてください。
ちなみに、トップページにリダイレクトする場合は、~&jump=%2F だけになります。

 



初回購入時だけIMGタグ方式にして、2回目以降はサーバー間通信にする場合

初回購入時をIMGタグ方式にして、2回目以降(自動更新など)をサーバー間通信にすると、貴サイト側でクリック元情報を管理する必要がありません。ただし、次のような制約があります。

・2回目以降の時はユーザー名で前回の売り上げ記録を調べ、その時のトラッキング情報を使います。必ず、同一ユーザが一つのユーザー名になるようにしてください。

・サーバー負荷低減のため、過去2ヶ月以内の売り上げデータしか参照しません。

 



ライブラリ

PHP用のライブラリを用意しています。面倒な不正防止用ハッシュの計算なども自動的に行います。
使い方は冒頭のコメント部分に書いていますので参考にしてください。

○IMGタグ作成用ライブラリ

ダウンロード  (2006/04/29更新)

 

○サーバー間通信用ライブラリ

ダウンロード

 

 


Copyright c since 1999 FC2,inc. All Rights Reserved.