質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.98%

  • JavaScript

    13877questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • HTML

    7568questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

アフィリエイトリンクの仕組み

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 200

moscow3

score 91

アフィリエイトリンクはランディングページURLの後ろにIDみたいなのがつけられたURLが各アフィリエイターに割り当てられ、それによって誰が何件紹介したか というのがわかるようになるものですが技術的にはどのような仕組みがなのでしょうか?

(「アフィリエイト 仕組み」で検索すると、企業が商品を〜〜 みたいな説明ばかり出て技術面での解説は見つかりません・・)

あるいは、例えばwww.example.com/lp1?=AbCdE にアクセスしたときに「あなたのIDはAbCdEです」と表示されるようページを作ることとかはできるでしょうか?

わかりにくい質問ですみません

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+3

仰る通りパラメータにIDを付与する場合もあります。
他にも、Cookieを使用する場合もあります。

このサイトにちろっと説明が載っています。

>あるいは、例えばwww.example.com/lp1?=AbCdE にアクセスしたときに「あなたのIDはAbCdEです」と
>表示されるようページを作ることとかはできるでしょうか?
これは、URLの?以降の抽出方法ということで良いでしょうか?
?以降は、パラメータの名前と値が=で繋がれており、複数のパラメータは&で繋がれます。
?以降はlocation.searchで取得できます。
表示したいIDがURL上で[id=AbCdE]の形になっているのであれば、例えば以下のように出力することも可能です。

var args = location.search.substr(1).split(/&/g); // パラメータ毎("&"毎)に分割(xx=yyの形)
for(var i = 0; i < args.length; i++) { 
    var param = args[i].split("=");  // =で分割([["xx", "yy"]...]になる)
    if(param[0] == "id"){
        // URLが"www.example.com/lp1?id=AbCdE"であれば、コンソールに"あなたのIDはAbCdEです"と表示される
        console.log("あなたのIDは" + param[1] + "です");
        break;
    }
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

恐らく質問主さんは自分のページに広告を掲載したい人だと思いますので、
それ用に仕様の方に絞った解説をします。


そもそもの所URLとはなんぞやが分からなければ、トンチンカンな話しかできません。
空き時間で良いので下記のリンクを参考に色々と検索して調査してみてください。

ざっくり説明しておきます。

URLはインターネットの仕様書(RFC)の規格として定義されています。
RFCは直訳すれば「ご意見どうぞ」という意味であり、IETFという団体名が全世界に公開した提案書です。
これに皆で乗っかり肉付けしていった結果、事実上の仕様書として利用されるようになっています。
(なのでRFC=事実上のインターネットの仕様書という扱いになっています)

URLで検索かければ似たワードとしてURIが出てきて混乱すると思います。
寿司(URI)のジャンル内にぎり寿司(URL)が存在するといった関係だと思ってください。
乱暴に言えばURIというワードが出てきてもURL≒URIなんだな程度の軽い認識で大丈夫でしょう。


URIの仕様書(RFC3986)からURLに関係する箇所を抜粋します。
もし更に詳しい内容が知りたければ上記のリンクの3.1から順番に読み進めてください。

3. 構文の構成要素

   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
$id = $_GET['id'];
?>
<!DOCTYPE html>
<body>
  <p>あなたのIDは<?= htmlspecialchars($id) ?>です</p>
</body>

こんな簡素な記述でURLのqueryに入っているidを取り出して表示できました。
フィールド名でアクセスしているので、もしidの中身がAbCdEからFgHiJに変わったとしても楽勝です。

因みにPHPに限らず、RubyやNode.js等の他の言語でも同様の機能が存在し、
URLからquery部を抜き出す事はいとも簡単に行なえます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/11 11:28

    別に広告を掲載するつもりで聴いたわけではないのですが・・・^^
    それでもいろいろと参考になりました。 
    ありがとうございます

    キャンセル

  • 2018/01/11 12:38 編集

    今回は「自分のサイトに広告掲載をしたい人」、「広告配信システムを構築したい人」
    の2パターンの立ち位置があると考えています。

    もし後者に近い立ち位置で考えている場合、前提知識もより高度になります。
    今回の回答欄で解説した内容は、広告配信システムを構築して金儲けしようと企んでる人間なら、そもそも知っていないと駄目な前提知識です。
    つまり、クラウドファンディングで金払って作って貰いなさいというシビアな回答になります。

    他にも興味本位でどんな流れになるか聞いてみた…等の動機も考えられますが、
    Teratailの推奨されない質問に抵触する可能性が高いと考えて選択肢からは除外させていただきました。
    https://teratail.com/help/avoid-asking

    従って、大人の事情で前者に決め打ちしていますが、
    回答欄は幅広くかつ平易な言葉遣いを心がけたつもりです。
    お役に立てたなら幸いです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.98%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • JavaScript

    13877questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • HTML

    7568questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。