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 広告スクリプトでは、VideoAdGroup
の videoAds()
メソッドを使用して動画広告を取得できます。新しい動画広告は、VideoAdGroup
の newVideoAd()
メソッドを使用して作成できます。
動画広告のフォーマット
サポートされている動画広告フォーマットは、動画キャンペーンのタイプによって異なります。適切な種類の動画キャンペーンを選択するには、AdvertisingChannelSubType
で withCondition
呼び出しを追加します。
一部の動画キャンペーンには、そのキャンペーン内でサポートされる広告の種類を制限するサブタイプがあります。具体的には、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()
メソッドを使用して作成します。広告グループを作成する際は、広告グループのタイプと広告グループ名を指定する必要があります。広告グループのタイプは次のいずれかである必要があり、広告グループの作成後に変更することはできません。
VIDEO_BUMPER
VIDEO_EFFICIENT_REACH
VIDEO_NON_SKIPPABLE_IN_STREAM
(VIDEO_NON_SKIPPABLE
キャンペーンのみ)VIDEO_RESPONSIVE
(VIDEO_ACTION
キャンペーンのみ)VIDEO_TRUE_VIEW_IN_DISPLAY
VIDEO_TRUE_VIEW_IN_STREAM
YOUTUBE_AUDIO
例:
const videoAdGroup =
videoCampaign.newVideoAdGroupBuilder()
.withAdGroupType("VIDEO_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()
の後にチェーン)を使用します。
inStreamAdBuilder()
videoDiscoveryAdBuilder()
bumperAdBuilder()
responsiveVideoAdBuilder()
(VIDEO_ACTION
キャンペーンのみ)nonSkippableAdBuilder()
(VIDEO_NON_SKIPPABLE
キャンペーンのみ)
例:
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()
を使用してアクセスします。これはスクリプトで変更することはできませんが、表示することはできます。
もう 1 つのタイプのターゲティングでは、動画キャンペーンと動画広告グループの条件を個別に指定できます。これは、キャンペーンまたは広告グループの 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();
}