---
# System prepended metadata

title: 三方追蹤碼-Check List
tags: [第三方監測, 客製素材]

---

###### tags: `客製素材`

# 三方追蹤碼-Check List

## 靜態埋設
- 針對一般展示型廣告 (banner、圖文廣告)。
- 追蹤碼埋設方式為複製原始追蹤碼，視情況微調後貼入素材檔案內。
### 埋設流程
1. 確認客戶提供檔案、埋設類型

    埋設類型分為：
    - click tag (點擊觸發)
    - imrpession tag (曝光觸發)
    - vendor tag (一般直接包含在 impression tag 內，與曝光一起觸發)

2. 取下追蹤code，並修改 HTML tag 寫法
     - 將 HTML tag 大寫改為小寫 (tag和attribute 全需使用小寫，可以使用 Prettier 自動調整為小寫)
3. 將修改後的 impression tag 直接埋入 HTML
    - 直接複製整段改過的 tag，不要只複製 src 網址，以免收數異常
    - `noscript` 為瀏覽器禁用 JS 時的預防措施，請一併埋入，否則收數也可能不正常
4. 把 click tag 放置在系統中素材導頁欄位內

### 示例
#### 1. 原檔

```htmlmixed=
<--Case : illuma-->
    
<--Click-->
https://mamaclub.com/campaign/illuma-big/?utm_source=clickforce&utm_medium=display&utm_campaign=illuma_big_zen_traffic_cfdisplay&utm_content=sand_cpc
    
<--IAS tag (Impression): JavaScript-->
<SCRIPT language='JavaScript1.1' SRC="https://ad.doubleclick.net/ddm/trackimpj/N703010.1371339CLICKFORCE.COM.TW/B29055367.354644447;dc_trk_aid=545840475;dc_trk_cid=184155990;ord=[timestamp];dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;gdpr=${GDPR};gdpr_consent=${GDPR_CONSENT_755};ltd=?"></SCRIPT><SCRIPT TYPE="application/javascript" SRC="https://pixel.adsafeprotected.com/rjss/st/1290318/67855966/skeleton.js"></SCRIPT> <NOSCRIPT><IMG SRC="https://pixel.adsafeprotected.com/rfw/st/1290318/67855965/skeleton.gif?gdpr=${GDPR}&gdpr_consent=${GDPR_CONSENT_278}&gdpr_pd=${GDPR_PD}" BORDER=0 WIDTH=1 HEIGHT=1 ALT=""></NOSCRIPT>
```

#### 2. 靜態埋入後的 HTML 檔案 (片段)

