sig
  module TargetingInfo :
    sig
      type t = {
        adsAppearOn : string;
        description : string;
        location : string;
        siteLanguage : string;
      }
      val adsAppearOn :
        (GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t, string)
        GapiLens.t
      val description :
        (GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t, string)
        GapiLens.t
      val location :
        (GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t, string)
        GapiLens.t
      val siteLanguage :
        (GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t, string)
        GapiLens.t
      val empty : GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t
      val render :
        GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t ->
        GapiJson.json_data_model ->
        GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t
    end
  type t = {
    code : string;
    id : string;
    kind : string;
    name : string;
    targetingInfo : GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t;
  }
  val code : (GapiAdsenseV1_1Model.CustomChannel.t, string) GapiLens.t
  val id : (GapiAdsenseV1_1Model.CustomChannel.t, string) GapiLens.t
  val kind : (GapiAdsenseV1_1Model.CustomChannel.t, string) GapiLens.t
  val name : (GapiAdsenseV1_1Model.CustomChannel.t, string) GapiLens.t
  val targetingInfo :
    (GapiAdsenseV1_1Model.CustomChannel.t,
     GapiAdsenseV1_1Model.CustomChannel.TargetingInfo.t)
    GapiLens.t
  val empty : GapiAdsenseV1_1Model.CustomChannel.t
  val render :
    GapiAdsenseV1_1Model.CustomChannel.t -> GapiJson.json_data_model list
  val parse :
    GapiAdsenseV1_1Model.CustomChannel.t ->
    GapiJson.json_data_model -> GapiAdsenseV1_1Model.CustomChannel.t
  val to_data_model :
    GapiAdsenseV1_1Model.CustomChannel.t -> GapiJson.json_data_model
  val of_data_model :
    GapiJson.json_data_model -> GapiAdsenseV1_1Model.CustomChannel.t
end