Các tác vụ quản lý quảng cáo phổ biến

Trang này trình bày cách thực hiện một số tác vụ phân phối phổ biến nhất bằng DCM/DFA Reporting and Trafficking API.

Mẹo chung về việc lập trình

  • Các thuộc tính và tham số bắt buộc và không bắt buộc – Hãy xem tài liệu tham khảo để biết liệu một thuộc tính hoặc tham số có bắt buộc đối với một lệnh gọi API hay không.
  • Tìm kiếm tên bằng ký tự đại diện – Bạn có thể sử dụng ký tự đại diện là dấu hoa thị (*) khi tìm kiếm tên của các đối tượng. Dấu hoa thị khớp với 0 hoặc nhiều ký tự bất kỳ. API này cũng hỗ trợ tìm kiếm chuỗi con ngầm định, vì vậy, khi bạn tìm kiếm "abc", hệ thống sẽ ngầm định tìm kiếm "*abc*".
  • Cập nhật so với vá – Để sửa đổi một đối tượng hiện có, bạn có 2 lựa chọn:
    1. Cập nhật – Khi bạn cập nhật một đối tượng, tất cả các trường sẽ bị ghi đè khi chèn. Bạn cần tải đối tượng mà bạn muốn cập nhật và thực hiện mọi thay đổi đối với đối tượng đó. Nếu không, mọi trường không có trong yêu cầu cập nhật sẽ không được đặt.
    2. – Khi vá, chỉ những trường được chỉ định mới bị ghi đè khi chèn. Trong trường hợp này, bạn có thể tạo một đối tượng mới, chỉ định cho đối tượng đó cùng một mã nhận dạng với đối tượng cần cập nhật, đặt các trường cần cập nhật và thực thi yêu cầu vá.
  • Kích thước – Kích thước thực tế được biểu thị bằng một đối tượng Size do dịch vụ kích thước xác định. Tài khoản này cung cấp một bộ kích thước tiêu chuẩn và bạn có thể thêm kích thước tuỳ chỉnh của riêng mình vào danh sách này.
  • Ngày và giờ – Bạn có thể lưu ngày/giờ ở định dạng RFC 3339 bằng cách sử dụng múi giờ địa phương; tất cả các giá trị do API trả về đều ở định dạng UTC. Điều này khác với trang web nơi ngày và giờ được hiển thị theo múi giờ mà bạn đã định cấu hình (theo mặc định là giờ của Hoa Kỳ/New York).

Tạo nhà quảng cáo

C#

  1. Tạo một đối tượng Advertiser và đặt các thuộc tính namestatus bắt buộc của đối tượng đó.
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.Name = advertiserName;
    advertiser.Status = "APPROVED";
  2. Gọi advertisers.insert() để lưu nhà quảng cáo.
    // Create the advertiser.
    Advertiser result = service.Advertisers.Insert(advertiser, profileId).Execute();

Java

  1. Tạo một đối tượng Advertiser và đặt các thuộc tính namestatus bắt buộc của đối tượng đó.
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.setName(advertiserName);
    advertiser.setStatus("APPROVED");
  2. Gọi advertisers.insert() để lưu nhà quảng cáo.
    // Create the advertiser.
    Advertiser result = reporting.advertisers().insert(profileId, advertiser).execute();

PHP

  1. Tạo một đối tượng Advertiser và đặt các thuộc tính namestatus bắt buộc của đối tượng đó.
    $advertiser = new Google_Service_Dfareporting_Advertiser();
    $advertiser->setName($values['advertiser_name']);
    $advertiser->setStatus('APPROVED');
  2. Gọi advertisers.insert() để lưu nhà quảng cáo.
    $result = $this->service->advertisers->insert(
        $values['user_profile_id'],
        $advertiser
    );

Python

  1. Tạo một đối tượng Advertiser và đặt các thuộc tính namestatus bắt buộc của đối tượng đó.
    # Construct and save advertiser.
    advertiser = {
        'name': 'Test Advertiser',
        'status': 'APPROVED'
    }
  2. Gọi advertisers.insert() để lưu nhà quảng cáo.
    request = service.advertisers().insert(
        profileId=profile_id, body=advertiser)
    
    # Execute request and print response.
    response = request.execute()

Ruby

  1. Tạo một đối tượng Advertiser và đặt các thuộc tính namestatus bắt buộc của đối tượng đó.
    # Create a new advertiser resource to insert.
    advertiser = DfareportingUtils::API_NAMESPACE::Advertiser.new(
      name: format('Example Advertiser #%s', SecureRandom.hex(3)),
      status: 'APPROVED'
    )
  2. Gọi advertisers.insert() để lưu nhà quảng cáo.
    # Insert the advertiser.
    result = service.insert_advertiser(profile_id, advertiser)

Tạo chiến dịch

C#

  1. Tạo một đối tượng Campaign và đặt các thuộc tính bắt buộc của đối tượng đó:

    • advertiserId – Nhà quảng cáo mà bạn muốn liên kết chiến dịch này.
    • name – Giá trị này phải là duy nhất trên tất cả các chiến dịch của nhà quảng cáo này.
    • defaultLandingPageId – Trang đích mà người dùng sẽ được chuyển đến khi họ nhấp vào một quảng cáo trong chiến dịch này, nếu bạn chưa chỉ định trang đích cho quảng cáo đó. Bạn có thể tra cứu các trang đích hiện có bằng cách gọi advertiserLandingPages.list hoặc tạo một trang đích mới bằng cách gọi advertiserLandingPages.insert.
    • Ngày bắt đầu và ngày kết thúc – Đây phải là ngày trong tương lai và có thể chính xác đến từng ngày. Hãy xem mục ngày và giờ trong phần Thông tin chung về việc lập trình để biết thêm chi tiết. Ngày của từng quảng cáo có thể vượt quá ngày kết thúc để cho phép nhà xuất bản cố gắng thực hiện một hợp đồng cho một số hành động cụ thể, nếu hợp đồng đó chưa được thực hiện vào ngày kết thúc chiến dịch đã cho.
    // 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. Gọi campaigns.insert() để lưu chiến dịch.

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

