งานการดูแลการแสดงโฆษณาทั่วไป

หน้านี้จะสรุปวิธีทำงานการดูแลการแสดงโฆษณาที่พบได้บ่อยที่สุดบางส่วนโดยใช้ DCM/DFA Reporting and Trafficking API

เคล็ดลับทั่วไปในการเขียนโค้ด

  • พร็อพเพอร์ตี้และพารามิเตอร์ที่จำเป็นและไม่บังคับ - ดูเอกสารอ้างอิงเพื่อดูว่าจำเป็นต้องใช้พร็อพเพอร์ตี้หรือพารามิเตอร์สำหรับการเรียก API หรือไม่
  • การค้นหาชื่อไวลด์การ์ด - คุณสามารถใช้ไวลด์การ์ดเครื่องหมายดอกจัน (*) เมื่อค้นหาชื่อออบเจ็กต์ เครื่องหมายดอกจันจะจับคู่กับอักขระใดก็ได้ตั้งแต่ 0 ตัวขึ้นไป นอกจากนี้ API ยังรองรับการค้นหาสตริงย่อยโดยนัย ดังนั้นการค้นหา "abc" จะค้นหา "*abc*" โดยนัยด้วย
  • การอัปเดตและการแพตช์ - หากต้องการแก้ไขออบเจ็กต์ที่มีอยู่ คุณมี 2 ตัวเลือก ได้แก่
    1. การอัปเดต - เมื่ออัปเดตออบเจ็กต์ ระบบจะเขียนทับช่องทั้งหมดเมื่อแทรก การโหลดออบเจ็กต์ที่คุณต้องการอัปเดตและทำการเปลี่ยนแปลงใดๆ กับออบเจ็กต์นั้นเป็นสิ่งสำคัญ มิเช่นนั้น ระบบจะยกเลิกการตั้งค่าช่องที่ไม่ได้อยู่ในคำขออัปเดต
    2. การแพตช์ - ขณะแพตช์ ระบบจะเขียนทับเฉพาะช่องที่ระบุเมื่อแทรก ในกรณีนี้ คุณสามารถสร้างออบเจ็กต์ใหม่ กำหนดรหัสเดียวกันกับออบเจ็กต์ที่จะอัปเดต ตั้งค่าฟิลด์ให้อัปเดต และส่งคำขอแพตช์
  • ขนาด - ขนาดทางกายภาพจะแสดงด้วยวัตถุ Size ที่กำหนดโดยบริการขนาด บัญชีมีชุดขนาดมาตรฐาน และคุณเพิ่มขนาดที่กําหนดเองลงในรายการนี้ได้
  • วันที่และเวลา - คุณบันทึกวันที่/เวลาในรูปแบบ RFC 3339 ได้โดยใช้เขตเวลาท้องถิ่น โดยค่าทั้งหมดที่แสดงผลโดย API จะเป็นเวลา UTC ซึ่งแตกต่างจากเว็บไซต์ที่แสดงวันที่และเวลาในเขตเวลาที่คุณกำหนดค่า (ค่าเริ่มต้นคือเวลาอเมริกา/นิวยอร์ก)

สร้างผู้ลงโฆษณา

C#

  1. สร้างออบเจ็กต์ Advertiser และตั้งค่าพร็อพเพอร์ตี้ name และ status ที่จำเป็น
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.Name = advertiserName;
    advertiser.Status = "APPROVED";
    
  2. โทรหา advertisers.insert() เพื่อบันทึกผู้ลงโฆษณา
    // Create the advertiser.
    Advertiser result = service.Advertisers.Insert(advertiser, profileId).Execute();
    

Java

  1. สร้างออบเจ็กต์ Advertiser และตั้งค่าพร็อพเพอร์ตี้ name และ status ที่จำเป็น
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.setName(advertiserName);
    advertiser.setStatus("APPROVED");
    
  2. โทรหา advertisers.insert() เพื่อบันทึกผู้ลงโฆษณา
    // Create the advertiser.
    Advertiser result = reporting.advertisers().insert(profileId, advertiser).execute();
    

PHP

  1. สร้างออบเจ็กต์ Advertiser และตั้งค่าพร็อพเพอร์ตี้ name และ status ที่จำเป็น
    $advertiser = new Google_Service_Dfareporting_Advertiser();
    $advertiser->setName($values['advertiser_name']);
    $advertiser->setStatus('APPROVED');
    
  2. โทรหา advertisers.insert() เพื่อบันทึกผู้ลงโฆษณา
    $result = $this->service->advertisers->insert(
        $values['user_profile_id'],
        $advertiser
    );
    

Python

  1. สร้างออบเจ็กต์ Advertiser และตั้งค่าพร็อพเพอร์ตี้ name และ status ที่จำเป็น
    # Construct and save advertiser.
    advertiser = {
        'name': 'Test Advertiser',
        'status': 'APPROVED'
    }
    
  2. โทรหา advertisers.insert() เพื่อบันทึกผู้ลงโฆษณา
    request = service.advertisers().insert(
        profileId=profile_id, body=advertiser)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. สร้างออบเจ็กต์ Advertiser และตั้งค่าพร็อพเพอร์ตี้ name และ status ที่จำเป็น
    # Create a new advertiser resource to insert.
    advertiser = DfareportingUtils::API_NAMESPACE::Advertiser.new(
      name: format('Example Advertiser #%s', SecureRandom.hex(3)),
      status: 'APPROVED'
    )
    
  2. โทรหา advertisers.insert() เพื่อบันทึกผู้ลงโฆษณา
    # Insert the advertiser.
    result = service.insert_advertiser(profile_id, advertiser)
    

สร้างแคมเปญ

C#

  1. สร้างออบเจ็กต์ Campaign และตั้งค่าพร็อพเพอร์ตี้ที่จำเป็น ดังนี้

    • advertiserId - ผู้ลงโฆษณาที่เชื่อมโยงกับแคมเปญนี้
    • name - ต้องไม่ซ้ำกันในแคมเปญทั้งหมดสำหรับผู้ลงโฆษณารายนี้
    • defaultLandingPageId - หน้า Landing Page ที่ระบบจะนำผู้ใช้ไปเมื่อผู้ใช้คลิกโฆษณาในแคมเปญนี้ หากหน้าใดที่ไม่ได้กำหนดให้กับโฆษณานั้น คุณค้นหาหน้า Landing Page ที่มีอยู่ได้โดยโทรหา advertiserLandingPages.list หรือสร้างใหม่โดยโทรไปที่ advertiserLandingPages.insert
    • วันที่เริ่มต้นและสิ้นสุด - วันที่ต้องเป็นวันที่ในอนาคต และระบุได้จนถึงวันนั้น ดูรายละเอียดเพิ่มเติมได้จากหัวข้อย่อยวันที่และเวลาในข้อมูลการเขียนโค้ดทั่วไป วันที่ของโฆษณาแต่ละรายการอาจเกินวันที่สิ้นสุดได้ เพื่อให้ผู้เผยแพร่โฆษณาสามารถพยายามปฏิบัติตามสัญญาตามจำนวนการดำเนินการที่ระบุไว้ หากไม่ได้รับการส่งโฆษณาภายในวันที่สิ้นสุดแคมเปญที่กำหนด
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(service, profileId, advertiserId);
    
    // Create the campaign structure.
    Campaign campaign = new Campaign();
    campaign.Name = campaignName;
    campaign.AdvertiserId = advertiserId;
    campaign.Archived = false;
    campaign.DefaultLandingPageId = defaultLandingPage.Id;
    
    // Set the campaign start date. This example uses today's date.
    campaign.StartDate =
        DfaReportingDateConverterUtil.convertToDateString(DateTime.Now);
    
    // Set the campaign end date. This example uses one month from today's date.
    campaign.EndDate =
        DfaReportingDateConverterUtil.convertToDateString(DateTime.Now.AddMonths(1));
    
  2. โปรดโทรติดต่อ campaigns.insert() เพื่อบันทึกแคมเปญ

    // Insert the campaign.
    Campaign result = service.Campaigns.Insert(campaign, profileId).Execute();
    

Java

  1. สร้างออบเจ็กต์ Campaign และตั้งค่าพร็อพเพอร์ตี้ที่จำเป็น ดังนี้

    • advertiserId - ผู้ลงโฆษณาที่เชื่อมโยงกับแคมเปญนี้
    • name - ต้องไม่ซ้ำกันในแคมเปญทั้งหมดสำหรับผู้ลงโฆษณารายนี้
    • defaultLandingPageId - หน้า Landing Page ที่ระบบจะนำผู้ใช้ไปเมื่อผู้ใช้คลิกโฆษณาในแคมเปญนี้ หากหน้าใดที่ไม่ได้กำหนดให้กับโฆษณานั้น คุณค้นหาหน้า Landing Page ที่มีอยู่ได้โดยโทรหา advertiserLandingPages.list หรือสร้างใหม่โดยโทรไปที่ advertiserLandingPages.insert
    • วันที่เริ่มต้นและสิ้นสุด - วันที่ต้องเป็นวันที่ในอนาคต และระบุได้จนถึงวันนั้น ดูรายละเอียดเพิ่มเติมได้จากหัวข้อย่อยวันที่และเวลาในข้อมูลการเขียนโค้ดทั่วไป วันที่ของโฆษณาแต่ละรายการอาจเกินวันที่สิ้นสุดได้ เพื่อให้ผู้เผยแพร่โฆษณาสามารถพยายามปฏิบัติตามสัญญาตามจำนวนการดำเนินการที่ระบุไว้ หากไม่ได้รับการส่งโฆษณาภายในวันที่สิ้นสุดแคมเปญที่กำหนด
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(reporting, profileId, advertiserId);
    
    // Create the campaign structure.
    Campaign campaign = new Campaign();
    campaign.setName(campaignName);
    campaign.setAdvertiserId(advertiserId);
    campaign.setArchived(false);
    campaign.setDefaultLandingPageId(defaultLandingPage.getId());
    
    // Set the campaign start date. This example uses today's date.
    Calendar today = Calendar.getInstance();
    DateTime startDate = new DateTime(true, today.getTimeInMillis(), null);
    campaign.setStartDate(startDate);
    
    // Set the campaign end date. This example uses one month from today's date.
    Calendar nextMonth = Calendar.getInstance();
    nextMonth.add(Calendar.MONTH, 1);
    DateTime endDate = new DateTime(true, nextMonth.getTimeInMillis(), null);
    campaign.setEndDate(endDate);
    
  2. โปรดโทรติดต่อ campaigns.insert() เพื่อบันทึกแคมเปญ

    // Insert the campaign.
    Campaign result = reporting.campaigns().insert(profileId, campaign).execute();
    

PHP

  1. สร้างออบเจ็กต์ Campaign และตั้งค่าพร็อพเพอร์ตี้ที่จำเป็น ดังนี้

    • advertiserId - ผู้ลงโฆษณาที่เชื่อมโยงกับแคมเปญนี้
    • name - ต้องไม่ซ้ำกันในแคมเปญทั้งหมดสำหรับผู้ลงโฆษณารายนี้
    • defaultLandingPageId - หน้า Landing Page ที่ระบบจะนำผู้ใช้ไปเมื่อผู้ใช้คลิกโฆษณาในแคมเปญนี้ หากหน้าใดที่ไม่ได้กำหนดให้กับโฆษณานั้น คุณค้นหาหน้า Landing Page ที่มีอยู่ได้โดยโทรหา advertiserLandingPages.list หรือสร้างใหม่โดยโทรไปที่ advertiserLandingPages.insert
    • วันที่เริ่มต้นและสิ้นสุด - วันที่ต้องเป็นวันที่ในอนาคต และระบุได้จนถึงวันนั้น ดูรายละเอียดเพิ่มเติมได้จากหัวข้อย่อยวันที่และเวลาในข้อมูลการเขียนโค้ดทั่วไป วันที่ของโฆษณาแต่ละรายการอาจเกินวันที่สิ้นสุดได้ เพื่อให้ผู้เผยแพร่โฆษณาสามารถพยายามปฏิบัติตามสัญญาตามจำนวนการดำเนินการที่ระบุไว้ หากไม่ได้รับการส่งโฆษณาภายในวันที่สิ้นสุดแคมเปญที่กำหนด
    $startDate = new DateTime('today');
    $endDate = new DateTime('+1 month');
    
    $campaign = new Google_Service_Dfareporting_Campaign();
    $campaign->setAdvertiserId($values['advertiser_id']);
    $campaign->setDefaultLandingPageId($values['default_landing_page_id']);
    $campaign->setName($values['campaign_name']);
    $campaign->setStartDate($startDate->format('Y-m-d'));
    $campaign->setEndDate($endDate->format('Y-m-d'));
    
  2. โปรดโทรติดต่อ campaigns.insert() เพื่อบันทึกแคมเปญ

    $result = $this->service->campaigns->insert(
        $values['user_profile_id'],
        $campaign
    );
    

