/
www
/
wwwroot
/
alo88.autos
/
wp-content
/
plugins
/
seo-by-rank-math-pro
/
includes
/
modules
/
analytics
/
google
/
Upload File
HOME
<?php /** * Google AdSense. * * @since 1.0.34 * @package RankMathPro * @subpackage RankMathPro\modules * @author Rank Math <support@rankmath.com> */ namespace RankMathPro\Google; use RankMath\Google\Api; use RankMath\Helpers\Security; use RankMath\Analytics\Workflow\Base; use WP_Error; defined( 'ABSPATH' ) || exit; /** * AdSense class. */ class Adsense { /** * Get adsense accounts. * * @return array */ public static function get_adsense_accounts() { $accounts = []; $response = Api::get()->http_get( 'https://adsense.googleapis.com/v2/accounts' ); if ( ! Api::get()->is_success() || isset( $response->error ) || ! isset( $response['accounts'] ) || ! is_array( $response['accounts'] ) ) { return $accounts; } foreach ( $response['accounts'] as $account ) { $accounts[ $account['name'] ] = [ 'name' => $account['displayName'], ]; } return $accounts; } /** * Query adsense data from google client api. * * @param string $start_date Start date. * @param string $end_date End date. * * @return array */ public static function get_adsense( $options = [] ) { $account_id = isset( $options['account_id'] ) ? $options['account_id'] : self::get_adsense_id(); $start_date = isset( $options['start_date'] ) ? $options['start_date'] : ''; $end_date = isset( $options['end_date'] ) ? $options['end_date'] : ''; if ( ! $account_id || ! $start_date || ! $end_date ) { return false; } $request = Security::add_query_arg_raw( [ 'startDate.year' => gmdate( 'Y', strtotime( $start_date ) ), 'startDate.month' => gmdate( 'n', strtotime( $start_date ) ), 'startDate.day' => gmdate( 'j', strtotime( $start_date ) ), 'endDate.year' => gmdate( 'Y', strtotime( $end_date ) ), 'endDate.month' => gmdate( 'n', strtotime( $end_date ) ), 'endDate.day' => gmdate( 'j', strtotime( $end_date ) ), 'dimensions' => 'DATE', 'currencyCode' => 'USD', 'metrics' => 'ESTIMATED_EARNINGS', ], 'https://adsense.googleapis.com/v2/' . $account_id . '/reports:generate' ); $workflow = 'adsense'; Api::get()->set_workflow( $workflow ); $response = Api::get()->http_get( $request ); Api::get()->log_failed_request( $response, $workflow, $start_date, func_get_args() ); if ( ! Api::get()->is_success() ) { return new WP_Error( 'adsense_api_fail', 'Google AdSense API request failed.' ); } if ( ! isset( $response['rows'] ) ) { return false; } return $response['rows']; } /** * Get adsense id. * * @return string */ public static function get_adsense_id() { static $rank_math_adsense_id; if ( is_null( $rank_math_adsense_id ) ) { $options = get_option( 'rank_math_google_analytic_options' ); $rank_math_adsense_id = ! empty( $options['adsense_id'] ) ? $options['adsense_id'] : false; } return $rank_math_adsense_id; } /** * Is adsense connected. * * @return boolean */ public static function is_adsense_connected() { $account = wp_parse_args( get_option( 'rank_math_google_analytic_options' ), [ 'adsense_id' => '' ] ); return ! empty( $account['adsense_id'] ); } }