Java

  1. Tạo một đối tượng Campaign và đặt các thuộc tính bắt buộc của đối tượng đó:

    • advertiserId – Nhà quảng cáo mà bạn muốn liên kết chiến dịch này.
    • name – Giá trị này phải là duy nhất trên tất cả các chiến dịch của nhà quảng cáo này.
    • defaultLandingPageId – Trang đích mà người dùng sẽ được chuyển đến khi họ nhấp vào một quảng cáo trong chiến dịch này, nếu bạn chưa chỉ định trang đích cho quảng cáo đó. Bạn có thể tra cứu các trang đích hiện có bằng cách gọi advertiserLandingPages.list hoặc tạo một trang đích mới bằng cách gọi advertiserLandingPages.insert.
    • Ngày bắt đầu và ngày kết thúc – Đây phải là ngày trong tương lai và có thể chính xác đến từng ngày. Hãy xem mục ngày và giờ trong phần Thông tin chung về việc lập trình để biết thêm chi tiết. Ngày của từng quảng cáo có thể vượt quá ngày kết thúc để cho phép nhà xuất bản cố gắng thực hiện một hợp đồng cho một số hành động cụ thể, nếu hợp đồng đó chưa được thực hiện vào ngày kết thúc chiến dịch đã cho.
    // 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. Gọi campaigns.insert() để lưu chiến dịch.

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

PHP

  1. Tạo một đối tượng Campaign và đặt các thuộc tính bắt buộc của đối tượng đó:

    • advertiserId – Nhà quảng cáo mà bạn muốn liên kết chiến dịch này.
    • name – Giá trị này phải là duy nhất trên tất cả các chiến dịch của nhà quảng cáo này.
    • defaultLandingPageId – Trang đích mà người dùng sẽ được chuyển đến khi họ nhấp vào một quảng cáo trong chiến dịch này, nếu bạn chưa chỉ định trang đích cho quảng cáo đó. Bạn có thể tra cứu các trang đích hiện có bằng cách gọi advertiserLandingPages.list hoặc tạo một trang đích mới bằng cách gọi advertiserLandingPages.insert.
    • Ngày bắt đầu và ngày kết thúc – Đây phải là ngày trong tương lai và có thể chính xác đến từng ngày. Hãy xem mục ngày và giờ trong phần Thông tin chung về việc lập trình để biết thêm chi tiết. Ngày của từng quảng cáo có thể vượt quá ngày kết thúc để cho phép nhà xuất bản cố gắng thực hiện một hợp đồng cho một số hành động cụ thể, nếu hợp đồng đó chưa được thực hiện vào ngày kết thúc chiến dịch đã cho.
    $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. Gọi campaigns.insert() để lưu chiến dịch.

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

Python

  1. Tạo một đối tượng Campaign và đặt các thuộc tính bắt buộc của đối tượng đó:

    • advertiserId – Nhà quảng cáo mà bạn muốn liên kết chiến dịch này.
    • name – Giá trị này phải là duy nhất trên tất cả các chiến dịch của nhà quảng cáo này.
    • defaultLandingPageId – Trang đích mà người dùng sẽ được chuyển đến khi họ nhấp vào một quảng cáo trong chiến dịch này, nếu bạn chưa chỉ định trang đích cho quảng cáo đó. Bạn có thể tra cứu các trang đích hiện có bằng cách gọi advertiserLandingPages.list hoặc tạo một trang đích mới bằng cách gọi advertiserLandingPages.insert.
    • Ngày bắt đầu và ngày kết thúc – Đây phải là ngày trong tương lai và có thể chính xác đến từng ngày. Hãy xem mục ngày và giờ trong phần Thông tin chung về việc lập trình để biết thêm chi tiết. Ngày của từng quảng cáo có thể vượt quá ngày kết thúc để cho phép nhà xuất bản cố gắng thực hiện một hợp đồng cho một số hành động cụ thể, nếu hợp đồng đó chưa được thực hiện vào ngày kết thúc chiến dịch đã cho.
    # 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. Gọi campaigns.insert() để lưu chiến dịch.

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

Ruby

  1. Tạo một đối tượng Campaign và đặt các thuộc tính bắt buộc của đối tượng đó:

    • advertiserId – Nhà quảng cáo mà bạn muốn liên kết chiến dịch này.
    • name – Giá trị này phải là duy nhất trên tất cả các chiến dịch của nhà quảng cáo này.
    • defaultLandingPageId – Trang đích mà người dùng sẽ được chuyển đến khi họ nhấp vào một quảng cáo trong chiến dịch này, nếu bạn chưa chỉ định trang đích cho quảng cáo đó. Bạn có thể tra cứu các trang đích hiện có bằng cách gọi advertiserLandingPages.list hoặc tạo một trang đích mới bằng cách gọi advertiserLandingPages.insert.
    • Ngày bắt đầu và ngày kết thúc – Đây phải là ngày trong tương lai và có thể chính xác đến từng ngày. Hãy xem mục ngày và giờ trong phần Thông tin chung về việc lập trình để biết thêm chi tiết. Ngày của từng quảng cáo có thể vượt quá ngày kết thúc để cho phép nhà xuất bản cố gắng thực hiện một hợp đồng cho một số hành động cụ thể, nếu hợp đồng đó chưa được thực hiện vào ngày kết thúc chiến dịch đã cho.
    # 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. Gọi campaigns.insert() để lưu chiến dịch.

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

Tạo vị trí

C#

  1. Tạo một đối tượng Placement và đặt các thuộc tính vị trí bắt buộc (bao gồm cả campaignIdsiteId). Ngoài ra, hãy nhớ đặt chính xác loại và kích thước vị trí cho vị trí mà bạn đã thoả thuận với trang web của mình.
    // 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. Tạo một đối tượng PricingSchedule mới để chỉ định cho vị trí.
    // 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. Lưu đối tượng Placement bằng cách gọi placements.insert(). Hãy nhớ lưu trữ mã nhận dạng được trả về nếu bạn muốn dùng mã nhận dạng đó để chỉ định cho một Quảng cáo hoặc Mẫu quảng cáo.
    // Insert the placement.
    Placement result = service.Placements.Insert(placement, profileId).Execute();

Java

  1. Tạo một đối tượng Placement và đặt các thuộc tính vị trí bắt buộc (bao gồm cả campaignIdsiteId). Ngoài ra, hãy nhớ đặt chính xác loại và kích thước vị trí cho vị trí mà bạn đã thoả thuận với trang web của mình.
    // 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. Tạo một đối tượng PricingSchedule mới để chỉ định cho vị trí.
    // 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. Lưu đối tượng Placement bằng cách gọi placements.insert(). Hãy nhớ lưu trữ mã nhận dạng được trả về nếu bạn muốn dùng mã nhận dạng đó để chỉ định cho một Quảng cáo hoặc Mẫu quảng cáo.
    // Insert the placement.
    Placement result = reporting.placements().insert(profileId, placement).execute();

