Google Campaign Manager 運算子¶
Google Campaign Manager 運算子讓您能夠插入、執行、取得或刪除報表。關於 Campaign Manager 報表 API 的更多資訊,請查看官方文件。
先決條件任務¶
要使用這些運算子,您必須完成以下幾件事
使用 Cloud Console 選擇或建立 Cloud Platform 專案。
為您的專案啟用帳單功能,如 Google Cloud 文件中所述。
啟用 API,如 Cloud Console 文件中所述。
透過 pip 安裝 API 程式庫。
pip install 'apache-airflow[google]'詳細資訊請見 安裝。
刪除報表¶
要刪除 Campaign Manager 報表,您可以使用 GoogleCampaignManagerDeleteReportOperator
。它會根據報表的唯一 ID 刪除報表。
delete_report = GoogleCampaignManagerDeleteReportOperator(
profile_id=USER_PROFILE_ID,
report_name=REPORT_NAME,
task_id="delete_report",
trigger_rule=TriggerRule.ALL_DONE,
gcp_conn_id=CONNECTION_ID,
)
您可以將 Jinja 模板 與 profile_id
、 report_id
、 report_name
、 api_version
、 gcp_conn_id
、 impersonation_chain
參數搭配使用,以動態決定數值。
下載報表¶
GoogleCampaignManagerDownloadReportOperator
允許您將 Campaign Manager 報表下載到 Google Cloud Storage 儲存桶。
report_name = f"reports/report_{str(uuid.uuid1())}"
get_report = GoogleCampaignManagerDownloadReportOperator(
task_id="get_report",
profile_id=USER_PROFILE_ID,
report_id=report_id,
file_id=file_id,
report_name=report_name,
bucket_name=BUCKET_NAME,
gcp_conn_id=CONNECTION_ID,
)
您可以將 Jinja 模板 與 profile_id
、 report_id
、 file_id
、 bucket_name
、 report_name
、 chunk_size
、 api_version
、 gcp_conn_id
、 impersonation_chain
參數搭配使用,以動態決定數值。
等待報表¶
報表為非同步產生。要等待報表準備好下載,您可以使用 GoogleCampaignManagerReportSensor
。
wait_for_report = GoogleCampaignManagerReportSensor(
task_id="wait_for_report",
profile_id=USER_PROFILE_ID,
report_id=report_id,
file_id=file_id,
gcp_conn_id=CONNECTION_ID,
)
您可以將 Jinja 模板 與 profile_id
、 report_id
、 file_id
、 impersonation_chain
參數搭配使用,以動態決定數值。
插入新報表¶
要插入 Campaign Manager 報表,您可以使用 GoogleCampaignManagerInsertReportOperator
。執行此運算子會建立新的報表。
create_report = GoogleCampaignManagerInsertReportOperator(
profile_id=USER_PROFILE_ID,
report=REPORT,
task_id="create_report",
gcp_conn_id=CONNECTION_ID,
)
report_id = cast(str, XComArg(create_report, key="report_id"))
您可以將 Jinja 模板 與 profile_id
、 report
、 api_version
、 gcp_conn_id
、 impersonation_chain
參數搭配使用,以動態決定數值。您可以使用 .json
檔案提供報表定義,因為此運算子支援此模板擴充功能。結果會儲存到 XCom,以便其他運算子使用。
執行報表¶
要執行 Campaign Manager 報表,您可以使用 GoogleCampaignManagerRunReportOperator
。
run_report = GoogleCampaignManagerRunReportOperator(
profile_id=USER_PROFILE_ID,
report_id=report_id,
task_id="run_report",
gcp_conn_id=CONNECTION_ID,
)
file_id = cast(str, XComArg(run_report, key="file_id"))
您可以將 Jinja 模板 與 profile_id
、 report_id
、 synchronous
、 api_version
、 gcp_conn_id
、 impersonation_chain
參數搭配使用,以動態決定數值。結果會儲存到 XCom,以便其他運算子使用。
插入轉換¶
要插入 Campaign Manager 轉換,您可以使用 GoogleCampaignManagerBatchInsertConversionsOperator
。
insert_conversion = GoogleCampaignManagerBatchInsertConversionsOperator(
task_id="insert_conversion",
profile_id=USER_PROFILE_ID,
conversions=[CONVERSION],
encryption_source="AD_SERVING",
encryption_entity_type="DCM_ADVERTISER",
encryption_entity_id=ENCRYPTION_ENTITY_ID, # type: ignore[arg-type]
gcp_conn_id=CONNECTION_ID,
)
您可以將 Jinja 模板 與 profile_id
、 conversions
、 encryption_entity_type
、 encryption_entity_id
、 encryption_source
、 impersonation_chain
參數搭配使用,以動態決定數值。結果會儲存到 XCom,以便其他運算子使用。
更新轉換¶
要更新 Campaign Manager 轉換,您可以使用 GoogleCampaignManagerBatchUpdateConversionsOperator
。
update_conversion = GoogleCampaignManagerBatchUpdateConversionsOperator(
task_id="update_conversion",
profile_id=USER_PROFILE_ID,
conversions=[CONVERSION_UPDATE],
encryption_source="AD_SERVING",
encryption_entity_type="DCM_ADVERTISER",
encryption_entity_id=ENCRYPTION_ENTITY_ID, # type: ignore[arg-type]
max_failed_updates=1,
gcp_conn_id=CONNECTION_ID,
)
您可以將 Jinja 模板 與 profile_id
、 conversions
、 encryption_entity_type
、 encryption_entity_id
、 encryption_source
、 impersonation_chain
參數搭配使用,以動態決定數值。結果會儲存到 XCom,以便其他運算子使用。