Python

  1. สร้างออบเจ็กต์ Campaign และตั้งค่าพร็อพเพอร์ตี้ที่จำเป็น ดังนี้

    • advertiserId - ผู้ลงโฆษณาที่เชื่อมโยงกับแคมเปญนี้
    • name - ต้องไม่ซ้ำกันในแคมเปญทั้งหมดสำหรับผู้ลงโฆษณารายนี้
    • defaultLandingPageId - หน้า Landing Page ที่ระบบจะนำผู้ใช้ไปเมื่อผู้ใช้คลิกโฆษณาในแคมเปญนี้ หากหน้าใดที่ไม่ได้กำหนดให้กับโฆษณานั้น คุณค้นหาหน้า Landing Page ที่มีอยู่ได้โดยโทรหา advertiserLandingPages.list หรือสร้างใหม่โดยโทรไปที่ advertiserLandingPages.insert
    • วันที่เริ่มต้นและสิ้นสุด - วันที่ต้องเป็นวันที่ในอนาคต และระบุได้จนถึงวันนั้น ดูรายละเอียดเพิ่มเติมได้จากหัวข้อย่อยวันที่และเวลาในข้อมูลการเขียนโค้ดทั่วไป วันที่ของโฆษณาแต่ละรายการอาจเกินวันที่สิ้นสุดได้ เพื่อให้ผู้เผยแพร่โฆษณาสามารถพยายามปฏิบัติตามสัญญาตามจำนวนการดำเนินการที่ระบุไว้ หากไม่ได้รับการส่งโฆษณาภายในวันที่สิ้นสุดแคมเปญที่กำหนด
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
                                                       advertiser_id)
    
    # Construct and save campaign.
    campaign = {
        'name': 'Test Campaign #%s' % uuid.uuid4(),
        'advertiserId': advertiser_id,
        'archived': 'false',
        'defaultLandingPageId': default_landing_page['id'],
        'startDate': '2015-01-01',
        'endDate': '2020-01-01'
    }
    
  2. โปรดโทรติดต่อ campaigns.insert() เพื่อบันทึกแคมเปญ

    request = service.campaigns().insert(profileId=profile_id, body=campaign)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. สร้างออบเจ็กต์ Campaign และตั้งค่าพร็อพเพอร์ตี้ที่จำเป็น ดังนี้

    • advertiserId - ผู้ลงโฆษณาที่เชื่อมโยงกับแคมเปญนี้
    • name - ต้องไม่ซ้ำกันในแคมเปญทั้งหมดสำหรับผู้ลงโฆษณารายนี้
    • defaultLandingPageId - หน้า Landing Page ที่ระบบจะนำผู้ใช้ไปเมื่อผู้ใช้คลิกโฆษณาในแคมเปญนี้ หากหน้าใดที่ไม่ได้กำหนดให้กับโฆษณานั้น คุณค้นหาหน้า Landing Page ที่มีอยู่ได้โดยโทรหา advertiserLandingPages.list หรือสร้างใหม่โดยโทรไปที่ advertiserLandingPages.insert
    • วันที่เริ่มต้นและสิ้นสุด - วันที่ต้องเป็นวันที่ในอนาคต และระบุได้จนถึงวันนั้น ดูรายละเอียดเพิ่มเติมได้จากหัวข้อย่อยวันที่และเวลาในข้อมูลการเขียนโค้ดทั่วไป วันที่ของโฆษณาแต่ละรายการอาจเกินวันที่สิ้นสุดได้ เพื่อให้ผู้เผยแพร่โฆษณาสามารถพยายามปฏิบัติตามสัญญาตามจำนวนการดำเนินการที่ระบุไว้ หากไม่ได้รับการส่งโฆษณาภายในวันที่สิ้นสุดแคมเปญที่กำหนด
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
      advertiser_id)
    
    # Create a new campaign resource to insert.
    campaign = DfareportingUtils::API_NAMESPACE::Campaign.new(
      advertiser_id: advertiser_id,
      archived: false,
      default_landing_page_id: default_landing_page.id,
      name: format('Example Campaign #%s', SecureRandom.hex(3)),
      start_date: '2014-01-01',
      end_date: '2020-01-01'
    )
    
  2. โปรดโทรติดต่อ campaigns.insert() เพื่อบันทึกแคมเปญ

    # Insert the campaign.
    result = service.insert_campaign(profile_id, campaign)
    

สร้างตำแหน่ง

C#

  1. สร้างออบเจ็กต์ Placement และตั้งค่าพร็อพเพอร์ตี้ตำแหน่งที่จำเป็น (รวมถึง campaignId และ siteId) นอกจากนี้ โปรดตรวจสอบว่าได้ตั้งค่าประเภทและขนาดตำแหน่งอย่างถูกต้องสำหรับตำแหน่งที่คุณได้เจรจาต่อรองไว้กับเว็บไซต์แล้ว
    // Create the placement.
    Placement placement = new Placement();
    placement.Name = placementName;
    placement.CampaignId = campaignId;
    placement.Compatibility = "DISPLAY";
    placement.PaymentSource = "PLACEMENT_AGENCY_PAID";
    placement.SiteId = dfaSiteId;
    placement.TagFormats = new List<string>() { "PLACEMENT_TAG_STANDARD" };
    
    // Set the size of the placement.
    Size size = new Size();
    size.Id = sizeId;
    placement.Size = size;
    
  2. สร้างออบเจ็กต์ PricingSchedule ใหม่เพื่อกำหนดให้กับตำแหน่ง
    // Set the pricing schedule for the placement.
    PricingSchedule pricingSchedule = new PricingSchedule();
    pricingSchedule.EndDate = campaign.EndDate;
    pricingSchedule.PricingType = "PRICING_TYPE_CPM";
    pricingSchedule.StartDate = campaign.StartDate;
    placement.PricingSchedule = pricingSchedule;
    
  3. บันทึกออบเจ็กต์ Placement โดยการเรียกใช้ placements.insert() โปรดเก็บรหัสที่ส่งกลับมาไว้หากต้องการใช้เพื่อกำหนดให้กับโฆษณาหรือครีเอทีฟโฆษณา
    // Insert the placement.
    Placement result = service.Placements.Insert(placement, profileId).Execute();
    

Java

  1. สร้างออบเจ็กต์ Placement และตั้งค่าพร็อพเพอร์ตี้ตำแหน่งที่จำเป็น (รวมถึง campaignId และ siteId) นอกจากนี้ โปรดตรวจสอบว่าได้ตั้งค่าประเภทและขนาดตำแหน่งอย่างถูกต้องสำหรับตำแหน่งที่คุณได้เจรจาต่อรองไว้กับเว็บไซต์แล้ว
    // Create the placement.
    Placement placement = new Placement();
    placement.setName(placementName);
    placement.setCampaignId(campaignId);
    placement.setCompatibility("DISPLAY");
    placement.setPaymentSource("PLACEMENT_AGENCY_PAID");
    placement.setSiteId(dfaSiteId);
    placement.setTagFormats(ImmutableList.of("PLACEMENT_TAG_STANDARD"));
    
    // Set the size of the placement.
    Size size = new Size();
    size.setId(sizeId);
    placement.setSize(size);
    
  2. สร้างออบเจ็กต์ PricingSchedule ใหม่เพื่อกำหนดให้กับตำแหน่ง
    // Set the pricing schedule for the placement.
    PricingSchedule pricingSchedule = new PricingSchedule();
    pricingSchedule.setEndDate(campaign.getEndDate());
    pricingSchedule.setPricingType("PRICING_TYPE_CPM");
    pricingSchedule.setStartDate(campaign.getStartDate());
    placement.setPricingSchedule(pricingSchedule);
    
  3. บันทึกออบเจ็กต์ Placement โดยการเรียกใช้ placements.insert() โปรดเก็บรหัสที่ส่งกลับมาไว้หากต้องการใช้เพื่อกำหนดให้กับโฆษณาหรือครีเอทีฟโฆษณา
    // Insert the placement.
    Placement result = reporting.placements().insert(profileId, placement).execute();
    

PHP

  1. สร้างออบเจ็กต์ Placement และตั้งค่าพร็อพเพอร์ตี้ตำแหน่งที่จำเป็น (รวมถึง campaignId และ siteId) นอกจากนี้ โปรดตรวจสอบว่าได้ตั้งค่าประเภทและขนาดตำแหน่งอย่างถูกต้องสำหรับตำแหน่งที่คุณได้เจรจาต่อรองไว้กับเว็บไซต์แล้ว
    $placement = new Google_Service_Dfareporting_Placement();
    $placement->setCampaignId($values['campaign_id']);
    $placement->setCompatibility('DISPLAY');
    $placement->setName($values['placement_name']);
    $placement->setPaymentSource('PLACEMENT_AGENCY_PAID');
    $placement->setSiteId($values['site_id']);
    $placement->setTagFormats(['PLACEMENT_TAG_STANDARD']);
    
    // Set the size of the placement.
    $size = new Google_Service_Dfareporting_Size();
    $size->setId($values['size_id']);
    $placement->setSize($size);
    
  2. สร้างออบเจ็กต์ PricingSchedule ใหม่เพื่อกำหนดให้กับตำแหน่ง
    // Set the pricing schedule for the placement.
    $pricingSchedule = new Google_Service_Dfareporting_PricingSchedule();
    $pricingSchedule->setEndDate($campaign->getEndDate());
    $pricingSchedule->setPricingType('PRICING_TYPE_CPM');
    $pricingSchedule->setStartDate($campaign->getStartDate());
    $placement->setPricingSchedule($pricingSchedule);
    
  3. บันทึกออบเจ็กต์ Placement โดยการเรียกใช้ placements.insert() โปรดเก็บรหัสที่ส่งกลับมาไว้หากต้องการใช้เพื่อกำหนดให้กับโฆษณาหรือครีเอทีฟโฆษณา
    // Insert the placement.
    $result = $this->service->placements->insert(
        $values['user_profile_id'],
        $placement
    );
    

