デマンド ジェネレーション広告申込情報を作成する

デマンド ジェネレーション広告申込情報では、YouTube、Discover、Gmail、Google ディスプレイ ネットワークなど、Google のインパクトの強いサーフェスに、複数のフォーマットの広告グループと広告が配信されます。デマンド ジェネレーション広告申込情報は、他のタイプの広告申込情報と同様に LineItem リソースを使用して管理され、設定された予算、入札戦略、ターゲティングに基づいて動作します。demandGenSettings フィールドには、デマンド ジェネレーション広告申込情報に固有の設定もあります。

デマンド ジェネレーション広告申込情報には、広告グループという子リソースがあります。広告グループは、個々の広告申込情報の下で別のレベルの制御を提供します。

構成を選択する

デマンド ジェネレーション広告申込情報を作成する前に、関連する設定を確認して決定します。

デマンド ジェネレーション広告申込情報の場合:

  • lineItemTypeLINE_ITEM_TYPE_DEMAND_GEN に設定する必要があります。
  • bidStrategy は、BiddingStrategy オブジェクトの demandGenBid フィールドを使用して設定する必要があります。
  • budget は広告申込情報レベルで固定額に設定する必要があり、親の広告掲載オーダーから継承することはできません。
  • demandGenSettings は、デマンド ジェネレーション広告申込情報に固有の構成を設定するために使用されます。DemandGenSettings オブジェクトの geoLanguageTargetingEnabled フィールドは、地域とターゲット言語のターゲティングが広告申込情報レベルで設定されているか、個々の広告グループに設定されているかを制御します。このフィールドは、広告申込情報の作成後に更新することはできません。このターゲティングを広告申込情報単位で設定する場合は、フィールドを true に設定します。
  • creativeIds は設定しないでください。アセットは AdGroupAd リソースで直接割り当てられ、構成されます。

デマンド ジェネレーション広告申込情報では、次のフィールドが必須です。これらのフィールドは、他のタイプの広告申込情報と同じように機能します。

LineItem リソースには、設定可能な多くのオプション フィールドもあります。詳細については、リファレンス ドキュメントをご覧ください。

広告申込情報を作成する

次の設定でデマンド ジェネレーション広告申込情報を作成する方法は次のとおりです。

  • 継承されたフライトと $100 の予算。
  • 合計メディア費用の 0.1% のパートナーの収益モデル。
  • コンバージョン 1 件あたりの平均費用が 10 ドルになるように最適化する入札戦略。
  • 広告申込情報で地域とターゲット言語のターゲティングを広告グループに直接割り当てる設定。

Python

# Provide the ID of the parent advertiser.
advertiser_id = advertiser-id

# Provide the ID of the parent insertion order.
insertion_order_id = insertion-order-id

# Provide the display name of the line item.
display_name = display-video

# Provide the Floodlight activity ID to use for conversion tracking.
floodlight_activity_id = floodlight-activity-id

# Provide whether the line item will serve EU political ads.
contains_eu_political_ads = contains-eu-political-ads

# Create a line item object with example values.
line_item_obj = {
    "insertionOrderId": insertion_order_id,
    "displayName": display_name,
    "lineItemType": "LINE_ITEM_TYPE_DEMAND_GEN",
    "entityStatus": "ENTITY_STATUS_DRAFT",
    "flight": {"flightDateType": "LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED"},
    "budget": {
        "budgetAllocationType": "LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED",
        "maxAmount": 100000000
    },
    "pacing": {
        "pacingPeriod": "PACING_PERIOD_FLIGHT",
        "pacingType": "PACING_TYPE_EVEN",
        "dailyMaxMicros": 10000,
    },
    "partnerRevenueModel": {
        "markupType": (
            "PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP"
        ),
        "markupAmount": 100,
    },
    "bidStrategy": {
        "demandGenBid": {
            "type": "DEMAND_GEN_BIDDING_STRATEGY_TYPE_TARGET_CPA",
            "value": "10000000"
        }
    },
    "conversionCounting": {
        "postViewCountPercentageMillis": "100000",
        "floodlightActivityConfigs": [
            {
                "floodlightActivityId": floodlight_activity_id,
                "postClickLookbackWindowDays": 90,
                "postViewLookbackWindowDays": 90
            }
        ]
    },
    "containsEuPoliticalAds": contains_eu_political_ads,
    "demandGenSettings": {
        "geoLanguageTargetingEnabled": False
    }
}

# Build and execute request.
response = (
    service.advertisers()
    .lineItems()
    .create(advertiserId=advertiser_id, body=line_item_obj)
    .execute()
)

# Display the new line item.
print(f"Demand Gen line Item {response['name']} was created.")