PHP

  1. Tạo một đối tượng Placement và đặt các thuộc tính vị trí bắt buộc (bao gồm cả campaignIdsiteId). Ngoài ra, hãy nhớ đặt chính xác loại và kích thước vị trí cho vị trí mà bạn đã thoả thuận với trang web của mình.
    $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. Tạo một đối tượng PricingSchedule mới để chỉ định cho vị trí.
    // 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. Lưu đối tượng Placement bằng cách gọi placements.insert(). Hãy nhớ lưu trữ mã nhận dạng được trả về nếu bạn muốn dùng mã nhận dạng đó để chỉ định cho một Quảng cáo hoặc Mẫu quảng cáo.
    // Insert the placement.
    $result = $this->service->placements->insert(
        $values['user_profile_id'],
        $placement
    );

Python

  1. Tạo một đối tượng Placement và đặt các thuộc tính vị trí bắt buộc (bao gồm cả campaignIdsiteId). Ngoài ra, hãy nhớ đặt chính xác loại và kích thước vị trí cho vị trí mà bạn đã thoả thuận với trang web của mình.
    # 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. Tạo một đối tượng PricingSchedule mới để chỉ định cho vị trí.
    # Set the pricing schedule for the placement.
    placement['pricingSchedule'] = {
        'startDate': campaign['startDate'],
        'endDate': campaign['endDate'],
        'pricingType': 'PRICING_TYPE_CPM'
    }
  3. Lưu đối tượng Placement bằng cách gọi placements.insert(). Hãy nhớ lưu trữ mã nhận dạng được trả về nếu bạn muốn dùng mã nhận dạng đó để chỉ định cho một Quảng cáo hoặc Mẫu quảng cáo.
    request = service.placements().insert(profileId=profile_id, body=placement)
    
    # Execute request and print response.
    response = request.execute()

Ruby

  1. Tạo một đối tượng Placement và đặt các thuộc tính vị trí bắt buộc (bao gồm cả campaignIdsiteId). Ngoài ra, hãy nhớ đặt chính xác loại và kích thước vị trí cho vị trí mà bạn đã thoả thuận với trang web của mình.
    # 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. Tạo một đối tượng PricingSchedule mới để chỉ định cho vị trí.
    # 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. Lưu đối tượng Placement bằng cách gọi placements.insert(). Hãy nhớ lưu trữ mã nhận dạng được trả về nếu bạn muốn dùng mã nhận dạng đó để chỉ định cho một Quảng cáo hoặc Mẫu quảng cáo.
    # Insert the placement strategy.
    result = service.insert_placement(profile_id, placement)

Tải lên nội dung

Bạn có thể tải nhiều loại thành phần lên thông qua một quy trình được gọi là tải nội dung nghe nhìn lên. Mặc dù quy trình này tương tự nhau đối với tất cả các loại mẫu quảng cáo, nhưng một số loại có thể yêu cầu bạn truyền các thuộc tính cụ thể dưới dạng siêu dữ liệu để sử dụng đúng cách.