```htmlmixed=
<--Case : illuma-->
    
<body style="margin: 0">
    <div style="width: 300px; height: 250px">
      <a href="%%CLICK_URL%%" target="_blank">
        <img
          style="width: 100%; height: auto"
          src="https://cdn.holmesmind.com/image/creative/20230201/illuma/300x250.jpg"
          alt=""
        />

        <!-- third party tag -->
        <script
          language="JavaScript1.1"
          src="https://ad.doubleclick.net/ddm/trackimpj/N703010.1371339CLICKFORCE.COM.TW/B29055367.354647702;dc_trk_aid=545806556;dc_trk_cid=183637450;ord=[timestamp];dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;gdpr=${GDPR};gdpr_consent=${GDPR_CONSENT_755};ltd=?"
        ></script>
        <script
          type="application/javascript"
          src="https://pixel.adsafeprotected.com/rjss/st/1290318/67855970/skeleton.js"
        ></script>
        <noscript
          ><img
            src="https://pixel.adsafeprotected.com/rfw/st/1290318/67855969/skeleton.gif?gdpr=${GDPR}&gdpr_consent=${GDPR_CONSENT_278}&gdpr_pd=${GDPR_PD}"
            border="0"
            width="1"
            height="1"
            alt=""
        /></noscript>
        <!-- third party tag -->
      </a>
    </div>
  </body>
```
#### 3. DSP 上填入 click tag 導連
![](https://i.imgur.com/JWSWIxB.png)


## 動態埋設
針對下列形式：
- 創意型廣告(呈現畫面不分卡)
- 創意型廣告(呈現畫面分卡)

利用 JavaScript 動態加入追蹤 code。

### 埋設流程
1. 確認客戶提供檔案、埋設類型

    埋設類型分為:
    - click tag (點擊觸發)
    - imrpession tag (曝光觸發)
    - vendor tag (一般直接包含在 impression tag 內，與曝光一起觸發)

2. 取下追蹤 code
     - 取下 `<script>` 或 `<img>` 裡的 src 連結
     - 記下 HTML tag 內的 attribute，動態埋入時要完全一樣
3. 創建 HTML tag
    - tag：`<script>`、`<img>`、`<noscript>`
    - type：application/javascript 或 text/javascript，不寫可能會被瀏覽器阻攔，導致收數異常
    - `<noscript>` 內包的`<img>`，須注意：
        1. `<noscript>` 內的 `<img>` 須以 `innerHTML` 寫入
        2. 若 `<noscript>` 內的 `<img>` 以 `createElement` 的方式創建 tag，載入時會先載入一次圖片，導致觸發錯誤、收數異常
        - click tag 一般會直接透過系統設為主點擊，但已有導連，或click有一個以上時，其餘的 click tag 也要創建成`<script>` 

4. 將創建的 HTML tag 動態加入 DOM (appendChild)
    - impression tag 需視廣告呈現，埋入不同元素內
        - 若廣告呈現畫面不分卡，直接埋入外圍元素即可
        - 若廣告呈現畫面有分卡，則在不同卡數畫面出現時再一併將 tag 加入
    - click tag 需埋設至點擊觸發的元素上

### 示例
#### 1. 原檔

```htmlmixed=
<--Case : Nespresso-->
    
<--Click-->
https://ad.doubleclick.net/ddm/trackclk/N6264.1371339CLICKFORCE.COM.TW/B29223104.357202893;dc_trk_aid=548177731;dc_trk_cid=185188280;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;ltd=

    
<-- IAS tag (Impression): JavaScript-->
<SCRIPT language='JavaScript1.1' SRC="https://ad.doubleclick.net/ddm/trackimpj/N6264.1371339CLICKFORCE.COM.TW/B29223104.357202893;dc_trk_aid=548177731;dc_trk_cid=185188280;ord=[timestamp];dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;gdpr=${GDPR};gdpr_consent=${GDPR_CONSENT_755};ltd=?"></SCRIPT><SCRIPT TYPE="application/javascript" SRC="https://pixel.adsafeprotected.com/rjss/st/1323840/68805216/skeleton.js"></SCRIPT> <NOSCRIPT><IMG SRC="https://pixel.adsafeprotected.com/rfw/st/1323840/68805215/skeleton.gif?gdpr=${GDPR}&gdpr_consent=${GDPR_CONSENT_278}&gdpr_pd=${GDPR_PD}" BORDER=0 WIDTH=1 HEIGHT=1 ALT=""></NOSCRIPT>
```

#### 2. 動態埋入後的 HTML 檔案 (片段)

```htmlmixed=
<--Case : Nespresso-->
    /* THIRD PARTY TAG */
      let cfImpression = createElement("script", {
          src: "https://ad.doubleclick.net/ddm/trackimpj/N6264.1371339CLICKFORCE.COM.TW/B29223104.357202893;dc_trk_aid=548177731;dc_trk_cid=185188280;ord=[timestamp];dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;gdpr=${GDPR};gdpr_consent=${GDPR_CONSENT_755};ltd=?",
        }),
        cfVendorA = createElement("script", {
          type: "application/javascript",
          src: "https://pixel.adsafeprotected.com/rjss/st/1323840/68805216/skeleton.js",
        }),
        cfVendorB = createElement("noscript", {
          innerHTML:
            '<img src="https://pixel.adsafeprotected.com/rfw/st/1323840/68805215/skeleton.gif?gdpr=${GDPR}&gdpr_consent=${GDPR_CONSENT_278}&gdpr_pd=${GDPR_PD}" border=0 width=1 height=1 alt="">',
        });
      CFOutDiv.appendChild(cfImpression);
      CFOutDiv.appendChild(cfVendorA);
      CFOutDiv.appendChild(cfVendorB);
```
#### 3. DSP 上填入 click tag 導連
![](https://i.imgur.com/y3RmLEE.png)


## 檢查流程

### 前置作業
- 請關閉 ADBlock 或防毒軟體，並使用無痕模式，才能檢查到回傳值
- 使用開發者工具檢查時，開啟保留記錄檔、停用快取
![](https://i.imgur.com/MSYINk6.png)

### 檢查項目
利用下列元素搜尋：
- tag 裡的 id (點擊 & 曝光會是同一組 id)
- script 的名稱 (例如：skeleton.js\/moatad.js)

#### click tag
- 點擊後在Network中檢查，是否有觸發資料傳送

![](https://i.imgur.com/Zuy20Ax.png)

- 點擊後在Element中檢查，tag是否有被加入至DOM中

![](https://i.imgur.com/GZcMdpr.png)

    
#### impression tag
- 在Network中檢查，是否有觸發資料傳送

![](https://i.imgur.com/5XEVqMm.png)

- 在Element中檢查，tag是否有被加入至DOM中

![](https://i.imgur.com/gTIxsGr.png)

#### vendor tag

- IAS tag
    - 在 Network 中檢查 dt? 與 skeleton.js
    ![](https://hackmd.io/_uploads/ryLbZb1JT.png)
    ![](https://i.imgur.com/XUsS6Pf.png)
    - 在 Element 中檢查，tag是否有被加入至DOM中
    ![](https://i.imgur.com/fuvOHxk.png)
    
- Moat tag 
    - 在 Network 中檢查 pixel.gif? 與 moat
    ![](https://i.imgur.com/BJHDsYI.png)
    ![](https://i.imgur.com/qtP6sWr.png)
    - 在 Element 中檢查，tag是否有被加入至DOM中
    ![](https://i.imgur.com/qRU51tg.png)
    
- DV tag 
    - 在 Network 中查詢 doubleverify，檢查 dvtp_src.js
    ![](https://i.imgur.com/UCYUaEp.png)
    - 在 Element 中查詢 doubleverify，確認 tag 有被加入
    ![](https://i.imgur.com/tbdlW5p.png)

- DAR tag
    - 在 Network 中查詢 imrworldwide，檢查 m?
    ![](https://i.imgur.com/NlVSmne.png)
    - 在 Element 中查詢 imrworldwide，確認 tag 有被加入
    ![](https://i.imgur.com/0EOyI4r.png)


## Check List
以埋設 Tag 分類：
### CM Tag
- [ ] HTML tag 大寫改為小寫
- [ ] 將 tag 內的 attribut 全部複製(包含 script type)
- [ ] 埋入/貼上整段改過的 tag(`＜img>`/`＜script>`)
- [ ] 在系統中放置或在檔案內埋入click tag 
- [ ] 在Network中用id或相關參數搜尋資源是否正常送出
- [ ] 在Element中用id或相關參數搜尋 HTML tag是否正常建置、加入DOM

### IAS Tag
-   [ ] HTML tag 大寫改為小寫
-   [ ] 將 tag 內的 attribute 全部複製(包含 script type)
-   [ ] 埋入/貼上整段改過的 tag(`＜img>`/`＜script>`/`<noscript>`)
-   [ ] 在系統中放置或在檔案內埋入 click tag
-   [ ] 在 Network 中用搜尋 dt? => 確認 piv > 0、rmeas = 1、rend = 1
-   [ ] 在 Element 中用 id 或相關參數搜尋 HTML tag & skeleton.js 是否埋設正確

### Moat Tag
- [ ] HTML tag 大寫改為小寫
- [ ] 將 tag 內的 attribute 全部複製(包含 script type)
- [ ] 在 `<body>` 內埋入/貼上整段改過的 tag
- [ ] 在Network中用 id/moatads/pixel.gif?，搜尋資源是否正常送出
- [ ] 在Element中用id或相關參數搜尋 HTML tag & moatads 是否正常建置、加入DOM

### LnData Tag (待確認)
- [ ] 在 HTML 內新增 `<script>`，src 放入 impression URL
- [ ] 在系統中放置或在檔案內埋入 click URL
- [ ] 在Network中用id或相關參數搜尋資源是否正常送出
- [ ] 在Element中用id或相關參數搜尋 HTML tag是否正常建置、加入DOM

### DV Tag
- [ ] HTML tag 大寫改為小寫
- [ ] 將 tag 內的 attribute 全部複製(包含 script type)
- [ ] 埋入/貼上整段改過的 tag(`＜img>`/`＜script>`)
- [ ] 在Network中用 sid/doubleverify 搜尋資源是否正常送出
- [ ] 在Element中用id或相關參數搜尋 HTML tag & doubleverify 是否正常建置、加入DOM

### DAR Tag
- [ ] HTML tag 大寫改為小寫
- [ ] 將 tag 內的 attribute 全部複製(包含 script type)
- [ ] 埋入/貼上整段改過的 tag
- [ ] 在Network中用 imrworldwide 搜尋資源是否正常送出
- [ ] 在Element中用 imrworldwide 搜尋 HTML tag 是否正常建置、加入DOM

## 最後檢查(交叉檢查)
- 確認以上流程，完成check list檢查後須交由另一位工程師檢查
- 兩位工程師都檢查無誤後，再於 Monday 上將狀態更改為「完成」，如發現問題，需於 Monday 上 update 留存紀錄(附截圖)

以下為示意圖(非真實案件)
![](https://i.imgur.com/Pg1fLRd.png)

![](https://i.imgur.com/ULaQz8r.png)



