<?php
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/ads/googleads/v23/services/content_creator_insights_service.proto

namespace Google\Ads\GoogleAds\V23\Services;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\GPBUtil;
use Google\Protobuf\RepeatedField;

/**
 * YouTube Channel metrics.
 *
 * Generated from protobuf message <code>google.ads.googleads.v23.services.YouTubeMetrics</code>
 */
class YouTubeMetrics extends \Google\Protobuf\Internal\Message
{
    /**
     * The number of subscribers.
     *
     * Generated from protobuf field <code>int64 subscriber_count = 1;</code>
     */
    protected $subscriber_count = 0;
    /**
     * The total number of views.
     *
     * Generated from protobuf field <code>int64 views_count = 2;</code>
     */
    protected $views_count = 0;
    /**
     * The total number of videos.
     *
     * Generated from protobuf field <code>int64 video_count = 3;</code>
     */
    protected $video_count = 0;
    /**
     * The total number of likes across all videos of this channel.
     *
     * Generated from protobuf field <code>int64 likes_count = 5;</code>
     */
    protected $likes_count = 0;
    /**
     * The total number of shares across all videos of this channel.
     *
     * Generated from protobuf field <code>int64 shares_count = 6;</code>
     */
    protected $shares_count = 0;
    /**
     * The total number of comments across all videos of this channel.
     *
     * Generated from protobuf field <code>int64 comments_count = 7;</code>
     */
    protected $comments_count = 0;
    /**
     * The lifetime engagement rate of this channel. The value is computed as the
     * total number of likes, shares, and comments across all videos divided by
     * the total number of video views.
     *
     * Generated from protobuf field <code>double engagement_rate = 8;</code>
     */
    protected $engagement_rate = 0.0;
    /**
     * The average number of views per video in the last 28 days.
     *
     * Generated from protobuf field <code>double average_views_per_video = 9;</code>
     */
    protected $average_views_per_video = 0.0;
    /**
     * The average number of likes per video in the last 28 days.
     *
     * Generated from protobuf field <code>double average_likes_per_video = 10;</code>
     */
    protected $average_likes_per_video = 0.0;
    /**
     * The average number of shares per video in the last 28 days.
     *
     * Generated from protobuf field <code>double average_shares_per_video = 11;</code>
     */
    protected $average_shares_per_video = 0.0;
    /**
     * The average number of comments per video in the last 28 days.
     *
     * Generated from protobuf field <code>double average_comments_per_video = 12;</code>
     */
    protected $average_comments_per_video = 0.0;
    /**
     * The total number of views across all Shorts videos of this channel.
     *
     * Generated from protobuf field <code>int64 shorts_views_count = 13;</code>
     */
    protected $shorts_views_count = 0;
    /**
     * The total number of Shorts videos.
     *
     * Generated from protobuf field <code>int64 shorts_video_count = 14;</code>
     */
    protected $shorts_video_count = 0;
    /**
     * When true, this channel has published a Shorts video in the last 90 days.
     *
     * Generated from protobuf field <code>bool is_active_shorts_creator = 4;</code>
     */
    protected $is_active_shorts_creator = false;
    /**
     * When true, this channel has published a live stream in the last 90 days.
     *
     * Generated from protobuf field <code>bool is_active_live_stream_creator = 16;</code>
     */
    protected $is_active_live_stream_creator = false;
    /**
     * When true, this creator can be partnered with to create original branded
     * content using the Google Ads creator partnership platform, BrandConnect.
     * See https://support.google.com/google-ads/answer/13828964 for more
     * information about BrandConnect.
     *
     * Generated from protobuf field <code>bool is_brand_connect_creator = 15;</code>
     */
    protected $is_brand_connect_creator = false;
    /**
     * Partnership opportunities available for this creator.
     *
     * Generated from protobuf field <code>repeated .google.ads.googleads.v23.enums.PartnershipOpportunityEnum.PartnershipOpportunity partnership_opportunities = 17;</code>
     */
    private $partnership_opportunities;

