Có thể bỏ qua

Yêu cầu và hiển thị quảng cáo có thể bỏ qua bằng SDK CAF DAI là một nhiệm vụ phức tạp, vì yêu cầu xác định xem việc kết hợp người gửi và người nhận có sử dụng có khả năng hiển thị và tương tác với nút bỏ qua hay không.

SDK sẽ tự động cố gắng hết sức để phát hiện xem người nhận hiện tại có khả năng hiển thị và tương tác trực tiếp với nút bỏ qua hay không. Tuy nhiên, nhà xuất bản cần xác định xem có người gửi đính kèm nào có thể hiển thị quảng cáo có thể bỏ qua hay không, bằng cách bật/tắt thuộc tính imaRequestData.senderCanSkip.

Trong tất cả các mẫu mẫu cho SDK CAF DAI, sendCanSkip được chuyển trực tiếp từ người gửi trong khuôn khổ đối tượng nội dung đa phương tiện. Đây là cách triển khai được đơn giản hoá có chủ đích hoạt động hiệu quả cho một người gửi, nhưng trong các ứng dụng thực tế, bộ thu CAF có thể được đính kèm vào nhiều ứng dụng của người gửi và người gửi xếp hàng tệp phương tiện có thể không còn được kết nối khi đối tượng đa phương tiện đó được tải và yêu cầu luồng được thực hiện.

Một bộ thu nâng cao hơn có thể theo dõi loại người gửi được liên kết nào hỗ trợ bỏ qua và người gửi nào không hỗ trợ bỏ qua và sẽ kiểm tra tại thời điểm tải để xem liệu người gửi có thể bỏ qua hiện có được đính kèm vào người nhận hay không.

Ví dụ (người gửi đơn):

...

    let getStreamRequest = (request) => {
      const imaRequestData = request.media.customData;
      let streamRequest = null;
      if (imaRequestData.assetKey) {
        // Live stream
        streamRequest = new google.ima.cast.dai.api.LiveStreamRequest();
        streamRequest.assetKey = imaRequestData.assetKey;
      } else if (imaRequestData.contentSourceId) {
        // VOD stream
        streamRequest = new google.ima.cast.dai.api.VODStreamRequest();
        streamRequest.contentSourceId = imaRequestData.contentSourceId;
        streamRequest.videoId = imaRequestData.videoId;
      }
      if (streamRequest && imarequestdata.ApiKey) {
        streamRequest.ApiKey = imarequestdata.ApiKey;
      }
      if (streamRequest && imarequestdata.senderCanSkip) {
        streamRequest.senderCanSkip = imaRequestData.senderCanSkip;
      }
      return streamRequest;
    };
...

Ví dụ (hỗ trợ nhiều người gửi):

...

    let getStreamRequest = (request) => {
      const imaRequestData = request.media.customData;
      let streamRequest = null;
      if (imaRequestData.assetKey) {
        // Live stream
        streamRequest = new google.ima.cast.dai.api.LiveStreamRequest();
        streamRequest.assetKey = imaRequestData.assetKey;
      } else if (imaRequestData.contentSourceId) {
        // VOD stream
        streamRequest = new google.ima.cast.dai.api.VODStreamRequest();
        streamRequest.contentSourceId = imaRequestData.contentSourceId;
        streamRequest.videoId = imaRequestData.videoId;
      }
      if (streamRequest && imarequestdata.ApiKey) {
        streamRequest.ApiKey = imarequestdata.ApiKey;
      }

      let senders = castContext.getSenders();
      let senderCanSkip = (sender) => {
        const skippableUserAgents = [
          "iOS CastSDK",
          "Android CastSDK"
        ];
        // trim user agent to just include device
        let userAgent = sender.userAgent.explode(',')[0];
        return skippableUserAgents.includes(userAgent);
      };
      if (streamRequest && senders.some(senderCanSkip)) {
        streamRequest.senderCanSkip = imarequestdata.senderCanSkip;
      }
      return streamRequest;
    };

...

Cuối cùng, nhà xuất bản chịu trách nhiệm về trải nghiệm người dùng của họ. Vì tất cả người gửi có thể bỏ qua đều có thể ngắt kết nối giữa thời điểm tạo yêu cầu luồng và thời điểm phát quảng cáo, nên bạn cần đính kèm trình xử lý vào sự kiện STARTED để kiểm tra xem có thể bỏ qua quảng cáo hay không và cả người gửi và người nhận đều không thể hỗ trợ khả năng bỏ qua. Trình xử lý đó có thể tự động bỏ qua những quảng cáo như vậy nếu chúng xuất hiện. Tuy nhiên, việc triển khai nâng cao như vậy nằm ngoài phạm vi hỗ trợ của CAF DAI.

Theo mặc định, nếu trường hợp hiếm gặp này xảy ra, thì về mặt kỹ thuật, người dùng vẫn có thể bắt đầu bỏ qua bằng cách kết nối người gửi có hỗ trợ khả năng bỏ qua, sau đó nhấp vào nút bỏ qua xuất hiện.