LoginSignup
0
0

More than 5 years have passed since last update.

adobeのLaunchでGTMのトリガーや変数を利用する

Last updated at Posted at 2019-01-03

はじめに

 GTMで運用していたDTMタグをLaunchに移行したのですが、一部のタグがGTMのカスタムイベントやカスタム変数に依存していたため移行後もGTMの設定を利用することにしました。ここでは、「GTM変数をLaunchの変数にする方法」「GTMトリガと同じタイミングでLaunchルールを発火させる方法」をまとめました。

GTM変数をLaunchの変数にする方法

GTMで以下のように定義された変数をLaunchで使用する方法を説明します。

項目名
変数名 Example 1
変数のタイプ データレイヤーの変数
データレイヤーの変数名 example_1
  • Launch側でデータエレメントを以下のように設定します。
    example1_in_dataelement.jpg

  • 以下は上図④のソースコードです。


return google_tag_manager['GTM-XXXXXXX'].dataLayer.get('example_1');

GTMトリガと同じタイミングでLaunchルールを発火させる方法

 GTMのトリガ及びカスタムイベントは直接Launchで受信できないので、GTMに別途カスタムイベントを起こしてもらうようにします。
 カスタムイベントのトリガはLaunchで準備し、GTMはイベントを起動するだけになります。

GTM側 - カスタムイベントを起こす

  • 変数を設定します。
項目名
変数名 Launch Event
変数のタイプ データレイヤーの変数
データレイヤーの変数名 launch_event
  • 下記のコードをタグとして保存します。移行前に使っていたトリガで発火させます。

<script>
var eventTrigger = {{Launch Event}};
if(eventTrigger){
    var dom = {{Click Element}};
    eventTrigger(dom);
}
</script>

Launch側 - カスタムイベントのトリガを準備する

 GTM側で実行されるトリガ関数は、前もってLaunchからデータレイヤーにプッシュしておきます。

  • ルールを以下のように設定します。
    customevent_in_rule.jpg

  • 以下は上図④のソースコードです。


try {
  if(!google_tag_manager['GTM-XXXXXXX'].dataLayer.get('launch_event')){
    throw 'launch_evnt is not exist.';
  }
} catch(ex) { 
  window['dataLayer'] = window['dataLayer'] || [];
  dataLayer.push({
    'launch_event':
    (function(dom){
      var e;
      try {
        e = new CustomEvent('event_valueChanged', {'bubbles':false, 'cancelable':true});
      } catch (ex) {
        e = window.document.createEvent('CustomEvent');
        e.initCustomEvent('event_valueChanged', false, true, void 0);
      }
      dom.dispatchEvent(e);
    })
  });
}

Launch側 - カスタムイベントを受信する

  • ルールを以下のように設定します。 customeventfire_in_rule.jpg

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0