建立需求開發委刊項

需求開發委刊項會在 Google 最具影響力的平台上 (包括 YouTube、探索、Gmail 和 Google 多媒體廣告聯播網),放送多種格式的廣告群組和廣告。與其他類型的委刊項一樣,需求開發委刊項也是使用 LineItem 資源進行管理,並根據設定的預算、出價策略和指定目標運作。demandGenSettings 欄位也提供需求開發委刊項專屬設定。

需求開發委刊項有稱為廣告群組的子資源。廣告群組則提供個別委刊項下的另一層級控制項。

選擇設定

建立需求開發委刊項前,請先查看並決定相關設定。

需求開發委刊項:

  • lineItemType 必須設為 LINE_ITEM_TYPE_DEMAND_GEN
  • 必須使用 BiddingStrategy 物件的 demandGenBid 欄位設定 bidStrategy
  • budget 必須在委刊項層級設為固定金額,且無法從父項廣告訂單沿用。
  • demandGenSettings 用於設定需求開發委刊項專屬的設定。DemandGenSettings 物件的 geoLanguageTargetingEnabled 欄位會控管是在委刊項層級還是個別廣告群組中,設定地區和指定語言。委刊項建立後,這個欄位即無法更新。如要在委刊項層級設定這項指定目標,請將該欄位設為 true
  • 不應設定「creativeIds。素材資源會直接在 AdGroupAd 資源中指派及設定。

需求開發委刊項必須填寫下列欄位,運作方式與其他類型的委刊項相同:

LineItem 資源也有許多可設定的選用欄位。詳情請參閱參考文件

建立委刊項

如要使用下列設定建立需求開發委刊項,請按照下列步驟操作:

  • 沿用航班和 $100 美元的預算。
  • 夥伴收益模式為媒體費用總額的 0.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.")