Rozpocznij

Wygeneruj liczbę jednorazową

Liczba jednorazowa to pojedynczy zaszyfrowany ciąg znaków wygenerowany przez PAL za pomocą NonceLoader. Pakiet PAL SDK wymaga, aby każdemu nowemu żądaniu strumienia towarzyszyło nowo utworzone generowana liczba jednorazowa. Liczby jednorazowe można jednak wykorzystać ponownie w wielu żądaniach w ramach ten sam strumień. Aby zobaczyć przykładową aplikację, która używa PAL do generowania liczby jednorazowej, pobierz przykładowy kod HTML5 z GitHub.

Aby wygenerować liczbę jednorazową za pomocą pakietu SDK PAL, utwórz plik HTML i dodaj do :

pal.html

<html>
<head></head>
<body>
  <div id="placeholder-video"></div>
  <button id="generate-nonce">Generate Nonce</button>
  <script src="//imasdk.googleapis.com/pal/sdkloader/pal.js"></script>
  <script src="pal.js"></script>
</body>
</html>

Następnie utwórz plik JavaScript i dodaj do niego te elementy:

pal.js

let videoElement;
let nonceLoader;
let managerPromise;
let nonceManager;
let storageConsent = true;
let playbackStarted = false;

/**
 * A placeholder for the publisher's own method of obtaining user
 * consent, either by integrating with a CMP or based on other
 * methods the publisher chooses to handle storage consent.
 * @return {boolean} Whether storage consent has been given.
 */
function getConsentToStorage() {
  return storageConsent;
}

/**
 * Initializes the PAL loader.
 */
function init() {
  const videoElement = document.getElementById('placeholder-video');
  videoElement.addEventListener('mousedown', (e) => void onVideoTouch(e));
  videoElement.addEventListener('touchstart', (e) => void onVideoTouch(e));
  videoElement.addEventListener('play', () => {
    if (!playbackStarted) {
      sendPlaybackStart();
      playbackStarted = true;
    }
  });
  videoElement.addEventListener('ended', () => void sendPlaybackEnd());
  videoElement.addEventListener('error', () => {
    console.log("Video error: " + videoElement.error.message);
    sendPlaybackEnd();
  });

  document.getElementById('generate-nonce')
      .addEventListener('click', generateNonce);

  // The default value for `allowStorage` is false, but can be
  // changed once the appropriate consent has been gathered.
  const consentSettings = new goog.pal.ConsentSettings();
  consentSettings.allowStorage = getConsentToStorage();

  nonceLoader = new goog.pal.NonceLoader(consentSettings);
}

/**
 * Generates a nonce with sample arguments and logs it to the console.
 *
 * The NonceRequest parameters set here are example parameters.
 * You should set your parameters based on your own app characteristics.
 */
function generateNonce() {
  const request = new goog.pal.NonceRequest();
  request.adWillAutoPlay = true;
  request.adWillPlayMuted = false;
  request.continuousPlayback = false;
  request.descriptionUrl = 'https://example.com';
  request.iconsSupported = true;
  request.playerType = 'Sample Player Type';
  request.playerVersion = '1.0';
  request.ppid = 'Sample PPID';
  request.sessionId = 'Sample SID';
  // Player support for VPAID 2.0, OMID 1.0, and SIMID 1.1
  request.supportedApiFrameworks = '2,7,9';
  request.url = 'https://developers.google.com/ad-manager/pal/html5';
  request.videoHeight = 480;
  request.videoWidth = 640;

  managerPromise = nonceLoader.loadNonceManager(request);
  managerPromise
      .then((manager) => {
        nonceManager = manager;
        console.log('Nonce generated: ' + manager.getNonce());
      })
      .catch((error) => {
        console.log('Error generating nonce: ' + error);
      });
}

init();

Dołącz liczbę jednorazową do żądania reklamy

Aby użyć wygenerowanej liczby jednorazowej, dołącz do tagu reklamy parametr givn i parametr wartość jednorazową przed wysłaniem żądań reklamy.

pal.js

  /**
   * The ad tag for your ad request, for example:
   * https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=
   *
   * For more sample ad tags, see https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/tags
   */
  const DEFAULT_AD_TAG = "Your ad tag";

  ...

  managerPromise = nonceLoader.loadNonceManager(request);
  managerPromise
      .then((manager) => {
        nonceManager = manager;
        console.log('Nonce generated: ' + manager.getNonce());
        
        // Append the nonce to the ad tag URL.
        makeAdRequest(DEFAULT_AD_TAG + "&givn=" + nonceString);
      })

Śledzenie zdarzeń odtwarzania

Na koniec musisz zaimplementować różne moduły obsługi zdarzeń dla odtwarzacza. Dla: do testów kliknięcia przycisku, ale nie w rzeczywistości implementacji, będą one wywoływane przez odpowiednie zdarzenia odtwarzacza:

pal.js

/**
 * Informs PAL that an ad click has occurred. How this function is
 * called will vary depending on your ad implementation.
 */
function sendAdClick() {
  nonceManager?.sendAdClick();
}

/**
 * Handles the user touching on the video element, passing it to PAL.
 * @param {!TouchEvent|!MouseEvent} touchEvent
 */
function onVideoTouch(touchEvent) {
  nonceManager?.sendAdTouch(touchEvent);
}

/** Informs PAL that playback has started. */
function sendPlaybackStart() {
  nonceManager?.sendPlaybackStart();
}

/** Informs PAL that playback has ended. */
function sendPlaybackEnd() {
  nonceManager?.sendPlaybackEnd();
}

W Twojej implementacji obiekt sendPlaybackStart powinien być wywoływany po wyświetleniu reklamy wideo. rozpocznie się sesja odtwarzania. Aplikacja sendPlaybackEnd powinna zostać wywołana po odtworzeniu filmu sesja odtwarzania dobiega końca. Funkcja sendAdClick powinna być wywoływana za każdym razem, gdy funkcja klika reklamę. Aplikacja sendAdTouch powinna być wywoływana przy każdej interakcji dotykiem z odtwarzaczem.

(Opcjonalnie) Wysyłanie sygnałów Google Ad Managera przez serwery reklamowe firm zewnętrznych

Skonfiguruj żądanie serwera reklamowego firmy zewnętrznej na potrzeby Ad Managera.

Skonfiguruj serwer reklamowy firmy zewnętrznej, tak aby zawierał wartość jednorazową w nagłówku do Ad Managera. Oto przykład tagu reklamy skonfigurowanego w tagu serwer reklamowy firmy zewnętrznej:

'https://pubads.serverside.net/gampad/ads?givn=%%custom_key_for_google_nonce%%&...'

Więcej informacji znajdziesz w artykule o implementacji Google Ad Managera po stronie serwera .

Ad Manager wyszukuje wartość jednorazową za pomocą parametru givn=. Reklama zewnętrzna serwer musi obsługiwać własne makro, takie jak %%custom_key_for_google_nonce%% i zastąp go parametrem zapytania z liczbą jednorazową podane w poprzednim kroku. Więcej informacji, jak to zrobić powinny być dostępne w dokumentacji serwera reklamowego firmy zewnętrznej.

Znakomicie. Parametr jednorazowy powinien zostać rozpowszechniony z pakietu SDK PAL, przez serwery pośrednie, a potem do Google Ad Manager. Dzięki temu zarabiać więcej dzięki Google Ad Managerowi.