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ụ quản lý quảng cáo phổ biến nhất bằng cách sử dụng API quản lý và báo cáo DCM/Campaign Manager.

Mẹo lập trình chung

  • Thuộc tính và tham số bắt buộc và không bắt buộc – Xem tài liệu tham khảo để tìm hiểu xem thuộc tính hoặc tham số có bắt buộc đối với lệnh gọi API hay không.
  • Tìm kiếm tên theo ký tự đại diện – Bạn có thể sử dụng ký tự đại diện dấu hoa thị (*) khi tìm kiếm tên đố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ợ việc tìm kiếm chuỗi con ngụ ý, vì vậy, cụm từ tìm kiếm "abc" sẽ ngầm tìm kiếm "*abc*".
  • Cập nhật và vá – Để sửa đổi một đối tượng hiện có, bạn có hai lựa chọn:
    1. Cập nhật – Khi cập nhật một đối tượng, tất cả các trường sẽ bị ghi đè khi chèn. Bạn phải tải đối tượng bạn muốn cập nhật và thực hiện bất kỳ thay đổi nào đố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ẽ bị huỷ thiết lập.
    2. – Khi vá, chỉ các trường được chỉ định sẽ 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, gán cho đối tượng đó cùng mã với đối tượng cần cập nhật, thiết lập cho các trường được cập nhật và thực thi yêu cầu bản vá.
  • Kích thước – Kích thước thực tế được biểu thị bằng đối tượng Size được xác định bằng dịch vụ kích thước. Tài khoản cung cấp một nhóm kích thước 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ờ theo định dạng RFC 3339 bằng cách sử dụng múi giờ địa phương; tất cả giá trị mà API trả về đều theo múi giờ UTC. Giá trị này khác với trang web mà ngày và giờ hiển thị theo múi giờ đã định cấu hình của bạn (theo giờ Mỹ/New York, theo mặc định).

Tạo nhà quảng cáo

C#

  1. Tạo một đối tượng Advertiser rồi thiết lập các thuộc tính bắt buộc là name (tên) và status (trạng thái).
    // 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 rồi thiết lập các thuộc tính bắt buộc là name (tên) và status (trạng thái).
    // 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();
    

1.199

  1. Tạo một đối tượng Advertiser rồi thiết lập các thuộc tính bắt buộc là name (tên) và status (trạng thái).
    $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 rồi thiết lập các thuộc tính bắt buộc là name (tên) và status (trạng thái).
    # 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 rồi thiết lập các thuộc tính bắt buộc là name (tên) và status (trạng thái).
    # 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 rồi đặt các thuộc tính bắt buộc:

    • advertiserId – Nhà quảng cáo được liên kết với 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 đưa đến khi nhấp vào một quảng cáo trong chiến dịch này, nếu trang đích đó không được chỉ định 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 đầukết thúc – Đây phải là ngày trong tương lai và có thể chính xác so với ngày hôm đó. Xem dấu đầu dòng ngày và giờ trong Thông tin chung về lập trình để biết thêm chi tiết. Ngày quảng cáo riêng lẻ 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 đã chỉ định, nếu ngày kết thúc chiến dịch nhất định chưa được thực hiện.
    // 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 rồi đặt các thuộc tính bắt buộc:

    • advertiserId – Nhà quảng cáo được liên kết với 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 đưa đến khi nhấp vào một quảng cáo trong chiến dịch này, nếu trang đích đó không được chỉ định 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 đầukết thúc – Đây phải là ngày trong tương lai và có thể chính xác so với ngày hôm đó. Xem dấu đầu dòng ngày và giờ trong Thông tin chung về lập trình để biết thêm chi tiết. Ngày quảng cáo riêng lẻ 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 đã chỉ định, nếu ngày kết thúc chiến dịch nhất định chưa được thực hiện.
    // 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();
    

