임베드를 만든 후에는(서명된 임베딩 또는API를 통해 공개 또는 비공개로 생성 가능) JavaScript를 사용하여 이러한 iframe과 상호작용할 수 있습니다. 삽입된 항목의 상태를 기반으로 페이지를 동적으로 만들 수 있으며, 웹페이지에서 삽입된 항목을 변경할 수도 있습니다.
Looker는 브라우저가 웹 애플리케이션에 이벤트를 전달하는 순서를 제어하지 않습니다. 즉, 브라우저 또는 플랫폼 전체에 걸쳐 이벤트 순서가 보장되지 않습니다. 여러 브라우저의 이벤트 처리를 고려하여 JavaScript를 적절히 작성해야 합니다.
다음 방법 중 하나로 Looker 삽입된 콘텐츠에 자바스크립트를 사용할 수 있습니다.
- Embed SDK 문서 페이지에 설명된 Looker의 임베드 소프트웨어 개발 키트(SDK) 사용하기
- 이 페이지의 JavaScript에서 이벤트 액세스 섹션에 설명된 JavaScript 이벤트를 사용하기
준비
삽입된 iframe과 상호작용하려면 먼저 다음 단계를 따르세요.
iframe에 ID 추가
나중에 iframe에서 데이터를 검색할 때 작업 중인 정보의 실제 출처가 Looker의 iframe인지 확인해야 합니다. 이를 위해 아직 ID를 추가하지 않은 경우 iframe에 ID를 추가해야 합니다. 다음 예시에서는 iframe에 id="looker"를 추가하여 ID를 looker로 설정합니다.
<iframe id="looker" src="https://instance_name.looker.com/embed/dashboards/1"></iframe>
iframe src 속성에 임베드 도메인 추가
iframe의 src 속성에 iframe이 사용 중인 도메인을 포함합니다. 다음 예시에서는 src 속성의 URL 끝에 ?embed_domain=https://myownpersonaldomain.com"을 추가하여 myownpersonaldomain.com을 도메인으로 지정할 수 있습니다.
<iframe
  id="looker"
  src="https://instance_name.looker.com/embed/dashboards/1?embed_domain=https://myownpersonaldomain.com">
</iframe>
서명된 임베딩을 사용하는 경우 임베드 URL에 embed_domain을 추가해야 합니다.
Embed SDK를 사용하는 경우 삽입 URL의 끝에 sdk=3를 추가합니다. sdk=3 매개변수는 SDK가 있으며 Looker iframe과 도메인 간에 JavaScript 이벤트를 전달하는 등 Looker에서 SDK가 제공하는 추가 기능을 활용할 수 있음을 나타냅니다. SDK는 서명된 URL의 일부이므로 이 매개변수 자체를 추가할 수 없습니다. 예를 들면 다음과 같습니다.
<iframe
  id="looker"
  src="https://instance_name.looker.com/embed/dashboards/1?embed_domain=https://myownpersonaldomain.com&sdk=2">
</iframe>
허용 목록에 임베드 도메인 추가
마지막으로, 다음 단계를 따라 Looker 관리 패널의 임베드 페이지에 있는 허용 목록에 iframe이 사용되는 도메인을 추가해야 합니다.
- 삽입된 도메인 허용 목록 필드에 iframe이 사용되는 도메인을 입력한 다음, Tab 키를 눌러 도메인이 필드 내의 상자에 표시되도록 합니다. 
- 업데이트를 클릭합니다. 
허용 목록에서 * 와일드 카드를 사용하여 도메인 패턴을 만들 수 있습니다. 예를 들어 https://*.myownpersonaldomain.com은 https://analytics.myownpersonaldomain.com 및 https://data.myownpersonaldomain.com을 모두 허용합니다.
Looker 23.8 이상에서 쿠키 없는 임베딩을 사용하는 경우 쿠키가 없는 세션을 가져올 때 임베드 도메인을 지정할 수 있습니다. 관리 > 삽입 패널을 사용하여 삽입 도메인을 허용 목록에 추가하는 방법 대안입니다. 이 기능을 사용하려면 보안 권장사항을 검토하세요.
iframe에서 데이터 가져오기
준비 단계를 완료하면 postMessage 이벤트를 수신 대기하여 Looker iframe과 도메인 간에 전달된 이벤트에 액세스할 수 있습니다.
임베딩된 iframe은 이 페이지의 이벤트 유형 참조 섹션에 설명된 것처럼 몇 가지 이벤트 유형을 만들 수 있습니다.
JavaScript에서 이벤트 액세스
다음은 JavaScript에서 이러한 이벤트를 수신 대기한 후 콘솔에 로깅하는 예시입니다.
window.addEventListener("message", function(event) {
  if (event.source === document.getElementById("looker").contentWindow) {
    if (event.origin === "https://instance_name.looker.com") {
      console.log(JSON.parse(event.data));
    }
  }
});
다음은 jQuery에서 이러한 이벤트를 수신 대기한 후 콘솔에 로깅하는 예시입니다.
$(window).on("message", function(event) {
  if (event.originalEvent.source === $("#looker")[0].contentWindow) {
    if (event.origin === "https://instance_name.looker.com") {
      console.log(JSON.parse(event.data));
    }
  }
});
이벤트 유형 요약 테이블
다음 표에는 이벤트 유형이 요약되어 있습니다. 이벤트 유형을 선택하여 해당 이벤트의 세부정보를 확인하세요.
| 이벤트 유형 | 이벤트 원인 | 
|---|---|
| dashboard:loaded | 타일이 자동 실행되도록 설정되지 않은 대시보드에서 대시보드와 해당 요소가 로드되었지만 쿼리가 아직 실행되지 않고 있습니다. | 
| dashboard:run:start | 대시보드가 로드되기 시작하고 타일이 데이터를 로드하고 퀴리하기 시작했습니다. | 
| dashboard:run:complete | 대시보드 실행이 완료되고 모든 타일이 로드 및 쿼리를 완료했습니다. | 
| dashboard:download | 대시보드 PDF의 다운로드가 시작되었습니다. | 
| dashboard:edit:start | 22.20 추가
    
  
 대시보드가 수정 모드로 전환되었습니다. 대시보드가 저장되면 dashboard:save:complete이벤트가 발생합니다. | 
| dashboard:edit:cancel | 22.20 추가 수정 모드의 대시보드가 저장 없이 수정 모드를 종료했습니다. | 
| dashboard:save:complete | 대시보드가 수정 및 저장되었습니다. | 
| dashboard:delete:complete | 대시보드가 삭제되었습니다. | 
| dashboard:tile:start | 타일에서 데이터 로드 또는 쿼리가 시작되었습니다. | 
| dashboard:tile:complete | 타일의 쿼리 실행이 완료되었습니다. | 
| dashboard:tile:download | 타일의 데이터 다운로드가 시작되었습니다. | 
| dashboard:tile:explore | 사용자가 대시보드 타일에서 여기에서 탐색 옵션을 클릭했습니다. | 
| dashboard:tile:merge | 추가됨 25.14 사용자가 병합된 쿼리 수정 버튼 또는 메뉴 항목을 클릭했습니다. | 
| dashboard:tile:view | 사용자가 대시보드 타일에서 원본 Look 보기 옵션을 클릭했습니다. | 
| dashboard:filters:changed | 대시보드의 필터가 적용되었거나 변경되었습니다. | 
| look:ready | 쿼리 실행 여부에 관계없이 Look에서 쿼리 데이터가 로드되기 시작했습니다. | 
| look:run:start | Look에서 쿼리 데이터를 로드하기 시작했으며 쿼리가 실행되기 시작했습니다. | 
| look:run:complete | Look의 쿼리 실행이 완료되었습니다. | 
| look:edit:start | 25.10 추가
    
  
 Look이 수정 모드로 전환되었습니다. 룩이 저장되면 look:save:complete이벤트가 발생합니다. | 