C#

  1. Tạo một đối tượng assetIdentifier và đặt các thuộc tính bắt buộc. Tất cả thành phần, bất kể loại hoặc cách sử dụng, đều phải chỉ định một assetIdentifier. Khi chỉ định tài sản cho một mẫu quảng cáo, đối tượng này sẽ được dùng để tham chiếu lại tài sản. Bạn phải có các thuộc tính sau:

    • Thuộc tính name sẽ là tên của thành phần trên máy chủ. Tên này phải có đuôi cho biết loại tệp, chẳng hạn như .png hoặc .gif, và sẽ xuất hiện trên trình duyệt dưới dạng tên tài sản, nhưng không nhất thiết phải giống với tên tệp ban đầu. Xin lưu ý rằng Campaign Manager 360 có thể thay đổi tên này để đảm bảo tên đó là duy nhất trên máy chủ; hãy kiểm tra giá trị trả về để xem tên đó có bị thay đổi hay không.
    • Thuộc tính type xác định loại tài sản. Thuộc tính này sẽ quy định các loại mẫu quảng cáo mà bạn có thể liên kết với thành phần này.
    // Create the creative asset ID and Metadata.
    CreativeAssetId assetId = new CreativeAssetId();
    assetId.Name = Path.GetFileName(assetFile);
    assetId.Type = assetType;
  2. Tải tệp lên bằng cách gọi creativeAssets.insert(). Thực hiện thao tác tải lên nhiều phần, truyền cả assetIdentifier và nội dung tệp trong cùng một yêu cầu. Nếu thành công, một tài nguyên CreativeAsset sẽ được trả về, cùng với một assetIdentifier mà bạn sẽ dùng để chỉ định nội dung này cho một mẫu quảng cáo.

    // 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. Tạo một đối tượng assetIdentifier và đặt các thuộc tính bắt buộc. Tất cả thành phần, bất kể loại hoặc cách sử dụng, đều phải chỉ định một assetIdentifier. Khi chỉ định tài sản cho một mẫu quảng cáo, đối tượng này sẽ được dùng để tham chiếu lại tài sản. Bạn phải có các thuộc tính sau:

    • Thuộc tính name sẽ là tên của thành phần trên máy chủ. Tên này phải có đuôi cho biết loại tệp, chẳng hạn như .png hoặc .gif, và sẽ xuất hiện trên trình duyệt dưới dạng tên tài sản, nhưng không nhất thiết phải giống với tên tệp ban đầu. Xin lưu ý rằng Campaign Manager 360 có thể thay đổi tên này để đảm bảo tên đó là duy nhất trên máy chủ; hãy kiểm tra giá trị trả về để xem tên đó có bị thay đổi hay không.
    • Thuộc tính type xác định loại tài sản. Thuộc tính này sẽ quy định các loại mẫu quảng cáo mà bạn có thể liên kết với thành phần này.
    // Create the creative asset ID and Metadata.
    CreativeAssetId assetId = new CreativeAssetId();
    assetId.setName(assetName);
    assetId.setType(assetType);
  2. Tải tệp lên bằng cách gọi creativeAssets.insert(). Thực hiện thao tác tải lên nhiều phần, truyền cả assetIdentifier và nội dung tệp trong cùng một yêu cầu. Nếu thành công, một tài nguyên CreativeAsset sẽ được trả về, cùng với một assetIdentifier mà bạn sẽ dùng để chỉ định nội dung này cho một mẫu quảng cáo.

    // 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. Tạo một đối tượng assetIdentifier và đặt các thuộc tính bắt buộc. Tất cả thành phần, bất kể loại hoặc cách sử dụng, đều phải chỉ định một assetIdentifier. Khi chỉ định tài sản cho một mẫu quảng cáo, đối tượng này sẽ được dùng để tham chiếu lại tài sản. Bạn phải có các thuộc tính sau:

    • Thuộc tính name sẽ là tên của thành phần trên máy chủ. Tên này phải có đuôi cho biết loại tệp, chẳng hạn như .png hoặc .gif, và sẽ xuất hiện trên trình duyệt dưới dạng tên tài sản, nhưng không nhất thiết phải giống với tên tệp ban đầu. Xin lưu ý rằng Campaign Manager 360 có thể thay đổi tên này để đảm bảo tên đó là duy nhất trên máy chủ; hãy kiểm tra giá trị trả về để xem tên đó có bị thay đổi hay không.
    • Thuộc tính type xác định loại tài sản. Thuộc tính này sẽ quy định các loại mẫu quảng cáo mà bạn có thể liên kết với thành phần này.
    $assetId = new Google_Service_Dfareporting_CreativeAssetId();
    $assetId->setName($asset['name']);
    $assetId->setType($type);
  2. Tải tệp lên bằng cách gọi creativeAssets.insert(). Thực hiện thao tác tải lên nhiều phần, truyền cả assetIdentifier và nội dung tệp trong cùng một yêu cầu. Nếu thành công, một tài nguyên CreativeAsset sẽ được trả về, cùng với một assetIdentifier mà bạn sẽ dùng để chỉ định nội dung này cho một mẫu quảng cáo.

    $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. Tạo một đối tượng assetIdentifier và đặt các thuộc tính bắt buộc. Tất cả thành phần, bất kể loại hoặc cách sử dụng, đều phải chỉ định một assetIdentifier. Khi chỉ định tài sản cho một mẫu quảng cáo, đối tượng này sẽ được dùng để tham chiếu lại tài sản. Bạn phải có các thuộc tính sau:

    • Thuộc tính name sẽ là tên của thành phần trên máy chủ. Tên này phải có đuôi cho biết loại tệp, chẳng hạn như .png hoặc .gif, và sẽ xuất hiện trên trình duyệt dưới dạng tên tài sản, nhưng không nhất thiết phải giống với tên tệp ban đầu. Xin lưu ý rằng Campaign Manager 360 có thể thay đổi tên này để đảm bảo tên đó là duy nhất trên máy chủ; hãy kiểm tra giá trị trả về để xem tên đó có bị thay đổi hay không.
    • Thuộc tính type xác định loại tài sản. Thuộc tính này sẽ quy định các loại mẫu quảng cáo mà bạn có thể liên kết với thành phần này.
    # Construct the creative asset metadata
    creative_asset = {'assetIdentifier': {'name': asset_name, 'type': asset_type}}
  2. Tải tệp lên bằng cách gọi creativeAssets.insert(). Thực hiện thao tác tải lên nhiều phần, truyền cả assetIdentifier và nội dung tệp trong cùng một yêu cầu. Nếu thành công, một tài nguyên CreativeAsset sẽ được trả về, cùng với một assetIdentifier mà bạn sẽ dùng để chỉ định nội dung này cho một mẫu quảng cáo.

    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. Tạo một đối tượng assetIdentifier và đặt các thuộc tính bắt buộc. Tất cả thành phần, bất kể loại hoặc cách sử dụng, đều phải chỉ định một assetIdentifier. Khi chỉ định tài sản cho một mẫu quảng cáo, đối tượng này sẽ được dùng để tham chiếu lại tài sản. Bạn phải có các thuộc tính sau:

    • Thuộc tính name sẽ là tên của thành phần trên máy chủ. Tên này phải có đuôi cho biết loại tệp, chẳng hạn như .png hoặc .gif, và sẽ xuất hiện trên trình duyệt dưới dạng tên tài sản, nhưng không nhất thiết phải giống với tên tệp ban đầu. Xin lưu ý rằng Campaign Manager 360 có thể thay đổi tên này để đảm bảo tên đó là duy nhất trên máy chủ; hãy kiểm tra giá trị trả về để xem tên đó có bị thay đổi hay không.
    • Thuộc tính type xác định loại tài sản. Thuộc tính này sẽ quy định các loại mẫu quảng cáo mà bạn có thể liên kết với thành phần này.
    # 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. Tải tệp lên bằng cách gọi creativeAssets.insert(). Thực hiện thao tác tải lên nhiều phần, truyền cả assetIdentifier và nội dung tệp trong cùng một yêu cầu. Nếu thành công, một tài nguyên CreativeAsset sẽ được trả về, cùng với một assetIdentifier mà bạn sẽ dùng để chỉ định nội dung này cho một mẫu quảng cáo.

    # 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
    )

Tạo mẫu quảng cáo

Đối tượng Creative bao bọc một thành phần hiện có. Tuỳ thuộc vào cách bạn sẽ sử dụng mẫu quảng cáo trên trang lưu trữ, bạn có thể tạo các đối tượng Creative thuộc nhiều loại mẫu quảng cáo. Hãy xem tài liệu tham khảo để xác định loại nào phù hợp với bạn.

Ví dụ sau đây minh hoạ cách tạo mẫu quảng cáo hiển thị HTML5 mới.