1.199

  1. Tạo một đối tượng Campaign rồi đặt các thuộc tính bắt buộc:

    • advertiserId – Nhà quảng cáo được liên kết với 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 đưa đến khi nhấp vào một quảng cáo trong chiến dịch này, nếu trang đích đó không được chỉ định 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 đầukết thúc – Đây phải là ngày trong tương lai và có thể chính xác so với ngày hôm đó. Xem dấu đầu dòng ngày và giờ trong Thông tin chung về lập trình để biết thêm chi tiết. Ngày quảng cáo riêng lẻ 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 đã chỉ định, nếu ngày kết thúc chiến dịch nhất định chưa được thực hiện.
    $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 rồi đặt các thuộc tính bắt buộc:

    • advertiserId – Nhà quảng cáo được liên kết với 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 đưa đến khi nhấp vào một quảng cáo trong chiến dịch này, nếu trang đích đó không được chỉ định 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 đầukết thúc – Đây phải là ngày trong tương lai và có thể chính xác so với ngày hôm đó. Xem dấu đầu dòng ngày và giờ trong Thông tin chung về lập trình để biết thêm chi tiết. Ngày quảng cáo riêng lẻ 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 đã chỉ định, nếu ngày kết thúc chiến dịch nhất định chưa được thực hiện.
    # 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 rồi đặt các thuộc tính bắt buộc:

    • advertiserId – Nhà quảng cáo được liên kết với 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 đưa đến khi nhấp vào một quảng cáo trong chiến dịch này, nếu trang đích đó không được chỉ định 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 đầukết thúc – Đây phải là ngày trong tương lai và có thể chính xác so với ngày hôm đó. Xem dấu đầu dòng ngày và giờ trong Thông tin chung về lập trình để biết thêm chi tiết. Ngày quảng cáo riêng lẻ 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 đã chỉ định, nếu ngày kết thúc chiến dịch nhất định chưa được thực hiện.
    # 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 đố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ị trí và kích thước cho vị trí mà bạn đã thương lượng 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 để gán 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ã đó để chỉ định cho một quảng cáo.
    // Insert the placement.
    Placement result = service.Placements.Insert(placement, profileId).Execute();
    

Java

  1. Tạo đố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ị trí và kích thước cho vị trí mà bạn đã thương lượng 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 để gán 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ã đó để chỉ định cho một quảng cáo.
    // Insert the placement.
    Placement result = reporting.placements().insert(profileId, placement).execute();
    

1.199

  1. Tạo đố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ị trí và kích thước cho vị trí mà bạn đã thương lượng 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 để gán 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ã đó để chỉ định cho một quảng cáo.
    // Insert the placement.
    $result = $this->service->placements->insert(
        $values['user_profile_id'],
        $placement
    );
    

Python

  1. Tạo đố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ị trí và kích thước cho vị trí mà bạn đã thương lượng 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 để gán 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ã đó để chỉ định cho một 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 đố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ị trí và kích thước cho vị trí mà bạn đã thương lượng 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 để gán 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ã đó để chỉ định cho một 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ó tên là tải nội dung nghe nhìn lên. Mặc dù quy trình này tương tự cho 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 chuyển các thuộc tính cụ thể dưới dạng siêu dữ liệu để chúng được 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ể là loại nào hoặc được sử dụng như thế nào, đều phải chỉ định assetIdentifier. Khi chỉ định thành phần cho một mẫu quảng cáo, đối tượng này sẽ được dùng để tham chiếu trở lại thành phần đó. Các thuộc tính sau là bắt buộc:

    • Thuộc tính name sẽ là tên của tài sản trên máy chủ. Tên phải bao gồm phần mở rộng cho biết loại tệp (ví dụ: .png hoặc .gif) và sẽ hiển thị cho trình duyệt dưới dạng tên thành phần, nhưng tên này không cần phải giống với tên tệp gốc. Xin lưu ý rằng Campaign Manager 360 có thể thay đổi tên này để trở thành tên duy nhất trên máy chủ; hãy kiểm tra giá trị trả về để xem liệu tên có được thay đổi hay không.
    • Thuộc tính type giúp xác định loại tài sản. Thuộc tính này sẽ cho biết các loại mẫu quảng cáo 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 tải nhiều phần lên, truyền cả assetIdentifier và nội dung tệp như một phần của cùng một yêu cầu. Nếu thành công, hệ thống sẽ trả về một tài nguyên CreativeAsset cùng với assetIdentifier mà bạn sẽ sử dụng để chỉ định thành phần 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ể là loại nào hoặc được sử dụng như thế nào, đều phải chỉ định assetIdentifier. Khi chỉ định thành phần cho một mẫu quảng cáo, đối tượng này sẽ được dùng để tham chiếu trở lại thành phần đó. Các thuộc tính sau là bắt buộc:

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

