อัปโหลดไฟล์ Structured Data

คุณสามารถสร้างและอัปเดตทรัพยากรต่างๆ รวมถึงทรัพยากรของ YouTube ได้อย่างมีโปรแกรมและเป็นกลุ่ม โดยการอัปโหลดไฟล์ข้อมูลที่มีโครงสร้างโดยใช้ Display & Video 360 API หน้านี้จะอธิบายวิธีเตรียมและอัปโหลดไฟล์ Structured Data โดยใช้ API

โปรเจ็กต์ Google Cloud อัปโหลดไฟล์ข้อมูลที่มีโครงสร้างได้เพียง 30 ไฟล์ต่อรหัสผู้ลงโฆษณา 1 รายการต่อวัน

เตรียมไฟล์ข้อมูลที่มีโครงสร้างเพื่ออัปโหลด

ไฟล์ข้อมูลที่มีโครงสร้างที่อัปโหลดควรเป็นไฟล์ที่มีการปรับเปลี่ยนจากไฟล์ข้อมูลที่มีโครงสร้างที่ดาวน์โหลดมาล่าสุด ซึ่งเป็นไฟล์ประเภทเดียวกันและมาจากผู้โฆษณารายเดียวกัน เตรียมไฟล์ข้อมูลโครงสร้างที่ดาวน์โหลดสำหรับการอัปโหลดโดยทำการอัปเดตดังต่อไปนี้:

  • เพิ่มรายการสำหรับทรัพยากรใหม่ใด ๆ ที่คุณต้องการสร้าง
  • อัปเดตรายการที่มีอยู่สำหรับทรัพยากรที่ต้องการอัปเดต
  • ลบรายการใดๆ ที่ไม่ใช่รายการใหม่หรือรายการที่ไม่ได้อัปเดต เพื่อลดขนาดไฟล์ เร่งเวลาในการประมวลผล และขจัดความเป็นไปได้ที่จะเกิดการอัปเดตที่ไม่ได้ตั้งใจ

โปรดตรวจสอบสิ่งต่อไปนี้ก่อนอัปโหลดไฟล์

  • ไฟล์นี้เป็นไฟล์ CSV
  • รายการทั้งหมดในไฟล์เป็นทรัพยากรภายใต้ผู้ลงโฆษณาหลักรายเดียวกัน
  • ไฟล์มีรายการไม่เกิน 10,000 รายการ

อัปโหลดไฟล์

อัปโหลดไฟล์ข้อมูลที่มีโครงสร้างโดยใช้เมธอด advertisers.sdfuploadtasks.upload คำขอนี้จะสร้างงานอัปโหลด SDF Operation การดำเนินการระยะยาวนี้จะประมวลผลไฟล์ที่อัปโหลด สร้างและอัปเดตทรัพยากรตามเนื้อหาของไฟล์ และสร้างไฟล์ผลลัพธ์ที่แสดงรายการการอัปเดตที่สำเร็จและล้มเหลว

วิธีการอัปโหลดไฟล์ข้อมูลที่มีโครงสร้างและรับผลลัพธ์ Operation มีดังนี้:

# Import the object used as the media body for the upload request.
from apiclient.http import MediaFileUpload

# Provide the parent advertiser ID for the resources in the SDF.
# The ID value must be a str and not an int.
advertiser_id = advertiser-id

# Provide the filename and local path to the media file.
sdf_filename = sdf-filename
sdf_path = sdf-path

# Create the request body.
body = {
  'filename': sdf_filename,
  'advertiserId': advertiser_id
}

# Create the upload object and use a default MIME type if not identified.
media = MediaFileUpload(sdf_path)
if not media.mimetype():
  media = MediaFileUpload(sdf_filename,'application/octet-stream')

# Upload the structured data file.
upload_response = service.advertisers().sdfuploadtasks().upload(
  advertiserId=advertiser_id,
  body=body,
  media_body=media
).execute()

# Print resulting Operation name.
print(f'SDF was successfully uploaded. Operation {upload_response["name"]} was '
       'created to process the uploaded file.')