アフィリエイトリンクはランディングページURLの後ろにIDみたいなのがつけられたURLが各アフィリエイターに割り当てられ、それによって誰が何件紹介したか というのがわかるようになるものですが技術的にはどのような仕組みがなのでしょうか?
(「アフィリエイト 仕組み」で検索すると、企業が商品を〜〜 みたいな説明ばかり出て技術面での解説は見つかりません・・)
あるいは、例えばwww.example.com/lp1?=AbCdE にアクセスしたときに「あなたのIDはAbCdEです」と表示されるようページを作ることとかはできるでしょうか?
わかりにくい質問ですみません
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
仰る通りパラメータにIDを付与する場合もあります。
他にも、Cookieを使用する場合もあります。
このサイトにちろっと説明が載っています。
あるいは、例えばwww.example.com/lp1?=AbCdE にアクセスしたときに「あなたのIDはAbCdEです」と
表示されるようページを作ることとかはできるでしょうか?
これは、URLの?以降の抽出方法ということで良いでしょうか?
?以降は、パラメータの名前と値が=で繋がれており、複数のパラメータは&で繋がれます。
?以降はlocation.search
で取得できます。
表示したいIDがURL上で[id=AbCdE]の形になっているのであれば、例えば以下のように出力することも可能です。
javascript
1var args = location.search.substr(1).split(/&/g); // パラメータ毎("&"毎)に分割(xx=yyの形) 2for(var i = 0; i < args.length; i++) { 3 var param = args[i].split("="); // =で分割([["xx", "yy"]...]になる) 4 if(param[0] == "id"){ 5 // URLが"www.example.com/lp1?id=AbCdE"であれば、コンソールに"あなたのIDはAbCdEです"と表示される 6 console.log("あなたのIDは" + param[1] + "です"); 7 break; 8 } 9}
投稿2018/01/11 00:26
総合スコア1507
0
恐らく質問主さんは自分のページに広告を掲載したい人だと思いますので、
それ用に仕様の方に絞った解説をします。
そもそもの所URLとはなんぞやが分からなければ、トンチンカンな話しかできません。
空き時間で良いので下記のリンクを参考に色々と検索して調査してみてください。
- URLとURIは何が違うの? どちらが正しい呼び方?
- Uniform Resource Identifier (URI): 一般的構文 - RFC3986
- URL (Uniform Resource Locator) - Wikipedia
ざっくり説明しておきます。
URLはインターネットの仕様書(RFC)の規格として定義されています。
RFCは直訳すれば「ご意見どうぞ」という意味であり、IETFという団体名が全世界に公開した提案書です。
これに皆で乗っかり肉付けしていった結果、事実上の仕様書として利用されるようになっています。
(なのでRFC=事実上のインターネットの仕様書という扱いになっています)
URLで検索かければ似たワードとしてURIが出てきて混乱すると思います。
寿司(URI)のジャンル内にぎり寿司(URL)が存在するといった関係だと思ってください。
乱暴に言えばURIというワードが出てきてもURL≒URIなんだな程度の軽い認識で大丈夫でしょう。
URIの仕様書(RFC3986)からURLに関係する箇所を抜粋します。
もし更に詳しい内容が知りたければ上記のリンクの3.1から順番に読み進めてください。
- 構文の構成要素
foo://example.com:8042/over/there?name=ferret#nose \_/ \______________/\_________/ \_________/ \__/ | | | | | scheme authority path query fragment
質問文に絞った内容としては、
上記の構文の内、サーバーに送られる内容はauthority, path, queryの3つです。
因みにfragmentはURLの仕様で含まれません。
ChromeやFirefoxといったブラウザは、fragment部分をWebサーバには送信せず、ページ内リンクとしてブラウザ内でこっそり利用します。
例えばwww.example.com/lp1?=AbCdE にアクセスしたときに「あなたのIDはAbCdEです」と表示されるようページを作ることとかはできるでしょうか?
URLのpuery部分は普段「?フィールド=値&フィールド=値」という風にフィールドと値がセットになっています。
ですので、より一般的に書けば「www.example.com/lp1?id=AbCdE」という感じになるでしょう。
WebサーバはURLを受け取り、その結果に応じた情報を返す事が仕事です。
しかし、受け取り・情報を返す事には実は様々な仕事が省略されており、その最中に何をやっても構いません。
例えばURLを受け取り、「id=AbCdE」の部分を抜き取り、「あなたのIDはAbCdEです」という情報を返す予定のHTML内に埋め込む事もできます。
ああ、「id=AbCdE」の部分を抜き取った後、アフィリエイトのリンク数を計測する為にデータベースへ格納してもいいですね。
とまぁ、こんな感じでWebサーバにはエンジニアが作った好きなプログラムを差し込む事が可能です。
Webサーバとセットで使われる事が多いPHPという言語では、$_GETという機能が存在します。
URLの文字列を予め解析しておいて、$_GETで簡単に取り出せるようにしてあるわけですね。
PHP
1<?php 2$id = $_GET['id']; 3?> 4<!DOCTYPE html> 5<body> 6 <p>あなたのIDは<?= htmlspecialchars($id) ?>です</p> 7</body>
こんな簡素な記述でURLのqueryに入っているidを取り出して表示できました。
フィールド名でアクセスしているので、もしidの中身がAbCdEからFgHiJに変わったとしても楽勝です。
因みにPHPに限らず、RubyやNode.js等の他の言語でも同様の機能が存在し、
URLからquery部を抜き出す事はいとも簡単に行なえます。
投稿2018/01/11 02:07
総合スコア21158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/11 03:38 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。