Python

  1. สร้างออบเจ็กต์ Placement และตั้งค่าพร็อพเพอร์ตี้ตำแหน่งที่จำเป็น (รวมถึง campaignId และ siteId) นอกจากนี้ โปรดตรวจสอบว่าได้ตั้งค่าประเภทและขนาดตำแหน่งอย่างถูกต้องสำหรับตำแหน่งที่คุณได้เจรจาต่อรองไว้กับเว็บไซต์แล้ว
    # Construct and save placement.
    placement = {
        'name': 'Test Placement',
        'campaignId': campaign_id,
        'compatibility': 'DISPLAY',
        'siteId': site_id,
        'size': {
            'height': '1',
            'width': '1'
        },
        'paymentSource': 'PLACEMENT_AGENCY_PAID',
        'tagFormats': ['PLACEMENT_TAG_STANDARD']
    }
    
  2. สร้างออบเจ็กต์ PricingSchedule ใหม่เพื่อกำหนดให้กับตำแหน่ง
    # Set the pricing schedule for the placement.
    placement['pricingSchedule'] = {
        'startDate': campaign['startDate'],
        'endDate': campaign['endDate'],
        'pricingType': 'PRICING_TYPE_CPM'
    }
    
  3. บันทึกออบเจ็กต์ Placement โดยการเรียกใช้ placements.insert() โปรดเก็บรหัสที่ส่งกลับมาไว้หากต้องการใช้เพื่อกำหนดให้กับโฆษณาหรือครีเอทีฟโฆษณา
    request = service.placements().insert(profileId=profile_id, body=placement)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. สร้างออบเจ็กต์ Placement และตั้งค่าพร็อพเพอร์ตี้ตำแหน่งที่จำเป็น (รวมถึง campaignId และ siteId) นอกจากนี้ โปรดตรวจสอบว่าได้ตั้งค่าประเภทและขนาดตำแหน่งอย่างถูกต้องสำหรับตำแหน่งที่คุณได้เจรจาต่อรองไว้กับเว็บไซต์แล้ว
    # Create a new placement resource to insert.
    placement = DfareportingUtils::API_NAMESPACE::Placement.new(
      campaign_id: campaign_id,
      compatibility: 'DISPLAY',
      name: 'Example Placement',
      payment_source: 'PLACEMENT_AGENCY_PAID',
      site_id: site_id,
      size: DfareportingUtils::API_NAMESPACE::Size.new(
        height: 1,
        width: 1
      ),
      tag_formats: ['PLACEMENT_TAG_STANDARD']
    )
    
  2. สร้างออบเจ็กต์ PricingSchedule ใหม่เพื่อกำหนดให้กับตำแหน่ง
    # Set the pricing schedule for the placement.
    placement.pricing_schedule =
      DfareportingUtils::API_NAMESPACE::PricingSchedule.new(
        end_date: campaign.end_date,
        pricing_type: 'PRICING_TYPE_CPM',
        start_date: campaign.start_date
      )
    
  3. บันทึกออบเจ็กต์ Placement โดยการเรียกใช้ placements.insert() โปรดเก็บรหัสที่ส่งกลับมาไว้หากต้องการใช้เพื่อกำหนดให้กับโฆษณาหรือครีเอทีฟโฆษณา
    # Insert the placement strategy.
    result = service.insert_placement(profile_id, placement)
    

อัปโหลดเนื้อหา

คุณอัปโหลดเนื้อหาได้หลายประเภทผ่านกระบวนการที่เรียกว่าการอัปโหลดสื่อ แม้ว่าขั้นตอนนี้จะคล้ายคลึงกันสำหรับโฆษณาทุกประเภท แต่บางประเภทอาจกำหนดให้ส่งคุณสมบัติเฉพาะบางอย่างเป็นข้อมูลเมตาเพื่อให้ใช้งานได้อย่างถูกต้อง

C#

  1. สร้างออบเจ็กต์ assetIdentifier และตั้งค่าพร็อพเพอร์ตี้ที่จำเป็น ชิ้นงานทั้งหมด ไม่ว่าจะเป็นประเภทหรือวิธีใช้งานใดก็ตาม จำเป็นต้องระบุ assetIdentifier เมื่อกำหนดเนื้อหาให้กับครีเอทีฟโฆษณา ออบเจ็กต์นี้จะใช้เพื่ออ้างอิงเนื้อหา ต้องมีพร็อพเพอร์ตี้ต่อไปนี้

    • พร็อพเพอร์ตี้ name ซึ่งจะเป็นชื่อของเนื้อหาบนเซิร์ฟเวอร์ ชื่อต้องมีนามสกุลที่ระบุประเภทไฟล์ เช่น .png หรือ .gif และจะแสดงต่อเบราว์เซอร์เป็นชื่อเนื้อหา แต่ไม่จำเป็นต้องเหมือนกับชื่อไฟล์ต้นฉบับ โปรดทราบว่า Campaign Manager 360 อาจเปลี่ยนชื่อให้ไม่ซ้ำกันบนเซิร์ฟเวอร์ โปรดตรวจสอบค่าที่แสดงผลเพื่อดูว่ามีการเปลี่ยนแปลงหรือไม่
    • พร็อพเพอร์ตี้ type ซึ่งระบุประเภทของเนื้อหา พร็อพเพอร์ตี้นี้จะกำหนดประเภทครีเอทีฟโฆษณาที่จะเชื่อมโยงเนื้อหานี้ได้
    // Create the creative asset ID and Metadata.
    CreativeAssetId assetId = new CreativeAssetId();
    assetId.Name = Path.GetFileName(assetFile);
    assetId.Type = assetType;
    
  2. อัปโหลดไฟล์โดยโทรไปที่ creativeAssets.insert() ทำการอัปโหลดหลายส่วน โดยส่งผ่านทั้ง assetIdentifier และเนื้อหาไฟล์เป็นส่วนหนึ่งของคำขอเดียวกัน หากดำเนินการสำเร็จ ระบบจะส่งคืนทรัพยากร CreativeAsset พร้อม assetIdentifier ที่คุณจะใช้เพื่อกำหนดชิ้นงานนี้ให้กับครีเอทีฟโฆษณา

    // Prepare an input stream.
    FileStream assetContent = new FileStream(assetFile, FileMode.Open, FileAccess.Read);
    
    
    CreativeAssetMetadata metaData = new CreativeAssetMetadata();
    metaData.AssetIdentifier = assetId;
    
    // Insert the creative.
    String mimeType = determineMimeType(assetFile, assetType);
    CreativeAssetsResource.InsertMediaUpload request =
        Service.CreativeAssets.Insert(metaData, ProfileId, AdvertiserId, assetContent, mimeType);
    
    IUploadProgress progress = request.Upload();
    if (UploadStatus.Failed.Equals(progress.Status)) {
        throw progress.Exception;
    }
    

Java

  1. สร้างออบเจ็กต์ assetIdentifier และตั้งค่าพร็อพเพอร์ตี้ที่จำเป็น ชิ้นงานทั้งหมด ไม่ว่าจะเป็นประเภทหรือวิธีใช้งานใดก็ตาม จำเป็นต้องระบุ assetIdentifier เมื่อกำหนดเนื้อหาให้กับครีเอทีฟโฆษณา ออบเจ็กต์นี้จะใช้เพื่ออ้างอิงเนื้อหา ต้องมีพร็อพเพอร์ตี้ต่อไปนี้

    • พร็อพเพอร์ตี้ name ซึ่งจะเป็นชื่อของเนื้อหาบนเซิร์ฟเวอร์ ชื่อต้องมีนามสกุลที่ระบุประเภทไฟล์ เช่น .png หรือ .gif และจะแสดงต่อเบราว์เซอร์เป็นชื่อเนื้อหา แต่ไม่จำเป็นต้องเหมือนกับชื่อไฟล์ต้นฉบับ โปรดทราบว่า Campaign Manager 360 อาจเปลี่ยนชื่อให้ไม่ซ้ำกันบนเซิร์ฟเวอร์ โปรดตรวจสอบค่าที่แสดงผลเพื่อดูว่ามีการเปลี่ยนแปลงหรือไม่
    • พร็อพเพอร์ตี้ type ซึ่งระบุประเภทของเนื้อหา พร็อพเพอร์ตี้นี้จะกำหนดประเภทครีเอทีฟโฆษณาที่จะเชื่อมโยงเนื้อหานี้ได้
    // Create the creative asset ID and Metadata.
    CreativeAssetId assetId = new CreativeAssetId();
    assetId.setName(assetName);
    assetId.setType(assetType);
    
  2. อัปโหลดไฟล์โดยโทรไปที่ creativeAssets.insert() ทำการอัปโหลดหลายส่วน โดยส่งผ่านทั้ง assetIdentifier และเนื้อหาไฟล์เป็นส่วนหนึ่งของคำขอเดียวกัน หากดำเนินการสำเร็จ ระบบจะส่งคืนทรัพยากร CreativeAsset พร้อม assetIdentifier ที่คุณจะใช้เพื่อกำหนดชิ้นงานนี้ให้กับครีเอทีฟโฆษณา

    // Open the asset file.
    File file = new File(assetFile);
    
    // Prepare an input stream.
    String contentType = getMimeType(assetFile);
    InputStreamContent assetContent =
        new InputStreamContent(contentType, new BufferedInputStream(new FileInputStream(file)));
    assetContent.setLength(file.length());
    
    
    CreativeAssetMetadata metaData = new CreativeAssetMetadata();
    metaData.setAssetIdentifier(assetId);
    
    // Insert the creative.
    CreativeAssetMetadata result = reporting.creativeAssets()
        .insert(profileId, advertiserId, metaData, assetContent).execute();
    

PHP

  1. สร้างออบเจ็กต์ assetIdentifier และตั้งค่าพร็อพเพอร์ตี้ที่จำเป็น ชิ้นงานทั้งหมด ไม่ว่าจะเป็นประเภทหรือวิธีใช้งานใดก็ตาม จำเป็นต้องระบุ assetIdentifier เมื่อกำหนดเนื้อหาให้กับครีเอทีฟโฆษณา ออบเจ็กต์นี้จะใช้เพื่ออ้างอิงเนื้อหา ต้องมีพร็อพเพอร์ตี้ต่อไปนี้

    • พร็อพเพอร์ตี้ name ซึ่งจะเป็นชื่อของเนื้อหาบนเซิร์ฟเวอร์ ชื่อต้องมีนามสกุลที่ระบุประเภทไฟล์ เช่น .png หรือ .gif และจะแสดงต่อเบราว์เซอร์เป็นชื่อเนื้อหา แต่ไม่จำเป็นต้องเหมือนกับชื่อไฟล์ต้นฉบับ โปรดทราบว่า Campaign Manager 360 อาจเปลี่ยนชื่อให้ไม่ซ้ำกันบนเซิร์ฟเวอร์ โปรดตรวจสอบค่าที่แสดงผลเพื่อดูว่ามีการเปลี่ยนแปลงหรือไม่
    • พร็อพเพอร์ตี้ type ซึ่งระบุประเภทของเนื้อหา พร็อพเพอร์ตี้นี้จะกำหนดประเภทครีเอทีฟโฆษณาที่จะเชื่อมโยงเนื้อหานี้ได้
    $assetId = new Google_Service_Dfareporting_CreativeAssetId();
    $assetId->setName($asset['name']);
    $assetId->setType($type);
    
  2. อัปโหลดไฟล์โดยโทรไปที่ creativeAssets.insert() ทำการอัปโหลดหลายส่วน โดยส่งผ่านทั้ง assetIdentifier และเนื้อหาไฟล์เป็นส่วนหนึ่งของคำขอเดียวกัน หากดำเนินการสำเร็จ ระบบจะส่งคืนทรัพยากร CreativeAsset พร้อม assetIdentifier ที่คุณจะใช้เพื่อกำหนดชิ้นงานนี้ให้กับครีเอทีฟโฆษณา

    $metadata = new Google_Service_Dfareporting_CreativeAssetMetadata();
    $metadata->setAssetIdentifier($assetId);
    
    $result = $service->creativeAssets->insert(
        $userProfileId,
        $advertiserId,
        $metadata,
        ['data' => file_get_contents($asset['tmp_name']),
         'mimeType' => $asset['type'],
         'uploadType' => 'multipart']
    );
    

