AdChoices 아이콘 및 오버레이

Google에서 호스팅하는 개인 맞춤 광고를 표시하는 모든 앱에서는 Google에서 제공하는 경우 AdChoices 아이콘과 오버레이를 구현해야 합니다. AdChoices('이 광고가 표시된 이유'라고도 함)는 사용자에게 특정 광고가 게재되는 이유를 설명하고 사용자의 개인 정보가 어떻게 보호되는지에 대한 정보를 제공하는 투명성 기능입니다.

자세한 내용은 광고가 표시되는 이유를 참고하세요.

이 가이드에서는 광고의 VAST XML 응답 또는 DAI 스트림의 메타데이터 응답에서 AdChoices를 올바르게 구현하는 데 필요한 정보를 추출하는 방법을 설명합니다.

AdChoices 렌더링 요구사항

AdChoices 아이콘 렌더링에 대한 Google의 요건을 준수하려면 앱 또는 웹사이트가 다음 표준을 충족해야 합니다.

  1. AdChoices 아이콘은 아이콘이 제공된 모든 광고에 오버레이로 표시되어야 합니다.
  2. AdChoices 아이콘은 아이콘 데이터에 포함된 'X 위치' 및 'Y 위치' 속성으로 표시된 위치에 표시되어야 하며, 밀도 독립형 픽셀 (DP) 단위로 너비 및 높이 속성으로 정의된 크기로 표시되어야 합니다.
  3. AdChoices 아이콘은 다른 광고 오버레이나 인터페이스 요소로 가려서는 안 됩니다.
  4. 클릭이 지원되거나 이와 동등한 플랫폼 (예: 터치 또는 원격 선택)이 있는 플랫폼에서는 AdChoices 아이콘을 클릭할 수 있어야 합니다.
  5. 브라우저 지원 플랫폼에서 AdChoices 아이콘을 클릭하면 브라우저 탭이나 창이 열리고 'ClickThrough' 또는 'click_data' 속성에 지정된 URL이 있어야 합니다.
  6. 브라우저를 지원하지 않는 플랫폼에서 AdChoices 아이콘을 클릭하면 모달 오버레이가 열려 'IconClickFallbackImage' 또는 'click_fallback_images' 속성에 지정된 이미지 중 하나가 표시됩니다.
  7. 브라우저 지원이 없는 플랫폼에서는 대체 이미지가 'IconClickFallbackImage' 또는 'click_fallback_images' 속성 내에 지정된 크기로(밀도 독립형 픽셀(DP)) 표시되어야 합니다.

VAST XML 응답에서 AdChoices 파싱

XML 광고 응답을 사용할 때 AdChoices는 VAST 버전 3.0 이상에서만 지원됩니다. AdChoices는 VAST 아이콘으로 구현됩니다.

VAST 4.2

XML 광고 응답이 VAST 4.2 표준을 따르는 경우 AdChoices가 VAST 아이콘으로 게재됩니다. 앱 또는 웹사이트에서 VAST 4.2 아이콘 (VAST 4.2 표준의 섹션 3.11)을 완벽히 지원하는 경우에는 AdChoices 지원을 위해 추가 작업이 필요하지 않습니다.

앱에서 VAST 4.2 아이콘을 지원하지 않으면 해당 표준을 기반으로 VAST 응답에서 프로그램 이름이 'GoogleWhyThisAd'인 아이콘을 수동으로 파싱해야 합니다. 앱에서 이 샘플 VAST 4.2 xml을 추가로 테스트할 수 있습니다.

샘플 VAST 4.2 응답