    /**
     * Constructor.
     *
     * @param array $data {
     *                    Optional. Data for populating the Message object.
     *
     * @type int|string $subscriber_count
     *           The number of subscribers.
     * @type int|string $views_count
     *           The total number of views.
     * @type int|string $video_count
     *           The total number of videos.
     * @type int|string $likes_count
     *           The total number of likes across all videos of this channel.
     * @type int|string $shares_count
     *           The total number of shares across all videos of this channel.
     * @type int|string $comments_count
     *           The total number of comments across all videos of this channel.
     * @type float $engagement_rate
     *           The lifetime engagement rate of this channel. The value is computed as the
     *           total number of likes, shares, and comments across all videos divided by
     *           the total number of video views.
     * @type float $average_views_per_video
     *           The average number of views per video in the last 28 days.
     * @type float $average_likes_per_video
     *           The average number of likes per video in the last 28 days.
     * @type float $average_shares_per_video
     *           The average number of shares per video in the last 28 days.
     * @type float $average_comments_per_video
     *           The average number of comments per video in the last 28 days.
     * @type int|string $shorts_views_count
     *           The total number of views across all Shorts videos of this channel.
     * @type int|string $shorts_video_count
     *           The total number of Shorts videos.
     * @type bool $is_active_shorts_creator
     *           When true, this channel has published a Shorts video in the last 90 days.
     * @type bool $is_active_live_stream_creator
     *           When true, this channel has published a live stream in the last 90 days.
     * @type bool $is_brand_connect_creator
     *           When true, this creator can be partnered with to create original branded
     *           content using the Google Ads creator partnership platform, BrandConnect.
     *           See https://support.google.com/google-ads/answer/13828964 for more
     *           information about BrandConnect.
     * @type int[] $partnership_opportunities
     *           Partnership opportunities available for this creator.
     * }
     */
    public function __construct($data = null)
    {
        \GPBMetadata\Google\Ads\GoogleAds\V23\Services\ContentCreatorInsightsService::initOnce();
        parent::__construct($data);
    }

    /**
     * The number of subscribers.
     *
     * Generated from protobuf field <code>int64 subscriber_count = 1;</code>
     *
     * @return int|string
     */
    public function getSubscriberCount()
    {
        return $this->subscriber_count;
    }

    /**
     * The number of subscribers.
     *
     * Generated from protobuf field <code>int64 subscriber_count = 1;</code>
     *
     * @param  int|string $var
     * @return $this
     */
    public function setSubscriberCount($var)
    {
        GPBUtil::checkInt64($var);
        $this->subscriber_count = $var;

        return $this;
    }

    /**
     * The total number of views.
     *
     * Generated from protobuf field <code>int64 views_count = 2;</code>
     *
     * @return int|string
     */
    public function getViewsCount()
    {
        return $this->views_count;
    }

    /**
     * The total number of views.
     *
     * Generated from protobuf field <code>int64 views_count = 2;</code>
     *
     * @param  int|string $var
     * @return $this
     */
    public function setViewsCount($var)
    {
        GPBUtil::checkInt64($var);
        $this->views_count = $var;

        return $this;
    }

    /**
     * The total number of videos.
     *
     * Generated from protobuf field <code>int64 video_count = 3;</code>
     *
     * @return int|string
     */
    public function getVideoCount()
    {
        return $this->video_count;
    }

    /**
     * The total number of videos.
     *
     * Generated from protobuf field <code>int64 video_count = 3;</code>
     *
     * @param  int|string $var
     * @return $this
     */
    public function setVideoCount($var)
    {
        GPBUtil::checkInt64($var);
        $this->video_count = $var;

        return $this;
    }

    /**
     * The total number of likes across all videos of this channel.
     *
     * Generated from protobuf field <code>int64 likes_count = 5;</code>
     *
     * @return int|string
     */
    public function getLikesCount()
    {
        return $this->likes_count;
    }

    /**
     * The total number of likes across all videos of this channel.
     *
     * Generated from protobuf field <code>int64 likes_count = 5;</code>
     *
     * @param  int|string $var
     * @return $this
     */
    public function setLikesCount($var)
    {
        GPBUtil::checkInt64($var);
        $this->likes_count = $var;

        return $this;
    }

    /**
     * The total number of shares across all videos of this channel.
     *
     * Generated from protobuf field <code>int64 shares_count = 6;</code>
     *
     * @return int|string
     */
    public function getSharesCount()
    {
        return $this->shares_count;
    }