Python

  1. สร้างออบเจ็กต์ assetIdentifier และตั้งค่าพร็อพเพอร์ตี้ที่จำเป็น ชิ้นงานทั้งหมด ไม่ว่าจะเป็นประเภทหรือวิธีใช้งานใดก็ตาม จำเป็นต้องระบุ assetIdentifier เมื่อกำหนดเนื้อหาให้กับครีเอทีฟโฆษณา ออบเจ็กต์นี้จะใช้เพื่ออ้างอิงเนื้อหา ต้องมีพร็อพเพอร์ตี้ต่อไปนี้

    • พร็อพเพอร์ตี้ name ซึ่งจะเป็นชื่อของเนื้อหาบนเซิร์ฟเวอร์ ชื่อต้องมีนามสกุลที่ระบุประเภทไฟล์ เช่น .png หรือ .gif และจะแสดงต่อเบราว์เซอร์เป็นชื่อเนื้อหา แต่ไม่จำเป็นต้องเหมือนกับชื่อไฟล์ต้นฉบับ โปรดทราบว่า Campaign Manager 360 อาจเปลี่ยนชื่อให้ไม่ซ้ำกันบนเซิร์ฟเวอร์ โปรดตรวจสอบค่าที่แสดงผลเพื่อดูว่ามีการเปลี่ยนแปลงหรือไม่
    • พร็อพเพอร์ตี้ type ซึ่งระบุประเภทของเนื้อหา พร็อพเพอร์ตี้นี้จะกำหนดประเภทครีเอทีฟโฆษณาที่จะเชื่อมโยงเนื้อหานี้ได้
    # Construct the creative asset metadata
    creative_asset = {'assetIdentifier': {'name': asset_name, 'type': asset_type}}
    
  2. อัปโหลดไฟล์โดยโทรไปที่ creativeAssets.insert() ทำการอัปโหลดหลายส่วน โดยส่งผ่านทั้ง assetIdentifier และเนื้อหาไฟล์เป็นส่วนหนึ่งของคำขอเดียวกัน หากดำเนินการสำเร็จ ระบบจะส่งคืนทรัพยากร CreativeAsset พร้อม assetIdentifier ที่คุณจะใช้เพื่อกำหนดชิ้นงานนี้ให้กับครีเอทีฟโฆษณา

    media = MediaFileUpload(path_to_asset_file)
    if not media.mimetype():
      media = MediaFileUpload(path_to_asset_file, 'application/octet-stream')
    
    response = service.creativeAssets().insert(
        advertiserId=advertiser_id,
        profileId=profile_id,
        media_body=media,
        body=creative_asset).execute()
    

Ruby

  1. สร้างออบเจ็กต์ assetIdentifier และตั้งค่าพร็อพเพอร์ตี้ที่จำเป็น ชิ้นงานทั้งหมด ไม่ว่าจะเป็นประเภทหรือวิธีใช้งานใดก็ตาม จำเป็นต้องระบุ assetIdentifier เมื่อกำหนดเนื้อหาให้กับครีเอทีฟโฆษณา ออบเจ็กต์นี้จะใช้เพื่ออ้างอิงเนื้อหา ต้องมีพร็อพเพอร์ตี้ต่อไปนี้

    • พร็อพเพอร์ตี้ name ซึ่งจะเป็นชื่อของเนื้อหาบนเซิร์ฟเวอร์ ชื่อต้องมีนามสกุลที่ระบุประเภทไฟล์ เช่น .png หรือ .gif และจะแสดงต่อเบราว์เซอร์เป็นชื่อเนื้อหา แต่ไม่จำเป็นต้องเหมือนกับชื่อไฟล์ต้นฉบับ โปรดทราบว่า Campaign Manager 360 อาจเปลี่ยนชื่อให้ไม่ซ้ำกันบนเซิร์ฟเวอร์ โปรดตรวจสอบค่าที่แสดงผลเพื่อดูว่ามีการเปลี่ยนแปลงหรือไม่
    • พร็อพเพอร์ตี้ type ซึ่งระบุประเภทของเนื้อหา พร็อพเพอร์ตี้นี้จะกำหนดประเภทครีเอทีฟโฆษณาที่จะเชื่อมโยงเนื้อหานี้ได้
    # Construct the creative asset metadata
    creative_asset = DfareportingUtils::API_NAMESPACE::CreativeAsset.new(
      asset_identifier: DfareportingUtils::API_NAMESPACE::CreativeAssetId.new(
        name: asset_name,
        type: asset_type
      )
    )
    
  2. อัปโหลดไฟล์โดยโทรไปที่ creativeAssets.insert() ทำการอัปโหลดหลายส่วน โดยส่งผ่านทั้ง assetIdentifier และเนื้อหาไฟล์เป็นส่วนหนึ่งของคำขอเดียวกัน หากดำเนินการสำเร็จ ระบบจะส่งคืนทรัพยากร CreativeAsset พร้อม assetIdentifier ที่คุณจะใช้เพื่อกำหนดชิ้นงานนี้ให้กับครีเอทีฟโฆษณา

    # Upload the asset.
    mime_type = determine_mime_type(path_to_asset_file, asset_type)
    
    result = @service.insert_creative_asset(
      @profile_id,
      advertiser_id,
      creative_asset,
      content_type: mime_type,
      upload_source: path_to_asset_file
    )
    

สร้างโฆษณา

ออบเจ็กต์ Creative รวมเนื้อหาที่มีอยู่ คุณสร้างออบเจ็กต์ Creative รายการสำหรับครีเอทีฟโฆษณาประเภทต่างๆ ได้ ทั้งนี้ขึ้นอยู่กับวิธีที่คุณจะใช้ครีเอทีฟโฆษณาในหน้าโฮสต์ ดูเอกสารอ้างอิงเพื่อเลือกประเภทที่เหมาะกับคุณ

ตัวอย่างต่อไปนี้สาธิตวิธีสร้างครีเอทีฟโฆษณาดิสเพลย์ HTML5 ใหม่

C#

  1. อัปโหลดชิ้นงาน ครีเอทีฟโฆษณาที่ต่างกันต้องใช้ประเภทและปริมาณเนื้อหาที่ต่างกันไป ดูรายละเอียดได้ที่อัปโหลดเนื้อหา ทุกครั้งที่อัปโหลดเนื้อหาสำเร็จ คุณจะได้รับ assetIdenfitier ในการตอบกลับ คุณจะใช้ชื่อไฟล์และประเภทที่จัดเก็บไว้เพื่ออ้างอิงเนื้อหาเหล่านี้ในครีเอทีฟโฆษณา แทนที่จะเป็นรหัสแบบเดิม
  2. สร้างโฆษณาและกําหนดค่าที่เหมาะสม สร้างอินสแตนซ์ Creative และตั้งค่า type ที่เหมาะสม คุณไม่สามารถเปลี่ยนประเภทออบเจ็กต์ Creative ได้หลังจากที่บันทึกแล้ว ระบุเนื้อหาตาม AssetIdentifier และ role
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(service, profileId, advertiserId);
    
    // Create the creative structure.
    Creative creative = new Creative();
    creative.AdvertiserId = advertiserId;
    creative.Name = "Test HTML5 display creative";
    creative.Size = new Size() { Id = sizeId };
    creative.Type = "DISPLAY";
    
    // Upload the HTML5 asset.
    CreativeAssetUtils assetUtils = new CreativeAssetUtils(service, profileId, advertiserId);
    CreativeAssetId html5AssetId =
        assetUtils.uploadAsset(pathToHtml5AssetFile, "HTML").AssetIdentifier;
    
    CreativeAsset html5Asset = new CreativeAsset();
    html5Asset.AssetIdentifier = html5AssetId;
    html5Asset.Role = "PRIMARY";
    
    // Upload the backup image asset.
    CreativeAssetId imageAssetId =
        assetUtils.uploadAsset(pathToImageAssetFile, "HTML_IMAGE").AssetIdentifier;
    
    CreativeAsset imageAsset = new CreativeAsset();
    imageAsset.AssetIdentifier = imageAssetId;
    imageAsset.Role = "BACKUP_IMAGE";
    
    // Add the creative assets.
    creative.CreativeAssets = new List<CreativeAsset>() { html5Asset, imageAsset };
    
    // Configure the bacup image.
    creative.BackupImageClickThroughUrl = new CreativeClickThroughUrl() {
      LandingPageId = defaultLandingPage.Id
    };
    creative.BackupImageReportingLabel = "backup";
    creative.BackupImageTargetWindow = new TargetWindow() { TargetWindowOption = "NEW_WINDOW" };
    
    // Add a click tag.
    ClickTag clickTag = new ClickTag();
    clickTag.Name = "clickTag";
    clickTag.EventName = "exit";
    clickTag.ClickThroughUrl = new CreativeClickThroughUrl() {
      LandingPageId = defaultLandingPage.Id
    };
    creative.ClickTags = new List<ClickTag>() { clickTag };
    
  3. บันทึกครีเอทีฟโฆษณา ซึ่งทำได้โดยโทรไปที่ creatives.insert() ต้องระบุรหัสผู้ลงโฆษณาที่เชื่อมโยงกับครีเอทีฟโฆษณานี้
    Creative result = service.Creatives.Insert(creative, profileId).Execute();
    
  4. (ไม่บังคับ) เชื่อมโยงโฆษณากับแคมเปญ โดยเรียกใช้ campaignCreativeAssociations.insert() แล้วส่งแคมเปญและรหัสครีเอทีฟโฆษณา
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.CreativeId = creativeId;
    
    // Insert the association.
    CampaignCreativeAssociation result =
        service.CampaignCreativeAssociations.Insert(association, profileId, campaignId).Execute();
    

Java

  1. อัปโหลดชิ้นงาน ครีเอทีฟโฆษณาที่ต่างกันต้องใช้ประเภทและปริมาณเนื้อหาที่ต่างกันไป ดูรายละเอียดได้ที่อัปโหลดเนื้อหา ทุกครั้งที่อัปโหลดเนื้อหาสำเร็จ คุณจะได้รับ assetIdenfitier ในการตอบกลับ คุณจะใช้ชื่อไฟล์และประเภทที่จัดเก็บไว้เพื่ออ้างอิงเนื้อหาเหล่านี้ในครีเอทีฟโฆษณา แทนที่จะเป็นรหัสแบบเดิม
  2. สร้างโฆษณาและกําหนดค่าที่เหมาะสม สร้างอินสแตนซ์ Creative และตั้งค่า type ที่เหมาะสม คุณไม่สามารถเปลี่ยนประเภทออบเจ็กต์ Creative ได้หลังจากที่บันทึกแล้ว ระบุเนื้อหาตาม AssetIdentifier และ role
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(reporting, profileId, advertiserId);
    
    // Create the creative structure.
    Creative creative = new Creative();
    creative.setAdvertiserId(advertiserId);
    creative.setName("Test HTML5 display creative");
    creative.setSize(new Size().setId(sizeId));
    creative.setType("DISPLAY");
    
    // Upload the HTML5 asset.
    CreativeAssetId html5AssetId = CreativeAssetUtils.uploadAsset(reporting, profileId,
        advertiserId, HTML5_ASSET_NAME, PATH_TO_HTML5_ASSET_FILE, "HTML").getAssetIdentifier();
    
    CreativeAsset html5Asset =
        new CreativeAsset().setAssetIdentifier(html5AssetId).setRole("PRIMARY");
    
    // Upload the backup image asset (note: asset type must be set to HTML_IMAGE).
    CreativeAssetId imageAssetId = CreativeAssetUtils.uploadAsset(reporting, profileId,
        advertiserId, IMAGE_ASSET_NAME, PATH_TO_IMAGE_ASSET_FILE, "HTML_IMAGE")
        .getAssetIdentifier();
    
    CreativeAsset backupImageAsset =
        new CreativeAsset().setAssetIdentifier(imageAssetId).setRole("BACKUP_IMAGE");
    
    // Add the creative assets.
    creative.setCreativeAssets(ImmutableList.of(html5Asset, backupImageAsset));
    
    // Configure the backup image.
    creative.setBackupImageClickThroughUrl(
        new CreativeClickThroughUrl().setLandingPageId(defaultLandingPage.getId()));
    creative.setBackupImageReportingLabel("backup");
    creative.setBackupImageTargetWindow(new TargetWindow().setTargetWindowOption("NEW_WINDOW"));
    
    // Add a click tag.
    ClickTag clickTag =
        new ClickTag().setName("clickTag").setEventName("exit").setClickThroughUrl(
            new CreativeClickThroughUrl().setLandingPageId(defaultLandingPage.getId()));
    creative.setClickTags(ImmutableList.of(clickTag));
    
  3. บันทึกครีเอทีฟโฆษณา ซึ่งทำได้โดยโทรไปที่ creatives.insert() ต้องระบุรหัสผู้ลงโฆษณาที่เชื่อมโยงกับครีเอทีฟโฆษณานี้
    Creative result = reporting.creatives().insert(profileId, creative).execute();
    
  4. (ไม่บังคับ) เชื่อมโยงโฆษณากับแคมเปญ โดยเรียกใช้ campaignCreativeAssociations.insert() แล้วส่งแคมเปญและรหัสครีเอทีฟโฆษณา
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.setCreativeId(creativeId);
    
    // Insert the association.
    CampaignCreativeAssociation result = reporting
        .campaignCreativeAssociations().insert(profileId, campaignId, association)
        .execute();
    