C#

  1. Tải các thành phần lên. Các mẫu quảng cáo khác nhau yêu cầu các loại và số lượng thành phần khác nhau; hãy xem phần Tải thành phần lên để biết thông tin chi tiết. Mỗi lần tải một thành phần lên thành công, bạn sẽ nhận được một assetIdenfitier trong phản hồi; bạn sẽ sử dụng tên và loại tệp đã lưu trữ để tham chiếu các thành phần này trong mẫu quảng cáo của mình, thay vì sử dụng một mã nhận dạng truyền thống.
  2. Tạo mẫu quảng cáo và chỉ định các giá trị phù hợp. Khởi tạo một Creative và đặt type thích hợp; bạn không thể thay đổi loại đối tượng Creative sau khi lưu. Chỉ định các thành phần bằng AssetIdentifierrole của chúng.
    // 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. Lưu mẫu quảng cáo. Thực hiện việc này bằng cách gọi creatives.insert(). Bạn phải chỉ định một mã nhận dạng nhà quảng cáo để liên kết với mẫu quảng cáo này.
    Creative result = service.Creatives.Insert(creative, profileId).Execute();
  4. (Không bắt buộc) Liên kết mẫu quảng cáo với một chiến dịch. Bạn có thể thực hiện việc này bằng cách gọi campaignCreativeAssociations.insert(), truyền vào mã chiến dịch và mẫu quảng cáo.
    // 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. Tải các thành phần lên. Các mẫu quảng cáo khác nhau yêu cầu các loại và số lượng thành phần khác nhau; hãy xem phần Tải thành phần lên để biết thông tin chi tiết. Mỗi lần tải một thành phần lên thành công, bạn sẽ nhận được một assetIdenfitier trong phản hồi; bạn sẽ sử dụng tên và loại tệp đã lưu trữ để tham chiếu các thành phần này trong mẫu quảng cáo của mình, thay vì sử dụng một mã nhận dạng truyền thống.
  2. Tạo mẫu quảng cáo và chỉ định các giá trị phù hợp. Khởi tạo một Creative và đặt type thích hợp; bạn không thể thay đổi loại đối tượng Creative sau khi lưu. Chỉ định các thành phần bằng AssetIdentifierrole của chúng.
    // 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. Lưu mẫu quảng cáo. Thực hiện việc này bằng cách gọi creatives.insert(). Bạn phải chỉ định một mã nhận dạng nhà quảng cáo để liên kết với mẫu quảng cáo này.
    Creative result = reporting.creatives().insert(profileId, creative).execute();
  4. (Không bắt buộc) Liên kết mẫu quảng cáo với một chiến dịch. Bạn có thể thực hiện việc này bằng cách gọi campaignCreativeAssociations.insert(), truyền vào mã chiến dịch và mẫu quảng cáo.
    // 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. Tải các thành phần lên. Các mẫu quảng cáo khác nhau yêu cầu các loại và số lượng thành phần khác nhau; hãy xem phần Tải thành phần lên để biết thông tin chi tiết. Mỗi lần tải một thành phần lên thành công, bạn sẽ nhận được một assetIdenfitier trong phản hồi; bạn sẽ sử dụng tên và loại tệp đã lưu trữ để tham chiếu các thành phần này trong mẫu quảng cáo của mình, thay vì sử dụng một mã nhận dạng truyền thống.
  2. Tạo mẫu quảng cáo và chỉ định các giá trị phù hợp. Khởi tạo một Creative và đặt type thích hợp; bạn không thể thay đổi loại đối tượng Creative sau khi lưu. Chỉ định các thành phần bằng AssetIdentifierrole của chúng.
    $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. Lưu mẫu quảng cáo. Thực hiện việc này bằng cách gọi creatives.insert(). Bạn phải chỉ định một mã nhận dạng nhà quảng cáo để liên kết với mẫu quảng cáo này.
    $result = $this->service->creatives->insert(
        $values['user_profile_id'],
        $creative
    );
  4. (Không bắt buộc) Liên kết mẫu quảng cáo với một chiến dịch. Bạn có thể thực hiện việc này bằng cách gọi campaignCreativeAssociations.insert(), truyền vào mã chiến dịch và mẫu quảng cáo.
    $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. Tải các thành phần lên. Các mẫu quảng cáo khác nhau yêu cầu các loại và số lượng thành phần khác nhau; hãy xem phần Tải thành phần lên để biết thông tin chi tiết. Mỗi lần tải một thành phần lên thành công, bạn sẽ nhận được một assetIdenfitier trong phản hồi; bạn sẽ sử dụng tên và loại tệp đã lưu trữ để tham chiếu các thành phần này trong mẫu quảng cáo của mình, thay vì sử dụng một mã nhận dạng truyền thống.
  2. Tạo mẫu quảng cáo và chỉ định các giá trị phù hợp. Khởi tạo một Creative và đặt type thích hợp; bạn không thể thay đổi loại đối tượng Creative sau khi lưu. Chỉ định các thành phần bằng AssetIdentifierrole của chúng.
    # 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. Lưu mẫu quảng cáo. Thực hiện việc này bằng cách gọi creatives.insert(). Bạn phải chỉ định một mã nhận dạng nhà quảng cáo để liên kết với mẫu quảng cáo này.
    request = service.creatives().insert(profileId=profile_id, body=creative)
    
    # Execute request and print response.
    response = request.execute()
  4. (Không bắt buộc) Liên kết mẫu quảng cáo với một chiến dịch. Bạn có thể thực hiện việc này bằng cách gọi campaignCreativeAssociations.insert(), truyền vào mã chiến dịch và mẫu quảng cáo.
    # 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. Tải các thành phần lên. Các mẫu quảng cáo khác nhau yêu cầu các loại và số lượng thành phần khác nhau; hãy xem phần Tải thành phần lên để biết thông tin chi tiết. Mỗi lần tải một thành phần lên thành công, bạn sẽ nhận được một assetIdenfitier trong phản hồi; bạn sẽ sử dụng tên và loại tệp đã lưu trữ để tham chiếu các thành phần này trong mẫu quảng cáo của mình, thay vì sử dụng một mã nhận dạng truyền thống.
  2. Tạo mẫu quảng cáo và chỉ định các giá trị phù hợp. Khởi tạo một Creative và đặt type thích hợp; bạn không thể thay đổi loại đối tượng Creative sau khi lưu. Chỉ định các thành phần bằng AssetIdentifierrole của chúng.
    # 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. Lưu mẫu quảng cáo. Thực hiện việc này bằng cách gọi creatives.insert(). Bạn phải chỉ định một mã nhận dạng nhà quảng cáo để liên kết với mẫu quảng cáo này.
    # Insert the creative.
    result = service.insert_creative(profile_id, creative)
  4. (Không bắt buộc) Liên kết mẫu quảng cáo với một chiến dịch. Bạn có thể thực hiện việc này bằng cách gọi campaignCreativeAssociations.insert(), truyền vào mã chiến dịch và mẫu quảng cáo.
    # 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)

Tạo quảng cáo