    /**
     * The total number of shares across all videos of this channel.
     *
     * Generated from protobuf field <code>int64 shares_count = 6;</code>
     *
     * @param  int|string $var
     * @return $this
     */
    public function setSharesCount($var)
    {
        GPBUtil::checkInt64($var);
        $this->shares_count = $var;

        return $this;
    }

    /**
     * The total number of comments across all videos of this channel.
     *
     * Generated from protobuf field <code>int64 comments_count = 7;</code>
     *
     * @return int|string
     */
    public function getCommentsCount()
    {
        return $this->comments_count;
    }

    /**
     * The total number of comments across all videos of this channel.
     *
     * Generated from protobuf field <code>int64 comments_count = 7;</code>
     *
     * @param  int|string $var
     * @return $this
     */
    public function setCommentsCount($var)
    {
        GPBUtil::checkInt64($var);
        $this->comments_count = $var;

        return $this;
    }

    /**
     * The lifetime engagement rate of this channel. The value is computed as the
     * total number of likes, shares, and comments across all videos divided by
     * the total number of video views.
     *
     * Generated from protobuf field <code>double engagement_rate = 8;</code>
     *
     * @return float
     */
    public function getEngagementRate()
    {
        return $this->engagement_rate;
    }

    /**
     * The lifetime engagement rate of this channel. The value is computed as the
     * total number of likes, shares, and comments across all videos divided by
     * the total number of video views.
     *
     * Generated from protobuf field <code>double engagement_rate = 8;</code>
     *
     * @param  float $var
     * @return $this
     */
    public function setEngagementRate($var)
    {
        GPBUtil::checkDouble($var);
        $this->engagement_rate = $var;

        return $this;
    }

    /**
     * The average number of views per video in the last 28 days.
     *
     * Generated from protobuf field <code>double average_views_per_video = 9;</code>
     *
     * @return float
     */
    public function getAverageViewsPerVideo()
    {
        return $this->average_views_per_video;
    }

    /**
     * The average number of views per video in the last 28 days.
     *
     * Generated from protobuf field <code>double average_views_per_video = 9;</code>
     *
     * @param  float $var
     * @return $this
     */
    public function setAverageViewsPerVideo($var)
    {
        GPBUtil::checkDouble($var);
        $this->average_views_per_video = $var;

        return $this;
    }

    /**
     * The average number of likes per video in the last 28 days.
     *
     * Generated from protobuf field <code>double average_likes_per_video = 10;</code>
     *
     * @return float
     */
    public function getAverageLikesPerVideo()
    {
        return $this->average_likes_per_video;
    }

    /**
     * The average number of likes per video in the last 28 days.
     *
     * Generated from protobuf field <code>double average_likes_per_video = 10;</code>
     *
     * @param  float $var
     * @return $this
     */
    public function setAverageLikesPerVideo($var)
    {
        GPBUtil::checkDouble($var);
        $this->average_likes_per_video = $var;

        return $this;
    }

    /**
     * The average number of shares per video in the last 28 days.
     *
     * Generated from protobuf field <code>double average_shares_per_video = 11;</code>
     *
     * @return float
     */
    public function getAverageSharesPerVideo()
    {
        return $this->average_shares_per_video;
    }

    /**
     * The average number of shares per video in the last 28 days.
     *
     * Generated from protobuf field <code>double average_shares_per_video = 11;</code>
     *
     * @param  float $var
     * @return $this
     */
    public function setAverageSharesPerVideo($var)
    {
        GPBUtil::checkDouble($var);
        $this->average_shares_per_video = $var;

        return $this;
    }

    /**
     * The average number of comments per video in the last 28 days.
     *
     * Generated from protobuf field <code>double average_comments_per_video = 12;</code>
     *
     * @return float
     */
    public function getAverageCommentsPerVideo()
    {
        return $this->average_comments_per_video;
    }

    /**
     * The average number of comments per video in the last 28 days.
     *
     * Generated from protobuf field <code>double average_comments_per_video = 12;</code>
     *
     * @param  float $var
     * @return $this
     */
    public function setAverageCommentsPerVideo($var)
    {
        GPBUtil::checkDouble($var);
        $this->average_comments_per_video = $var;

        return $this;
    }

    /**
     * The total number of views across all Shorts videos of this channel.
     *
     * Generated from protobuf field <code>int64 shorts_views_count = 13;</code>
     *
     * @return int|string
     */
    public function getShortsViewsCount()
    {
        return $this->shorts_views_count;
    }

