<?xml version="1.0" encoding="UTF-8" ?><oembed><version>1.0</version><provider_name>Jui-Nan Lin&#039;s Blog</provider_name><provider_url>https://jnlin.org</provider_url><author_name>jnlin</author_name><author_url>https://jnlin.org/author/jnlin/</author_url><title>Google Tag Manager 簡介 (2) - 建立變數與自訂事件</title><html>&lt;a href=&quot;http://jnlin.org/2015/08/23/737/&quot;&gt;上一篇文章&lt;/a&gt;中，我們建立了簡單的事件。但除了 PV 之外，我們還要追蹤網站上元素的點擊，或是其他特殊的事件。Google Tag Manager 已經有內建一些變數，可以指定條件，讓我們不需要寫程式就能追蹤部份的事件。

我們必須到「變數」這個 Tab 去啟用這些內建的變數。

目前支援的變數列表如下：
&lt;ul&gt;
&lt;li&gt;Page URL&lt;ul&gt;
 &lt;li&gt;Page Hostname&lt;/li&gt;
 &lt;li&gt;Page Path&lt;/li&gt;
 &lt;li&gt;Referrer&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;公用程式&lt;ul&gt;
 &lt;li&gt;Event&lt;/li&gt;
 &lt;li&gt;Container ID&lt;/li&gt;
 &lt;li&gt;Container Version&lt;/li&gt;
 &lt;li&gt;Random Number&lt;/li&gt;
 &lt;li&gt;HTML ID&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;錯誤&lt;ul&gt;
 &lt;li&gt;Error Message&lt;/li&gt;
 &lt;li&gt;Error URL&lt;/li&gt;
 &lt;li&gt;Error Line&lt;/li&gt;
 &lt;li&gt;Debug Mode&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;點擊&lt;ul&gt;
 &lt;li&gt;Click Element&lt;/li&gt;
 &lt;li&gt;Click Classes&lt;/li&gt;
 &lt;li&gt;Click ID&lt;/li&gt;
 &lt;li&gt;Click Target&lt;/li&gt;
 &lt;li&gt;Click URL&lt;/li&gt;
 &lt;li&gt;Click Text&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;表單&lt;ul&gt;
 &lt;li&gt;Form Element&lt;/li&gt;
 &lt;li&gt;Form Classes&lt;/li&gt;
 &lt;li&gt;Form ID&lt;/li&gt;
 &lt;li&gt;Form Target&lt;/li&gt;
 &lt;li&gt;Form URL&lt;/li&gt;
 &lt;li&gt;Form Text&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;歷史紀錄&lt;ul&gt;
 &lt;li&gt;New History Fragment&lt;/li&gt;
 &lt;li&gt;Old History Fragment&lt;/li&gt;
 &lt;li&gt;New History State&lt;/li&gt;
 &lt;li&gt;Old History State&lt;/li&gt;
 &lt;li&gt;History Source&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

以下我們以「當使用者點擊頁面上 id 為 &quot;to-be-clicked&quot; 的物件」為例，建立一個事件：

1. 首先到「變數」，啟用「Click ID」這個變數。
&lt;a href=&quot;http://jnlin.pixnet.net/album/photo/154068874-%e8%9e%a2%e5%b9%95%e6%88%aa%e5%9c%96-2015-10-06-17.40.32.png&quot;&gt;&lt;img src=&quot;//ext.pimg.tw/jnlin/1444124532-3618959194_m.png?v=1444124548&quot;/&gt;&lt;/a&gt;

2. 新增一個「觸發條件」，事件類型為「點擊」，觸發條件為「所有元素」，啟動時機為「部分點擊」。接著在啟動時機內設定條件為「Click ID 等於 &quot;to-be-clicked&quot;」。
&lt;a href=&quot;http://jnlin.pixnet.net/album/photo/154068886-%e8%9e%a2%e5%b9%95%e6%88%aa%e5%9c%96-2015-10-06-17.45.42.png&quot;&gt;&lt;img src=&quot;//ext.pimg.tw/jnlin/1444124768-624705331_m.png?v=1444124777&quot;/&gt;&lt;/a&gt;

3. 新增一個「代碼」，指定該「觸發條件」要發出的 Event 內容與要記錄到的 Google Analytics ID。

如果我們想設定的變數不在預設列表中，也可以用程式自訂一個變數。作法如下：

1. 新增一個「使用者定義的變數」，類型選擇「自訂 javascript」。

2. 輸入一個 javascript 函式，傳回值為變數值。例如：
&lt;code&gt;
function () {return $(&#039;body&#039;).data(&#039;state&#039;); }
&lt;/code&gt;
表示傳回 &lt;body&gt; 的 state 這個 data attribute。

另外，我們也可以在程式裡面觸發 Tag Manager 的自訂事件。首先先建立一個觸發條件，選擇「自訂事件」：
&lt;a href=&quot;http://jnlin.pixnet.net/album/photo/154073059-%e8%9e%a2%e5%b9%95%e6%88%aa%e5%9c%96-2015-10-07-08.20.23.png&quot;&gt;&lt;img src=&quot;//ext.pimg.tw/jnlin/1444177261-1874735117_m.png?v=1444177269&quot;/&gt;&lt;/a&gt;

接著在程式內觸發此事件：
&lt;code&gt;
dataLayer.push({&quot;event&quot;: &quot;custom-event&quot;});
&lt;/code&gt;</html><type>rich</type></oembed>