PHP

  1. อัปโหลดชิ้นงาน ครีเอทีฟโฆษณาที่ต่างกันต้องใช้ประเภทและปริมาณเนื้อหาที่ต่างกันไป ดูรายละเอียดได้ที่อัปโหลดเนื้อหา ทุกครั้งที่อัปโหลดเนื้อหาสำเร็จ คุณจะได้รับ assetIdenfitier ในการตอบกลับ คุณจะใช้ชื่อไฟล์และประเภทที่จัดเก็บไว้เพื่ออ้างอิงเนื้อหาเหล่านี้ในครีเอทีฟโฆษณา แทนที่จะเป็นรหัสแบบเดิม
  2. สร้างโฆษณาและกําหนดค่าที่เหมาะสม สร้างอินสแตนซ์ Creative และตั้งค่า type ที่เหมาะสม คุณไม่สามารถเปลี่ยนประเภทออบเจ็กต์ Creative ได้หลังจากที่บันทึกแล้ว ระบุเนื้อหาตาม AssetIdentifier และ role
    $creative = new Google_Service_Dfareporting_Creative();
    $creative->setAdvertiserId($values['advertiser_id']);
    $creative->setAutoAdvanceImages(true);
    $creative->setName('Test HTML5 display creative');
    $creative->setType('DISPLAY');
    
    $size = new Google_Service_Dfareporting_Size();
    $size->setId($values['size_id']);
    $creative->setSize($size);
    
    // Upload the HTML5 asset.
    $html = uploadAsset(
        $this->service,
        $values['user_profile_id'],
        $values['advertiser_id'],
        $values['html_asset_file'],
        'HTML'
    );
    
    $htmlAsset = new Google_Service_Dfareporting_CreativeAsset();
    $htmlAsset->setAssetIdentifier($html->getAssetIdentifier());
    $htmlAsset->setRole('PRIMARY');
    
    // Upload the backup image asset.
    $image = uploadAsset(
        $this->service,
        $values['user_profile_id'],
        $values['advertiser_id'],
        $values['image_asset_file'],
        'HTML_IMAGE'
    );
    
    $imageAsset = new Google_Service_Dfareporting_CreativeAsset();
    $imageAsset->setAssetIdentifier($image->getAssetIdentifier());
    $imageAsset->setRole('BACKUP_IMAGE');
    
    // Add the creative assets.
    $creative->setCreativeAssets([$htmlAsset, $imageAsset]);
    
    // Configure the default click-through URL.
    $clickThroughUrl =
        new Google_Service_Dfareporting_CreativeClickThroughUrl();
    $clickThroughUrl->setLandingPageId($values['landing_page_id']);
    
    // Configure the backup image.
    $creative->setBackupImageClickThroughUrl($clickThroughUrl);
    $creative->setBackupImageReportingLabel('backup');
    
    $targetWindow = new Google_Service_Dfareporting_TargetWindow();
    $targetWindow->setTargetWindowOption('NEW_WINDOW');
    $creative->setBackupImageTargetWindow($targetWindow);
    
    // Add a click tag.
    $clickTag = new Google_Service_Dfareporting_ClickTag();
    $clickTag->setName('clickTag');
    $clickTag->setEventName('exit');
    $clickTag->setClickThroughUrl($clickThroughUrl);
    $creative->setClickTags([$clickTag]);
    
  3. บันทึกครีเอทีฟโฆษณา ซึ่งทำได้โดยโทรไปที่ creatives.insert() ต้องระบุรหัสผู้ลงโฆษณาที่เชื่อมโยงกับครีเอทีฟโฆษณานี้
    $result = $this->service->creatives->insert(
        $values['user_profile_id'],
        $creative
    );
    
  4. (ไม่บังคับ) เชื่อมโยงโฆษณากับแคมเปญ โดยเรียกใช้ campaignCreativeAssociations.insert() แล้วส่งแคมเปญและรหัสครีเอทีฟโฆษณา
    $association =
        new Google_Service_Dfareporting_CampaignCreativeAssociation();
    $association->setCreativeId($values['creative_id']);
    
    $result = $this->service->campaignCreativeAssociations->insert(
        $values['user_profile_id'],
        $values['campaign_id'],
        $association
    );
    

Python

  1. อัปโหลดชิ้นงาน ครีเอทีฟโฆษณาที่ต่างกันต้องใช้ประเภทและปริมาณเนื้อหาที่ต่างกันไป ดูรายละเอียดได้ที่อัปโหลดเนื้อหา ทุกครั้งที่อัปโหลดเนื้อหาสำเร็จ คุณจะได้รับ assetIdenfitier ในการตอบกลับ คุณจะใช้ชื่อไฟล์และประเภทที่จัดเก็บไว้เพื่ออ้างอิงเนื้อหาเหล่านี้ในครีเอทีฟโฆษณา แทนที่จะเป็นรหัสแบบเดิม
  2. สร้างโฆษณาและกําหนดค่าที่เหมาะสม สร้างอินสแตนซ์ Creative และตั้งค่า type ที่เหมาะสม คุณไม่สามารถเปลี่ยนประเภทออบเจ็กต์ Creative ได้หลังจากที่บันทึกแล้ว ระบุเนื้อหาตาม AssetIdentifier และ role
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
                                                       advertiser_id)
    
    # Upload the HTML5 asset
    html5_asset_id = upload_creative_asset(service, profile_id, advertiser_id,
                                           html5_asset_name,
                                           path_to_html5_asset_file, 'HTML')
    
    # Upload the backup image asset
    backup_image_asset_id = upload_creative_asset(
        service, profile_id, advertiser_id, backup_image_name,
        path_to_backup_image_file, 'HTML_IMAGE')
    
    # Construct the creative structure.
    creative = {
        'advertiserId': advertiser_id,
        'backupImageClickThroughUrl': {
            'landingPageId': default_landing_page['id']
        },
        'backupImageReportingLabel': 'backup_image_exit',
        'backupImageTargetWindow': {'targetWindowOption': 'NEW_WINDOW'},
        'clickTags': [{
            'eventName': 'exit',
            'name': 'click_tag',
            'clickThroughUrl': {'landingPageId': default_landing_page['id']}
        }],
        'creativeAssets': [
            {'assetIdentifier': html5_asset_id, 'role': 'PRIMARY'},
            {'assetIdentifier': backup_image_asset_id, 'role': 'BACKUP_IMAGE'}
        ],
        'name': 'Test HTML5 display creative',
        'size': {'id': size_id},
        'type': 'DISPLAY'
    }
    
  3. บันทึกครีเอทีฟโฆษณา ซึ่งทำได้โดยโทรไปที่ creatives.insert() ต้องระบุรหัสผู้ลงโฆษณาที่เชื่อมโยงกับครีเอทีฟโฆษณานี้
    request = service.creatives().insert(profileId=profile_id, body=creative)
    
    # Execute request and print response.
    response = request.execute()
    
  4. (ไม่บังคับ) เชื่อมโยงโฆษณากับแคมเปญ โดยเรียกใช้ campaignCreativeAssociations.insert() แล้วส่งแคมเปญและรหัสครีเอทีฟโฆษณา
    # Construct the request.
    association = {
        'creativeId': creative_id
    }
    
    request = service.campaignCreativeAssociations().insert(
        profileId=profile_id, campaignId=campaign_id, body=association)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. อัปโหลดชิ้นงาน ครีเอทีฟโฆษณาที่ต่างกันต้องใช้ประเภทและปริมาณเนื้อหาที่ต่างกันไป ดูรายละเอียดได้ที่อัปโหลดเนื้อหา ทุกครั้งที่อัปโหลดเนื้อหาสำเร็จ คุณจะได้รับ assetIdenfitier ในการตอบกลับ คุณจะใช้ชื่อไฟล์และประเภทที่จัดเก็บไว้เพื่ออ้างอิงเนื้อหาเหล่านี้ในครีเอทีฟโฆษณา แทนที่จะเป็นรหัสแบบเดิม
  2. สร้างโฆษณาและกําหนดค่าที่เหมาะสม สร้างอินสแตนซ์ Creative และตั้งค่า type ที่เหมาะสม คุณไม่สามารถเปลี่ยนประเภทออบเจ็กต์ Creative ได้หลังจากที่บันทึกแล้ว ระบุเนื้อหาตาม AssetIdentifier และ role
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
      advertiser_id)
    
    # Upload the HTML5 asset.
    html5_asset_id = util.upload_asset(advertiser_id, path_to_html5_asset_file,
      'HTML').asset_identifier
    
    # Upload the backup image asset.
    backup_image_asset_id = util.upload_asset(advertiser_id,
      path_to_backup_image_file, 'HTML_IMAGE').asset_identifier
    
    # Construct the creative structure.
    creative = DfareportingUtils::API_NAMESPACE::Creative.new(
      advertiser_id: advertiser_id,
      backup_image_click_through_url:
        DfareportingUtils::API_NAMESPACE::CreativeClickThroughUrl.new(
          landing_page_id: default_landing_page.id
        ),
      backup_image_reporting_label: 'backup',
      backup_image_target_window:
        DfareportingUtils::API_NAMESPACE::TargetWindow.new(
          target_window_option: 'NEW_WINDOW'
        ),
      click_tags: [
        DfareportingUtils::API_NAMESPACE::ClickTag.new(
          event_name: 'exit',
          name: 'click_tag',
          click_through_url:
            DfareportingUtils::API_NAMESPACE::CreativeClickThroughUrl.new(
              landing_page_id: default_landing_page.id
            )
        )
      ],
      creative_assets: [
        DfareportingUtils::API_NAMESPACE::CreativeAsset.new(
          asset_identifier: html5_asset_id,
          role: 'PRIMARY'
        ),
        DfareportingUtils::API_NAMESPACE::CreativeAsset.new(
          asset_identifier: backup_image_asset_id,
          role: 'BACKUP_IMAGE'
        )
      ],
      name: 'Example HTML5 display creative',
      size: DfareportingUtils::API_NAMESPACE::Size.new(id: size_id),
      type: 'DISPLAY'
    )
    
  3. บันทึกครีเอทีฟโฆษณา ซึ่งทำได้โดยโทรไปที่ creatives.insert() ต้องระบุรหัสผู้ลงโฆษณาที่เชื่อมโยงกับครีเอทีฟโฆษณานี้
    # Insert the creative.
    result = service.insert_creative(profile_id, creative)
    
  4. (ไม่บังคับ) เชื่อมโยงโฆษณากับแคมเปญ โดยเรียกใช้ campaignCreativeAssociations.insert() แล้วส่งแคมเปญและรหัสครีเอทีฟโฆษณา
    # Create a new creative-campaign association to insert
    association =
      DfareportingUtils::API_NAMESPACE::CampaignCreativeAssociation.new(
        creative_id: creative_id
      )
    
    # Insert the advertiser group.
    result = service.insert_campaign_creative_association(profile_id, campaign_id,
      association)
    

สร้างโฆษณา

Ad คือลิงก์ระหว่าง Creative กับ Placement คุณลิงก์ Ad กับตำแหน่งได้อย่างน้อย 1 ตำแหน่ง และระงับครีเอทีฟโฆษณาได้ตั้งแต่ 1 รายการขึ้นไป

คุณสามารถสร้าง Ad อย่างชัดแจ้งหรือโดยนัยก็ได้

โจ่งแจ้ง อาจไม่เหมาะสม