1.199

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

    • Thuộc tính name sẽ là tên của tài sản trên máy chủ. Tên phải bao gồm phần mở rộng cho biết loại tệp (ví dụ: .png hoặc .gif) và sẽ hiển thị cho trình duyệt dưới dạng tên thành phần, nhưng tên này không cần phải giống với tên tệp gốc. Xin lưu ý rằng Campaign Manager 360 có thể thay đổi tên này để trở thành tên duy nhất trên máy chủ; hãy kiểm tra giá trị trả về để xem liệu tên có được thay đổi hay không.
    • Thuộc tính type giúp xác định loại tài sản. Thuộc tính này sẽ cho biết các loại mẫu quảng cáo 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 tải nhiều phần lên, truyền cả assetIdentifier và nội dung tệp như một phần của cùng một yêu cầu. Nếu thành công, hệ thống sẽ trả về một tài nguyên CreativeAsset cùng với assetIdentifier mà bạn sẽ sử dụng để chỉ định thành phần 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ể là loại nào hoặc được sử dụng như thế nào, đều phải chỉ định assetIdentifier. Khi chỉ định thành phần cho một mẫu quảng cáo, đối tượng này sẽ được dùng để tham chiếu trở lại thành phần đó. Các thuộc tính sau là bắt buộc:

    • Thuộc tính name sẽ là tên của tài sản trên máy chủ. Tên phải bao gồm phần mở rộng cho biết loại tệp (ví dụ: .png hoặc .gif) và sẽ hiển thị cho trình duyệt dưới dạng tên thành phần, nhưng tên này không cần phải giống với tên tệp gốc. Xin lưu ý rằng Campaign Manager 360 có thể thay đổi tên này để trở thành tên duy nhất trên máy chủ; hãy kiểm tra giá trị trả về để xem liệu tên có được thay đổi hay không.
    • Thuộc tính type giúp xác định loại tài sản. Thuộc tính này sẽ cho biết các loại mẫu quảng cáo 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 tải nhiều phần lên, truyền cả assetIdentifier và nội dung tệp như một phần của cùng một yêu cầu. Nếu thành công, hệ thống sẽ trả về một tài nguyên CreativeAsset cùng với assetIdentifier mà bạn sẽ sử dụng để chỉ định thành phần 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ể là loại nào hoặc được sử dụng như thế nào, đều phải chỉ định assetIdentifier. Khi chỉ định thành phần cho một mẫu quảng cáo, đối tượng này sẽ được dùng để tham chiếu trở lại thành phần đó. Các thuộc tính sau là bắt buộc:

    • Thuộc tính name sẽ là tên của tài sản trên máy chủ. Tên phải bao gồm phần mở rộng cho biết loại tệp (ví dụ: .png hoặc .gif) và sẽ hiển thị cho trình duyệt dưới dạng tên thành phần, nhưng tên này không cần phải giống với tên tệp gốc. Xin lưu ý rằng Campaign Manager 360 có thể thay đổi tên này để trở thành tên duy nhất trên máy chủ; hãy kiểm tra giá trị trả về để xem liệu tên có được thay đổi hay không.
    • Thuộc tính type giúp xác định loại tài sản. Thuộc tính này sẽ cho biết các loại mẫu quảng cáo 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 tải nhiều phần lên, truyền cả assetIdentifier và nội dung tệp như một phần của cùng một yêu cầu. Nếu thành công, hệ thống sẽ trả về một tài nguyên CreativeAsset cùng với assetIdentifier mà bạn sẽ sử dụng để chỉ định thành phần 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 gói một thành phần hiện có. Tuỳ thuộc vào cách bạn sử dụng các mẫu quảng cáo trên trang lưu trữ, bạn có thể tạo đối tượng Creative của các loại mẫu quảng cáo khác nhau. Hãy xem tài liệu tham khảo để xác định loại hình phù hợp với bạn.

