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

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

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

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

HTML

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

Q&A

解決済

2回答

697閲覧

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

moscow3

総合スコア201

JavaScript

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

HTML

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

0グッド

1クリップ

投稿2018/01/10 18:16

編集2018/01/10 18:16

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

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

moredeep

総合スコア1507

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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


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

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

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

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


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

  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

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

moscow3

2018/01/11 02:28

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

2018/01/11 03:38 編集

今回は「自分のサイトに広告掲載をしたい人」、「広告配信システムを構築したい人」 の2パターンの立ち位置があると考えています。 もし後者に近い立ち位置で考えている場合、前提知識もより高度になります。 今回の回答欄で解説した内容は、広告配信システムを構築して金儲けしようと企んでる人間なら、そもそも知っていないと駄目な前提知識です。 つまり、クラウドファンディングで金払って作って貰いなさいというシビアな回答になります。 他にも興味本位でどんな流れになるか聞いてみた…等の動機も考えられますが、 Teratailの推奨されない質問に抵触する可能性が高いと考えて選択肢からは除外させていただきました。 https://teratail.com/help/avoid-asking 従って、大人の事情で前者に決め打ちしていますが、 回答欄は幅広くかつ平易な言葉遣いを心がけたつもりです。 お役に立てたなら幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問