    /**
     * The total number of views across all Shorts videos of this channel.
     *
     * Generated from protobuf field <code>int64 shorts_views_count = 13;</code>
     *
     * @param  int|string $var
     * @return $this
     */
    public function setShortsViewsCount($var)
    {
        GPBUtil::checkInt64($var);
        $this->shorts_views_count = $var;

        return $this;
    }

    /**
     * The total number of Shorts videos.
     *
     * Generated from protobuf field <code>int64 shorts_video_count = 14;</code>
     *
     * @return int|string
     */
    public function getShortsVideoCount()
    {
        return $this->shorts_video_count;
    }

    /**
     * The total number of Shorts videos.
     *
     * Generated from protobuf field <code>int64 shorts_video_count = 14;</code>
     *
     * @param  int|string $var
     * @return $this
     */
    public function setShortsVideoCount($var)
    {
        GPBUtil::checkInt64($var);
        $this->shorts_video_count = $var;

        return $this;
    }

    /**
     * When true, this channel has published a Shorts video in the last 90 days.
     *
     * Generated from protobuf field <code>bool is_active_shorts_creator = 4;</code>
     *
     * @return bool
     */
    public function getIsActiveShortsCreator()
    {
        return $this->is_active_shorts_creator;
    }

    /**
     * When true, this channel has published a Shorts video in the last 90 days.
     *
     * Generated from protobuf field <code>bool is_active_shorts_creator = 4;</code>
     *
     * @param  bool $var
     * @return $this
     */
    public function setIsActiveShortsCreator($var)
    {
        GPBUtil::checkBool($var);
        $this->is_active_shorts_creator = $var;

        return $this;
    }

    /**
     * When true, this channel has published a live stream in the last 90 days.
     *
     * Generated from protobuf field <code>bool is_active_live_stream_creator = 16;</code>
     *
     * @return bool
     */
    public function getIsActiveLiveStreamCreator()
    {
        return $this->is_active_live_stream_creator;
    }

    /**
     * When true, this channel has published a live stream in the last 90 days.
     *
     * Generated from protobuf field <code>bool is_active_live_stream_creator = 16;</code>
     *
     * @param  bool $var
     * @return $this
     */
    public function setIsActiveLiveStreamCreator($var)
    {
        GPBUtil::checkBool($var);
        $this->is_active_live_stream_creator = $var;

        return $this;
    }

    /**
     * When true, this creator can be partnered with to create original branded
     * content using the Google Ads creator partnership platform, BrandConnect.
     * See https://support.google.com/google-ads/answer/13828964 for more
     * information about BrandConnect.
     *
     * Generated from protobuf field <code>bool is_brand_connect_creator = 15;</code>
     *
     * @return bool
     */
    public function getIsBrandConnectCreator()
    {
        return $this->is_brand_connect_creator;
    }

    /**
     * When true, this creator can be partnered with to create original branded
     * content using the Google Ads creator partnership platform, BrandConnect.
     * See https://support.google.com/google-ads/answer/13828964 for more
     * information about BrandConnect.
     *
     * Generated from protobuf field <code>bool is_brand_connect_creator = 15;</code>
     *
     * @param  bool $var
     * @return $this
     */
    public function setIsBrandConnectCreator($var)
    {
        GPBUtil::checkBool($var);
        $this->is_brand_connect_creator = $var;

        return $this;
    }

    /**
     * Partnership opportunities available for this creator.
     *
     * Generated from protobuf field <code>repeated .google.ads.googleads.v23.enums.PartnershipOpportunityEnum.PartnershipOpportunity partnership_opportunities = 17;</code>
     *
     * @return RepeatedField<int>
     */
    public function getPartnershipOpportunities()
    {
        return $this->partnership_opportunities;
    }

    /**
     * Partnership opportunities available for this creator.
     *
     * Generated from protobuf field <code>repeated .google.ads.googleads.v23.enums.PartnershipOpportunityEnum.PartnershipOpportunity partnership_opportunities = 17;</code>
     *
     * @param  int[] $var
     * @return $this
     */
    public function setPartnershipOpportunities($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Ads\GoogleAds\V23\Enums\PartnershipOpportunityEnum\PartnershipOpportunity::class);
        $this->partnership_opportunities = $arr;

        return $this;
    }

}