C#

  1. สร้างออบเจ็กต์ CreativeAssignment สำหรับครีเอทีฟโฆษณาแต่ละรายการที่ควรเชื่อมโยงกับโฆษณานี้ ตรวจสอบให้แน่ใจว่าได้ตั้งค่าฟิลด์ CreativeAssignment.active เป็น true
    // Create a click-through URL.
    ClickThroughUrl clickThroughUrl = new ClickThroughUrl();
    clickThroughUrl.DefaultLandingPage = true;
    
    // Create a creative assignment.
    CreativeAssignment creativeAssignment = new CreativeAssignment();
    creativeAssignment.Active = true;
    creativeAssignment.CreativeId = creativeId;
    creativeAssignment.ClickThroughUrl = clickThroughUrl;
    
  2. สร้างออบเจ็กต์ CreativeRotation เพื่อจัดเก็บ CreativeAssignment หากสร้างกลุ่มการหมุนเวียน อย่าลืมตั้งค่าช่องการหมุนเวียนครีเอทีฟโฆษณาที่จำเป็นอื่นๆ
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.CreativeAssignments = new List<CreativeAssignment>() {
        creativeAssignment
    };
    
  3. สร้างออบเจ็กต์ PlacementAssignment สำหรับแต่ละตำแหน่งโฆษณาที่ควรเชื่อมโยงกับโฆษณานี้ ตรวจสอบให้แน่ใจว่าได้ตั้งค่าฟิลด์ PlacementAssignment.active เป็น true
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.Active = true;
    placementAssignment.PlacementId = placementId;
    
  4. สร้างออบเจ็กต์ Ad ตั้งค่า CreativeRotation ลงในช่อง creativeRotation ของออบเจ็กต์ Ad และกำหนด placementsAssignments ในอาร์เรย์ placementAssignments ของออบเจ็กต์ Ad
    // Create a delivery schedule.
    DeliverySchedule deliverySchedule = new DeliverySchedule();
    deliverySchedule.ImpressionRatio = 1;
    deliverySchedule.Priority = "AD_PRIORITY_01";
    
    DateTime startDate = DateTime.Now;
    DateTime endDate = Convert.ToDateTime(campaign.EndDate);
    
    // Create a rotation group.
    Ad rotationGroup = new Ad();
    rotationGroup.Active = true;
    rotationGroup.CampaignId = campaignId;
    rotationGroup.CreativeRotation = creativeRotation;
    rotationGroup.DeliverySchedule = deliverySchedule;
    rotationGroup.StartTime = startDate;
    rotationGroup.EndTime = endDate;
    rotationGroup.Name = adName;
    rotationGroup.PlacementAssignments = new List<PlacementAssignment>() {
        placementAssignment
    };
    rotationGroup.Type = "AD_SERVING_STANDARD_AD";
    
  5. บันทึกโฆษณาโดยโทรไปที่ ads.insert()
    // Insert the rotation group.
    Ad result = service.Ads.Insert(rotationGroup, profileId).Execute();
    

Java

  1. สร้างออบเจ็กต์ CreativeAssignment สำหรับครีเอทีฟโฆษณาแต่ละรายการที่ควรเชื่อมโยงกับโฆษณานี้ ตรวจสอบให้แน่ใจว่าได้ตั้งค่าฟิลด์ CreativeAssignment.active เป็น true
    // Create a click-through URL.
    ClickThroughUrl clickThroughUrl = new ClickThroughUrl();
    clickThroughUrl.setDefaultLandingPage(true);
    
    // Create a creative assignment.
    CreativeAssignment creativeAssignment = new CreativeAssignment();
    creativeAssignment.setActive(true);
    creativeAssignment.setCreativeId(creativeId);
    creativeAssignment.setClickThroughUrl(clickThroughUrl);
    
  2. สร้างออบเจ็กต์ CreativeRotation เพื่อจัดเก็บ CreativeAssignment หากสร้างกลุ่มการหมุนเวียน อย่าลืมตั้งค่าช่องการหมุนเวียนครีเอทีฟโฆษณาที่จำเป็นอื่นๆ
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.setCreativeAssignments(ImmutableList.of(creativeAssignment));
    
  3. สร้างออบเจ็กต์ PlacementAssignment สำหรับแต่ละตำแหน่งโฆษณาที่ควรเชื่อมโยงกับโฆษณานี้ ตรวจสอบให้แน่ใจว่าได้ตั้งค่าฟิลด์ PlacementAssignment.active เป็น true
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.setActive(true);
    placementAssignment.setPlacementId(placementId);
    
  4. สร้างออบเจ็กต์ Ad ตั้งค่า CreativeRotation ลงในช่อง creativeRotation ของออบเจ็กต์ Ad และกำหนด placementsAssignments ในอาร์เรย์ placementAssignments ของออบเจ็กต์ Ad
    // Create a delivery schedule.
    DeliverySchedule deliverySchedule = new DeliverySchedule();
    deliverySchedule.setImpressionRatio(1L);
    deliverySchedule.setPriority("AD_PRIORITY_01");
    
    DateTime startDate = new DateTime(new Date());
    DateTime endDate = new DateTime(campaign.getEndDate().getValue());
    
    // Create a rotation group.
    Ad rotationGroup = new Ad();
    rotationGroup.setActive(true);
    rotationGroup.setCampaignId(campaignId);
    rotationGroup.setCreativeRotation(creativeRotation);
    rotationGroup.setDeliverySchedule(deliverySchedule);
    rotationGroup.setStartTime(startDate);
    rotationGroup.setEndTime(endDate);
    rotationGroup.setName(adName);
    rotationGroup.setPlacementAssignments(ImmutableList.of(placementAssignment));
    rotationGroup.setType("AD_SERVING_STANDARD_AD");
    
  5. บันทึกโฆษณาโดยโทรไปที่ ads.insert()
    // Insert the rotation group.
    Ad result = reporting.ads().insert(profileId, rotationGroup).execute();
    

PHP

  1. สร้างออบเจ็กต์ CreativeAssignment สำหรับครีเอทีฟโฆษณาแต่ละรายการที่ควรเชื่อมโยงกับโฆษณานี้ ตรวจสอบให้แน่ใจว่าได้ตั้งค่าฟิลด์ CreativeAssignment.active เป็น true
    // Create a click-through URL.
    $url = new Google_Service_Dfareporting_ClickThroughUrl();
    $url->setDefaultLandingPage(true);
    
    // Create a creative assignment.
    $creativeAssignment =
        new Google_Service_Dfareporting_CreativeAssignment();
    $creativeAssignment->setActive(true);
    $creativeAssignment->setCreativeId($values['creative_id']);
    $creativeAssignment->setClickThroughUrl($url);
    
  2. สร้างออบเจ็กต์ CreativeRotation เพื่อจัดเก็บ CreativeAssignment หากสร้างกลุ่มการหมุนเวียน อย่าลืมตั้งค่าช่องการหมุนเวียนครีเอทีฟโฆษณาที่จำเป็นอื่นๆ
    // Create a creative rotation.
    $creativeRotation = new Google_Service_Dfareporting_CreativeRotation();
    $creativeRotation->setCreativeAssignments([$creativeAssignment]);
    
  3. สร้างออบเจ็กต์ PlacementAssignment สำหรับแต่ละตำแหน่งโฆษณาที่ควรเชื่อมโยงกับโฆษณานี้ ตรวจสอบให้แน่ใจว่าได้ตั้งค่าฟิลด์ PlacementAssignment.active เป็น true
    // Create a placement assignment.
    $placementAssignment =
        new Google_Service_Dfareporting_PlacementAssignment();
    $placementAssignment->setActive(true);
    $placementAssignment->setPlacementId($values['placement_id']);
    
  4. สร้างออบเจ็กต์ Ad ตั้งค่า CreativeRotation ลงในช่อง creativeRotation ของออบเจ็กต์ Ad และกำหนด placementsAssignments ในอาร์เรย์ placementAssignments ของออบเจ็กต์ Ad
    // Create a delivery schedule.
    $deliverySchedule = new Google_Service_Dfareporting_DeliverySchedule();
    $deliverySchedule->setImpressionRatio(1);
    $deliverySchedule->SetPriority('AD_PRIORITY_01');
    
    $startDate = new DateTime('today');
    $endDate = new DateTime($campaign->getEndDate());
    
    // Create a rotation group.
    $ad = new Google_Service_Dfareporting_Ad();
    $ad->setActive(true);
    $ad->setCampaignId($values['campaign_id']);
    $ad->setCreativeRotation($creativeRotation);
    $ad->setDeliverySchedule($deliverySchedule);
    $ad->setStartTime($startDate->format('Y-m-d') . 'T23:59:59Z');
    $ad->setEndTime($endDate->format('Y-m-d') . 'T00:00:00Z');
    $ad->setName($values['ad_name']);
    $ad->setPlacementAssignments([$placementAssignment]);
    $ad->setType('AD_SERVING_STANDARD_AD');
    
  5. บันทึกโฆษณาโดยโทรไปที่ ads.insert()
    $result = $this->service->ads->insert($values['user_profile_id'], $ad);
    

Python

  1. สร้างออบเจ็กต์ CreativeAssignment สำหรับครีเอทีฟโฆษณาแต่ละรายการที่ควรเชื่อมโยงกับโฆษณานี้ ตรวจสอบให้แน่ใจว่าได้ตั้งค่าฟิลด์ CreativeAssignment.active เป็น true
    # Construct creative assignment.
    creative_assignment = {
        'active': 'true',
        'creativeId': creative_id,
        'clickThroughUrl': {
            'defaultLandingPage': 'true'
        }
    }
    
  2. สร้างออบเจ็กต์ CreativeRotation เพื่อจัดเก็บ CreativeAssignment หากสร้างกลุ่มการหมุนเวียน อย่าลืมตั้งค่าช่องการหมุนเวียนครีเอทีฟโฆษณาที่จำเป็นอื่นๆ
    # Construct creative rotation.
    creative_rotation = {
        'creativeAssignments': [creative_assignment],
        'type': 'CREATIVE_ROTATION_TYPE_RANDOM',
        'weightCalculationStrategy': 'WEIGHT_STRATEGY_OPTIMIZED'
    }
    
  3. สร้างออบเจ็กต์ PlacementAssignment สำหรับแต่ละตำแหน่งโฆษณาที่ควรเชื่อมโยงกับโฆษณานี้ ตรวจสอบให้แน่ใจว่าได้ตั้งค่าฟิลด์ PlacementAssignment.active เป็น true
    # Construct placement assignment.
    placement_assignment = {
        'active': 'true',
        'placementId': placement_id,
    }
    
  4. สร้างออบเจ็กต์ Ad ตั้งค่า CreativeRotation ลงในช่อง creativeRotation ของออบเจ็กต์ Ad และกำหนด placementsAssignments ในอาร์เรย์ placementAssignments ของออบเจ็กต์ Ad
    # Construct delivery schedule.
    delivery_schedule = {
        'impressionRatio': '1',
        'priority': 'AD_PRIORITY_01'
    }
    
    # Construct and save ad.
    ad = {
        'active': 'true',
        'campaignId': campaign_id,
        'creativeRotation': creative_rotation,
        'deliverySchedule': delivery_schedule,
        'endTime': '%sT00:00:00Z' % campaign['endDate'],
        'name': 'Test Rotation Group',
        'placementAssignments': [placement_assignment],
        'startTime': '%sT23:59:59Z' % time.strftime('%Y-%m-%d'),
        'type': 'AD_SERVING_STANDARD_AD'
    }
    
  5. บันทึกโฆษณาโดยโทรไปที่ ads.insert()
    request = service.ads().insert(profileId=profile_id, body=ad)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. สร้างออบเจ็กต์ CreativeAssignment สำหรับครีเอทีฟโฆษณาแต่ละรายการที่ควรเชื่อมโยงกับโฆษณานี้ ตรวจสอบให้แน่ใจว่าได้ตั้งค่าฟิลด์ CreativeAssignment.active เป็น true
    # Construct creative assignment.
    creative_assignment =
      DfareportingUtils::API_NAMESPACE::CreativeAssignment.new(
        active: true,
        creative_id: creative_id,
        click_through_url: DfareportingUtils::API_NAMESPACE::ClickThroughUrl.new(
          default_landing_page: true
        )
      )
    
  2. สร้างออบเจ็กต์ CreativeRotation เพื่อจัดเก็บ CreativeAssignment หากสร้างกลุ่มการหมุนเวียน อย่าลืมตั้งค่าช่องการหมุนเวียนครีเอทีฟโฆษณาที่จำเป็นอื่นๆ
    # Construct creative rotation.
    creative_rotation = DfareportingUtils::API_NAMESPACE::CreativeRotation.new(
      creative_assignments: [creative_assignment],
      type: 'CREATIVE_ROTATION_TYPE_RANDOM',
      weight_calculation_strategy: 'WEIGHT_STRATEGY_OPTIMIZED'
    )
    
  3. สร้างออบเจ็กต์ PlacementAssignment สำหรับแต่ละตำแหน่งโฆษณาที่ควรเชื่อมโยงกับโฆษณานี้ ตรวจสอบให้แน่ใจว่าได้ตั้งค่าฟิลด์ PlacementAssignment.active เป็น true
    # Construct placement assignment.
    placement_assignment =
      DfareportingUtils::API_NAMESPACE::PlacementAssignment.new(
        active: true,
        placement_id: placement_id
      )
    
  4. สร้างออบเจ็กต์ Ad ตั้งค่า CreativeRotation ลงในช่อง creativeRotation ของออบเจ็กต์ Ad และกำหนด placementsAssignments ในอาร์เรย์ placementAssignments ของออบเจ็กต์ Ad
    # Construct delivery schedule.
    delivery_schedule = DfareportingUtils::API_NAMESPACE::DeliverySchedule.new(
      impression_ratio: 1,
      priority: 'AD_PRIORITY_01'
    )
    
    # Construct and save ad.
    ad = DfareportingUtils::API_NAMESPACE::Ad.new(
      active: true,
      campaign_id: campaign_id,
      creative_rotation: creative_rotation,
      delivery_schedule: delivery_schedule,
      end_time: format('%sT00:00:00Z', campaign.end_date),
      name: 'Example Rotation Group',
      placement_assignments: [placement_assignment],
      start_time: format('%sT23:59:59Z', Time.now.strftime('%Y-%m-%d')),
      type: 'AD_SERVING_STANDARD_AD'
    )
    
  5. บันทึกโฆษณาโดยโทรไปที่ ads.insert()
    result = service.insert_ad(profile_id, ad)
    