Ad là mối liên kết giữa CreativePlacement. Bạn có thể liên kết một Ad với một hoặc nhiều vị trí và chứa một hoặc nhiều mẫu quảng cáo.

Bạn có thể tạo một Ad một cách rõ ràng hoặc ngầm định.

Rõ ràng

C#

  1. Tạo một đối tượng CreativeAssignment cho mỗi mẫu quảng cáo mà quảng cáo này sẽ được liên kết. Nhớ đặt trường CreativeAssignment.active thành 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. Tạo một đối tượng CreativeRotation để lưu trữ CreativeAssignment. Nếu bạn tạo một nhóm xoay vòng, hãy nhớ đặt các trường xoay vòng mẫu quảng cáo bắt buộc khác.
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.CreativeAssignments = new List<CreativeAssignment>() {
        creativeAssignment
    };
  3. Tạo một đối tượng PlacementAssignment cho mỗi vị trí mà quảng cáo này sẽ được liên kết. Nhớ đặt trường PlacementAssignment.active thành true.
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.Active = true;
    placementAssignment.PlacementId = placementId;
  4. Tạo một đối tượng Ad. Đặt creativeRotation vào trường creativeRotation của đối tượng Ad và placementAssignments vào mảng placementAssignments của đối tượng 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. Lưu quảng cáo bằng cách gọi ads.insert().
    // Insert the rotation group.
    Ad result = service.Ads.Insert(rotationGroup, profileId).Execute();

Java

  1. Tạo một đối tượng CreativeAssignment cho mỗi mẫu quảng cáo mà quảng cáo này sẽ được liên kết. Nhớ đặt trường CreativeAssignment.active thành 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. Tạo một đối tượng CreativeRotation để lưu trữ CreativeAssignment. Nếu bạn tạo một nhóm xoay vòng, hãy nhớ đặt các trường xoay vòng mẫu quảng cáo bắt buộc khác.
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.setCreativeAssignments(ImmutableList.of(creativeAssignment));
  3. Tạo một đối tượng PlacementAssignment cho mỗi vị trí mà quảng cáo này sẽ được liên kết. Nhớ đặt trường PlacementAssignment.active thành true.
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.setActive(true);
    placementAssignment.setPlacementId(placementId);
  4. Tạo một đối tượng Ad. Đặt creativeRotation vào trường creativeRotation của đối tượng Ad và placementAssignments vào mảng placementAssignments của đối tượng 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. Lưu quảng cáo bằng cách gọi ads.insert().
    // Insert the rotation group.
    Ad result = reporting.ads().insert(profileId, rotationGroup).execute();

PHP

  1. Tạo một đối tượng CreativeAssignment cho mỗi mẫu quảng cáo mà quảng cáo này sẽ được liên kết. Nhớ đặt trường CreativeAssignment.active thành 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. Tạo một đối tượng CreativeRotation để lưu trữ CreativeAssignment. Nếu bạn tạo một nhóm xoay vòng, hãy nhớ đặt các trường xoay vòng mẫu quảng cáo bắt buộc khác.
    // Create a creative rotation.
    $creativeRotation = new Google_Service_Dfareporting_CreativeRotation();
    $creativeRotation->setCreativeAssignments([$creativeAssignment]);
  3. Tạo một đối tượng PlacementAssignment cho mỗi vị trí mà quảng cáo này sẽ được liên kết. Nhớ đặt trường PlacementAssignment.active thành true.
    // Create a placement assignment.
    $placementAssignment =
        new Google_Service_Dfareporting_PlacementAssignment();
    $placementAssignment->setActive(true);
    $placementAssignment->setPlacementId($values['placement_id']);
  4. Tạo một đối tượng Ad. Đặt creativeRotation vào trường creativeRotation của đối tượng Ad và placementAssignments vào mảng placementAssignments của đối tượng 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. Lưu quảng cáo bằng cách gọi ads.insert().
    $result = $this->service->ads->insert($values['user_profile_id'], $ad);

Python

  1. Tạo một đối tượng CreativeAssignment cho mỗi mẫu quảng cáo mà quảng cáo này sẽ được liên kết. Nhớ đặt trường CreativeAssignment.active thành true.
    # Construct creative assignment.
    creative_assignment = {
        'active': 'true',
        'creativeId': creative_id,
        'clickThroughUrl': {
            'defaultLandingPage': 'true'
        }
    }
  2. Tạo một đối tượng CreativeRotation để lưu trữ CreativeAssignment. Nếu bạn tạo một nhóm xoay vòng, hãy nhớ đặt các trường xoay vòng mẫu quảng cáo bắt buộc khác.
    # Construct creative rotation.
    creative_rotation = {
        'creativeAssignments': [creative_assignment],
        'type': 'CREATIVE_ROTATION_TYPE_RANDOM',
        'weightCalculationStrategy': 'WEIGHT_STRATEGY_OPTIMIZED'
    }
  3. Tạo một đối tượng PlacementAssignment cho mỗi vị trí mà quảng cáo này sẽ được liên kết. Nhớ đặt trường PlacementAssignment.active thành true.
    # Construct placement assignment.
    placement_assignment = {
        'active': 'true',
        'placementId': placement_id,
    }
  4. Tạo một đối tượng Ad. Đặt creativeRotation vào trường creativeRotation của đối tượng Ad và placementAssignments vào mảng placementAssignments của đối tượng 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. Lưu quảng cáo bằng cách gọi ads.insert().
    request = service.ads().insert(profileId=profile_id, body=ad)
    
    # Execute request and print response.
    response = request.execute()

Ruby

  1. Tạo một đối tượng CreativeAssignment cho mỗi mẫu quảng cáo mà quảng cáo này sẽ được liên kết. Nhớ đặt trường CreativeAssignment.active thành 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. Tạo một đối tượng CreativeRotation để lưu trữ CreativeAssignment. Nếu bạn tạo một nhóm xoay vòng, hãy nhớ đặt các trường xoay vòng mẫu quảng cáo bắt buộc khác.
    # 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. Tạo một đối tượng PlacementAssignment cho mỗi vị trí mà quảng cáo này sẽ được liên kết. Nhớ đặt trường PlacementAssignment.active thành true.
    # Construct placement assignment.
    placement_assignment =
      DfareportingUtils::API_NAMESPACE::PlacementAssignment.new(
        active: true,
        placement_id: placement_id
      )
  4. Tạo một đối tượng Ad. Đặt creativeRotation vào trường creativeRotation của đối tượng Ad và placementAssignments vào mảng placementAssignments của đối tượng 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. Lưu quảng cáo bằng cách gọi ads.insert().
    result = service.insert_ad(profile_id, ad)

