アセット

デマンド ジェネレーション キャンペーンを作成する前に、キャンペーンで使用する予定のアセットをすべてインポートしておくことが重要です。アセットは後で追加できますが、始めるにはアセットのセットが必要です。

キャンペーンの計画を立てる際は、デマンド ジェネレーションのアセットの仕様とベスト プラクティス ガイドをご覧ください。

画像アセットと動画アセットは主なアセットタイプです。このガイドでは、それぞれをアップロードする方法について説明します。これらの原則は、他のアセットタイプにも適用できます。作成するアセットの種類に関係なく、AssetOperation を使用して作成します。

アセットは、mutate を使用せずに AdsApp を使用して作成できますが、一貫性を保つため、このガイドでは他のすべてのオペレーションと同じ方法で作成します。既存のアセットが利用可能な場合は、再利用できます。デマンド ジェネレーション キャンペーンを作成するにはアセットが必要ですが、キャンペーンの作成プロセスの一環としてアセットを作成する必要があるとは限りません。

画像アセット

画像アセットは base-64 エンコード形式でアップロードされます。Google 広告スクリプトに画像を直接アップロードすることはできないため、画像データを取得してアップロード用にエンコードするには、次の 2 つの方法があります。

Google ドライブから画像を取得するには、まず画像のIDが必要です。これは、画像を一意に識別する最良の方法です。ID を取得する方法の 1 つは、Google ドライブの UI から共有可能なリンクをコピーして ID を抽出することです。一連のファイルをプログラムで取得し、アップロードするファイルを選択することもできます。次のコードは、既知の ID を持つ単一の画像をアップロードする方法を示しています。

const file = DriveApp.getFileById(fileId);
const imageAsset =  {
  "assetOperation": {
    "create": {
      "resourceName": `customers/${customerId}/assets/${getNextTempId()}`,
      "name": "Marketing Logo",
      "type": "IMAGE",
      "imageAsset": {
        "data": Utilities.base64Encode(file.getBlob().getBytes())
      }
    }
  }
}

また、UrlFetchApp を使用して、ウェブサーバーでホストされている画像を URL で取得することもできます。

const file = UrlFetchApp.fetch(imageUrl);

このファイルに対して、ドライブ ファイルと同じように getBlob を呼び出すことができます。そのため、オペレーションの構築は Google ドライブ ファイルの手順と同じになります。

動画アセット

動画アセットを最も簡単に使用する方法は、YouTube 動画を使用することです。キャンペーン作成プロセスの一環としてアセットをアップロードする場合は、一時 ID を使用します。それ以外の場合は、返されたリソース名をメモしておきます。これは、アセットをアセット グループに追加するために参照する必要がある場合に、今後のオペレーションで使用します。

const videoAsset = {
  "assetOperation": {
    "create": {
      "resourceName": `customers/${customerId}/assets/${getNextTempId()}`,
      "name": "Marketing video",
      "type": "YOUTUBE_VIDEO",
      "youtube_video_asset": {
        "youtube_video_title": "Demand Gen video",
        "youtube_video_id": "123456789"
      }
    }
  }
}
operations.push(videoAsset);