โดยปริยาย

C#

  1. สร้างและบันทึก Placement
  2. สร้างและบันทึก Creative
  3. เชื่อมโยง Creative กับ Campaign เดียวกันกับที่ใช้สำหรับ Placement โดยการเรียกใช้ campaignCreativeAssociations.insert() (ดูขั้นตอนที่ 4 ในส่วนการสร้างครีเอทีฟโฆษณา) ซึ่งจะสร้างโฆษณาเริ่มต้นที่เชื่อมโยงกับทั้งครีเอทีฟโฆษณาและตำแหน่งโฆษณา
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.CreativeId = creativeId;
    
    // Insert the association.
    CampaignCreativeAssociation result =
        service.CampaignCreativeAssociations.Insert(association, profileId, campaignId).Execute();
    

Java

  1. สร้างและบันทึก Placement
  2. สร้างและบันทึก Creative
  3. เชื่อมโยง Creative กับ Campaign เดียวกันกับที่ใช้สำหรับ Placement โดยการเรียกใช้ campaignCreativeAssociations.insert() (ดูขั้นตอนที่ 4 ในส่วนการสร้างครีเอทีฟโฆษณา) ซึ่งจะสร้างโฆษณาเริ่มต้นที่เชื่อมโยงกับทั้งครีเอทีฟโฆษณาและตำแหน่งโฆษณา
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.setCreativeId(creativeId);
    
    // Insert the association.
    CampaignCreativeAssociation result = reporting
        .campaignCreativeAssociations().insert(profileId, campaignId, association)
        .execute();
    

PHP

  1. สร้างและบันทึก Placement
  2. สร้างและบันทึก Creative
  3. เชื่อมโยง Creative กับ Campaign เดียวกันกับที่ใช้สำหรับ Placement โดยการเรียกใช้ campaignCreativeAssociations.insert() (ดูขั้นตอนที่ 4 ในส่วนการสร้างครีเอทีฟโฆษณา) ซึ่งจะสร้างโฆษณาเริ่มต้นที่เชื่อมโยงกับทั้งครีเอทีฟโฆษณาและตำแหน่งโฆษณา
    $association =
        new Google_Service_Dfareporting_CampaignCreativeAssociation();
    $association->setCreativeId($values['creative_id']);
    
    $result = $this->service->campaignCreativeAssociations->insert(
        $values['user_profile_id'],
        $values['campaign_id'],
        $association
    );
    

Python

  1. สร้างและบันทึก Placement
  2. สร้างและบันทึก Creative
  3. เชื่อมโยง Creative กับ Campaign เดียวกันกับที่ใช้สำหรับ Placement โดยการเรียกใช้ campaignCreativeAssociations.insert() (ดูขั้นตอนที่ 4 ในส่วนการสร้างครีเอทีฟโฆษณา) ซึ่งจะสร้างโฆษณาเริ่มต้นที่เชื่อมโยงกับทั้งครีเอทีฟโฆษณาและตำแหน่งโฆษณา
    # Construct the request.
    association = {
        'creativeId': creative_id
    }
    
    request = service.campaignCreativeAssociations().insert(
        profileId=profile_id, campaignId=campaign_id, body=association)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. สร้างและบันทึก Placement
  2. สร้างและบันทึก Creative
  3. เชื่อมโยง Creative กับ Campaign เดียวกันกับที่ใช้สำหรับ Placement โดยการเรียกใช้ campaignCreativeAssociations.insert() (ดูขั้นตอนที่ 4 ในส่วนการสร้างครีเอทีฟโฆษณา) ซึ่งจะสร้างโฆษณาเริ่มต้นที่เชื่อมโยงกับทั้งครีเอทีฟโฆษณาและตำแหน่งโฆษณา
    # Create a new creative-campaign association to insert
    association =
      DfareportingUtils::API_NAMESPACE::CampaignCreativeAssociation.new(
        creative_id: creative_id
      )
    
    # Insert the advertiser group.
    result = service.insert_campaign_creative_association(profile_id, campaign_id,
      association)
    

การสร้างโฆษณาจะเป็นการบันทึกขั้นตอนเพิ่มเติมในการสร้าง Ad โดยปริยาย โปรดทราบว่าวิธีนี้จะทําได้ก็ต่อเมื่อไม่มีโฆษณาเริ่มต้นขนาดที่ระบุอยู่ในแคมเปญของคุณอยู่แล้ว

ค้นหาวัตถุ

คุณค้นหาออบเจ็กต์ได้โดยเรียกใช้การดำเนินการ list() ที่บริการซึ่งกำหนดออบเจ็กต์ค้นหา โดยระบุเกณฑ์ที่ไม่บังคับที่เหมาะกับประเภทออบเจ็กต์ดังกล่าว ตัวอย่างเช่น หากต้องการค้นหาออบเจ็กต์โฆษณา คุณจะต้องเรียกใช้ ads.list() เกณฑ์ที่ไม่บังคับจะแสดงชุดพร็อพเพอร์ตี้ที่เหมาะสำหรับออบเจ็กต์นั้นๆ โดยกรอกข้อมูลในพร็อพเพอร์ตี้ได้มากเท่าที่คุณต้องการจะค้นหา การค้นหาจะแสดงเฉพาะออบเจ็กต์ที่ตรงกับเกณฑ์ทั้งหมดเท่านั้น คุณจะค้นหาที่ตรงกับเกณฑ์ใดๆ ไม่ได้ สตริงรองรับไวลด์การ์ด * ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ และจับคู่ภายในสตริงที่ใหญ่กว่า

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

การกำหนดหน้า

ในบางครั้ง เราก็ไม่ควรดึงผลลัพธ์ทั้งหมดสำหรับคำขอ list() ตัวอย่างเช่น คุณอาจสนใจเฉพาะ 10 โฆษณาใหม่ล่าสุดจากกลุ่มหลายพัน วิธีการต่างๆ ของ list() จำนวนมากจะช่วยให้คุณขอผลลัพธ์ได้น้อยลงผ่านกระบวนการที่เรียกว่าการแบ่งหน้า

เมธอดที่รองรับการแสดงหน้าผลลัพธ์ย่อยในกลุ่มที่เรียกว่าหน้า จำนวนผลลัพธ์สูงสุดต่อหน้าคือ 1,000 รายการ (ค่าเริ่มต้น) คุณเปลี่ยนจำนวนผลการค้นหาต่อหน้าได้โดยตั้งค่า maxResults และสามารถทำซ้ำผ่านหน้าต่างๆ โดยใช้ nextPageToken ที่แสดงในคำตอบดังนี้

C#

// Limit the fields returned.
String fields = "nextPageToken,ads(advertiserId,id,name)";

AdsListResponse result;
String nextPageToken = null;

do {
  // Create and execute the ad list request.
  AdsResource.ListRequest request = service.Ads.List(profileId);
  request.Active = true;
  request.Fields = fields;
  request.PageToken = nextPageToken;
  result = request.Execute();

  foreach (Ad ad in result.Ads) {
    Console.WriteLine(
        "Ad with ID {0} and name \"{1}\" is associated with advertiser" +
        " ID {2}.", ad.Id, ad.Name, ad.AdvertiserId);
  }

  // Update the next page token.
  nextPageToken = result.NextPageToken;
} while (result.Ads.Any() && !String.IsNullOrEmpty(nextPageToken));

Java

// Limit the fields returned.
String fields = "nextPageToken,ads(advertiserId,id,name)";

AdsListResponse result;
String nextPageToken = null;

do {
  // Create and execute the ad list request.
  result = reporting.ads().list(profileId).setActive(true).setFields(fields)
      .setPageToken(nextPageToken).execute();

  for (Ad ad : result.getAds()) {
    System.out.printf(
        "Ad with ID %d and name \"%s\" is associated with advertiser ID %d.%n", ad.getId(),
        ad.getName(), ad.getAdvertiserId());
  }

  // Update the next page token.
  nextPageToken = result.getNextPageToken();
} while (!result.getAds().isEmpty() && !Strings.isNullOrEmpty(nextPageToken));

PHP

$response = null;
$pageToken = null;

do {
    // Create and execute the ads list request.
    $response = $this->service->ads->listAds(
        $values['user_profile_id'],
        ['active' => true, 'pageToken' => $pageToken]
    );

    foreach ($response->getAds() as $ads) {
        $this->printResultsTableRow($ads);
    }

    // Update the next page token.
    $pageToken = $response->getNextPageToken();
} while (!empty($response->getAds()) && !empty($pageToken));

Python

# Construct the request.
request = service.ads().list(profileId=profile_id, active=True)

while True:
  # Execute request and print response.
  response = request.execute()

  for ad in response['ads']:
    print 'Found ad with ID %s and name "%s".' % (ad['id'], ad['name'])

  if response['ads'] and response['nextPageToken']:
    request = service.ads().list_next(request, response)
  else:
    break

Ruby

token = nil
loop do
  result = service.list_ads(profile_id,
    page_token: token,
    fields: 'nextPageToken,ads(id,name)')

  # Display results.
  if result.ads.any?
    result.ads.each do |ad|
      puts format('Found ad with ID %d and name "%s".', ad.id, ad.name)
    end

    token = result.next_page_token
  else
    # Stop paging if there are no more results.
    token = nil
  end

  break if token.to_s.empty?
end

สร้างแท็ก Floodlight

แท็ก Floodlight เป็นแท็ก HTML ที่ฝังอยู่ในหน้า ซึ่งใช้เพื่อติดตามการกระทำของผู้ใช้ (เช่น การซื้อ) ภายในเว็บไซต์ หากต้องการสร้างแท็ก Floodlight คุณต้องมี FloodlightActivity ที่เป็นของ FloodlightActivityGroup ดังนี้

