Google Display & Video 360 Operators¶
Google Display & Video 360 擁有您所需的端到端營銷活動管理功能。
前置任務¶
要使用這些 Operators,您必須執行以下幾項操作
使用 Cloud Console 選擇或建立 Cloud Platform 專案。
按照 Google Cloud 文件 中的說明,為您的專案啟用結算功能。
按照 Cloud Console 文件 中的說明,啟用 API。
透過 pip 安裝 API 庫。
pip install 'apache-airflow[google]'安裝 的詳細資訊可用。
建立查詢¶
要建立 Display&Video 360 查詢,請使用 GoogleDisplayVideo360CreateQueryOperator。
tests/system/google/marketing_platform/example_display_video.py
create_query_v2 = GoogleDisplayVideo360CreateQueryOperator(body=REPORT_V2, task_id="create_query")
query_id = cast("str", XComArg(create_query_v2, key="query_id"))
對 body, impersonation_chain 引數使用 Jinja 模板,這些引數允許您動態確定值。您可以提供使用 `` .json`` 檔案定義的 body,因為此 Operator 支援此模板擴充套件。結果將儲存到 XCom 中,其他 Operator 可以使用該結果。
執行查詢¶
GoogleDisplayVideo360RunQueryOperator.
tests/system/google/marketing_platform/example_display_video.py
run_query_v2 = GoogleDisplayVideo360RunQueryOperator(
query_id=query_id, parameters=PARAMETERS, task_id="run_report"
)
query_id = cast("str", XComArg(run_query_v2, key="query_id"))
report_id = cast("str", XComArg(run_query_v2, key="report_id"))
對 query_id, parameters, impersonation_chain 引數使用 Jinja 模板,這些引數允許您動態確定值。結果將儲存到 XCom 中,其他 Operator 可以使用該結果。
刪除報告¶
要刪除 Display&Video 360 報告,請使用 GoogleDisplayVideo360DeleteReportOperator。
tests/system/google/marketing_platform/example_display_video.py
delete_report_v2 = GoogleDisplayVideo360DeleteReportOperator(
report_id=report_id, task_id="delete_report", trigger_rule=TriggerRule.ALL_DONE
)
對 report_id, impersonation_chain 引數使用 Jinja 模板,這些引數允許您動態確定值。
等待查詢¶
要等待報告,請使用 GoogleDisplayVideo360RunQuerySensor。
tests/system/google/marketing_platform/example_display_video.py
wait_for_query = GoogleDisplayVideo360RunQuerySensor(
task_id="wait_for_query",
query_id=query_id,
report_id=report_id,
)
對 query_id, report_id, impersonation_chain 引數使用 Jinja 模板,這些引數允許您動態確定值。
下載報告¶
要將報告下載到 GCS bucket,請使用 GoogleDisplayVideo360DownloadReportV2Operator。
tests/system/google/marketing_platform/example_display_video.py
get_report_v2 = GoogleDisplayVideo360DownloadReportV2Operator(
query_id=query_id,
report_id=report_id,
task_id="get_report",
bucket_name=BUCKET_NAME,
report_name="test1.csv",
)
對 query_id, report_id, bucket_name, report_name, impersonation_chain 引數使用 Jinja 模板,這些引數允許您動態確定值。
下載訂單項¶
此 Operator 接受 body request
與 Google API 一致
REQUEST_BODY = { "filterType": ADVERTISER_ID, "format": "CSV", "fileSpec": "EWF" }
要下載 CSV 格式的訂單項報告,請使用 GoogleDisplayVideo360DownloadLineItemsOperator。
tests/system/google/marketing_platform/example_display_video.py
download_line_items = GoogleDisplayVideo360DownloadLineItemsOperator(
task_id="download_line_items",
request_body=DOWNLOAD_LINE_ITEMS_REQUEST,
bucket_name=BUCKET_NAME,
object_name=OBJECT_NAME,
gzip=False,
)
對 request_body, bucket_name, object_name, impersonation_chain 引數使用 Jinja 模板,這些引數允許您動態確定值。
上傳訂單項¶
要執行 Display&Video 360 訂單項上傳,請使用 GoogleDisplayVideo360UploadLineItemsOperator。
tests/system/google/marketing_platform/example_display_video.py
upload_line_items = GoogleDisplayVideo360UploadLineItemsOperator(
task_id="upload_line_items",
bucket_name=BUCKET_NAME,
object_name=BUCKET_FILE_LOCATION,
)
對 bucket_name, object_name, impersonation_chain 引數使用 Jinja 模板,這些引數允許您動態確定值。
建立 SDF 下載任務¶
要建立 SDF 下載任務,請使用 GoogleDisplayVideo360CreateSDFDownloadTaskOperator。
tests/system/google/marketing_platform/example_display_video.py
create_sdf_download_task = GoogleDisplayVideo360CreateSDFDownloadTaskOperator(
task_id="create_sdf_download_task", body_request=CREATE_SDF_DOWNLOAD_TASK_BODY_REQUEST
)
operation_name = '{{ task_instance.xcom_pull("create_sdf_download_task")["name"] }}'
對 body_request, impersonation_chain 引數使用 Jinja 模板,這些引數允許您動態確定值。
將 SDF 檔案儲存在 Google Cloud Storage 中¶
要儲存 SDF 檔案並將其儲存在 Google Cloud Storage 中,請使用 GoogleDisplayVideo360SDFtoGCSOperator。
tests/system/google/marketing_platform/example_display_video.py
save_sdf_in_gcs = GoogleDisplayVideo360SDFtoGCSOperator(
task_id="save_sdf_in_gcs",
operation_name=operation_name,
bucket_name=BUCKET_NAME,
object_name=BUCKET_FILE_LOCATION,
gzip=False,
)
對 operation_name, bucket_name, object_name, impersonation_chain 引數使用 Jinja 模板,這些引數允許您動態確定值。
等待 SDF 操作¶
透過以下方式執行等待 SDF 操作:GoogleDisplayVideo360GetSDFDownloadOperationSensor。
tests/system/google/marketing_platform/example_display_video.py
wait_for_operation = GoogleDisplayVideo360GetSDFDownloadOperationSensor(
task_id="wait_for_operation",
operation_name=operation_name,
)
對 operation_name, impersonation_chain 引數使用 Jinja 模板,這些引數允許您動態確定值。