動画キャンペーン

Google 広告スクリプトを使用すると、YouTube ベースの動画キャンペーンを管理し、レポートを作成できます。スクリプトを使用すると、既存の動画キャンペーンの管理、広告グループと広告の作成と管理、キャンペーンのターゲティングの設定、レポートの実行を行うことができます。ただし、スクリプトを使用して動画キャンペーンを作成することはできません。

動画キャンペーンと広告グループの取得

動画キャンペーンは、AdsApp オブジェクトの videoCampaigns コレクションで使用できます。通常のスクリプトでキャンペーンを取得する場合と同様に取得できます。

const campaignName = "My first video campaign";

const campaignIterator = AdsApp.videoCampaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get();

for (const campaign of campaignIterator) {
  ...
}

キャンペーンの取得後は、広告グループも同じように取得できます。

const adGroupIterator = campaign.videoAdGroups()
    .withCondition(`ad_group.name = "${adGroupName}"`)
    .get();

for (const adGroup of adGroupIterator) {
  ...
}

また、AdsApp.videoAdGroups() メソッドを使用することもできます。

const adGroupIterator = AdsApp.videoAdGroups()
    .withCondition(`campaign.name = "${campaignName}" AND ad_group.name = "${adGroupName}")
    .get();

for (const adGroup of adGroupIterator) {
  ...
}

動画広告の作成

Google 広告スクリプトでは、VideoAdGroupvideoAds() メソッドを使用して動画広告を取得できます。新しい動画広告は、VideoAdGroupnewVideoAd() メソッドを使用して作成できます。

動画広告のフォーマット

サポートされている動画広告フォーマットは、動画キャンペーンのタイプによって異なります。適切な種類の動画キャンペーンを選択していることを確認するには、AdvertisingChannelSubTypewithCondition 呼び出しを追加します。

一部の動画キャンペーンには、そのキャンペーン内でサポートされる広告の種類を制限するサブタイプがあります。具体的には、VIDEO_ACTION キャンペーンは VIDEO_RESPONSIVE 広告タイプのみをサポートし、VIDEO_NON_SKIPPABLE キャンペーンは NON_SKIPPABLE_INSTREAM_VIDEO_AD 広告タイプのみをサポートします。

特定の種類のキャンペーンを操作する最善の方法は、セレクタで withCondition 句を使用することです。関心のあるキャンペーン タイプの AdvertisingChannelSubType を更新できます。

const campaignIterator = AdsApp.videoCampaigns()
  .withCondition("AdvertisingChannelSubType = VIDEO_ACTION")
  .get();

サブタイプのない動画キャンペーンでは、次の動画広告フォーマットがサポートされています。

  • TrueView インストリーム
  • TrueView ディスカバリー
  • バンパー

withCondition を使用して、次のキャンペーンを選択できます。

const campaignIterator = AdsApp.videoCampaigns()
  .withCondition("AdvertisingChannelSubType = null")
  .get();

インストリーム動画広告は、他の動画の前後、または途中に再生され、指定した時間が経過するとユーザーがスキップできます。TrueView ディスカバリー広告は、ディスプレイ ネットワークとさまざまな YouTube ページに表示され、ユーザーが広告のサムネイルを最初にクリックした場合にのみ再生されます。バンパー広告は 6 秒以下の長さで、YouTube 動画、またはディスプレイ ネットワークのパートナー サイトやアプリの動画に表示されます。これらの広告タイプの詳細については、動画広告フォーマットについてをご覧ください。

広告グループを作成する

動画広告グループは、動画キャンペーンの newVideoAdGroupBuilder() メソッドで作成します。広告グループを作成するときに、広告グループの種類と広告グループ名を指定する必要があります。広告グループの種類は次のいずれかである必要があります。広告グループの作成後に変更することはできません。

  • TRUE_VIEW_IN_STREAM
  • TRUE_VIEW_IN_DISPLAY
  • BUMPER
  • VIDEO_RESPONSIVEVIDEO_ACTION キャンペーンのみ)
  • NON_SKIPPABLE_INSTREAM_VIDEO_ADVIDEO_NON_SKIPPABLE キャンペーンのみ)

例:

const videoAdGroup =
    videoCampaign.newVideoAdGroupBuilder()
    .withAdGroupType("TRUE_VIEW_IN_STREAM")
    .withName("Video Ad Group")
    .build()
    .getResult();

動画アセットを作成する

通常、動画広告では動画アセットを参照する必要があります。これにより、広告で再生される動画が決まります。スクリプトを使用して動画をアップロードすることはできませんが、広告で使用するために、以前にアップロードした既存の YouTube 動画をリンクすることはできます。これを行うには、YouTubeVideoAssetBuilder を使用して Asset を作成します。

const assetOperation = AdsApp.adAsset().newYouTubeVideoAssetBuilder()
   .withName("name")
   // This is the ID in the URL for the YouTube video.
   .withYouTubeVideoId(youTubeVideoId)
   .build();
const videoAsset = assetOperation.getResult();

広告を作成する

新しい広告を作成するには、広告グループのタイプに一致するビルダー メソッド(newVideoAd() の後に連結)を使用します。

例:

const videoAd = videoAdGroup.newVideoAd()
    .inStreamAdBuilder()
    .withAdName("Video Ad")
    .withFinalUrl(
        "http://www.example.com/video-ad")
    // Specify the video asset created in the last step.
    .withVideo(video)
    .build()
    .getResult();

動画ターゲティング

動画キャンペーンでは、関連性の高いターゲティングを 2 種類使用できます。VideoCampaignTargeting は、一般に動画キャンペーンでアカウント単位で行うターゲティングを表します。AdsApp.videoCampaignTargeting() を使用してアクセスします。これはスクリプトを使用して変更することはできませんが、表示することはできます。

他のタイプのターゲティングでは、動画キャンペーンと動画広告グループの条件を個別に指定できます。これは、キャンペーンまたは広告グループの videoTargeting() メソッドでアクセスできます。このレベルのターゲティングに適用されるすべてのタイプの、非除外条件と除外条件の両方のセレクタとビルダーにアクセスできます。アカウント レベルで条件を表示するための AdsApp.videoTargeting() メソッドもあり、AdsApp.videoCampaignTargeting() とは異なる一連の条件が含まれています。VideoCampaignTargeting と同様に、これらの条件はスクリプトで管理できません。

キャンペーンで特定のプレースメントを除外する例を次に示します。

videoCampaign.videoTargeting().newPlacementBuilder()
    .withUrl("http://www.example.com")
    .exclude();

ユーザー属性(年齢、性別)の条件は、他の条件タイプとは若干異なります。新しい広告グループを作成すると、年齢と性別に関する各値の条件が自動的に作成され、その広告グループはすべての値をターゲットに設定されます。ユーザー属性を除外するには、既存のターゲティングを取得して exclude() メソッドを呼び出します。除外したユーザー属性を再び含めるには、既存の除外ターゲティングを見つけて include() を呼び出します。

広告グループから特定の性別を除外する例を次に示します。

const videoGenderIterator = videoAdGroup.videoTargeting()
    .genders()
    .withCondition('GenderType = "GENDER_MALE"')
    .get();
if (videoGenderIterator.hasNext()) {
  const videoGender = videoGenderIterator.next();
  videoGender.exclude();
}