Ví dụ sau minh hoạ cách tạo một 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 loại và số lượng thành phần khác nhau. Hãy xem bài viết Tải thành phần lên để biết chi tiết. Mỗi lần tải thành công một thành phần lên, bạn sẽ nhận được phản hồi assetIdenfitier; bạn sẽ sử dụng tên và loại tệp được lưu trữ để tham chiếu đến các thành phần này trong mẫu quảng cáo của mình thay vì mã nhận dạng truyền thống.
  2. Tạo một mẫu quảng cáo và chỉ định giá trị thích hợp. Tạo thực thể cho Creative và đặt type phù hợp; bạn không thể thay đổi loại đối tượng Creative sau khi lưu. Hãy chỉ định các thành phần theo AssetIdentifierrole tương ứ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ã nhận dạng nhà quảng cáo để liên kết 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ã 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 loại và số lượng thành phần khác nhau. Hãy xem bài viết Tải thành phần lên để biết chi tiết. Mỗi lần tải thành công một thành phần lên, bạn sẽ nhận được phản hồi assetIdenfitier; bạn sẽ sử dụng tên và loại tệp được lưu trữ để tham chiếu đến các thành phần này trong mẫu quảng cáo của mình thay vì mã nhận dạng truyền thống.
  2. Tạo một mẫu quảng cáo và chỉ định giá trị thích hợp. Tạo thực thể cho Creative và đặt type phù hợp; bạn không thể thay đổi loại đối tượng Creative sau khi lưu. Hãy chỉ định các thành phần theo AssetIdentifierrole tương ứ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ã nhận dạng nhà quảng cáo để liên kết 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ã 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();
    

1.199

  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 loại và số lượng thành phần khác nhau. Hãy xem bài viết Tải thành phần lên để biết chi tiết. Mỗi lần tải thành công một thành phần lên, bạn sẽ nhận được phản hồi assetIdenfitier; bạn sẽ sử dụng tên và loại tệp được lưu trữ để tham chiếu đến các thành phần này trong mẫu quảng cáo của mình thay vì mã nhận dạng truyền thống.
  2. Tạo một mẫu quảng cáo và chỉ định giá trị thích hợp. Tạo thực thể cho Creative và đặt type phù hợp; bạn không thể thay đổi loại đối tượng Creative sau khi lưu. Hãy chỉ định các thành phần theo AssetIdentifierrole tương ứ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ã nhận dạng nhà quảng cáo để liên kết 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ã 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 loại và số lượng thành phần khác nhau. Hãy xem bài viết Tải thành phần lên để biết chi tiết. Mỗi lần tải thành công một thành phần lên, bạn sẽ nhận được phản hồi assetIdenfitier; bạn sẽ sử dụng tên và loại tệp được lưu trữ để tham chiếu đến các thành phần này trong mẫu quảng cáo của mình thay vì mã nhận dạng truyền thống.
  2. Tạo một mẫu quảng cáo và chỉ định giá trị thích hợp. Tạo thực thể cho Creative và đặt type phù hợp; bạn không thể thay đổi loại đối tượng Creative sau khi lưu. Hãy chỉ định các thành phần theo AssetIdentifierrole tương ứ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ã nhận dạng nhà quảng cáo để liên kết 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ã 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 loại và số lượng thành phần khác nhau. Hãy xem bài viết Tải thành phần lên để biết chi tiết. Mỗi lần tải thành công một thành phần lên, bạn sẽ nhận được phản hồi assetIdenfitier; bạn sẽ sử dụng tên và loại tệp được lưu trữ để tham chiếu đến các thành phần này trong mẫu quảng cáo của mình thay vì mã nhận dạng truyền thống.
  2. Tạo một mẫu quảng cáo và chỉ định giá trị thích hợp. Tạo thực thể cho Creative và đặt type phù hợp; bạn không thể thay đổi loại đối tượng Creative sau khi lưu. Hãy chỉ định các thành phần theo AssetIdentifierrole tương ứ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ã nhận dạng nhà quảng cáo để liên kết 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ã 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à đường liên kết giữa CreativePlacement. Ad có thể được liên kết với một hoặc nhiều vị trí và lưu giữ một hoặc nhiều mẫu quảng cáo.

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

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 cần liên kết. Hãy 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 đối tượng CreativeRotation để lưu trữ các CreativeAssignment. Nếu bạn tạo 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 cần liên kết. Hãy 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à đặt vị trí gán 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 cần liên kết. Hãy 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 đối tượng CreativeRotation để lưu trữ các CreativeAssignment. Nếu bạn tạo 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 cần liên kết. Hãy 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à đặt vị trí gán 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();
    