<?xml version="1.0" encoding="UTF-8"?>
<VAST version="4.2">
  <Ad id="20011">
    <Wrapper>
      ...
      <Creatives>
        ...
        <Creative id="5480" sequence="1">
          ...
          <Linear>
            ...
            <Icons>
              ...
              <Icon program="GoogleWhyThisAd" width="40" height="30" xPosition="left" yPosition="100" duration="00:00:10" offset="00:00:00" apiFramework="VAST" altText="AdChoices icon">
                <StaticResource creativeType="image/png">
                  <![CDATA[ https://storage.googleapis.com/interactive-media-ads/hosted-samples/wta/icon_adchoices.png ]]>
                </StaticResource>
                <IconClicks>
                  <IconClickThrough>
                    <![CDATA[ https://g.co/adsettings ]]>
                  </IconClickThrough>
                  <IconClickFallbackImages>
                    <IconClickFallbackImage width="950" height="600">
                      <AltText>
                        <![CDATA[ This ad was shown to you based on: * Google's estimation of your interests, based on your activity on Google on this device (for example, your searches) * the information on the website you were viewing. ]]>
                      </AltText>
                      <StaticResource creativeType="image/png">
                        <![CDATA[ https://storage.googleapis.com/interactive-media-ads/hosted-samples/wta/icon_adchoices_fallback_image.png ]]>
                      </StaticResource>
                    </IconClickFallbackImage>
                    ...
                  </IconClickFallbackImages>
                </IconClicks>
              </Icon>
              ...
            </Icons>
            ...
          </Linear>
          ...
        </Creative>
        ...
      </Creatives>
      ...
    </Wrapper>
    ...
  </Ad>
</VAST>

VAST 3.0

XML 광고 응답이 VAST 3.0 표준을 준수하면 AdChoices가 VAST 아이콘과 맞춤 VAST 확장 프로그램의 조합으로 게재됩니다. 앱 또는 웹사이트에서 VAST 3.0 아이콘 표준을 완벽하게 지원하고 플랫폼에서 아이콘 클릭연결 URL로 이동하여 아이콘 클릭연결 URL을 표시할 수 있는 경우 AdChoices 지원 서비스에 추가 작업이 필요하지 않습니다.

플랫폼에서 클릭연결 URL로 이동하여 표시할 수 없는 경우(주로 통합 웹브라우저가 없는 기기에 적용됨) 'IconFallbackImages' 확장 프로그램 지원을 구현해야 합니다. 이 확장 프로그램에는 'IconFallbackImages' 태그 모음이 포함되어 있으며, 여기서 'program' 속성은 VAST에 포함된 아이콘과 일치합니다.

AdChoices를 완벽하게 지원하려면 프로그램 이름이 'GoogleWhyThisAd'인 IconFallbackImages 태그를 아이콘에 'GoogleWhyThisAd'와 연결하여 사용자가 아이콘과 상호작용할 때 관련 대체 이미지가 표시되도록 해야 합니다.

향후 AdChoices 표준이 변경될 수 있도록 지원하려면 가능한 경우 모든 VAST 아이콘에 대체 이미지 지원을 통합하는 것이 좋습니다. 이 샘플 VAST 3.0 xml을 사용하여 앱에서 추가적으로 테스트할 수 있습니다.

IconFallbackImages 확장 프로그램 구조

태그 특성 설명
확장 유형 이 확장 프로그램의 경우 유형에는 항상 IconClickFallbackImages 값이 포함됩니다.
-IconClickFallbackImages 프로그램 이 속성은 항상 연결된 VAST 3.0 아이콘의 프로그램 속성과 일치합니다.
이 노드의 구조는 program 속성 추가를 제외하고 IconClickFallbackImages의 VAST 4.2 표준과 일치합니다.
--IconClickFallbackImage 너비 이미지를 표시할 기본 너비입니다.
높이 이미지를 표시할 기본 높이입니다.
---AltText 액세스 가능한 이미지 설명입니다.
---StaticResource creativeType 대체 이미지의 MIME 유형입니다.
대체 이미지의 URL이 포함된 CDATA 값

샘플 VAST 3.0 응답

<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
 <Ad id="123456">
  <InLine>
   ...
   <Creatives>
    ...
    <Creative id="7891011" AdID="ABCD123456EF" sequence="1">
     ...
     <Linear>
      ...
      <Icons>
       ...
       <Icon program="GoogleWhyThisAd" width="50" height="50" xPosition="20" yPosition="bottom" duration="00:00:10" offset="00:00:00" apiFramework="VAST" altText="Why This Ad?">
        <StaticResource creativeType="image/png">
         <![CDATA[https://storage.googleapis.com/interactive-media-ads/hosted-samples/wta/icon_adchoices.png]]>
        </StaticResource>
        <IconClicks>
         ...
         <IconClickThrough><![CDATA[https://g.co/adsettings]]></IconClickThrough>
        </IconClicks>
       </Icon>
       ...
      </Icons>
     ...
     </Linear>
     ...
    </Creative>
    ...
   </Creatives>
   <Extensions>
    ...
    <Extension type="IconClickFallbackImages">
     ...
     <IconClickFallbackImages program="GoogleWhyThisAd">
      <IconClickFallbackImage width="400" height="150">
       <AltText>Alt icon fallback</AltText>
       <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/gvabox/nickchavez/media/png/wta_dialog.png]]></StaticResource>
      </IconClickFallbackImage>
      ...
     </IconClickFallbackImages>
     ...
    </Extension>
    ...
   </Extensions>
   ...
  </InLine>
  ...
 </Ad>
</VAST>

DAI API 메타데이터 JSON에서 AdChoices 파싱

DAI API로 작업할 때는 메타데이터 URL에 대한 요청에서 반환된 JSON 객체를 통해 AdChoices 세부정보가 전달됩니다.

메타데이터 JSON 객체에는 adID로 키가 지정된 광고 목록이 포함됩니다. 각 광고 객체에는 아이콘 배열이 있습니다. 문제의 광고가 AdChoices를 활용하는 경우 AdChoices 아이콘이 해당 배열에 포함됩니다.

JSON 아이콘 형식

JSON 아이콘 형식은 가능한 경우 VAST 4.2 아이콘 표준(섹션 3.11)의 1:1 변환입니다. 그러나 더 엄격한 JSON 형식을 지원하기 위해 필요에 따라 일부 속성의 이름이 변경되었습니다.

아이콘 JSON 형식

프로그램 AdChoices 아이콘의 경우 이 값에 항상 'GoogleWhyThisAd' 문자열이 포함됩니다.
x_position 동영상 광고 소재의 왼쪽 상단을 기준으로 아이콘 왼쪽 상단의 가로 위치(픽셀)입니다. 이 필드는 반응형 위치 값인 'right' 또는 'left'도 허용합니다.
y_position 동영상 광고 소재의 왼쪽 상단을 기준으로 아이콘 왼쪽 상단의 세로 위치(픽셀)입니다. 이 필드는 반응형 게재순위 값 'top' 또는 'bottom'도 허용합니다.
너비 아이콘의 너비(픽셀)입니다.
높이 픽셀 단위의 아이콘 높이입니다.
creative_type 아이콘에 제공된 이미지의 MIME 유형입니다. 기본값은 'image/png'입니다.
리소스 AdChoices 아이콘을 검색할 URL입니다.
alt_text AdChoices 아이콘에 렌더링할 대체 텍스트입니다.
click_data 웹 탐색을 지원하는 플랫폼에서 AdChoices 아이콘을 클릭하면 연결되는 URL을 나타내는 click_data.url 속성을 포함하는 객체입니다.
click_fallback_images 웹 탐색을 지원하지 않는 플랫폼에서 AdChoices 아이콘을 클릭하는 시청자에게 표시할 이미지 객체의 배열입니다.

대체 이미지 JSON 형식

너비 대체 이미지의 너비입니다(단위: 픽셀).
높이 대체 이미지의 높이입니다(단위: 픽셀).
creative_type 대체 이미지의 MIME 유형입니다. 기본값은 'image/png'입니다.
리소스 대체 이미지를 가져올 URL입니다.
alt_text 대체 이미지를 렌더링할 대체 텍스트입니다.

샘플 메타데이터 JSON

{
  ...
  "ads": {
    ...
    "0002640412_ad1": {
      ...
      "icons": [
        ...
        {
          "alt_text": "AdChoices icon",
          "click_data": {
            "url": "https://g.co/adsettings"
          },
          "click_fallback_images": [
            {
              "alt_text": "This ad was shown to you based on: * Google's
estimation of your interests, based on your activity on Google on this device
(for example, your searches) * the information on the website you were
viewing.",
              "creative_type": "image/jpg",
              "height": 600,
              "resource": "https://storage.googleapis.com/interactive-media-ads/hosted-samples/wta/icon_adchoices_fallback_image.png",
              "width": 950
            }
          ],
          "creative_type": "image/png",
          "height": 30,
          "program": "AdChoices",
          "resource": "https://storage.googleapis.com/interactive-media-ads/hosted-samples/wta/icon_adchoices.png",
          "type": "static",
          "width": 40,
          "x_position": "0",
          "y_position": "100"
        }
        ...
      ]
      ...
    },
    ...
  }
  ...
}