Ngầm

C#

  1. Tạo và lưu Placement.
  2. Tạo và lưu Creative.
  3. Liên kết Creative với cùng một Campaign được dùng cho Placement bằng cách gọi campaignCreativeAssociations.insert() (xem bước 4 trong phần Tạo mẫu quảng cáo). Thao tác này sẽ tạo một quảng cáo mặc định được liên kết với cả mẫu quảng cáo và vị trí.
    // 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. Tạo và lưu Placement.
  2. Tạo và lưu Creative.
  3. Liên kết Creative với cùng một Campaign được dùng cho Placement bằng cách gọi campaignCreativeAssociations.insert() (xem bước 4 trong phần Tạo mẫu quảng cáo). Thao tác này sẽ tạo một quảng cáo mặc định được liên kết với cả mẫu quảng cáo và vị trí.
    // 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. Tạo và lưu Placement.
  2. Tạo và lưu Creative.
  3. Liên kết Creative với cùng một Campaign được dùng cho Placement bằng cách gọi campaignCreativeAssociations.insert() (xem bước 4 trong phần Tạo mẫu quảng cáo). Thao tác này sẽ tạo một quảng cáo mặc định được liên kết với cả mẫu quảng cáo và vị trí.
    $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. Tạo và lưu Placement.
  2. Tạo và lưu Creative.
  3. Liên kết Creative với cùng một Campaign được dùng cho Placement bằng cách gọi campaignCreativeAssociations.insert() (xem bước 4 trong phần Tạo mẫu quảng cáo). Thao tác này sẽ tạo một quảng cáo mặc định được liên kết với cả mẫu quảng cáo và vị trí.
    # 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. Tạo và lưu Placement.
  2. Tạo và lưu Creative.
  3. Liên kết Creative với cùng một Campaign được dùng cho Placement bằng cách gọi campaignCreativeAssociations.insert() (xem bước 4 trong phần Tạo mẫu quảng cáo). Thao tác này sẽ tạo một quảng cáo mặc định được liên kết với cả mẫu quảng cáo và vị trí.
    # 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)

Việc tạo quảng cáo sẽ giúp bạn bỏ qua bước tạo Ad. Xin lưu ý rằng bạn chỉ có thể thực hiện việc này nếu chưa có quảng cáo mặc định nào có kích thước được chỉ định trong chiến dịch của bạn.

Tìm kiếm đối tượng

Bạn có thể tìm kiếm các đối tượng bằng cách gọi thao tác list() do dịch vụ xác định đối tượng cần tìm, chỉ định các tiêu chí không bắt buộc phù hợp với loại đối tượng đó. Ví dụ: để tìm kiếm các đối tượng Quảng cáo, bạn sẽ gọi ads.list(). Các tiêu chí không bắt buộc sẽ hiển thị một tập hợp các thuộc tính phù hợp cho đối tượng đó; hãy điền càng nhiều thuộc tính mà bạn muốn tìm kiếm càng tốt. Kết quả tìm kiếm sẽ chỉ trả về những đối tượng đáp ứng tất cả tiêu chí của bạn; bạn không thể tìm kiếm những đối tượng đáp ứng bất kỳ tiêu chí nào. Chuỗi hỗ trợ ký tự đại diện *, không phân biệt chữ hoa chữ thường và khớp trong các chuỗi lớn hơn.

Để cải thiện hiệu suất, bạn có thể yêu cầu phản hồi một phần bằng cách sử dụng tham số fields. Thao tác này hướng dẫn máy chủ chỉ trả về những trường mà bạn chỉ định, thay vì toàn bộ thông tin về tài nguyên. Bạn có thể tìm thêm thông tin về chủ đề này trong hướng dẫn Mẹo nâng cao hiệu suất.

Paging

Đôi khi, bạn không nên truy xuất tất cả kết quả cho một yêu cầu list(). Ví dụ: bạn có thể chỉ quan tâm đến 10 quảng cáo mới nhất trong số hàng nghìn quảng cáo. Để hỗ trợ việc này, nhiều phương thức list() cho phép bạn yêu cầu ít kết quả hơn thông qua một quy trình được gọi là phân trang.

Các phương thức hỗ trợ phân trang sẽ trả về các tập hợp con của kết quả theo nhóm được gọi là trang. Số lượng kết quả tối đa trên mỗi trang là 1.000 (mặc định). Bạn có thể thay đổi số lượng kết quả trên mỗi trang bằng cách đặt maxResults và bạn có thể lặp lại các trang bằng cách sử dụng nextPageToken được trả về trong phản hồi:

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

Tạo thẻ Floodlight

Thẻ Floodlight là thẻ HTML được nhúng trong một trang, dùng để theo dõi hành động của người dùng (ví dụ: giao dịch mua) trong một trang web. Để tạo thẻ Floodlight, bạn cần có một FloodlightActivity thuộc về một FloodlightActivityGroup:

C#

  1. Tạo một nhóm hoạt động Floodlight mới, truyền các giá trị cho name, typefloodlightConfigurationId.
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.Name = groupName;
    floodlightActivityGroup.FloodlightConfigurationId = floodlightConfigurationId;
    floodlightActivityGroup.Type = "COUNTER";
  2. Lưu nhóm hoạt động Floodlight bằng cách gọi floodlightActivityGroups.insert(). Thao tác này sẽ trả về mã nhận dạng của nhóm mới.
    // Insert the activity group.
    FloodlightActivityGroup result =
        service.FloodlightActivityGroups.Insert(floodlightActivityGroup, profileId).Execute();
  3. Tạo một hoạt động Floodlight mới và chỉ định mã của nhóm hoạt động Floodlight mà bạn vừa tạo, cũng như tất cả các trường bắt buộc khác.
    // 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. Lưu hoạt động mới bằng cách gọi floodlightActivities.insert(). Thao tác này sẽ trả về mã nhận dạng của hoạt động mới.
    // Create the floodlight tag activity.
    FloodlightActivity result =
        service.FloodlightActivities.Insert(activity, profileId).Execute();
  5. Tạo thẻ bằng cách gọi floodlightActivities.generatetag() với floodlightActivityId của hoạt động mới. Gửi thẻ đến quản trị viên web tại trang web của nhà quảng cáo.
    // Generate the floodlight activity tag.
    FloodlightActivitiesResource.GeneratetagRequest request =
        service.FloodlightActivities.Generatetag(profileId);
    request.FloodlightActivityId = activityId;
    
    FloodlightActivitiesGenerateTagResponse response = request.Execute();

