UNPKG

google-ads-api-client

Version:

A friendly and exhaustive client to the google-ads-api, code generated directly from google's published protobuf schema.

1,432 lines 88.7 kB
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AudienceInsightsService = exports.AudienceCompositionAttribute = exports.AudienceCompositionMetrics = exports.AudienceCompositionAttributeCluster = exports.AudienceCompositionSection = exports.InsightsAudienceAttributeGroup = exports.InsightsAudience = exports.DynamicLineupAttributeMetadata = exports.YouTubeChannelAttributeMetadata = exports.AudienceInsightsAttributeMetadata = exports.BasicInsightsAudience = exports.AudienceInsightsDynamicLineup = exports.AudienceInsightsCategory = exports.AudienceInsightsEntity = exports.AudienceInsightsTopic = exports.AudienceInsightsAttribute = exports.ListAudienceInsightsAttributesResponse = exports.ListAudienceInsightsAttributesRequest = exports.GenerateAudienceCompositionInsightsResponse = exports.GenerateAudienceCompositionInsightsRequest = exports.GenerateInsightsFinderReportResponse = exports.GenerateInsightsFinderReportRequest = void 0;
// @generated by protobuf-ts 2.8.1
// @generated from protobuf file "ads/services/audience_insights_service.proto" (package "google.ads.googleads.v11.services", syntax proto3)
// tslint:disable
//
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
const runtime_rpc_1 = require("@protobuf-ts/runtime-rpc");
const runtime_1 = require("@protobuf-ts/runtime");
const runtime_2 = require("@protobuf-ts/runtime");
const runtime_3 = require("@protobuf-ts/runtime");
const runtime_4 = require("@protobuf-ts/runtime");
const runtime_5 = require("@protobuf-ts/runtime");
const criteria_1 = require("../common/criteria");
const criteria_2 = require("../common/criteria");
const criteria_3 = require("../common/criteria");
const criteria_4 = require("../common/criteria");
const criteria_5 = require("../common/criteria");
const criteria_6 = require("../common/criteria");
const criteria_7 = require("../common/criteria");
const audience_insights_dimension_1 = require("../enums/audience_insights_dimension");
// @generated message type with reflection information, may provide speed optimized methods
class GenerateInsightsFinderReportRequest$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.GenerateInsightsFinderReportRequest", [
            { no: 1, name: "customer_id", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "google.api.field_behavior": ["REQUIRED"] } },
            { no: 2, name: "baseline_audience", kind: "message", T: () => exports.BasicInsightsAudience, options: { "google.api.field_behavior": ["REQUIRED"] } },
            { no: 3, name: "specific_audience", kind: "message", T: () => exports.BasicInsightsAudience, options: { "google.api.field_behavior": ["REQUIRED"] } },
            { no: 4, name: "customer_insights_group", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value) {
        const message = { customerId: "", customerInsightsGroup: "" };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string customer_id */ 1:
                    message.customerId = reader.string();
                    break;
                case /* google.ads.googleads.v11.services.BasicInsightsAudience baseline_audience */ 2:
                    message.baselineAudience = exports.BasicInsightsAudience.internalBinaryRead(reader, reader.uint32(), options, message.baselineAudience);
                    break;
                case /* google.ads.googleads.v11.services.BasicInsightsAudience specific_audience */ 3:
                    message.specificAudience = exports.BasicInsightsAudience.internalBinaryRead(reader, reader.uint32(), options, message.specificAudience);
                    break;
                case /* string customer_insights_group */ 4:
                    message.customerInsightsGroup = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* string customer_id = 1; */
        if (message.customerId !== "")
            writer.tag(1, runtime_1.WireType.LengthDelimited).string(message.customerId);
        /* google.ads.googleads.v11.services.BasicInsightsAudience baseline_audience = 2; */
        if (message.baselineAudience)
            exports.BasicInsightsAudience.internalBinaryWrite(message.baselineAudience, writer.tag(2, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.services.BasicInsightsAudience specific_audience = 3; */
        if (message.specificAudience)
            exports.BasicInsightsAudience.internalBinaryWrite(message.specificAudience, writer.tag(3, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* string customer_insights_group = 4; */
        if (message.customerInsightsGroup !== "")
            writer.tag(4, runtime_1.WireType.LengthDelimited).string(message.customerInsightsGroup);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.GenerateInsightsFinderReportRequest
 */
exports.GenerateInsightsFinderReportRequest = new GenerateInsightsFinderReportRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GenerateInsightsFinderReportResponse$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.GenerateInsightsFinderReportResponse", [
            { no: 1, name: "saved_report_url", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value) {
        const message = { savedReportUrl: "" };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string saved_report_url */ 1:
                    message.savedReportUrl = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* string saved_report_url = 1; */
        if (message.savedReportUrl !== "")
            writer.tag(1, runtime_1.WireType.LengthDelimited).string(message.savedReportUrl);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.GenerateInsightsFinderReportResponse
 */
exports.GenerateInsightsFinderReportResponse = new GenerateInsightsFinderReportResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GenerateAudienceCompositionInsightsRequest$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.GenerateAudienceCompositionInsightsRequest", [
            { no: 1, name: "customer_id", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "google.api.field_behavior": ["REQUIRED"] } },
            { no: 2, name: "audience", kind: "message", T: () => exports.InsightsAudience, options: { "google.api.field_behavior": ["REQUIRED"] } },
            { no: 3, name: "data_month", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "dimensions", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension", audience_insights_dimension_1.AudienceInsightsDimensionEnum_AudienceInsightsDimension], options: { "google.api.field_behavior": ["REQUIRED"] } },
            { no: 5, name: "customer_insights_group", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value) {
        const message = { customerId: "", dataMonth: "", dimensions: [], customerInsightsGroup: "" };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string customer_id */ 1:
                    message.customerId = reader.string();
                    break;
                case /* google.ads.googleads.v11.services.InsightsAudience audience */ 2:
                    message.audience = exports.InsightsAudience.internalBinaryRead(reader, reader.uint32(), options, message.audience);
                    break;
                case /* string data_month */ 3:
                    message.dataMonth = reader.string();
                    break;
                case /* repeated google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension dimensions */ 4:
                    if (wireType === runtime_1.WireType.LengthDelimited)
                        for (let e = reader.int32() + reader.pos; reader.pos < e;)
                            message.dimensions.push(reader.int32());
                    else
                        message.dimensions.push(reader.int32());
                    break;
                case /* string customer_insights_group */ 5:
                    message.customerInsightsGroup = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* string customer_id = 1; */
        if (message.customerId !== "")
            writer.tag(1, runtime_1.WireType.LengthDelimited).string(message.customerId);
        /* google.ads.googleads.v11.services.InsightsAudience audience = 2; */
        if (message.audience)
            exports.InsightsAudience.internalBinaryWrite(message.audience, writer.tag(2, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* string data_month = 3; */
        if (message.dataMonth !== "")
            writer.tag(3, runtime_1.WireType.LengthDelimited).string(message.dataMonth);
        /* repeated google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension dimensions = 4; */
        if (message.dimensions.length) {
            writer.tag(4, runtime_1.WireType.LengthDelimited).fork();
            for (let i = 0; i < message.dimensions.length; i++)
                writer.int32(message.dimensions[i]);
            writer.join();
        }
        /* string customer_insights_group = 5; */
        if (message.customerInsightsGroup !== "")
            writer.tag(5, runtime_1.WireType.LengthDelimited).string(message.customerInsightsGroup);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.GenerateAudienceCompositionInsightsRequest
 */
exports.GenerateAudienceCompositionInsightsRequest = new GenerateAudienceCompositionInsightsRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GenerateAudienceCompositionInsightsResponse$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.GenerateAudienceCompositionInsightsResponse", [
            { no: 1, name: "sections", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.AudienceCompositionSection }
        ]);
    }
    create(value) {
        const message = { sections: [] };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated google.ads.googleads.v11.services.AudienceCompositionSection sections */ 1:
                    message.sections.push(exports.AudienceCompositionSection.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* repeated google.ads.googleads.v11.services.AudienceCompositionSection sections = 1; */
        for (let i = 0; i < message.sections.length; i++)
            exports.AudienceCompositionSection.internalBinaryWrite(message.sections[i], writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.GenerateAudienceCompositionInsightsResponse
 */
exports.GenerateAudienceCompositionInsightsResponse = new GenerateAudienceCompositionInsightsResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListAudienceInsightsAttributesRequest$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.ListAudienceInsightsAttributesRequest", [
            { no: 1, name: "customer_id", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "google.api.field_behavior": ["REQUIRED"] } },
            { no: 2, name: "dimensions", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension", audience_insights_dimension_1.AudienceInsightsDimensionEnum_AudienceInsightsDimension], options: { "google.api.field_behavior": ["REQUIRED"] } },
            { no: 3, name: "query_text", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "google.api.field_behavior": ["REQUIRED"] } },
            { no: 4, name: "customer_insights_group", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value) {
        const message = { customerId: "", dimensions: [], queryText: "", customerInsightsGroup: "" };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string customer_id */ 1:
                    message.customerId = reader.string();
                    break;
                case /* repeated google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension dimensions */ 2:
                    if (wireType === runtime_1.WireType.LengthDelimited)
                        for (let e = reader.int32() + reader.pos; reader.pos < e;)
                            message.dimensions.push(reader.int32());
                    else
                        message.dimensions.push(reader.int32());
                    break;
                case /* string query_text */ 3:
                    message.queryText = reader.string();
                    break;
                case /* string customer_insights_group */ 4:
                    message.customerInsightsGroup = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* string customer_id = 1; */
        if (message.customerId !== "")
            writer.tag(1, runtime_1.WireType.LengthDelimited).string(message.customerId);
        /* repeated google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension dimensions = 2; */
        if (message.dimensions.length) {
            writer.tag(2, runtime_1.WireType.LengthDelimited).fork();
            for (let i = 0; i < message.dimensions.length; i++)
                writer.int32(message.dimensions[i]);
            writer.join();
        }
        /* string query_text = 3; */
        if (message.queryText !== "")
            writer.tag(3, runtime_1.WireType.LengthDelimited).string(message.queryText);
        /* string customer_insights_group = 4; */
        if (message.customerInsightsGroup !== "")
            writer.tag(4, runtime_1.WireType.LengthDelimited).string(message.customerInsightsGroup);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.ListAudienceInsightsAttributesRequest
 */
exports.ListAudienceInsightsAttributesRequest = new ListAudienceInsightsAttributesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListAudienceInsightsAttributesResponse$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.ListAudienceInsightsAttributesResponse", [
            { no: 1, name: "attributes", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.AudienceInsightsAttributeMetadata }
        ]);
    }
    create(value) {
        const message = { attributes: [] };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated google.ads.googleads.v11.services.AudienceInsightsAttributeMetadata attributes */ 1:
                    message.attributes.push(exports.AudienceInsightsAttributeMetadata.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* repeated google.ads.googleads.v11.services.AudienceInsightsAttributeMetadata attributes = 1; */
        for (let i = 0; i < message.attributes.length; i++)
            exports.AudienceInsightsAttributeMetadata.internalBinaryWrite(message.attributes[i], writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.ListAudienceInsightsAttributesResponse
 */
exports.ListAudienceInsightsAttributesResponse = new ListAudienceInsightsAttributesResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AudienceInsightsAttribute$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.AudienceInsightsAttribute", [
            { no: 1, name: "age_range", kind: "message", oneof: "attribute", T: () => criteria_7.AgeRangeInfo },
            { no: 2, name: "gender", kind: "message", oneof: "attribute", T: () => criteria_6.GenderInfo },
            { no: 3, name: "location", kind: "message", oneof: "attribute", T: () => criteria_5.LocationInfo },
            { no: 4, name: "user_interest", kind: "message", oneof: "attribute", T: () => criteria_4.UserInterestInfo },
            { no: 5, name: "entity", kind: "message", oneof: "attribute", T: () => exports.AudienceInsightsEntity },
            { no: 6, name: "category", kind: "message", oneof: "attribute", T: () => exports.AudienceInsightsCategory },
            { no: 7, name: "dynamic_lineup", kind: "message", oneof: "attribute", T: () => exports.AudienceInsightsDynamicLineup },
            { no: 8, name: "parental_status", kind: "message", oneof: "attribute", T: () => criteria_3.ParentalStatusInfo },
            { no: 9, name: "income_range", kind: "message", oneof: "attribute", T: () => criteria_2.IncomeRangeInfo },
            { no: 10, name: "youtube_channel", kind: "message", oneof: "attribute", T: () => criteria_1.YouTubeChannelInfo }
        ]);
    }
    create(value) {
        const message = { attribute: { oneofKind: undefined } };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* google.ads.googleads.v11.common.AgeRangeInfo age_range */ 1:
                    message.attribute = {
                        oneofKind: "ageRange",
                        ageRange: criteria_7.AgeRangeInfo.internalBinaryRead(reader, reader.uint32(), options, message.attribute.ageRange)
                    };
                    break;
                case /* google.ads.googleads.v11.common.GenderInfo gender */ 2:
                    message.attribute = {
                        oneofKind: "gender",
                        gender: criteria_6.GenderInfo.internalBinaryRead(reader, reader.uint32(), options, message.attribute.gender)
                    };
                    break;
                case /* google.ads.googleads.v11.common.LocationInfo location */ 3:
                    message.attribute = {
                        oneofKind: "location",
                        location: criteria_5.LocationInfo.internalBinaryRead(reader, reader.uint32(), options, message.attribute.location)
                    };
                    break;
                case /* google.ads.googleads.v11.common.UserInterestInfo user_interest */ 4:
                    message.attribute = {
                        oneofKind: "userInterest",
                        userInterest: criteria_4.UserInterestInfo.internalBinaryRead(reader, reader.uint32(), options, message.attribute.userInterest)
                    };
                    break;
                case /* google.ads.googleads.v11.services.AudienceInsightsEntity entity */ 5:
                    message.attribute = {
                        oneofKind: "entity",
                        entity: exports.AudienceInsightsEntity.internalBinaryRead(reader, reader.uint32(), options, message.attribute.entity)
                    };
                    break;
                case /* google.ads.googleads.v11.services.AudienceInsightsCategory category */ 6:
                    message.attribute = {
                        oneofKind: "category",
                        category: exports.AudienceInsightsCategory.internalBinaryRead(reader, reader.uint32(), options, message.attribute.category)
                    };
                    break;
                case /* google.ads.googleads.v11.services.AudienceInsightsDynamicLineup dynamic_lineup */ 7:
                    message.attribute = {
                        oneofKind: "dynamicLineup",
                        dynamicLineup: exports.AudienceInsightsDynamicLineup.internalBinaryRead(reader, reader.uint32(), options, message.attribute.dynamicLineup)
                    };
                    break;
                case /* google.ads.googleads.v11.common.ParentalStatusInfo parental_status */ 8:
                    message.attribute = {
                        oneofKind: "parentalStatus",
                        parentalStatus: criteria_3.ParentalStatusInfo.internalBinaryRead(reader, reader.uint32(), options, message.attribute.parentalStatus)
                    };
                    break;
                case /* google.ads.googleads.v11.common.IncomeRangeInfo income_range */ 9:
                    message.attribute = {
                        oneofKind: "incomeRange",
                        incomeRange: criteria_2.IncomeRangeInfo.internalBinaryRead(reader, reader.uint32(), options, message.attribute.incomeRange)
                    };
                    break;
                case /* google.ads.googleads.v11.common.YouTubeChannelInfo youtube_channel */ 10:
                    message.attribute = {
                        oneofKind: "youtubeChannel",
                        youtubeChannel: criteria_1.YouTubeChannelInfo.internalBinaryRead(reader, reader.uint32(), options, message.attribute.youtubeChannel)
                    };
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* google.ads.googleads.v11.common.AgeRangeInfo age_range = 1; */
        if (message.attribute.oneofKind === "ageRange")
            criteria_7.AgeRangeInfo.internalBinaryWrite(message.attribute.ageRange, writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.common.GenderInfo gender = 2; */
        if (message.attribute.oneofKind === "gender")
            criteria_6.GenderInfo.internalBinaryWrite(message.attribute.gender, writer.tag(2, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.common.LocationInfo location = 3; */
        if (message.attribute.oneofKind === "location")
            criteria_5.LocationInfo.internalBinaryWrite(message.attribute.location, writer.tag(3, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.common.UserInterestInfo user_interest = 4; */
        if (message.attribute.oneofKind === "userInterest")
            criteria_4.UserInterestInfo.internalBinaryWrite(message.attribute.userInterest, writer.tag(4, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.services.AudienceInsightsEntity entity = 5; */
        if (message.attribute.oneofKind === "entity")
            exports.AudienceInsightsEntity.internalBinaryWrite(message.attribute.entity, writer.tag(5, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.services.AudienceInsightsCategory category = 6; */
        if (message.attribute.oneofKind === "category")
            exports.AudienceInsightsCategory.internalBinaryWrite(message.attribute.category, writer.tag(6, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.services.AudienceInsightsDynamicLineup dynamic_lineup = 7; */
        if (message.attribute.oneofKind === "dynamicLineup")
            exports.AudienceInsightsDynamicLineup.internalBinaryWrite(message.attribute.dynamicLineup, writer.tag(7, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.common.ParentalStatusInfo parental_status = 8; */
        if (message.attribute.oneofKind === "parentalStatus")
            criteria_3.ParentalStatusInfo.internalBinaryWrite(message.attribute.parentalStatus, writer.tag(8, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.common.IncomeRangeInfo income_range = 9; */
        if (message.attribute.oneofKind === "incomeRange")
            criteria_2.IncomeRangeInfo.internalBinaryWrite(message.attribute.incomeRange, writer.tag(9, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.common.YouTubeChannelInfo youtube_channel = 10; */
        if (message.attribute.oneofKind === "youtubeChannel")
            criteria_1.YouTubeChannelInfo.internalBinaryWrite(message.attribute.youtubeChannel, writer.tag(10, runtime_1.WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.AudienceInsightsAttribute
 */
exports.AudienceInsightsAttribute = new AudienceInsightsAttribute$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AudienceInsightsTopic$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.AudienceInsightsTopic", [
            { no: 1, name: "entity", kind: "message", oneof: "topic", T: () => exports.AudienceInsightsEntity },
            { no: 2, name: "category", kind: "message", oneof: "topic", T: () => exports.AudienceInsightsCategory }
        ]);
    }
    create(value) {
        const message = { topic: { oneofKind: undefined } };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* google.ads.googleads.v11.services.AudienceInsightsEntity entity */ 1:
                    message.topic = {
                        oneofKind: "entity",
                        entity: exports.AudienceInsightsEntity.internalBinaryRead(reader, reader.uint32(), options, message.topic.entity)
                    };
                    break;
                case /* google.ads.googleads.v11.services.AudienceInsightsCategory category */ 2:
                    message.topic = {
                        oneofKind: "category",
                        category: exports.AudienceInsightsCategory.internalBinaryRead(reader, reader.uint32(), options, message.topic.category)
                    };
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* google.ads.googleads.v11.services.AudienceInsightsEntity entity = 1; */
        if (message.topic.oneofKind === "entity")
            exports.AudienceInsightsEntity.internalBinaryWrite(message.topic.entity, writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.services.AudienceInsightsCategory category = 2; */
        if (message.topic.oneofKind === "category")
            exports.AudienceInsightsCategory.internalBinaryWrite(message.topic.category, writer.tag(2, runtime_1.WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.AudienceInsightsTopic
 */
exports.AudienceInsightsTopic = new AudienceInsightsTopic$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AudienceInsightsEntity$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.AudienceInsightsEntity", [
            { no: 1, name: "knowledge_graph_machine_id", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "google.api.field_behavior": ["REQUIRED"] } }
        ]);
    }
    create(value) {
        const message = { knowledgeGraphMachineId: "" };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string knowledge_graph_machine_id */ 1:
                    message.knowledgeGraphMachineId = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* string knowledge_graph_machine_id = 1; */
        if (message.knowledgeGraphMachineId !== "")
            writer.tag(1, runtime_1.WireType.LengthDelimited).string(message.knowledgeGraphMachineId);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.AudienceInsightsEntity
 */
exports.AudienceInsightsEntity = new AudienceInsightsEntity$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AudienceInsightsCategory$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.AudienceInsightsCategory", [
            { no: 1, name: "category_id", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "google.api.field_behavior": ["REQUIRED"] } }
        ]);
    }
    create(value) {
        const message = { categoryId: "" };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string category_id */ 1:
                    message.categoryId = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* string category_id = 1; */
        if (message.categoryId !== "")
            writer.tag(1, runtime_1.WireType.LengthDelimited).string(message.categoryId);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.AudienceInsightsCategory
 */
exports.AudienceInsightsCategory = new AudienceInsightsCategory$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AudienceInsightsDynamicLineup$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.AudienceInsightsDynamicLineup", [
            { no: 1, name: "dynamic_lineup_id", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "google.api.field_behavior": ["REQUIRED"] } }
        ]);
    }
    create(value) {
        const message = { dynamicLineupId: "" };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string dynamic_lineup_id */ 1:
                    message.dynamicLineupId = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* string dynamic_lineup_id = 1; */
        if (message.dynamicLineupId !== "")
            writer.tag(1, runtime_1.WireType.LengthDelimited).string(message.dynamicLineupId);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.AudienceInsightsDynamicLineup
 */
exports.AudienceInsightsDynamicLineup = new AudienceInsightsDynamicLineup$Type();
// @generated message type with reflection information, may provide speed optimized methods
class BasicInsightsAudience$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.BasicInsightsAudience", [
            { no: 1, name: "country_location", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => criteria_5.LocationInfo, options: { "google.api.field_behavior": ["REQUIRED"] } },
            { no: 2, name: "sub_country_locations", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => criteria_5.LocationInfo },
            { no: 3, name: "gender", kind: "message", T: () => criteria_6.GenderInfo },
            { no: 4, name: "age_ranges", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => criteria_7.AgeRangeInfo },
            { no: 5, name: "user_interests", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => criteria_4.UserInterestInfo },
            { no: 6, name: "topics", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.AudienceInsightsTopic }
        ]);
    }
    create(value) {
        const message = { countryLocation: [], subCountryLocations: [], ageRanges: [], userInterests: [], topics: [] };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated google.ads.googleads.v11.common.LocationInfo country_location */ 1:
                    message.countryLocation.push(criteria_5.LocationInfo.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated google.ads.googleads.v11.common.LocationInfo sub_country_locations */ 2:
                    message.subCountryLocations.push(criteria_5.LocationInfo.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* google.ads.googleads.v11.common.GenderInfo gender */ 3:
                    message.gender = criteria_6.GenderInfo.internalBinaryRead(reader, reader.uint32(), options, message.gender);
                    break;
                case /* repeated google.ads.googleads.v11.common.AgeRangeInfo age_ranges */ 4:
                    message.ageRanges.push(criteria_7.AgeRangeInfo.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated google.ads.googleads.v11.common.UserInterestInfo user_interests */ 5:
                    message.userInterests.push(criteria_4.UserInterestInfo.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated google.ads.googleads.v11.services.AudienceInsightsTopic topics */ 6:
                    message.topics.push(exports.AudienceInsightsTopic.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* repeated google.ads.googleads.v11.common.LocationInfo country_location = 1; */
        for (let i = 0; i < message.countryLocation.length; i++)
            criteria_5.LocationInfo.internalBinaryWrite(message.countryLocation[i], writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* repeated google.ads.googleads.v11.common.LocationInfo sub_country_locations = 2; */
        for (let i = 0; i < message.subCountryLocations.length; i++)
            criteria_5.LocationInfo.internalBinaryWrite(message.subCountryLocations[i], writer.tag(2, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.common.GenderInfo gender = 3; */
        if (message.gender)
            criteria_6.GenderInfo.internalBinaryWrite(message.gender, writer.tag(3, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* repeated google.ads.googleads.v11.common.AgeRangeInfo age_ranges = 4; */
        for (let i = 0; i < message.ageRanges.length; i++)
            criteria_7.AgeRangeInfo.internalBinaryWrite(message.ageRanges[i], writer.tag(4, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* repeated google.ads.googleads.v11.common.UserInterestInfo user_interests = 5; */
        for (let i = 0; i < message.userInterests.length; i++)
            criteria_4.UserInterestInfo.internalBinaryWrite(message.userInterests[i], writer.tag(5, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* repeated google.ads.googleads.v11.services.AudienceInsightsTopic topics = 6; */
        for (let i = 0; i < message.topics.length; i++)
            exports.AudienceInsightsTopic.internalBinaryWrite(message.topics[i], writer.tag(6, runtime_1.WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.BasicInsightsAudience
 */
exports.BasicInsightsAudience = new BasicInsightsAudience$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AudienceInsightsAttributeMetadata$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.AudienceInsightsAttributeMetadata", [
            { no: 1, name: "dimension", kind: "enum", T: () => ["google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension", audience_insights_dimension_1.AudienceInsightsDimensionEnum_AudienceInsightsDimension] },
            { no: 2, name: "attribute", kind: "message", T: () => exports.AudienceInsightsAttribute },
            { no: 3, name: "display_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "score", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ },
            { no: 5, name: "display_info", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
            { no: 6, name: "youtube_channel_metadata", kind: "message", oneof: "dimensionMetadata", T: () => exports.YouTubeChannelAttributeMetadata },
            { no: 7, name: "dynamic_attribute_metadata", kind: "message", oneof: "dimensionMetadata", T: () => exports.DynamicLineupAttributeMetadata }
        ]);
    }
    create(value) {
        const message = { dimension: 0, displayName: "", score: 0, displayInfo: "", dimensionMetadata: { oneofKind: undefined } };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension dimension */ 1:
                    message.dimension = reader.int32();
                    break;
                case /* google.ads.googleads.v11.services.AudienceInsightsAttribute attribute */ 2:
                    message.attribute = exports.AudienceInsightsAttribute.internalBinaryRead(reader, reader.uint32(), options, message.attribute);
                    break;
                case /* string display_name */ 3:
                    message.displayName = reader.string();
                    break;
                case /* double score */ 4:
                    message.score = reader.double();
                    break;
                case /* string display_info */ 5:
                    message.displayInfo = reader.string();
                    break;
                case /* google.ads.googleads.v11.services.YouTubeChannelAttributeMetadata youtube_channel_metadata */ 6:
                    message.dimensionMetadata = {
                        oneofKind: "youtubeChannelMetadata",
                        youtubeChannelMetadata: exports.YouTubeChannelAttributeMetadata.internalBinaryRead(reader, reader.uint32(), options, message.dimensionMetadata.youtubeChannelMetadata)
                    };
                    break;
                case /* google.ads.googleads.v11.services.DynamicLineupAttributeMetadata dynamic_attribute_metadata */ 7:
                    message.dimensionMetadata = {
                        oneofKind: "dynamicAttributeMetadata",
                        dynamicAttributeMetadata: exports.DynamicLineupAttributeMetadata.internalBinaryRead(reader, reader.uint32(), options, message.dimensionMetadata.dynamicAttributeMetadata)
                    };
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension dimension = 1; */
        if (message.dimension !== 0)
            writer.tag(1, runtime_1.WireType.Varint).int32(message.dimension);
        /* google.ads.googleads.v11.services.AudienceInsightsAttribute attribute = 2; */
        if (message.attribute)
            exports.AudienceInsightsAttribute.internalBinaryWrite(message.attribute, writer.tag(2, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* string display_name = 3; */
        if (message.displayName !== "")
            writer.tag(3, runtime_1.WireType.LengthDelimited).string(message.displayName);
        /* double score = 4; */
        if (message.score !== 0)
            writer.tag(4, runtime_1.WireType.Bit64).double(message.score);
        /* string display_info = 5; */
        if (message.displayInfo !== "")
            writer.tag(5, runtime_1.WireType.LengthDelimited).string(message.displayInfo);
        /* google.ads.googleads.v11.services.YouTubeChannelAttributeMetadata youtube_channel_metadata = 6; */
        if (message.dimensionMetadata.oneofKind === "youtubeChannelMetadata")
            exports.YouTubeChannelAttributeMetadata.internalBinaryWrite(message.dimensionMetadata.youtubeChannelMetadata, writer.tag(6, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.services.DynamicLineupAttributeMetadata dynamic_attribute_metadata = 7; */
        if (message.dimensionMetadata.oneofKind === "dynamicAttributeMetadata")
            exports.DynamicLineupAttributeMetadata.internalBinaryWrite(message.dimensionMetadata.dynamicAttributeMetadata, writer.tag(7, runtime_1.WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.AudienceInsightsAttributeMetadata
 */
exports.AudienceInsightsAttributeMetadata = new AudienceInsightsAttributeMetadata$Type();
// @generated message type with reflection information, may provide speed optimized methods
class YouTubeChannelAttributeMetadata$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.YouTubeChannelAttributeMetadata", [
            { no: 1, name: "subscriber_count", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ }
        ]);
    }
    create(value) {
        const message = { subscriberCount: 0n };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* int64 subscriber_count */ 1:
                    message.subscriberCount = reader.int64().toBigInt();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* int64 subscriber_count = 1; */
        if (message.subscriberCount !== 0n)
            writer.tag(1, runtime_1.WireType.Varint).int64(message.subscriberCount);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.YouTubeChannelAttributeMetadata
 */
exports.YouTubeChannelAttributeMetadata = new YouTubeChannelAttributeMetadata$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DynamicLineupAttributeMetadata$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.DynamicLineupAttributeMetadata", [
            { no: 1, name: "inventory_country", kind: "message", T: () => criteria_5.LocationInfo },
            { no: 2, name: "median_monthly_inventory", kind: "scalar", opt: true, T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },
            { no: 3, name: "channel_count_lower_bound", kind: "scalar", opt: true, T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },
            { no: 4, name: "channel_count_upper_bound", kind: "scalar", opt: true, T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ }
        ]);
    }
    create(value) {
        const message = {};
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* google.ads.googleads.v11.common.LocationInfo inventory_country */ 1:
                    message.inventoryCountry = criteria_5.LocationInfo.internalBinaryRead(reader, reader.uint32(), options, message.inventoryCountry);
                    break;
                case /* optional int64 median_monthly_inventory */ 2:
                    message.medianMonthlyInventory = reader.int64().toBigInt();
                    break;
                case /* optional int64 channel_count_lower_bound */ 3:
                    message.channelCountLowerBound = reader.int64().toBigInt();
                    break;
                case /* optional int64 channel_count_upper_bound */ 4:
                    message.channelCountUpperBound = reader.int64().toBigInt();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* google.ads.googleads.v11.common.LocationInfo inventory_country = 1; */
        if (message.inventoryCountry)
            criteria_5.LocationInfo.internalBinaryWrite(message.inventoryCountry, writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* optional int64 median_monthly_inventory = 2; */
        if (message.medianMonthlyInventory !== undefined)
            writer.tag(2, runtime_1.WireType.Varint).int64(message.medianMonthlyInventory);
        /* optional int64 channel_count_lower_bound = 3; */
        if (message.channelCountLowerBound !== undefined)
            writer.tag(3, runtime_1.WireType.Varint).int64(message.channelCountLowerBound);
        /* optional int64 channel_count_upper_bound = 4; */
        if (message.channelCountUpperBound !== undefined)
            writer.tag(4, runtime_1.WireType.Varint).int64(message.channelCountUpperBound);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.DynamicLineupAttributeMetadata
 */
exports.DynamicLineupAttributeMetadata = new DynamicLineupAttributeMetadata$Type();
// @generated message type with reflection information, may provide speed optimized methods
class InsightsAudience$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.InsightsAudience", [
            { no: 1, name: "country_locations", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => criteria_5.LocationInfo, options: { "google.api.field_behavior": ["REQUIRED"] } },
            { no: 2, name: "sub_country_locations", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => criteria_5.LocationInfo },
            { no: 3, name: "gender", kind: "message", T: () => criteria_6.GenderInfo },
            { no: 4, name: "age_ranges", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => criteria_7.AgeRangeInfo },
            { no: 5, name: "parental_status", kind: "message", T: () => criteria_3.ParentalStatusInfo },
            { no: 6, name: "income_ranges", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => criteria_2.IncomeRangeInfo },
            { no: 7, name: "dynamic_lineups", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.AudienceInsightsDynamicLineup },
            { no: 8, name: "topic_audience_combinations", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.InsightsAudienceAttributeGroup }
        ]);
    }
    create(value) {
        const message = { countryLocations: [], subCountryLocations: [], ageRanges: [], incomeRanges: [], dynamicLineups: [], topicAudienceCombinations: [] };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated google.ads.googleads.v11.common.LocationInfo country_locations */ 1:
                    message.countryLocations.push(criteria_5.LocationInfo.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated google.ads.googleads.v11.common.LocationInfo sub_country_locations */ 2:
                    message.subCountryLocations.push(criteria_5.LocationInfo.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* google.ads.googleads.v11.common.GenderInfo gender */ 3:
                    message.gender = criteria_6.GenderInfo.internalBinaryRead(reader, reader.uint32(), options, message.gender);
                    break;
                case /* repeated google.ads.googleads.v11.common.AgeRangeInfo age_ranges */ 4:
                    message.ageRanges.push(criteria_7.AgeRangeInfo.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* google.ads.googleads.v11.common.ParentalStatusInfo parental_status */ 5:
                    message.parentalStatus = criteria_3.ParentalStatusInfo.internalBinaryRead(reader, reader.uint32(), options, message.parentalStatus);
                    break;
                case /* repeated google.ads.googleads.v11.common.IncomeRangeInfo income_ranges */ 6:
                    message.incomeRanges.push(criteria_2.IncomeRangeInfo.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated google.ads.googleads.v11.services.AudienceInsightsDynamicLineup dynamic_lineups */ 7:
                    message.dynamicLineups.push(exports.AudienceInsightsDynamicLineup.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated google.ads.googleads.v11.services.InsightsAudienceAttributeGroup topic_audience_combinations */ 8:
                    message.topicAudienceCombinations.push(exports.InsightsAudienceAttributeGroup.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* repeated google.ads.googleads.v11.common.LocationInfo country_locations = 1; */
        for (let i = 0; i < message.countryLocations.length; i++)
            criteria_5.LocationInfo.internalBinaryWrite(message.countryLocations[i], writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* repeated google.ads.googleads.v11.common.LocationInfo sub_country_locations = 2; */
        for (let i = 0; i < message.subCountryLocations.length; i++)
            criteria_5.LocationInfo.internalBinaryWrite(message.subCountryLocations[i], writer.tag(2, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.common.GenderInfo gender = 3; */
        if (message.gender)
            criteria_6.GenderInfo.internalBinaryWrite(message.gender, writer.tag(3, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* repeated google.ads.googleads.v11.common.AgeRangeInfo age_ranges = 4; */
        for (let i = 0; i < message.ageRanges.length; i++)
            criteria_7.AgeRangeInfo.internalBinaryWrite(message.ageRanges[i], writer.tag(4, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.common.ParentalStatusInfo parental_status = 5; */
        if (message.parentalStatus)
            criteria_3.ParentalStatusInfo.internalBinaryWrite(message.parentalStatus, writer.tag(5, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* repeated google.ads.googleads.v11.common.IncomeRangeInfo income_ranges = 6; */
        for (let i = 0; i < message.incomeRanges.length; i++)
            criteria_2.IncomeRangeInfo.internalBinaryWrite(message.incomeRanges[i], writer.tag(6, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* repeated google.ads.googleads.v11.services.AudienceInsightsDynamicLineup dynamic_lineups = 7; */
        for (let i = 0; i < message.dynamicLineups.length; i++)
            exports.AudienceInsightsDynamicLineup.internalBinaryWrite(message.dynamicLineups[i], writer.tag(7, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* repeated google.ads.googleads.v11.services.InsightsAudienceAttributeGroup topic_audience_combinations = 8; */
        for (let i = 0; i < message.topicAudienceCombinations.length; i++)
            exports.InsightsAudienceAttributeGroup.internalBinaryWrite(message.topicAudienceCombinations[i], writer.tag(8, runtime_1.WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.InsightsAudience
 */
exports.InsightsAudience = new InsightsAudience$Type();
// @generated message type with reflection information, may provide speed optimized methods
class InsightsAudienceAttributeGroup$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.InsightsAudienceAttributeGroup", [
            { no: 1, name: "attributes", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.AudienceInsightsAttribute, options: { "google.api.field_behavior": ["REQUIRED"] } }
        ]);
    }
    create(value) {
        const message = { attributes: [] };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated google.ads.googleads.v11.services.AudienceInsightsAttribute attributes */ 1:
                    message.attributes.push(exports.AudienceInsightsAttribute.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* repeated google.ads.googleads.v11.services.AudienceInsightsAttribute attributes = 1; */
        for (let i = 0; i < message.attributes.length; i++)
            exports.AudienceInsightsAttribute.internalBinaryWrite(message.attributes[i], writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.InsightsAudienceAttributeGroup
 */
exports.InsightsAudienceAttributeGroup = new InsightsAudienceAttributeGroup$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AudienceCompositionSection$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.AudienceCompositionSection", [
            { no: 1, name: "dimension", kind: "enum", T: () => ["google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension", audience_insights_dimension_1.AudienceInsightsDimensionEnum_AudienceInsightsDimension] },
            { no: 3, name: "top_attributes", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.AudienceCompositionAttribute },
            { no: 4, name: "clustered_attributes", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.AudienceCompositionAttributeCluster }
        ]);
    }
    create(value) {
        const message = { dimension: 0, topAttributes: [], clusteredAttributes: [] };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension dimension */ 1:
                    message.dimension = reader.int32();
                    break;
                case /* repeated google.ads.googleads.v11.services.AudienceCompositionAttribute top_attributes */ 3:
                    message.topAttributes.push(exports.AudienceCompositionAttribute.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated google.ads.googleads.v11.services.AudienceCompositionAttributeCluster clustered_attributes */ 4:
                    message.clusteredAttributes.push(exports.AudienceCompositionAttributeCluster.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* google.ads.googleads.v11.enums.AudienceInsightsDimensionEnum.AudienceInsightsDimension dimension = 1; */
        if (message.dimension !== 0)
            writer.tag(1, runtime_1.WireType.Varint).int32(message.dimension);
        /* repeated google.ads.googleads.v11.services.AudienceCompositionAttribute top_attributes = 3; */
        for (let i = 0; i < message.topAttributes.length; i++)
            exports.AudienceCompositionAttribute.internalBinaryWrite(message.topAttributes[i], writer.tag(3, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* repeated google.ads.googleads.v11.services.AudienceCompositionAttributeCluster clustered_attributes = 4; */
        for (let i = 0; i < message.clusteredAttributes.length; i++)
            exports.AudienceCompositionAttributeCluster.internalBinaryWrite(message.clusteredAttributes[i], writer.tag(4, runtime_1.WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.AudienceCompositionSection
 */
exports.AudienceCompositionSection = new AudienceCompositionSection$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AudienceCompositionAttributeCluster$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.AudienceCompositionAttributeCluster", [
            { no: 1, name: "cluster_display_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "cluster_metrics", kind: "message", T: () => exports.AudienceCompositionMetrics },
            { no: 4, name: "attributes", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => exports.AudienceCompositionAttribute }
        ]);
    }
    create(value) {
        const message = { clusterDisplayName: "", attributes: [] };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string cluster_display_name */ 1:
                    message.clusterDisplayName = reader.string();
                    break;
                case /* google.ads.googleads.v11.services.AudienceCompositionMetrics cluster_metrics */ 3:
                    message.clusterMetrics = exports.AudienceCompositionMetrics.internalBinaryRead(reader, reader.uint32(), options, message.clusterMetrics);
                    break;
                case /* repeated google.ads.googleads.v11.services.AudienceCompositionAttribute attributes */ 4:
                    message.attributes.push(exports.AudienceCompositionAttribute.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* string cluster_display_name = 1; */
        if (message.clusterDisplayName !== "")
            writer.tag(1, runtime_1.WireType.LengthDelimited).string(message.clusterDisplayName);
        /* google.ads.googleads.v11.services.AudienceCompositionMetrics cluster_metrics = 3; */
        if (message.clusterMetrics)
            exports.AudienceCompositionMetrics.internalBinaryWrite(message.clusterMetrics, writer.tag(3, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* repeated google.ads.googleads.v11.services.AudienceCompositionAttribute attributes = 4; */
        for (let i = 0; i < message.attributes.length; i++)
            exports.AudienceCompositionAttribute.internalBinaryWrite(message.attributes[i], writer.tag(4, runtime_1.WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.AudienceCompositionAttributeCluster
 */
exports.AudienceCompositionAttributeCluster = new AudienceCompositionAttributeCluster$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AudienceCompositionMetrics$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.AudienceCompositionMetrics", [
            { no: 1, name: "baseline_audience_share", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ },
            { no: 2, name: "audience_share", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ },
            { no: 3, name: "index", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ },
            { no: 4, name: "score", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ }
        ]);
    }
    create(value) {
        const message = { baselineAudienceShare: 0, audienceShare: 0, index: 0, score: 0 };
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* double baseline_audience_share */ 1:
                    message.baselineAudienceShare = reader.double();
                    break;
                case /* double audience_share */ 2:
                    message.audienceShare = reader.double();
                    break;
                case /* double index */ 3:
                    message.index = reader.double();
                    break;
                case /* double score */ 4:
                    message.score = reader.double();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* double baseline_audience_share = 1; */
        if (message.baselineAudienceShare !== 0)
            writer.tag(1, runtime_1.WireType.Bit64).double(message.baselineAudienceShare);
        /* double audience_share = 2; */
        if (message.audienceShare !== 0)
            writer.tag(2, runtime_1.WireType.Bit64).double(message.audienceShare);
        /* double index = 3; */
        if (message.index !== 0)
            writer.tag(3, runtime_1.WireType.Bit64).double(message.index);
        /* double score = 4; */
        if (message.score !== 0)
            writer.tag(4, runtime_1.WireType.Bit64).double(message.score);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.AudienceCompositionMetrics
 */
exports.AudienceCompositionMetrics = new AudienceCompositionMetrics$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AudienceCompositionAttribute$Type extends runtime_5.MessageType {
    constructor() {
        super("google.ads.googleads.v11.services.AudienceCompositionAttribute", [
            { no: 1, name: "attribute_metadata", kind: "message", T: () => exports.AudienceInsightsAttributeMetadata },
            { no: 2, name: "metrics", kind: "message", T: () => exports.AudienceCompositionMetrics }
        ]);
    }
    create(value) {
        const message = {};
        globalThis.Object.defineProperty(message, runtime_4.MESSAGE_TYPE, { enumerable: false, value: this });
        if (value !== undefined)
            (0, runtime_3.reflectionMergePartial)(this, message, value);
        return message;
    }
    internalBinaryRead(reader, length, options, target) {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* google.ads.googleads.v11.services.AudienceInsightsAttributeMetadata attribute_metadata */ 1:
                    message.attributeMetadata = exports.AudienceInsightsAttributeMetadata.internalBinaryRead(reader, reader.uint32(), options, message.attributeMetadata);
                    break;
                case /* google.ads.googleads.v11.services.AudienceCompositionMetrics metrics */ 2:
                    message.metrics = exports.AudienceCompositionMetrics.internalBinaryRead(reader, reader.uint32(), options, message.metrics);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? runtime_2.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message, writer, options) {
        /* google.ads.googleads.v11.services.AudienceInsightsAttributeMetadata attribute_metadata = 1; */
        if (message.attributeMetadata)
            exports.AudienceInsightsAttributeMetadata.internalBinaryWrite(message.attributeMetadata, writer.tag(1, runtime_1.WireType.LengthDelimited).fork(), options).join();
        /* google.ads.googleads.v11.services.AudienceCompositionMetrics metrics = 2; */
        if (message.metrics)
            exports.AudienceCompositionMetrics.internalBinaryWrite(message.metrics, writer.tag(2, runtime_1.WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? runtime_2.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.AudienceCompositionAttribute
 */
exports.AudienceCompositionAttribute = new AudienceCompositionAttribute$Type();
/**
 * @generated ServiceType for protobuf service google.ads.googleads.v11.services.AudienceInsightsService
 */
exports.AudienceInsightsService = new runtime_rpc_1.ServiceType("google.ads.googleads.v11.services.AudienceInsightsService", [
    { name: "GenerateInsightsFinderReport", options: { "google.api.http": { post: "/v11/customers/{customer_id=*}:generateInsightsFinderReport", body: "*" }, "google.api.method_signature": ["customer_id,baseline_audience,specific_audience"] }, I: exports.GenerateInsightsFinderReportRequest, O: exports.GenerateInsightsFinderReportResponse },
    { name: "ListAudienceInsightsAttributes", options: { "google.api.http": { post: "/v11/customers/{customer_id=*}:searchAudienceInsightsAttributes", body: "*" }, "google.api.method_signature": ["customer_id,dimensions,query_text"] }, I: exports.ListAudienceInsightsAttributesRequest, O: exports.ListAudienceInsightsAttributesResponse },
    { name: "GenerateAudienceCompositionInsights", options: { "google.api.http": { post: "/v11/customers/{customer_id=*}:generateAudienceCompositionInsights", body: "*" }, "google.api.method_signature": ["customer_id,audience,dimensions"] }, I: exports.GenerateAudienceCompositionInsightsRequest, O: exports.GenerateAudienceCompositionInsightsResponse }
], { "google.api.default_host": "googleads.googleapis.com", "google.api.oauth_scopes": "https://www.googleapis.com/auth/adwords" });
//# sourceMappingURL=audience_insights_service.js.map