| look:edit:cancel | 25.10 추가 수정 모드의 Look이 저장 없이 수정 모드를 종료했습니다. | 
| look:save:complete | Look이 수정 및 저장되었습니다. | 
| look:delete:complete | Look이 휴지통 폴더로 이동되었습니다. | 
| drillmenu:click | 사용자가 linkLookML 매개변수로 만든 대시보드에서 드릴 메뉴를 클릭했습니다. | 
| drillmodal:download | 사용자가 대시보드 타일에서 드릴 대화상자를 열고 다운로드 옵션을 클릭했습니다. | 
| drillmodal:explore | 사용자가 드릴 대화상자에서 여기에서 탐색 옵션을 클릭했습니다. | 
| explore:ready | 쿼리 실행 여부에 관계없이 탐색에서 쿼리 데이터가 로드되기 시작했습니다. | 
| explore:run:start | 탐색에서 쿼리 데이터가 로드되기 시작했으며 쿼리가 실행되기 시작했습니다. | 
| explore:run:complete | 탐색에서 쿼리 실행을 완료했습니다. | 
| explore:state:changed | 사용자의 작업으로 인해 탐색 페이지 URL이 변경되었습니다. | 
| page:changed | 사용자가 iframe 내에서 새 페이지로 이동했습니다. | 
| page:properties:changed | 대시보드 iframe의 높이가 변경되었습니다. | 
| session:tokens | Looker 클라이언트가 계속하려면 토큰이 필요합니다. | 
| session:expired | 추가됨 25.10 사용자의 세션이 만료되었습니다. | 
| session:status | 세션 상태에 관한 정보를 전송합니다. | 
| env:client:dialog | 드릴 대화상자와 같이 부분적으로 보이지 않을 수 있는 대화상자가 열렸습니다. 이 이벤트를 통해 호스팅 애플리케이션이 대화상자를 스크롤하여 열람할 수 있습니다. | 
이벤트 유형 참조
임베딩된 iframe에서는 다양한 유형의 이벤트를 만들 수 있습니다.
dashboard:loaded
타일이 자동 실행되도록 설정되지 않은 대시보드에서는 이 이벤트는 대시보드와 그 요소가 로드된 후 쿼리가 실행되기 전에 생성됩니다.
type: "dashboard:loaded",
status: "complete",
dashboard: {
  id: 1,
  title: "Business Pulse",
  canEdit: true,
  dashboard_filters: {
    "date": "Last 6 Years",
    "state": ""
  },
  absoluteUrl: "https://self-signed.looker.com:9999/embed/dashboards/1?embed_domain=https%3A%2F%2Fself-signed.looker.com%3A9999&date=Last+6+Years&state=",
  url: "/embed/dashboards/1?embed_domain=https%3A%2F%2Fself-signed.looker.com%3A9999&date=Last+6+Years&state=",
  options: {
    layouts: [
      {
        id: 1,
        dashboard_id: 1,
        type: "newspaper",
        active: true,
        column_width: null,
        width: null,
        deleted: false,
        dashboard_layout_components: [
          {
            id: 1,
            dashboard_layout_id: 1,
            dashboard_element_id: 1,
            row: 0,
            column: 0,
            width: 8,
            height: 4,
            deleted: false
          },
          {
            id: 2,
            dashboard_layout_id: 1,
            dashboard_element_id: 2,
            row: 0,
            column: 8,
            width: 8,
            height: 4,
            deleted: false
          }
        ]
      }
    ],
    elements: {
      1: {
        title: "Total Orders",
        title_hidden: false,
        vis_config: {
          type: "single_value",
          font_size: "medium",
          title: "Total Orders"
        }
      },
      2: {
        title: "Average Order Profit",
        title_hidden: false,
        vis_config: {
          type: "single_value",
          title: "Average Order Profit"
        }
      }
    }
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| status | 문자열 | 대시보드와 그 요소가 성공적으로 로드되었는지 여부 | 
| dashboard.id | 숫자/문자열 | 대시보드의 ID | 
| dashboard.title | 문자열 | 대시보드 상단에 표시되는 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.dashboard_filters | 객체 | 대시보드에 적용된 필터 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
| dashboard.absoluteUrl | 문자열 | 전체 대시보드 URL | 
| dashboard.url | 문자열 | 상대 대시보드 URL(경로만) | 
| dashboard.options | 객체 | 대시보드 레이아웃, 대시보드 레이아웃 구성요소, 대시보드 요소 속성 및 값. options객체에서 반환되는 모든 속성에dashboard:options:set이벤트를 사용하여 업데이트된 값을 지정할 수 있습니다. | 
dashboard:run:start
이 이벤트는 대시보드가 로드되기 시작할 때 생성됩니다. 이때 타일이 데이터를 로드하고 쿼리하기 시작합니다.
type: "dashboard:run:start",
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  url: "/embed/dashboards/...",
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/...",
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| dashboard.id | 숫자/문자열 | 대시보드의 ID | 
| dashboard.title | 문자열 | 대시보드 상단에 표시되는 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.url | 문자열 | 상대 대시보드 URL(경로만) | 
| dashboard.absoluteUrl | 문자열 | 전체 대시보드 URL | 
| dashboard.dashboard_filters | 객체 | 대시보드에 적용된 필터 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
dashboard:run:complete
이 이벤트는 대시보드 실행이 완료되고 모든 타일이 로드 및 쿼리를 완료하면 생성됩니다. 이 이벤트는 모든 타일이 성공적으로 로드되었는지 여부와 관계없이 생성됩니다.
type: "dashboard:run:complete",
status: "complete",
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  url: "/embed/dashboards/...",
  absoluteUrl: "https://my.looker.com/embed/dashboards/...",
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
  options: {
    layouts: [
      {
        id: 1,
        dashboard_id: 1,
        type: "newspaper",
        active: true,
        column_width: null,
        width: null,
        deleted: false,
        dashboard_layout_components: [
          {
            id: 1,
            dashboard_layout_id: 1,
            dashboard_element_id: 1,
            row: 0,
            column: 0,
            width: 8,
            height: 4,
            deleted: false
          },
          {
            id: 2,
            dashboard_layout_id: 1,
            dashboard_element_id: 2,
            row: 0,
            column: 8,
            width: 8,
            height: 4,
            deleted: false
          }
        ]
      }
    ],
    elements: {
      1: {
        title: "Total Orders",
        title_hidden: false,
        vis_config: {
          type: "single_value",
          font_size: "medium",
          title: "Total Orders"
        }
      },
      2: {
        title: "Average Order Profit",
        title_hidden: false,
        vis_config: {
          type: "single_value",
          title: "Average Order Profit"
        }
      }
    }
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| status | 문자열 | 대시보드와 그 요소가 성공적으로 실행되었는지 여부를 나타냅니다. 대시보드 및 그 요소가 성공적으로 실행되면 status는"complete"를 반환하고, 그렇지 않으면status는"error"를 반환합니다. 실행 중인 대시보드가 사용자 인터페이스에서 또는dashboard:stop작업으로 중지된 경우status는"stopped"를 반환합니다. | 
| dashboard.id | 숫자/문자열 | 대시보드의 ID | 
| dashboard.title | 문자열 | 대시보드 상단에 표시되는 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.url | 문자열 | 상대 대시보드 URL(경로만) | 
| dashboard.absoluteUrl | 문자열 | 전체 대시보드 URL | 
| dashboard.dashboard_filters | 객체 | 대시보드에 적용된 필터 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
| dashboard.options | 객체 | 대시보드 레이아웃, 대시보드 레이아웃 구성요소, 대시보드 요소 속성 및 값. options객체에서 반환되는 모든 속성에dashboard:options:set작업을 사용하여 업데이트된 값을 지정할 수 있습니다. | 
| dashboard.tileStatuses | 객체 배열 | 타일 상태를 제공하는 객체의 배열. 객체 속성은 다음과 같습니다. 
 | 
dashboard:download
이 이벤트는 대시보드 PDF의 다운로드가 시작될 때 생성됩니다.
type: "dashboard:download",
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  url: "/embed/dashboards/...",
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/...",
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
}
fileFormat: "pdf"
| 속성 | 형식 | 설명 | 
|---|---|---|
| dashboard.id | 숫자/문자열 | 대시보드의 ID | 
| dashboard.title | 문자열 | 대시보드 상단에 표시되는 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.url | 문자열 | 상대 대시보드 URL(경로만) | 
| dashboard.absoluteUrl | 문자열 | 전체 대시보드 URL | 
| dashboard.dashboard_filters | 객체 | 대시보드에 적용된 필터 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
| fileFormat | 문자열 | 다운로드한 대시보드의 형식(현재 "pdf"만 해당) | 
dashboard:edit:start
22.20 추가 이 이벤트는 대시보드가 수정 모드로 전환될 때 생성됩니다.
type: "dashboard:edit:start",
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  url: "/embed/dashboards/...",
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/...",
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| dashboard.id | 숫자/문자열 | 대시보드의 ID | 
| dashboard.title | 문자열 | 대시보드 상단에 표시되는 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.url | 문자열 | 상대 대시보드 URL(경로만) | 
| dashboard.absoluteUrl | 문자열 | 전체 대시보드 URL | 
| dashboard.dashboard_filters | 객체 | 대시보드에 적용된 필터 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
dashboard:edit:cancel
22.20 추가 이 이벤트는 수정 모드인 대시보드가 저장되지 않고 수정 모드에서 종료될 때 생성됩니다.
type: "dashboard:edit:cancel",
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  url: "/embed/dashboards/...",
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/...",
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| dashboard.id | 숫자/문자열 | 대시보드의 ID | 
| dashboard.title | 문자열 | 대시보드 상단에 표시되는 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.url | 문자열 | 상대 대시보드 URL(경로만) | 
| dashboard.absoluteUrl | 문자열 | 전체 대시보드 URL | 
| dashboard.dashboard_filters | 객체 | 대시보드에 적용된 필터 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
dashboard:save:complete
이 이벤트는 대시보드가 수정된 후 저장될 때 생성됩니다.
type: "dashboard:save:complete",
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/...",
  url: "/embed/dashboards/...",
  options: {
    layouts: [
      {
        id: 1,
        dashboard_id: 1,
        type: "newspaper",
        active: true,
        column_width: null,
        width: null,
        deleted: false,
        dashboard_layout_components: [
          {
            id: 1,
            dashboard_layout_id: 1,
            dashboard_element_id: 1,
            row: 0,
            column: 0,
            width: 8,
            height: 4,
            deleted: false
          },
          {
            id: 2,
            dashboard_layout_id: 1,
            dashboard_element_id: 2,
            row: 0,
            column: 8,
            width: 8,
            height: 4,
            deleted: false
          }
        ]
      }
    ],
    elements: {
      1: {
        title: "Total Orders",
        title_hidden: false,
        vis_config: {
          type: "single_value",
          font_size: "medium",
          title: "Total Orders"
        }
      },
      2: {
        title: "Average Order Profit",
        title_hidden: false,
        vis_config: {
          type: "single_value",
          title: "Average Order Profit"
        }
      }
    }
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| dashboard.id | 숫자/문자열 | 대시보드의 ID | 
| dashboard.title | 문자열 | 대시보드 상단에 표시되는 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.dashboard_filters | 객체 | 대시보드에 적용된 필터 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
| dashboard.absoluteUrl | 문자열 | 전체 대시보드 URL | 
| dashboard.url | 문자열 | 상대 대시보드 URL(경로만) | 
| dashboard.options | 객체 | 대시보드 레이아웃, 대시보드 레이아웃 구성요소, 대시보드 요소 속성 및 값. options객체에서 반환되는 모든 속성에dashboard:options:set이벤트를 사용하여 업데이트된 값을 지정할 수 있습니다. | 
dashboard:delete:complete
이 이벤트는 대시보드가 삭제될 때 생성됩니다.
type: "dashboard:delete:complete",
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/...",
  url: "/embed/dashboards/...",
  options: {
    layouts: [
      {
        id: 1,
        dashboard_id: 1,
        type: "newspaper",
        active: true,
        column_width: null,
        width: null,
        deleted: false,
        dashboard_layout_components: [
          {
            id: 1,
            dashboard_layout_id: 1,
            dashboard_element_id: 1,
            row: 0,
            column: 0,
            width: 8,
            height: 4,
            deleted: false
          },
          {
            id: 2,
            dashboard_layout_id: 1,
            dashboard_element_id: 2,
            row: 0,
            column: 8,
            width: 8,
            height: 4,
            deleted: false
          }
        ]
      }
    ],
    elements: {
      1: {
        title: "Total Orders",
        title_hidden: false,
        vis_config: {
          type: "single_value",
          font_size: "medium",
          title: "Total Orders"
        }
      },
      2: {
        title: "Average Order Profit",
        title_hidden: false,
        vis_config: {
          type: "single_value",
          title: "Average Order Profit"
        }
      }
    }
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| dashboard.id | 숫자/문자열 | 대시보드의 ID | 
| dashboard.title | 문자열 | 대시보드 상단에 표시되는 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.dashboard_filters | 객체 | 대시보드에 적용된 필터 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
| dashboard.absoluteUrl | 문자열 | 전체 대시보드 URL | 
| dashboard.url | 문자열 | 상대 대시보드 URL(경로만) | 
| dashboard.options | 객체 | 대시보드 레이아웃, 대시보드 레이아웃 구성요소, 대시보드 요소 속성 및 값. options객체에서 반환되는 모든 속성에dashboard:options:set이벤트를 사용하여 업데이트된 값을 지정할 수 있습니다. | 
dashboard:tile:start
이 이벤트는 타일에서 데이터 로드 또는 쿼리가 시작될 때 생성됩니다.
type: "dashboard:tile:start",
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  url: "/embed/dashboards/...",
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/...",
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
}
tile: {
  id: 123,
  title: "Quarterly Sales",
  listen: {
    "Date": "order.date",
    "Total Orders": "order.count"
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| dashboard.id | 숫자/문자열 | 타일이 속한 대시보드의 ID | 
| dashboard.title | 문자열 | 타일이 속한 대시보드 상단에 표시되는 대시보드 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.url | 문자열 | 타일이 속한 상대 대시보드 URL(경로) | 
| dashboard.absoluteUrl | 문자열 | 타일이 속한 전체 대시보드 URL | 
| dashboard.dashboard_filters | 객체 | 타일이 속한 대시보드에 적용되는 필터. 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
| tile.id | 정수 | 타일이 아닌 이벤트의 ID 번호 | 
| tile.title | 문자열 | 타일 상단에 표시되는 타일 제목 | 
| tile.listen | 객체 | 전역 대시보드가 이 타일이 수신 대기하는 필터 이 객체의 형식은 다음과 같습니다: {"Filter Label": "Filter Field", ...} | 
dashboard:tile:complete
이 이벤트는 타일에서 쿼리 실행을 완료하면 생성됩니다.
type: "dashboard:tile:complete",
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  url: "/embed/dashboards/...",
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/...",
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
}
status: "complete",
truncated: false,
tile: {
  id: 123,
  title: "Quarterly Sales",
  listen: {
    "Date": "order.date",
    "Total Orders": "order.count"
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| dashboard.id | 숫자/문자열 | 타일이 속한 대시보드의 ID | 
| dashboard.title | 문자열 | 타일이 속한 대시보드 상단에 표시되는 대시보드 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.url | 문자열 | 타일이 속한 상대 대시보드 URL(경로) | 
| dashboard.absoluteUrl | 문자열 | 타일이 속한 전체 대시보드 URL | 
| dashboard.dashboard_filters | 객체 | 타일이 속한 대시보드에 적용되는 필터. 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
| status | 문자열 | 타일 쿼리가 성공적으로 완료되었는지 여부. 가능한 값은 "complete"또는"error"입니다. | 
| truncated | 불리언 | 쿼리 결과로 쿼리 행 한도보다 더 많은 행이 반환되어 타일 쿼리 결과가 잘렸는지 여부 행 한도는 사용자가 지정한 행 한도이거나 Looker 기본 행 한도인 5,000개일 수 있습니다. | 
| tile.id | 정수 | 타일이 아닌 이벤트의 ID 번호 | 
| tile.title | 문자열 | 타일 상단에 표시되는 타일 제목 | 
| tile.listen | 객체 | 전역 대시보드가 이 타일이 수신 대기하는 필터 이 객체의 형식은 다음과 같습니다: {"Filter Label": "Filter Field", ...} | 
| tile.errors | 객체 배열 | status속성이"error"인 경우 채워집니다. 오류 메시지 텍스트, 오류에 관한 자세한 설명, 오류를 일으킨 타일의 SQL 쿼리를 포함하여 오류에 관한 세부정보를 제공하는 객체 배열입니다. | 
dashboard:tile:download
이 이벤트는 타일의 데이터 다운로드가 시작될 때 생성됩니다.
type: "dashboard:tile:download",
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  url: "/embed/dashboards/...",
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/...",
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
}
tile: {
  id: 123,
  title: "Quarterly Sales"
  listen: {
    "Date": "order.date",
    "Total Orders": "order.count"
  }
}
fileFormat: "pdf"
| 속성 | 형식 | 설명 | 
|---|---|---|
| dashboard.id | 숫자/문자열 | 타일이 속한 대시보드의 ID | 
| dashboard.title | 문자열 | 타일이 속한 대시보드 상단에 표시되는 대시보드 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.url | 문자열 | 타일이 속한 상대 대시보드 URL(경로) | 
| dashboard.absoluteUrl | 문자열 | 타일이 속한 전체 대시보드 URL | 
| dashboard.dashboard_filters | 객체 | 타일이 속한 대시보드에 적용되는 필터. 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
| tile.id | 정수 | 타일이 아닌 이벤트의 ID 번호 | 
| tile.title | 문자열 | 타일 상단에 표시되는 타일 제목 | 
| tile.listen | 객체 | 전역 대시보드가 이 타일이 수신 대기하는 필터 이 객체의 형식은 다음과 같습니다: {"Filter Label": "Filter Field", ...} | 
| fileFormat | 문자열 | 다운로드한 타일의 형식(현재 "pdf"만 해당) | 
dashboard:tile:explore
이 이벤트는 사용자가 대시보드 타일에서 여기에서 탐색 옵션을 클릭하면 생성됩니다.
이 이벤트는 취소할 수 있습니다. 즉, 삽입 애플리케이션이 {cancel: true}를 반환할 수 있으며 Looker는 트리거 이벤트를 진행하지 않습니다.
type: "dashboard:tile:explore",
label: 'Explore From Here',
url: '/embed/explore/model/view...',
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  url: "/embed/dashboards/...",
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/...",
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
}
tile: {
  id: 123,
  title: "Quarterly Sales",
  listen: {
    "Date": "order.date",
    "Total Orders": "order.count"
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| label | 문자열 | 버튼 라벨 | 
| url | 문자열 | 보려는 탐색의 상대 URL(경로) | 
| dashboard.id | 숫자/문자열 | 타일이 속한 대시보드의 ID | 
| dashboard.title | 문자열 | 타일이 속한 대시보드 상단에 표시되는 대시보드 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.url | 문자열 | 타일이 속한 상대 대시보드 URL(경로) | 
| dashboard.absoluteUrl | 문자열 | 타일이 속한 전체 대시보드 URL | 
| dashboard.dashboard_filters | 객체 | 타일이 속한 대시보드에 적용되는 필터. 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
| tile.id | 정수 | 타일이 아닌 이벤트의 ID 번호 | 
| tile.title | 문자열 | 타일 상단에 표시되는 타일 제목 | 
| tile.listen | 객체 | 전역 대시보드가 이 타일이 수신 대기하는 필터 이 객체의 형식은 다음과 같습니다: {"Filter Label": "Filter Field", ...} | 
dashboard:tile:view
이 이벤트는 사용자가 대시보드 카드에서 원본 Look 보기 옵션을 클릭하면 생성됩니다.
이 이벤트는 취소할 수 있습니다. 즉, 삽입 애플리케이션이 {cancel: true}를 반환할 수 있으며 Looker는 트리거 이벤트를 진행하지 않습니다.
type: "dashboard:tile:view",
label: 'View Original Look',
url: '/embed/look/...',
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  url: "/embed/dashboards/...",
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/...",
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
}
tile: {
  id: 123,
  title: "Quarterly Sales",
  listen: {
    "Date": "order.date",
    "Total Orders": "order.count"
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| label | 문자열 | 버튼 라벨 | 
| url | 문자열 | 보려는 Look의 상대 URL(경로) | 
| dashboard.id | 숫자/문자열 | 타일이 속한 대시보드의 ID | 
| dashboard.title | 문자열 | 타일이 속한 대시보드 상단에 표시되는 대시보드 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.url | 문자열 | 타일이 속한 상대 대시보드 URL(경로) | 
| dashboard.absoluteUrl | 문자열 | 타일이 속한 전체 대시보드 URL | 
| dashboard.dashboard_filters | 객체 | 타일이 속한 대시보드에 적용되는 필터. 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
| tile.id | 정수 | 타일이 아닌 이벤트의 ID 번호 | 
| tile.title | 문자열 | 타일 상단에 표시되는 타일 제목 | 
| tile.listen | 객체 | 전역 대시보드가 이 타일이 수신 대기하는 필터 이 객체의 형식은 다음과 같습니다: {"Filter Label": "Filter Field", ...} | 
dashboard:tile:merge
25.14에서 추가됨 이 이벤트는 사용자가 병합된 쿼리 수정 버튼 또는 병합된 쿼리 수정 메뉴 항목을 클릭할 때 생성됩니다. 이 버튼의 기본 동작은 병합 쿼리를 수정할 수 있는 새 최상위 창을 여는 것입니다.
이 이벤트는 취소할 수 있습니다. 즉, 삽입 애플리케이션이 {cancel: true}를 반환할 수 있으며 Looker는 트리거 이벤트를 진행하지 않습니다. 이 이벤트를 사용하면 삽입 애플리케이션이 최상위 창이 아닌 iframe에서 병합 쿼리 수정을 열 수 있습니다. 삽입 애플리케이션은 이벤트를 트리거한 iframe에서 URL을 로드하려고 시도해서는 안 됩니다. 대신 새 iframe을 만들어야 합니다.
javascript
type: dashboard:tile:merge,
label: 'Edit Merged Query',
dashboard_id: '13',
dashboard_modified: false,
tile_id: '218',
tile_title: 'Untitled',
url: '/embed/merge/edit?did=218&dbnx=1',
absoluteUrl: 'https://.../embed/merge/edit?did=218&dbnx=1',
target: '_blank',
| 속성 | 형식 | 설명 | 
|---|---|---|
| label | 문자열 | 버튼 라벨 | 
| dashboard_id | 문자열 | 병합된 쿼리 타일이 속한 대시보드의 ID입니다. | 
| dashboard_modified | 부울 | true인 경우 이 속성은 대시보드가 수정되었음을 나타냅니다. 병합 쿼리 수정이 진행되면 대시보드 업데이트가 손실될 수 있습니다. 삽입 애플리케이션은 병합 쿼리 수정을 취소하거나 계속 진행할 경우 저장되지 않은 변경사항이 있을 수 있다고 사용자에게 경고할 수 있습니다. | 
| tile_id | 문자열 | 병합된 쿼리 타일의 ID입니다. | 
| tile_title | 문자열 | 타일의 제목입니다. | 
| url | 문자열 | 병합된 쿼리의 URL입니다. 이 속성은 embed SDK와 함께 사용하여 병합된 쿼리에 대한 새 iframe을 만들 수 있습니다. | 
| absoluteUrl | 문자열 | 병합된 쿼리의 전체 URL입니다. 이 속성은 iframe 요소의 src로 사용될 수 있습니다. 추가 속성이 필요합니다. | 
| target | 문자열 | 열릴 창의 이름에 사용할 ID입니다. | 
dashboard:filters:changed
이 이벤트는 대시보드의 필터가 적용되거나 변경될 때 생성됩니다.
type: "dashboard:filters:changed",
dashboard: {
  id: 23,
  title: "My Dashboard",
  canEdit: true,
  url: "/embed/dashboards/...",
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/...",
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
  options: {
    layouts: [
      {
        id: 1,
        dashboard_id: 1,
        type: "newspaper",
        active: true,
        column_width: null,
        width: null,
        deleted: false,
        dashboard_layout_components: [
          {
            id: 1,
            dashboard_layout_id: 1,
            dashboard_element_id: 1,
            row: 0,
            column: 0,
            width: 8,
            height: 4,
            deleted: false
          },
          {
            id: 2,
            dashboard_layout_id: 1,
            dashboard_element_id: 2,
            row: 0,
            column: 8,
            width: 8,
            height: 4,
            deleted: false
          }
        ]
      }
    ],
    elements: {
      1: {
        title: "Total Orders",
        title_hidden: false,
        vis_config: {
          type: "single_value",
          font_size: "medium",
          title: "Total Orders"
        }
      },
      2: {
        title: "Average Order Profit",
        title_hidden: false,
        vis_config: {
          type: "single_value",
          title: "Average Order Profit"
        }
      }
    }
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| dashboard.id | 숫자/문자열 | 대시보드의 ID | 
| dashboard.title | 문자열 | 대시보드 상단에 표시되는 제목 | 
| dashboard.canEdit | 불리언 | 22.20 추가됨 true인 경우, 사용자가 대시보드를 수정할 수 있습니다. | 
| dashboard.url | 문자열 | 상대 대시보드 URL(경로만) | 
| dashboard.absoluteUrl | 문자열 | 전체 대시보드 URL | 
| dashboard.dashboard_filters | 객체 | 대시보드에 적용된 필터 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
| dashboard.options | 객체 | 대시보드 레이아웃, 대시보드 레이아웃 구성요소, 대시보드 요소 속성 및 값. options객체에서 반환되는 모든 속성에dashboard:options:set이벤트를 사용하여 업데이트된 값을 지정할 수 있습니다. | 
look:ready
이 이벤트는 쿼리 실행 여부에 관계없이 Look에서 쿼리 데이터가 로드되기 시작할 때 생성됩니다.
type: "look:ready",
look: {
  url: "/embed/looks/...",
  absoluteUrl: "https://instance_name.looker.com/embed/looks/...",
  }
| 속성 | 형식 | 설명 | 
|---|---|---|
| look.url | 문자열 | 상대 Look URL(경로만) | 
| look.absoluteUrl | 문자열 | 전체 Look URL | 
look:run:start
이 이벤트는 Look에서 쿼리 데이터를 로드하기 시작하고 쿼리가 실행되기 시작할 때 생성됩니다.
type: "look:run:start",
look: {
  url: "/embed/looks/...",
  absoluteUrl: "https://instance_name.looker.com/embed/looks/...",
  }
| 속성 | 형식 | 설명 | 
|---|---|---|
| look.url | 문자열 | 상대 Look URL(경로만) | 
| look.absoluteUrl | 문자열 | 전체 Look URL | 
look:run:complete
이 이벤트는 Look에서 쿼리 실행을 완료하면 생성됩니다.
type: look:run:complete
look: {
  url: "/embed/looks/...",
  absoluteUrl: "https://instance_name.looker.com/embed/looks/...",
  }
| 속성 | 형식 | 설명 | 
|---|---|---|
| look.url | 문자열 | 상대 Look URL(경로만) | 
| look.absoluteUrl | 문자열 | 전체 Look URL | 
look:edit:start
25.10 추가됨 이 이벤트는 Look이 수정 모드로 전환될 때 발생합니다.
type: "look:edit:start",
look: {
  id: 46,
  title: "My Look",
  url: "/embed/looks/46",
  absoluteUrl: "https://instance_name.looker.com/embed/looks/46",
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| look.id | 문자열 | 룩의 ID입니다. | 
| look.title | 문자열 | 룩의 제목입니다. | 
| url | 문자열 | 상대 Look URL (경로만) | 
| absoluteUrl | 문자열 | 전체 Look URL입니다. | 
look:edit:cancel
25.10 추가 이 이벤트는 수정 모드인 Look이 저장되지 않고 수정 모드에서 종료될 때 실행됩니다.
type: "look:edit:cancel",
look: {
  id: 46,
  title: "My Look",
  url: "/embed/looks/46",
  absoluteUrl: "https://instance_name.looker.com/embed/looks/46",
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| look.id | 문자열 | 룩의 ID입니다. | 
| look.title | 문자열 | 룩의 제목입니다. | 
| url | 문자열 | 상대 Look URL (경로만) | 
| absoluteUrl | 문자열 | 전체 Look URL입니다. | 
look:save:complete
이 이벤트는 Look이 수정되고 저장될 때 생성됩니다. 이 이벤트는 사용자가 다음 작업 중 하나를 수행할 때 생성됩니다.
- 수정 버튼을 클릭하여 Look을 수정한 후 저장을 클릭합니다.
- 저장 > 다른 이름으로 저장 메뉴 옵션으로 Look을 저장합니다.
- 한 폴더에서 다른 폴더로 Look을 이동합니다.
저장 > 기존 대시보드로 또는 설정 수정 메뉴 옵션으로 Look이 저장된 경우 이 이벤트는 생성되지 않습니다.
type: look:save:complete
look: {
  url: "/embed/looks/...",
  absoluteUrl: "https://instance_name.looker.com/embed/looks/...",
  folderid: 123
  }
| 속성 | 형식 | 설명 | 
|---|---|---|
| look.url | 문자열 | 상대 Look URL(경로만) | 
| look.absoluteUrl | 문자열 | 전체 Look URL | 
| look.folderid | 정수 | Look이 저장된 폴더 ID | 
look:delete:complete
이 이벤트는 Look이 휴지통 폴더로 이동될 때 생성됩니다.
type: look:delete:complete
look: {
  url: "/embed/looks/...",
  absoluteUrl: "https://instance_name.looker.com/embed/looks/...",
  }
| 속성 | 형식 | 설명 | 
|---|---|---|
| look.url | 문자열 | 상대 Look URL(경로만) | 
| look.absoluteUrl | 문자열 | 전체 Look URL | 
drillmenu:click
이 이벤트는 사용자가 link LookML 매개변수로 만든 대시보드에서 드릴 메뉴를 클릭하면 생성됩니다. 예를 들어 다음 LookML은 사용자가 state 측정기준으로 필터링된 데이터를 볼 수 있는 드릴 메뉴를 만듭니다.
dimension: state {
  type: string
  sql: ${TABLE}.state ;;
  link: {
    label: "Filter by {{ state | encode_uri }}"
    url: "filter::q={{ state | encode_uri }}"
    icon_url: "https://google.com/favicon.ico"
  }
}
state 필터가 Illinois로 설정되면 drillmenu:click 이벤트는 iframe의 호스트에 다음을 반환합니다.
type: "drillmenu:click",
label: "Filter by Illinois",
link_type: "url",
modal: false,
target: '_self',
url: "#filter::state=Illinois"
context: ' '
이 이벤트는 취소할 수 있습니다. 즉, 삽입 애플리케이션이 {cancel: true}를 반환할 수 있으며 Looker는 트리거 이벤트를 진행하지 않습니다.
| 속성 | 형식 | 설명 | 
|---|---|---|
| label | 문자열 | 드릴 메뉴에 표시되는 링크 라벨 | 
| link_type | 문자열 | 링크 대상의 객체 유형 | 
| modal | 불리언 | 브라우저 탐색 대신 드릴 대화상자를 사용할지 여부 | 
| target | 문자열 | 링크 대상이 현재 iframe을 대체하는 경우 _self, 링크 대상이 새 창을 여는 경우_blank입니다. | 
| url | 문자열 | 링크 대상의 URL | 
| context | 문자열 | 일부 시각화 유형에서 사용하는 내부 속성 | 
iframe을 샌드박스 처리하면 드릴 메뉴에서 새 창을 열 수 없습니다. iframe 태그 내에서 다음 샌드박스 값을 사용합니다.
sandbox = "allow-same-origin allow-scripts"
drillmodal:download
이 이벤트는 사용자가 대시보드 타일에서 드릴 대화상자를 열고 다운로드 옵션을 클릭하면 생성됩니다.
{
type: "drillmodal:download",
dashboard: {
  id: 23,
  title: "My Dashboard",
  url: "/embed/dashboards/…",
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/…",
  dashboard_filters: {
    "Date": "Last 28 days",
    "Total Orders": "Greater than 100"
  }
}
drillExploreUrl: "/embed...",
fileFormat: "pdf"
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| dashboard.id | 숫자/문자열 | 타일이 속한 대시보드의 ID | 
| dashboard.title | 문자열 | 타일이 속한 대시보드 상단에 표시되는 대시보드 제목 | 
| dashboard.url | 문자열 | 타일이 속한 상대 대시보드 URL(경로) | 
| dashboard.absoluteUrl | 문자열 | 타일이 속한 전체 대시보드 URL | 
| dashboard.dashboard_filters | 객체 | 타일이 속한 대시보드에 적용되는 필터. 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
| drillExploreUrl | 문자열 | 다운로드할 상대 탐색 URL(경로만) | 
| fileFormat | 문자열 | 데이터 다운로드의 파일 형식. | 
drillmodal:explore
이 이벤트는 사용자가 드릴 대화상자에서 여기에서 탐색 옵션을 클릭하면 생성됩니다.
이 이벤트는 취소할 수 있습니다. 즉, 삽입 애플리케이션이 {cancel: true}를 반환할 수 있으며 Looker는 트리거 이벤트를 진행하지 않습니다.
type: "drillmodal:explore",
label: "Explore From Here",
url: "/embed/explore/model/view..."
| 속성 | 형식 | 설명 | 
|---|---|---|
| label | 문자열 | 드릴 메뉴에 표시되는 버튼 라벨 | 
| url | 문자열 | 보려는 상대 탐색 URL(경로) | 
explore:ready
이 이벤트는 쿼리 실행 여부에 관계없이 탐색에서 쿼리 데이터가 로드되기 시작하면 생성됩니다.
type: "explore:ready",
explore: {
  url: "/embed/explore/...",
  absoluteUrl: "https://instance_name.looker.com/embed/explore/...",
  }
| 속성 | 형식 | 설명 | 
|---|---|---|
| explore.url | 문자열 | 상대 탐색 URL(경로) | 
| explore.absoluteUrl | 문자열 | 전체 탐색 URL | 
explore:run:start
이 이벤트는 탐색에서 쿼리 데이터를 로드하기 시작하고 쿼리가 실행되기 시작할 때 생성됩니다.
type: "explore:run:start",
explore: {
  url: "/embed/explore/...",
  absoluteUrl: "https://instance_name.looker.com/embed/explore/...",
  }
| 속성 | 형식 | 설명 | 
|---|---|---|
| explore.url | 문자열 | 상대 탐색 URL(경로) | 
| explore.absoluteUrl | 문자열 | 전체 탐색 URL | 
explore:run:complete
이 이벤트는 탐색에서 쿼리 실행을 완료하면 생성됩니다.
type: "explore:run:complete",
explore: {
  url: "/embed/explore/...",
  absoluteUrl: "https://instance_name.looker.com/embed/explore/...",
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| explore.url | 문자열 | 상대 탐색 URL(경로) | 
| explore.absoluteUrl | 문자열 | 전체 탐색 URL | 
explore:state:changed
이 이벤트는 사용자의 작업으로 인해 탐색 페이지 URL이 변경될 때 생성됩니다.
type: "explore:state:changed",
explore: {
  url: "/embed/explore/...",
  absoluteUrl: "https://instance_name.looker.com/embed/explore/..."
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| explore.url | 문자열 | 상대 탐색 URL(경로) | 
| explore.absoluteUrl | 문자열 | 전체 탐색 URL | 
page:changed
이 이벤트는 사용자가 iframe 내에서 새 페이지로 이동할 때 생성됩니다.
type: "page:changed",
page: {
  type: "dashboard",
  url: "/embed/dashboards/...",
  absoluteUrl: "https://instance_name.looker.com/embed/dashboards/..."
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| page.type | 문자열 | "dashboard","look","explore"등 방금 이동한 페이지 유형 | 
| page.url | 문자열 | 방금 이동한 페이지의 상대 URL(경로) | 
| page.absoluteUrl | 문자열 | 방금 이동한 페이지의 전체 URL | 
page:properties:changed
이 이벤트는 대시보드 iframe의 높이가 변경될 때 생성됩니다. 이러한 항목은 높이가 iframe 크기로 자동 조정되므로 Look 또는 탐색에는 사용할 수 없습니다.
type: "page:properties:changed",
height: 1000
| 속성 | 형식 | 설명 | 
|---|---|---|
| height | 정수 | 대시보드 iframe의 높이(픽셀) | 
session:tokens
이 이벤트는 Looker 클라이언트가 계속하려면 토큰이 필요함을 나타냅니다. 이 이벤트는 iframe이 생성되는 즉시 생성되며 세션 기간 동안 주기적으로 생성됩니다.
{
  "type": "session:tokens",
  "api_token": "eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3NlbGYtc2lnbmVkLmxvb2tlci5jb206OTk5OSIsImV4cCI6MTY3MDYyNjMzMCwic3ViIjoiYVdrNWFGUzM4RnRwNzFFWXhuS3ZaMXdKRmV3ZjB2VzYtTV9zLWtCcHE1dXIiLCJ0b2tlbl90eXBlIjoiYXBpX3Rva2VuIiwicmFuZG9taXplciI6IkxjYnpOeDNTVjNOb3o3UVlqTVJjNmhlMkdodjh1a2UwWUhiZWNRMHVCYm1KIn0.CBv1__QGc_H7bKNe31SHMMQCsc5ya1xOiEv1UDWAyxM",
  "api_token_ttl": 463,
  "navigation_token": "eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3NlbGYtc2lnbmVkLmxvb2tlci5jb206OTk5OSIsImV4cCI6MTY3MDYyNjMzMCwic3ViIjoiYVdrNWFGUzM4RnRwNzFFWXhuS3ZaMXdKRmV3ZjB2VzYtTV9zLWtCcHE1dXIiLCJ0b2tlbl90eXBlIjoibmF2aWdhdGlvbl90b2tlbiIsInJhbmRvbWl6ZXIiOiJHVVNlc00tdTRPRDlNdktodFJDU2pEcVFhUkJNeTh5dm42Q1FDUXhuLTNxMiJ9.sWo7LUEI5LeragVmeDamUR7u2myXpFJ0aqK_IIALUqI",
  "navigation_token_ttl": 463,
  "session_reference_token_ttl": 2924
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| authentication_token | 문자열 | 인증 토큰. iframe이 생성될 때 포함됩니다. 토큰 생성 요청에 대한 응답 또는 세션이 만료된 경우에는 포함되지 않습니다. | 
| authentication_token_ttl | 숫자 | 인증 토큰 수명(초). iframe이 생성될 때 포함됩니다. 토큰 생성 요청에 대한 응답 또는 세션이 만료된 경우에는 포함되지 않습니다. | 
| api_token | 문자열 | API Token. 세션이 만료된 경우 포함되지 않습니다. | 
| api_token_ttl | 숫자 | API 토큰 수명(초). 세션이 만료된 경우 포함되지 않습니다. | 
| navigation_token | 문자열 | 탐색 토큰. 세션이 만료된 경우 포함되지 않습니다. | 
| navigation_token_ttl | 숫자 | 탐색 토큰 수명(초). 세션이 만료된 경우 포함되지 않습니다. | 
| session_references_token_ttl | 숫자 | 세션 시간(초). 세션이 만료되면 값은 0이 됩니다. 복구하려면 삽입 애플리케이션이 새 세션을 획득해야 합니다. | 
session:expired
추가됨 25.10 이 이벤트는 삽입된 사용자의 세션이 만료될 때 발생합니다.
type: "session:expired",
이 이벤트에는 페이로드가 없습니다.
session:status
임베딩된 Looker 애플리케이션이 세션 토큰 요청을 처리할 때 이벤트가 생성됩니다.
{
  "type": "session:status",
  "session_ttl": 0,
  "expired": true,
  "interrupted": false
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| session_ttl | 숫자 | 세션 시간(초). | 
| expired | 불리언 | true인 경우 세션이 만료되었음을 나타냅니다. | 
| interrupted | 불리언 | true인 경우 세션 토큰 요청에 응답하지 않았음을 나타냅니다. 이는 서버를 일시적으로 사용할 수 없음을 나타낼 수 있습니다. | 
| recoverable | 불리언 | 인터럽트가 true인 경우에만 채워집니다. 세션을 복구할 수 있는지 여부를 나타냅니다.false값은 삽입 애플리케이션에 문제가 있음을 의미할 수 있습니다. | 
env:client:dialog
드릴 대화상자와 같이 부분적으로 보이지 않을 수 있는 대화상자가 열리면 이벤트가 생성됩니다. 이 이벤트를 통해 호스팅 애플리케이션은 env:host:scroll 작업으로 대화상자를 스크롤하여 열람할 수 있습니다.
{
  type: "env:client:dialog",
  dialogType: 'drilling',
  placement: 'cover',
  open: true
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | env:client:dialog은 대화상자가 열렸거나 닫혔음을 나타냅니다. 드릴 대화상자만 지원되지만 향후 다른 대화상자도 추가될 수 있습니다. 대화상자에 iframe 표시 영역이 포함되어 있으므로 드릴 대화상자 상단이 표시되지 않을 수 있습니다. 이 이벤트를 사용하면 호스트 애플리케이션이 대화상자의 맨 위를 스크롤하여 볼 수 있습니다. | 
| dialogType | 문자열 | 대화상자 유형입니다. '드릴링' 대화상자 유형의 열기 또는 닫기만 이 이벤트를 트리거합니다. | 
| placement | 문자열 | 대화상자의 배치입니다. '드릴링' 유형의 대화상자는 항상 'cover'의 placement를 사용합니다. | 
| open | 불리언 | 대화상자가 열려 있는지 스크롤되었는지 나타냅니다. | 
iframe에 변경사항 만들기
데이터 검색을 위해 iframe을 준비한 후 다음 단계에 따라 iframe을 변경할 수 있습니다.
JSON으로 요청 작성
JSON 형식으로 제출할 iframe을 여러 가지로 변경할 수 있습니다. 사용 가능한 옵션은 이 페이지의 작업 참조 섹션에 설명되어 있습니다. 다음과 같이 JSON.stringify를 사용하여 작업을 JSON으로 변환하는 것을 잊지 마세요.
var my_request = JSON.stringify(
  {
    type: "dashboard:run"
  }
);
iframe의 contentWindow 속성에 요청 게시
마지막으로 다음과 같이 iframe의 contentWindow에 메시지를 게시합니다.
var my_iframe = document.getElementById("my_iframe_id");
my_iframe.contentWindow.postMessage(my_request, 'https://instance_name.looker.com');
작업 요약 테이블
다음 표에는 작업이 요약되어 있습니다. 작업을 선택하여 해당 작업의 세부정보를 확인하세요.
| 작업 | 작업 설명 | 
|---|---|
| page:load | iframe에서 새 페이지를 로드하여 기존 페이지를 대체합니다. | 
| dashboard:load | iframe에 새 대시보드를 로드하여 기존 대시보드를 대체합니다. | 
| dashboard:run | iframe에서 대시보드를 실행합니다. | 
| dashboard:edit | 22.20 추가됨 대시보드를 수정 모드로 전환합니다. | 
| dashboard:filters:update | iframe에서 기존 대시보드 필터를 업데이트합니다. | 
| dashboard:options:set | 대시보드 레이아웃 및 대시보드 요소 속성에 새 값을 씁니다. | 
| dashboard:schedule_modal:open | 사용자가 Looker 콘텐츠를 다양한 대상으로 전송할 수 있는 스케줄러를 엽니다. | 
| dashboard:stop | 실행 중이거나 데이터를 다시 로드하는 대시보드를 중지합니다. | 
| look:run | iframe에서 Look을 실행합니다. | 
| look:filters:update | iframe에서 기존 Look 필터를 업데이트합니다. | 
| explore:run | iframe에서 탐색을 실행합니다. | 
| explore:filters:update | iframe에서 기존 탐색 필터를 업데이트하거나 삭제합니다. | 
| session:tokens:request | session:tokens:request이벤트에 대한 응답으로 토큰을 전송합니다. | 
| env:host:scroll | 호스트 Looker의 현재 스크롤 위치에 대한 정보를 임베딩된 Looker 애플리케이션에 전송합니다. | 
작업 참조
임베딩된 iframe에 게시할 수 있는 작업은 다음과 같습니다.
page:load
이 작업을 사용하여 iframe 내에서 새 콘텐츠로 이동하여 기존 콘텐츠를 대체합니다. 이 작업은 dashboard:load 작업과 유사하지만 URL에 추가 매개변수를 지정할 수 있으므로 더 유연합니다.
page:load를 사용하기 전에 고려해야 할 동작의 차이점이 있습니다. dashboard:load은 현재 대시보드가 수정 중인 경우 탐색이 발생하지 않도록 합니다. page:load는 탐색이 발생하지 않도록 방지하지 않습니다. 호스트 애플리케이션은 dashboard:edit:start, look:edit:start, 해당 수정 종료 이벤트를 추적하여 대시보드 또는 Look이 수정되고 있는지 확인할 수 있습니다. 따라서 삽입 SDK를 사용하는 것이 좋습니다. 삽입 SDK는 대시보드 또는 Look이 수정되고 있는지 추적하므로 연결을 쿼리하여 탐색 전에 콘텐츠가 수정되고 있는지 확인할 수 있습니다.
{
    type: 'page:load',
    url: '/embed/dashboard/32?state=california,
    pushHistory: false
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | page:load유형을 사용하면 iframe에 새 콘텐츠를 로드하겠다는 의미입니다. | 
| url | 문자열 | 로드할 콘텐츠의 URL입니다. | 
| pushHistory | 불리언 | true인 경우 로드된 콘텐츠가 새 브라우저 기록 항목을 만들고 사용자는 브라우저의 뒤로 버튼을 사용하여 이전 콘텐츠로 돌아갈 수 있습니다.false인 경우 현재 콘텐츠가 대체되고 브라우저 탐색을 사용하여 콘텐츠로 돌아갈 수 없습니다. | 
dashboard:load
이 작업을 사용하여 iframe에 새 대시보드를 로드하여 기존 대시보드를 대체합니다. 새 대시보드 페이지가 열린 것처럼 새 대시보드에서 쿼리 실행이 시작됩니다.
{
  type: "dashboard:load",
  id: "101",
  pushHistory: false
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | dashboard:load유형을 사용하면 iframe에 새 대시보드를 로드하려고 합니다. | 
| id | 문자열 | 로드할 대시보드의 ID | 
| pushHistory | 불리언 | true인 경우 로드된 대시보드가 새 브라우저 기록 항목을 만들고 사용자는 브라우저의 뒤로 버튼을 사용하여 이전 대시보드로 돌아갈 수 있습니다.false인 경우 현재 대시보드가 대체되고 브라우저 탐색을 사용하여 대시보드로 돌아갈 수 없습니다. | 
dashboard:run
이 작업을 사용하여 iframe에서 대시보드를 실행합니다. 이는 대시보드에서 실행 또는 데이터 새로고침 버튼을 누르는 것과 동일한 작업입니다.
{
  type: "dashboard:run"
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | dashboard:run유형을 사용하면 대시보드를 실행하겠다는 의미입니다. | 
dashboard:edit
22.20 추가 이 작업을 통해 iframe의 기존 대시보드를 수정 모드로 전환합니다. 이는 대시보드 메뉴에서 대시보드 수정을 선택하는 것과 동일한 작업입니다.
{
  type: "dashboard:edit"
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | dashboard:edit유형을 사용하면 대시보드를 수정 모드로 전환하겠다는 의미입니다. | 
dashboard:filters:update
이 작업을 사용하여 iframe에서 기존 대시보드 필터를 업데이트합니다. 이 방법을 사용하여 대시보드에 새 필터를 추가할 수는 없습니다.
{
  type: "dashboard:filters:update",
  filters: {
    "Sale date": "Last 28 days",
    "Sale amount": "Greater than 100"
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | dashboard:filters:update유형의 사용은 대시보드에서 사용하는 필터를 업데이트하는 것을 나타냅니다. | 
| filters | 객체 | 대시보드에 적용할 새 필터. 이 객체의 형식은 다음과 같습니다: {"Filter name 1": "value 1", "Filter name 2": "value 2", ...} | 
dashboard:options:set
이 작업은 dashboard:run:complete 이벤트가 발생한 후에 사용할 수 있습니다.
삽입기가 메시지를 만들어 iframe에 전송하지만 dashboard:run:complete이 발생할 때까지 대시보드가 응답하지 않습니다. dashboard:options:set 작업은 대시보드 레이아웃 및 대시보드 요소 속성에 새 값을 씁니다. dashboard:run:complete 이벤트의 options 속성에서 반환된 속성만 dashboard:options:set를 사용하여 업데이트할 수 있습니다. dashboard:run:complete 이벤트의 options 속성에서 이전에 반환되지 않은 설정된 속성은 무시됩니다.
{
  type: "dashboard:options:set",
  layouts: [
    {
      id: 1,
      dashboard_id: 1,
      type: "newspaper",
      active: true,
      column_width: null,
      width: null,
      deleted: false,
      dashboard_layout_components: [
        {
          id: 1,
          dashboard_layout_id: 1,
          dashboard_element_id: 1,
          row: 0,
          column: 0,
          width: 8,
          height: 4,
          deleted: false
        },
        {
          id: 2,
          dashboard_layout_id: 1,
          dashboard_element_id: 2,
          row: 0,
          column: 8,
          width: 8,
          height: 4,
          deleted: false
        }
      ]
    }
  ],
  elements: {
    1: {
      title: "Total Orders",
      title_hidden: false,
      vis_config: {
        type: "single_value",
        font_size: "medium",
        title: "Total Orders"
      }
    },
    2: {
      title: "Average Order Profit",
      title_hidden: false,
      vis_config: {
        type: "single_value",
        title: "Average Order Profit"
      }
    }
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | dashboard:options:set유형을 사용하면 대시보드 레이아웃 및 대시보드 요소 속성에 새 값을 쓰려고 함을 나타냅니다. | 
| layouts | 객체 | dashboard:run:complete이벤트의options속성에서 반환되는 대시보드 레이아웃 속성입니다. 다음과 유사한 형식으로 표시됩니다.
 | 
| layouts.dashboard_layout_components | 객체 | dashboard:run:complete이벤트의options속성에서 반환된 하나 이상의 대시보드 레이아웃 구성요소 객체 다음과 유사한 형식으로 표시됩니다.
 | 
| elements | 객체 | dashboard:run:complete이벤트의options속성에서 반환된 하나 이상의 대시보드 요소 객체 다음과 유사한 형식으로 표시됩니다.id: {  title: "string",  title_hidden: boolean,  vis_config: {    type: "string", title: "string"  }} | 
dashboard:schedule_modal:open
이 작업을 사용하여 스케줄러를 열면 사용자가 다양한 대상에 Looker 콘텐츠를 전송할 수 있습니다.
{
  type: "dashboard:schedule_modal:open"
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | dashboard:schedule_modal:open유형을 사용하면 일정 대화상자를 열겠다는 의미입니다. | 
dashboard:stop
이 작업을 사용하여 실행 중이거나 데이터를 다시 로드하는 대시보드를 중지합니다. 이는 대시보드에서 취소 버튼을 클릭하는 것과 동일한 작업입니다. dashboard:stop 사용을 중지한 대시보드는 status:를 "stopped"로 설정하여 dashboard:run:complete 이벤트를 전송합니다.
{
  type: "dashboard:stop"
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | dashboard:stop유형을 사용하면 실행 중인 대시보드를 중지하겠다는 의미입니다. | 
look:run
이 작업을 사용하여 Look이 iframe을 기반으로 하는 쿼리를 실행합니다. 이 작업은 look:run이 항상 데이터베이스를 직접 쿼리하고 Looker 캐시에서 데이터를 검색하지 않는다는 점을 제외하면 Look에서 실행 버튼을 누르는 것과 유사합니다.
{
  type: "look:run"
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | look:run유형을 사용하면 Look을 실행하겠다는 의미입니다. | 
look:filters:update
이 작업을 사용하여 iframe에서 기존 Look 필터를 업데이트합니다. 이 메서드를 사용하여 Look에 새 필터를 추가할 수는 없습니다.
{
  type: "look:filters:update",
  filters: {
    "orders.created_at": "90 days",
    "products.department": "sweaters"
  }
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | look:filters:update유형의 사용은 Look에서 사용하는 필터를 업데이트하는 것을 나타냅니다. | 
| filters | 객체 | Look에 적용할 새 필터. 이 객체의 형식은 다음과 같습니다: {"view_name.field_name_1": "value 1", "view_name.field_name_1": "value 2", ...} | 
explore:run
이 작업을 사용하여 iframe에서 Explore를 실행합니다. 이 작업은 explore:run이 항상 데이터베이스를 직접 쿼리하고 Looker 캐시에서 데이터를 검색하지 않는다는 점을 제외하면 Explore에서 실행 버튼을 누르는 것과 유사합니다.
{
  type: "explore:run"
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | explore:run유형의 사용은 Explore 실행을 나타냅니다. | 
explore:filters:update
이 작업을 사용하여 iframe에서 기존 Explore 필터를 업데이트하거나 삭제합니다. 유효한 필드를 참조하는 새 필터를 포함하면 Explore에 새 필터가 추가됩니다.
{
  type: "explore:filters:update",
  filters: {
    "orders.created_at": "90 days",
    "orders.status": "complete"
  }
  deleteFilters:  ["products.department"]
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | explore:filters:update유형의 사용은 Explore에서 사용하는 필터를 업데이트하는 것을 나타냅니다. | 
| filters | 객체 | 탐색에 적용할 새 필터. filters에 Explore에 없지만 유효한 필드를 참조하는 필터가 포함된 경우 해당 필터가 Explore에 추가됩니다. 이 객체의 형식은{"view_name.field_name_1": "value 1", "view_name.field_name_1": "value 2", ...}입니다. | 
| deleteFilters | 배열 | 탐색에서 삭제할 기존 필터. 배열의 형식은 다음과 같습니다: ["view_name.field_name_1", "view_name.field_name_2", ...] | 
session:tokens:request
이 작업을 사용하여 session:tokens:request 요청에 대한 응답으로 토큰을 보냅니다.
{
  type: "session:tokens:request",
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | session:tokens:request유형을 사용하면session:tokens:request이벤트에 대한 응답으로 토큰을 전송하겠다는 의미입니다. | 
env:host:scroll
이 작업을 사용하여 호스트 iframe의 현재 스크롤 위치에 대한 정보를 임베딩된 Looker 애플리케이션에 보냅니다.
{
  type: "env:host:scroll",
  offsetTop: 10,
  offsetLeft: 10,
  scrollX: 5,
  scrollY: 5
}
| 속성 | 형식 | 설명 | 
|---|---|---|
| type | 문자열 | env:host:scroll유형을 사용하면 호스트 iframe의 현재 스크롤 위치에 대한 정보를 임베딩된 Looker 애플리케이션에 전송하려고 합니다. | 
| offsetTop | 숫자 | iframe의 오프셋 상단 | 
| offsetLeft | 숫자 | iframe의 오프셋 왼쪽 | 
| scrollX | 숫자 | 애플리케이션 호스트의 스크롤 X 위치 | 
| scrollY | 숫자 | 애플리케이션 호스트의 스크롤 Y 위치 |