C#

  1. สร้างกลุ่มกิจกรรม Floodlight ใหม่ โดยส่งค่าสำหรับ name, type และ floodlightConfigurationId
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.Name = groupName;
    floodlightActivityGroup.FloodlightConfigurationId = floodlightConfigurationId;
    floodlightActivityGroup.Type = "COUNTER";
    
  2. บันทึกกลุ่มกิจกรรม Floodlight โดยการเรียกใช้ floodlightActivityGroups.insert() ซึ่งจะส่งคืนรหัสของกลุ่มใหม่
    // Insert the activity group.
    FloodlightActivityGroup result =
        service.FloodlightActivityGroups.Insert(floodlightActivityGroup, profileId).Execute();
    
  3. สร้างกิจกรรม Floodlight ใหม่และกำหนดรหัสของกลุ่มกิจกรรม Floodlight ที่คุณเพิ่งสร้าง รวมถึงช่องที่ต้องกรอกอื่นๆ ทั้งหมด
    // Set floodlight activity structure.
    FloodlightActivity activity = new FloodlightActivity();
    activity.CountingMethod = "STANDARD_COUNTING";
    activity.Name = activityName;
    activity.FloodlightActivityGroupId = activityGroupId;
    activity.FloodlightTagType = "GLOBAL_SITE_TAG";
    activity.ExpectedUrl = url;
    
  4. บันทึกกิจกรรมใหม่โดยโทรไปที่ floodlightActivities.insert() ซึ่งจะส่งรหัสของกิจกรรมใหม่กลับมา
    // Create the floodlight tag activity.
    FloodlightActivity result =
        service.FloodlightActivities.Insert(activity, profileId).Execute();
    
  5. สร้างแท็กโดยการเรียกใช้ floodlightActivities.generatetag() ด้วย floodlightActivityId ของกิจกรรมใหม่ ส่งแท็กให้ผู้ดูแลเว็บที่เว็บไซต์ของผู้ลงโฆษณา
    // Generate the floodlight activity tag.
    FloodlightActivitiesResource.GeneratetagRequest request =
        service.FloodlightActivities.Generatetag(profileId);
    request.FloodlightActivityId = activityId;
    
    FloodlightActivitiesGenerateTagResponse response = request.Execute();
    

Java

  1. สร้างกลุ่มกิจกรรม Floodlight ใหม่ โดยส่งค่าสำหรับ name, type และ floodlightConfigurationId
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.setName(groupName);
    floodlightActivityGroup.setFloodlightConfigurationId(floodlightConfigurationId);
    floodlightActivityGroup.setType("COUNTER");
    
  2. บันทึกกลุ่มกิจกรรม Floodlight โดยการเรียกใช้ floodlightActivityGroups.insert() ซึ่งจะส่งคืนรหัสของกลุ่มใหม่
    // Insert the activity group.
    FloodlightActivityGroup result =
        reporting.floodlightActivityGroups().insert(profileId, floodlightActivityGroup).execute();
    
  3. สร้างกิจกรรม Floodlight ใหม่และกำหนดรหัสของกลุ่มกิจกรรม Floodlight ที่คุณเพิ่งสร้าง รวมถึงช่องที่ต้องกรอกอื่นๆ ทั้งหมด
    // Set floodlight activity structure.
    FloodlightActivity activity = new FloodlightActivity();
    activity.setName(activityName);
    activity.setCountingMethod("STANDARD_COUNTING");
    activity.setExpectedUrl(url);
    activity.setFloodlightActivityGroupId(activityGroupId);
    activity.setFloodlightTagType("GLOBAL_SITE_TAG");
    
  4. บันทึกกิจกรรมใหม่โดยโทรไปที่ floodlightActivities.insert() ซึ่งจะส่งรหัสของกิจกรรมใหม่กลับมา
    // Create the floodlight tag activity.
    FloodlightActivity result =
        reporting.floodlightActivities().insert(profileId, activity).execute();
    
  5. สร้างแท็กโดยการเรียกใช้ floodlightActivities.generatetag() ด้วย floodlightActivityId ของกิจกรรมใหม่ ส่งแท็กให้ผู้ดูแลเว็บที่เว็บไซต์ของผู้ลงโฆษณา
    // Generate the floodlight activity tag.
    Generatetag request = reporting.floodlightActivities().generatetag(profileId);
    request.setFloodlightActivityId(activityId);
    
    FloodlightActivitiesGenerateTagResponse response = request.execute();
    

PHP

  1. สร้างกลุ่มกิจกรรม Floodlight ใหม่ โดยส่งค่าสำหรับ name, type และ floodlightConfigurationId
    $group = new Google_Service_Dfareporting_FloodlightActivityGroup();
    $group->setFloodlightConfigurationId($values['configuration_id']);
    $group->setName($values['group_name']);
    $group->setType('COUNTER');
    
  2. บันทึกกลุ่มกิจกรรม Floodlight โดยการเรียกใช้ floodlightActivityGroups.insert() ซึ่งจะส่งคืนรหัสของกลุ่มใหม่
    $result = $this->service->floodlightActivityGroups->insert(
        $values['user_profile_id'],
        $group
    );
    
  3. สร้างกิจกรรม Floodlight ใหม่และกำหนดรหัสของกลุ่มกิจกรรม Floodlight ที่คุณเพิ่งสร้าง รวมถึงช่องที่ต้องกรอกอื่นๆ ทั้งหมด
    $activity = new Google_Service_Dfareporting_FloodlightActivity();
    $activity->setCountingMethod('STANDARD_COUNTING');
    $activity->setExpectedUrl($values['url']);
    $activity->setFloodlightActivityGroupId($values['activity_group_id']);
    $activity->setFloodlightTagType('GLOBAL_SITE_TAG');
    $activity->setName($values['activity_name']);
    
  4. บันทึกกิจกรรมใหม่โดยโทรไปที่ floodlightActivities.insert() ซึ่งจะส่งรหัสของกิจกรรมใหม่กลับมา
    $result = $this->service->floodlightActivities->insert(
        $values['user_profile_id'],
        $activity
    );
    
  5. สร้างแท็กโดยการเรียกใช้ floodlightActivities.generatetag() ด้วย floodlightActivityId ของกิจกรรมใหม่ ส่งแท็กให้ผู้ดูแลเว็บที่เว็บไซต์ของผู้ลงโฆษณา
    $result = $this->service->floodlightActivities->generatetag(
        $values['user_profile_id'],
        ['floodlightActivityId' => $values['activity_id']]
    );
    

Python

  1. สร้างกลุ่มกิจกรรม Floodlight ใหม่ โดยส่งค่าสำหรับ name, type และ floodlightConfigurationId
    # Construct and save floodlight activity group.
    activity_group = {
        'name': 'Test Floodlight Activity Group',
        'floodlightConfigurationId': floodlight_config_id,
        'type': 'COUNTER'
    }
    
  2. บันทึกกลุ่มกิจกรรม Floodlight โดยการเรียกใช้ floodlightActivityGroups.insert() ซึ่งจะส่งคืนรหัสของกลุ่มใหม่
    request = service.floodlightActivityGroups().insert(
        profileId=profile_id, body=activity_group)
    
  3. สร้างกิจกรรม Floodlight ใหม่และกำหนดรหัสของกลุ่มกิจกรรม Floodlight ที่คุณเพิ่งสร้าง รวมถึงช่องที่ต้องกรอกอื่นๆ ทั้งหมด
    # Construct and save floodlight activity.
    floodlight_activity = {
        'countingMethod': 'STANDARD_COUNTING',
        'expectedUrl': 'http://www.google.com',
        'floodlightActivityGroupId': activity_group_id,
        'floodlightTagType': 'GLOBAL_SITE_TAG',
        'name': 'Test Floodlight Activity'
    }
    
  4. บันทึกกิจกรรมใหม่โดยโทรไปที่ floodlightActivities.insert() ซึ่งจะส่งรหัสของกิจกรรมใหม่กลับมา
    request = service.floodlightActivities().insert(
        profileId=profile_id, body=floodlight_activity)
    
  5. สร้างแท็กโดยการเรียกใช้ floodlightActivities.generatetag() ด้วย floodlightActivityId ของกิจกรรมใหม่ ส่งแท็กให้ผู้ดูแลเว็บที่เว็บไซต์ของผู้ลงโฆษณา
    # Construct the request.
    request = service.floodlightActivities().generatetag(
        profileId=profile_id, floodlightActivityId=activity_id)
    
    # Execute request and print response.
    response = request.execute()
    

Ruby

  1. สร้างกลุ่มกิจกรรม Floodlight ใหม่ โดยส่งค่าสำหรับ name, type และ floodlightConfigurationId
    # Create a new floodlight activity group resource to insert.
    activity_group =
      DfareportingUtils::API_NAMESPACE::FloodlightActivityGroup.new(
        floodlight_configuration_id: floodlight_config_id,
        name:
          format('Example Floodlight Activity Group #%s', SecureRandom.hex(3)),
        type: 'COUNTER'
      )
    
  2. บันทึกกลุ่มกิจกรรม Floodlight โดยการเรียกใช้ floodlightActivityGroups.insert() ซึ่งจะส่งคืนรหัสของกลุ่มใหม่
    # Insert the floodlight activity group.
    result = service.insert_floodlight_activity_group(profile_id, activity_group)
    
  3. สร้างกิจกรรม Floodlight ใหม่และกำหนดรหัสของกลุ่มกิจกรรม Floodlight ที่คุณเพิ่งสร้าง รวมถึงช่องที่ต้องกรอกอื่นๆ ทั้งหมด
    # Create a new floodlight activity resource to insert.
    activity = DfareportingUtils::API_NAMESPACE::FloodlightActivity.new(
      counting_method: 'STANDARD_COUNTING',
      expected_url: 'http://www.google.com',
      floodlight_activity_group_id: activity_group_id,
      floodlight_tag_type: 'GLOBAL_SITE_TAG',
      name: format('Example Floodlight Activity #%s', SecureRandom.hex(3))
    )
    
  4. บันทึกกิจกรรมใหม่โดยโทรไปที่ floodlightActivities.insert() ซึ่งจะส่งรหัสของกิจกรรมใหม่กลับมา
    # Insert the floodlight activity.
    result = service.insert_floodlight_activity(profile_id, activity)
    
  5. สร้างแท็กโดยการเรียกใช้ floodlightActivities.generatetag() ด้วย floodlightActivityId ของกิจกรรมใหม่ ส่งแท็กให้ผู้ดูแลเว็บที่เว็บไซต์ของผู้ลงโฆษณา
    # Construct the request.
    result = service.generatetag_floodlight_activity(profile_id,
      floodlight_activity_id: activity_id)
    

สร้างแท็กตำแหน่ง

ขั้นตอนสุดท้ายคือการสร้างแท็ก HTML เพื่อส่งไปยังผู้เผยแพร่โฆษณาเพื่อแสดงโฆษณาของคุณ หากต้องการสร้างแท็กผ่าน API ให้ส่งคำขอไปยัง placements.generatetags() โดยระบุชุด placementIds และ tagFormats

C#

// Generate the placement activity tags.
PlacementsResource.GeneratetagsRequest request =
    service.Placements.Generatetags(profileId);
request.CampaignId = campaignId;
request.TagFormats =
    PlacementsResource.GeneratetagsRequest.TagFormatsEnum.PLACEMENTTAGIFRAMEJAVASCRIPT;
request.PlacementIds = placementId.ToString();

PlacementsGenerateTagsResponse response = request.Execute();

Java

// Generate the placement activity tags.
Generatetags request = reporting.placements().generatetags(profileId);
request.setCampaignId(campaignId);
request.setTagFormats(tagFormats);
request.setPlacementIds(ImmutableList.of(placementId));

PlacementsGenerateTagsResponse response = request.execute();

PHP

$placementTags = $this->service->placements->generatetags(
    $values['user_profile_id'],
    ['campaignId' => $values['campaign_id'],
     'placementIds' => [$values['placement_id']],
     'tagFormats' => ['PLACEMENT_TAG_STANDARD',
                      'PLACEMENT_TAG_IFRAME_JAVASCRIPT',
                      'PLACEMENT_TAG_INTERNAL_REDIRECT']
    ]
);

Python

# Construct the request.
request = service.placements().generatetags(
    profileId=profile_id, campaignId=campaign_id,
    placementIds=[placement_id])

# Execute request and print response.
response = request.execute()

Ruby

# Construct the request.
result = service.generate_placement_tags(profile_id,
  campaign_id: campaign_id,
  placement_ids: [placement_id])