1.199

  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 cần liên kết. Hãy 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 đối tượng CreativeRotation để lưu trữ các CreativeAssignment. Nếu bạn tạo 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 cần liên kết. Hãy 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à đặt vị trí gán 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 cần liên kết. Hãy 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 đối tượng CreativeRotation để lưu trữ các CreativeAssignment. Nếu bạn tạo 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 cần liên kết. Hãy 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à đặt vị trí gán 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 cần liên kết. Hãy 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 đối tượng CreativeRotation để lưu trữ các CreativeAssignment. Nếu bạn tạo 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 cần liên kết. Hãy 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à đặt vị trí gán 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 ẩn

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 Campaign 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 Campaign 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();
    

1.199

  1. Tạo và lưu Placement.
  2. Tạo và lưu Creative.
  3. Liên kết Creative với cùng Campaign 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 Campaign 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 Campaign 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ẽ hoàn toàn lưu lại bước bổ sung là tạo Ad. Lưu ý rằng bạn chỉ có thể thực hiện việc này nếu không 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 đối tượng bằng cách gọi thao tác list() do dịch vụ cung cấp giúp xác định đối tượng cần tìm, chỉ định tiêu chí không bắt buộc phù hợp với loại đối tượng đó. Vì vậy, ví dụ: để tìm kiếm đối tượng Quảng cáo, bạn sẽ gọi ads.list(). Tiêu chí không bắt buộc hiển thị một tập hợp các thuộc tính phù hợp với đối tượng đó; hãy điền số lượng thuộc tính mà bạn muốn tìm kiếm. Tìm kiếm sẽ chỉ trả lại các đối tượng đáp ứng tất cả tiêu chí của bạn; bạn không thể thực hiện tìm kiếm khớp với bất kỳ tiêu chí nào. Các 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 tham số fields. Thao tác này sẽ hướng dẫn máy chủ chỉ trả về các trường bạn chỉ định, thay vì toàn bộ tài nguyên đại diện. Bạn có thể xem thêm thông tin về chủ đề này trong hướng dẫn Mẹo về hiệu suất.

Paging

Đôi khi, bạn không nên truy xuất tất cả kết quả cho yêu cầu list(). Ví dụ: bạn chỉ quan tâm đến 10 Quảng cáo mới nhất trong một nhóm hàng nghìn Quảng cáo. Để khắc phục vấn đề 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 quy trình phân trang.

Các phương thức hỗ trợ phân trang trả về các tập hợp con của kết quả trong các 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 qua 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));

1.199

$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à các thẻ HTML được nhúng trong một trang, được dùng để theo dõi hành động của người dùng (ví dụ: mua hàng) trong trang web. Để tạo thẻ Floodlight, bạn cần có một FloodlightActivity thuộc về 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 rồi gán cho hoạt động đó 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ẻ cho quản trị viên 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 rồi gán cho hoạt động đó 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ẻ cho quản trị viên 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();
    

1.199

  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 rồi gán cho hoạt động đó 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ẻ cho quản trị viên 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 rồi gán cho hoạt động đó 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ẻ cho quản trị viên 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 rồi gán cho hoạt động đó 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ẻ cho quản trị viên 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 tới placements.generatetags(), chỉ định một tập hợp 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();

1.199

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