Java

  1. Tạo một nhóm hoạt động Floodlight mới, truyền các giá trị cho name, typefloodlightConfigurationId.
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.setName(groupName);
    floodlightActivityGroup.setFloodlightConfigurationId(floodlightConfigurationId);
    floodlightActivityGroup.setType("COUNTER");
  2. Lưu nhóm hoạt động Floodlight bằng cách gọi floodlightActivityGroups.insert(). Thao tác này sẽ trả về mã nhận dạng của nhóm mới.
    // Insert the activity group.
    FloodlightActivityGroup result =
        reporting.floodlightActivityGroups().insert(profileId, floodlightActivityGroup).execute();
  3. Tạo một hoạt động Floodlight mới và chỉ định mã của nhóm hoạt động Floodlight mà bạn vừa tạo, cũng như tất cả các trường bắt buộc khác.
    // 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. Lưu hoạt động mới bằng cách gọi floodlightActivities.insert(). Thao tác này sẽ trả về mã nhận dạng của hoạt động mới.
    // Create the floodlight tag activity.
    FloodlightActivity result =
        reporting.floodlightActivities().insert(profileId, activity).execute();
  5. Tạo thẻ bằng cách gọi floodlightActivities.generatetag() với floodlightActivityId của hoạt động mới. Gửi thẻ đến quản trị viên web tại trang web của nhà quảng cáo.
    // Generate the floodlight activity tag.
    Generatetag request = reporting.floodlightActivities().generatetag(profileId);
    request.setFloodlightActivityId(activityId);
    
    FloodlightActivitiesGenerateTagResponse response = request.execute();

PHP

  1. Tạo một nhóm hoạt động Floodlight mới, truyền các giá trị cho name, typefloodlightConfigurationId.
    $group = new Google_Service_Dfareporting_FloodlightActivityGroup();
    $group->setFloodlightConfigurationId($values['configuration_id']);
    $group->setName($values['group_name']);
    $group->setType('COUNTER');
  2. Lưu nhóm hoạt động Floodlight bằng cách gọi floodlightActivityGroups.insert(). Thao tác này sẽ trả về mã nhận dạng của nhóm mới.
    $result = $this->service->floodlightActivityGroups->insert(
        $values['user_profile_id'],
        $group
    );
  3. Tạo một hoạt động Floodlight mới và chỉ định mã của nhóm hoạt động Floodlight mà bạn vừa tạo, cũng như tất cả các trường bắt buộc khác.
    $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. Lưu hoạt động mới bằng cách gọi floodlightActivities.insert(). Thao tác này sẽ trả về mã nhận dạng của hoạt động mới.
    $result = $this->service->floodlightActivities->insert(
        $values['user_profile_id'],
        $activity
    );
  5. Tạo thẻ bằng cách gọi floodlightActivities.generatetag() với floodlightActivityId của hoạt động mới. Gửi thẻ đến quản trị viên web tại trang web của nhà quảng cáo.
    $result = $this->service->floodlightActivities->generatetag(
        $values['user_profile_id'],
        ['floodlightActivityId' => $values['activity_id']]
    );

Python

  1. Tạo một nhóm hoạt động Floodlight mới, truyền các giá trị cho name, typefloodlightConfigurationId.
    # Construct and save floodlight activity group.
    activity_group = {
        'name': 'Test Floodlight Activity Group',
        'floodlightConfigurationId': floodlight_config_id,
        'type': 'COUNTER'
    }
  2. Lưu nhóm hoạt động Floodlight bằng cách gọi floodlightActivityGroups.insert(). Thao tác này sẽ trả về mã nhận dạng của nhóm mới.
    request = service.floodlightActivityGroups().insert(
        profileId=profile_id, body=activity_group)
  3. Tạo một hoạt động Floodlight mới và chỉ định mã của nhóm hoạt động Floodlight mà bạn vừa tạo, cũng như tất cả các trường bắt buộc khác.
    # 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. Lưu hoạt động mới bằng cách gọi floodlightActivities.insert(). Thao tác này sẽ trả về mã nhận dạng của hoạt động mới.
    request = service.floodlightActivities().insert(
        profileId=profile_id, body=floodlight_activity)
  5. Tạo thẻ bằng cách gọi floodlightActivities.generatetag() với floodlightActivityId của hoạt động mới. Gửi thẻ đến quản trị viên web tại trang web của nhà quảng cáo.
    # Construct the request.
    request = service.floodlightActivities().generatetag(
        profileId=profile_id, floodlightActivityId=activity_id)
    
    # Execute request and print response.
    response = request.execute()

Ruby

  1. Tạo một nhóm hoạt động Floodlight mới, truyền các giá trị cho name, typefloodlightConfigurationId.
    # 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. Lưu nhóm hoạt động Floodlight bằng cách gọi floodlightActivityGroups.insert(). Thao tác này sẽ trả về mã nhận dạng của nhóm mới.
    # Insert the floodlight activity group.
    result = service.insert_floodlight_activity_group(profile_id, activity_group)
  3. Tạo một hoạt động Floodlight mới và chỉ định mã của nhóm hoạt động Floodlight mà bạn vừa tạo, cũng như tất cả các trường bắt buộc khác.
    # 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. Lưu hoạt động mới bằng cách gọi floodlightActivities.insert(). Thao tác này sẽ trả về mã nhận dạng của hoạt động mới.
    # Insert the floodlight activity.
    result = service.insert_floodlight_activity(profile_id, activity)
  5. Tạo thẻ bằng cách gọi floodlightActivities.generatetag() với floodlightActivityId của hoạt động mới. Gửi thẻ đến quản trị viên web tại trang web của nhà quảng cáo.
    # Construct the request.
    result = service.generatetag_floodlight_activity(profile_id,
      floodlight_activity_id: activity_id)

Tạo thẻ vị trí

Bước cuối cùng là tạo thẻ HTML để gửi cho nhà xuất bản nhằm hiển thị quảng cáo của bạn. Để tạo thẻ thông qua API, hãy gửi yêu cầu đến placements.generatetags(), chỉ định một nhóm placementIdstagFormats.

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])