Commit 63c6947b authored by wanqing's avatar wanqing

删除无用的

parent ab401b0f
fileFormatVersion: 2
guid: 8a5eb31a725a11344a2a6d868f6c366c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 6424fd4b648494541a9372eafd21197f
folderAsset: yes
timeCreated: 1437157376
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2018 Google, Inc.
//
// 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.
using System;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Api
{
public class AdErrorEventArgs : EventArgs
{
public string Message { get; set; }
}
}
fileFormatVersion: 2
guid: ab408097f34e94cad8a214d17bf405bc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Api
{
// Event that occurs when an ad fails to load.
public class AdFailedToLoadEventArgs : EventArgs
{
public string Message { get; set; }
}
}
fileFormatVersion: 2
guid: c1ed679d145ef4aa6beec9fdab3505fd
timeCreated: 1427838344
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Api
{
public enum NativeAdType
{
CustomTemplate
}
public class AdLoader
{
private IAdLoaderClient adLoaderClient;
private AdLoader(Builder builder)
{
this.AdUnitId = string.Copy(builder.AdUnitId);
this.CustomNativeTemplateClickHandlers =
new Dictionary<string, Action<CustomNativeTemplateAd, string>>(
builder.CustomNativeTemplateClickHandlers);
this.TemplateIds = new HashSet<string>(builder.TemplateIds);
this.AdTypes = new HashSet<NativeAdType>(builder.AdTypes);
this.adLoaderClient = GoogleMobileAdsClientFactory.BuildAdLoaderClient(this);
//Utils.CheckInitialization();
this.adLoaderClient.OnCustomNativeTemplateAdLoaded +=
delegate (object sender, CustomNativeEventArgs args)
{
this.OnCustomNativeTemplateAdLoaded(this, args);
};
this.adLoaderClient.OnAdFailedToLoad += delegate (
object sender, AdFailedToLoadEventArgs args)
{
if (this.OnAdFailedToLoad != null)
{
this.OnAdFailedToLoad(this, args);
}
};
}
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
public event EventHandler<CustomNativeEventArgs> OnCustomNativeTemplateAdLoaded;
public Dictionary<string, Action<CustomNativeTemplateAd, string>>
CustomNativeTemplateClickHandlers
{
get; private set;
}
public string AdUnitId { get; private set; }
public HashSet<NativeAdType> AdTypes { get; private set; }
public HashSet<string> TemplateIds { get; private set; }
public void LoadAd(AdRequest request)
{
this.adLoaderClient.LoadAd(request);
}
public class Builder
{
public Builder(string adUnitId)
{
this.AdUnitId = adUnitId;
this.AdTypes = new HashSet<NativeAdType>();
this.TemplateIds = new HashSet<string>();
this.CustomNativeTemplateClickHandlers =
new Dictionary<string, Action<CustomNativeTemplateAd, string>>();
}
internal string AdUnitId { get; private set; }
internal HashSet<NativeAdType> AdTypes { get; private set; }
internal HashSet<string> TemplateIds { get; private set; }
internal Dictionary<string, Action<CustomNativeTemplateAd, string>>
CustomNativeTemplateClickHandlers
{
get; private set;
}
public Builder ForCustomNativeAd(string templateId)
{
this.TemplateIds.Add(templateId);
this.AdTypes.Add(NativeAdType.CustomTemplate);
return this;
}
public Builder ForCustomNativeAd(
string templateId,
Action<CustomNativeTemplateAd, string> callback)
{
this.TemplateIds.Add(templateId);
this.CustomNativeTemplateClickHandlers[templateId] = callback;
this.AdTypes.Add(NativeAdType.CustomTemplate);
return this;
}
public AdLoader Build()
{
return new AdLoader(this);
}
}
}
}
fileFormatVersion: 2
guid: f5474196001554b6da135319d9475e61
timeCreated: 1477084497
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
namespace GoogleMobileAds.Api
{
// The position of the ad on the screen.
public enum AdPosition
{
Top = 0,
Bottom = 1,
TopLeft = 2,
TopRight = 3,
BottomLeft = 4,
BottomRight = 5,
Center = 6
}
}
fileFormatVersion: 2
guid: 1e16a5ae359514f3ba0f1471a9d96744
timeCreated: 1427838344
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
using System.Collections.Generic;
using GoogleMobileAds.Api.Mediation;
namespace GoogleMobileAds.Api
{
public class AdRequest
{
public const string Version = "4.2.1";
public const string TestDeviceSimulator = "SIMULATOR";
private AdRequest(Builder builder)
{
this.TestDevices = new List<string>(builder.TestDevices);
this.Keywords = new HashSet<string>(builder.Keywords);
this.Birthday = builder.Birthday;
this.Gender = builder.Gender;
this.TagForChildDirectedTreatment = builder.ChildDirectedTreatmentTag;
this.Extras = new Dictionary<string, string>(builder.Extras);
this.MediationExtras = builder.MediationExtras;
}
public List<string> TestDevices { get; private set; }
public HashSet<string> Keywords { get; private set; }
public DateTime? Birthday { get; private set; }
public Gender? Gender { get; private set; }
public bool? TagForChildDirectedTreatment { get; private set; }
public Dictionary<string, string> Extras { get; private set; }
public List<MediationExtras> MediationExtras { get; private set; }
public class Builder
{
public Builder()
{
this.TestDevices = new List<string>();
this.Keywords = new HashSet<string>();
this.Birthday = null;
this.Gender = null;
this.ChildDirectedTreatmentTag = null;
this.Extras = new Dictionary<string, string>();
this.MediationExtras = new List<MediationExtras>();
}
internal List<string> TestDevices { get; private set; }
internal HashSet<string> Keywords { get; private set; }
internal DateTime? Birthday { get; private set; }
internal Gender? Gender { get; private set; }
internal bool? ChildDirectedTreatmentTag { get; private set; }
internal Dictionary<string, string> Extras { get; private set; }
internal List<MediationExtras> MediationExtras { get; private set; }
public Builder AddKeyword(string keyword)
{
this.Keywords.Add(keyword);
return this;
}
public Builder AddTestDevice(string deviceId)
{
this.TestDevices.Add(deviceId);
return this;
}
public AdRequest Build()
{
return new AdRequest(this);
}
public Builder SetBirthday(DateTime birthday)
{
this.Birthday = birthday;
return this;
}
public Builder SetGender(Gender gender)
{
this.Gender = gender;
return this;
}
public Builder AddMediationExtras(MediationExtras extras)
{
this.MediationExtras.Add(extras);
return this;
}
public Builder TagForChildDirectedTreatment(bool tagForChildDirectedTreatment)
{
this.ChildDirectedTreatmentTag = tagForChildDirectedTreatment;
return this;
}
public Builder AddExtra(string key, string value)
{
this.Extras.Add(key, value);
return this;
}
}
}
}
fileFormatVersion: 2
guid: 6e84aff9643a4452e934d1efe6ed0323
timeCreated: 1427838344
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
namespace GoogleMobileAds.Api
{
internal enum Orientation {
Current = 0,
Landscape = 1,
Portrait = 2
}
public class AdSize
{
public enum Type {
Standard = 0,
SmartBanner = 1,
AnchoredAdaptive = 2
}
private Type type;
private Orientation orientation;
private int width;
private int height;
public static readonly AdSize Banner = new AdSize(320, 50);
public static readonly AdSize MediumRectangle = new AdSize(300, 250);
public static readonly AdSize IABBanner = new AdSize(468, 60);
public static readonly AdSize Leaderboard = new AdSize(728, 90);
public static readonly AdSize SmartBanner = new AdSize(0, 0, Type.SmartBanner);
public static readonly int FullWidth = -1;
public AdSize(int width, int height)
{
this.type = Type.Standard;
this.width = width;
this.height = height;
this.orientation = Orientation.Current;
}
private AdSize(int width, int height, Type type) : this(width, height)
{
this.type = type;
}
private static AdSize CreateAnchoredAdaptiveAdSize(int width, Orientation orientation)
{
AdSize adSize = new AdSize(width, 0, Type.AnchoredAdaptive);
adSize.orientation = orientation;
return adSize;
}
public static AdSize GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth(int width) {
return CreateAnchoredAdaptiveAdSize(width, Orientation.Landscape);
}
public static AdSize GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth(int width) {
return CreateAnchoredAdaptiveAdSize(width, Orientation.Portrait);
}
public static AdSize GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(int width) {
return CreateAnchoredAdaptiveAdSize(width, Orientation.Current);
}
public int Width
{
get
{
if (width == FullWidth) {
return MobileAds.Utils.GetDeviceSafeWidth();
}
return width;
}
}
public int Height
{
get
{
return height;
}
}
public Type AdType
{
get
{
return type;
}
}
internal Orientation Orientation
{
get
{
return orientation;
}
}
public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
return false;
AdSize other = (AdSize)obj;
return (width == other.width) && (height == other.height)
&& (type == other.type) && (orientation == other.orientation);
}
public static bool operator ==(AdSize a, AdSize b)
{
return a.Equals(b);
}
public static bool operator !=(AdSize a, AdSize b)
{
return !a.Equals(b);
}
public override int GetHashCode()
{
int hashBase = 71;
int hashMultiplier = 11;
int hash = hashBase;
hash = (hash * hashMultiplier) ^ width.GetHashCode();
hash = (hash * hashMultiplier) ^ height.GetHashCode();
hash = (hash * hashMultiplier) ^ type.GetHashCode();
hash = (hash * hashMultiplier) ^ orientation.GetHashCode();
return hash;
}
}
}
fileFormatVersion: 2
guid: c59631c955ded4938a66f755225b7dc5
timeCreated: 1427838344
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2018 Google, Inc.
//
// 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.
namespace GoogleMobileAds.Api
{
public class AdapterStatus
{
public AdapterState InitializationState { get; private set; }
public string Description { get; private set; }
public int Latency { get; private set; }
internal AdapterStatus(AdapterState state, string description, int latency)
{
this.InitializationState = state;
this.Description = description;
this.Latency = latency;
}
}
public enum AdapterState
{
NotReady = 0,
Ready = 1
}
}
fileFormatVersion: 2
guid: 710a3ff9dc2884f299d612273aef1cf7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Api
{
public class BannerView
{
private IBannerClient client;
// Creates a BannerView and adds it to the view hierarchy.
public BannerView(string adUnitId, AdSize adSize, AdPosition position)
{
this.client = GoogleMobileAdsClientFactory.BuildBannerClient();
client.CreateBannerView(adUnitId, adSize, position);
ConfigureBannerEvents();
}
// Creates a BannerView with a custom position.
public BannerView(string adUnitId, AdSize adSize, int x, int y)
{
this.client = GoogleMobileAdsClientFactory.BuildBannerClient();
client.CreateBannerView(adUnitId, adSize, x, y);
ConfigureBannerEvents();
}
// These are the ad callback events that can be hooked into.
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<EventArgs> OnAdClosed;
public event EventHandler<EventArgs> OnAdLeavingApplication;
// Loads an ad into the BannerView.
public void LoadAd(AdRequest request)
{
client.LoadAd(request);
}
// Hides the BannerView from the screen.
public void Hide()
{
client.HideBannerView();
}
// Shows the BannerView on the screen.
public void Show()
{
client.ShowBannerView();
}
// Destroys the BannerView.
public void Destroy()
{
client.DestroyBannerView();
}
// Returns the height of the BannerView in pixels.
public float GetHeightInPixels()
{
return client.GetHeightInPixels();
}
// Returns the width of the BannerView in pixels.
public float GetWidthInPixels()
{
return client.GetWidthInPixels();
}
// Set the position of the BannerView using standard position.
public void SetPosition(AdPosition adPosition)
{
client.SetPosition(adPosition);
}
// Set the position of the BannerView using custom position.
public void SetPosition(int x, int y)
{
client.SetPosition(x, y);
}
private void ConfigureBannerEvents()
{
this.client.OnAdLoaded += (sender, args) =>
{
if (this.OnAdLoaded != null)
{
this.OnAdLoaded(this, args);
}
};
this.client.OnAdFailedToLoad += (sender, args) =>
{
if (this.OnAdFailedToLoad != null)
{
this.OnAdFailedToLoad(this, args);
}
};
this.client.OnAdOpening += (sender, args) =>
{
if (this.OnAdOpening != null)
{
this.OnAdOpening(this, args);
}
};
this.client.OnAdClosed += (sender, args) =>
{
if (this.OnAdClosed != null)
{
this.OnAdClosed(this, args);
}
};
this.client.OnAdLeavingApplication += (sender, args) =>
{
if (this.OnAdLeavingApplication != null)
{
this.OnAdLeavingApplication(this, args);
}
};
}
// Returns the mediation adapter class name.
public string MediationAdapterClassName()
{
return this.client.MediationAdapterClassName();
}
}
}
fileFormatVersion: 2
guid: 5c1fdac85e0d64c298684a5ee009e19e
timeCreated: 1427838344
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
namespace GoogleMobileAds.Api
{
// Event that occurs when a custom native template ad loads.
public class CustomNativeEventArgs : EventArgs
{
public CustomNativeTemplateAd nativeAd { get; set; }
}
}
fileFormatVersion: 2
guid: 5188b1fa1a1b148ce8e88835595e660d
timeCreated: 1477084497
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
using System.Collections.Generic;
using GoogleMobileAds.Common;
using UnityEngine;
namespace GoogleMobileAds.Api
{
public class CustomNativeTemplateAd
{
private ICustomNativeTemplateClient client;
internal CustomNativeTemplateAd(ICustomNativeTemplateClient client)
{
this.client = client;
}
public List<string> GetAvailableAssetNames()
{
return this.client.GetAvailableAssetNames();
}
public string GetCustomTemplateId()
{
return this.client.GetTemplateId();
}
// Get image asset corresponding to the key parameter of custom native template ad as a
// Texture2D. If the asset key does not map to an existing asset, a null object will be
// returned.
public Texture2D GetTexture2D(string key)
{
byte[] imageAssetAsByteArray = this.client.GetImageByteArray(key);
if (imageAssetAsByteArray == null)
{
return null;
}
return null;
//return Utils.GetTexture2DFromByteArray(imageAssetAsByteArray);
}
// Get text asset corresponding to the key parameter of custom native template ad as a
// string. If the asset key does not map to an existing asset, a null object will be
// returned.
public string GetText(string key)
{
return this.client.GetText(key);
}
public void PerformClick(string assetName)
{
this.client.PerformClick(assetName);
}
public void RecordImpression()
{
this.client.RecordImpression();
}
}
}
fileFormatVersion: 2
guid: 6f029b4086c1141ffad2e59dd23f14f4
timeCreated: 1477084497
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
namespace GoogleMobileAds.Api
{
// The gender of the user.
public enum Gender
{
Unknown = 0,
Male = 1,
Female = 2
}
}
fileFormatVersion: 2
guid: c223413fd650846c1b3c07959a4429ef
timeCreated: 1427838344
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2018 Google, Inc.
//
// 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.
using GoogleMobileAds.Common;
using System.Collections.Generic;
namespace GoogleMobileAds.Api
{
public class InitializationStatus
{
private IInitializationStatusClient client;
internal InitializationStatus(IInitializationStatusClient client)
{
this.client = client;
}
public AdapterStatus getAdapterStatusForClassName(string className)
{
return client.getAdapterStatusForClassName(className);
}
public Dictionary<string, AdapterStatus> getAdapterStatusMap()
{
return client.getAdapterStatusMap();
}
}
}
fileFormatVersion: 2
guid: 70b27ae5d9b32466a91a335bae6e97e4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Api
{
public class InterstitialAd
{
private IInterstitialClient client;
// Creates an InterstitialAd.
public InterstitialAd(string adUnitId)
{
this.client = GoogleMobileAdsClientFactory.BuildInterstitialClient();
client.CreateInterstitialAd(adUnitId);
this.client.OnAdLoaded += (sender, args) =>
{
if (this.OnAdLoaded != null)
{
this.OnAdLoaded(this, args);
}
};
this.client.OnAdFailedToLoad += (sender, args) =>
{
if (this.OnAdFailedToLoad != null)
{
this.OnAdFailedToLoad(this, args);
}
};
this.client.OnAdOpening += (sender, args) =>
{
if (this.OnAdOpening != null)
{
this.OnAdOpening(this, args);
}
};
this.client.OnAdClosed += (sender, args) =>
{
if (this.OnAdClosed != null)
{
this.OnAdClosed(this, args);
}
};
this.client.OnAdLeavingApplication += (sender, args) =>
{
if (this.OnAdLeavingApplication != null)
{
this.OnAdLeavingApplication(this, args);
}
};
}
// These are the ad callback events that can be hooked into.
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<EventArgs> OnAdClosed;
public event EventHandler<EventArgs> OnAdLeavingApplication;
// Loads an InterstitialAd.
public void LoadAd(AdRequest request)
{
client.LoadAd(request);
}
// Determines whether the InterstitialAd has loaded.
public bool IsLoaded()
{
return client.IsLoaded();
}
// Displays the InterstitialAd.
public void Show()
{
client.ShowInterstitial();
}
// Destroys the InterstitialAd.
public void Destroy()
{
client.DestroyInterstitial();
}
// Returns the mediation adapter class name.
public string MediationAdapterClassName()
{
return this.client.MediationAdapterClassName();
}
}
}
fileFormatVersion: 2
guid: 8e2900126dc684a6aaa9b7afc920845a
timeCreated: 1427838344
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: fee51398a978042a2971e3a9ce328ba0
folderAsset: yes
timeCreated: 1487749846
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
using System;
using System.Collections.Generic;
using UnityEngine;
namespace GoogleMobileAds.Api.Mediation
{
public abstract class MediationExtras
{
public Dictionary<string, string> Extras { get; protected set; }
public MediationExtras()
{
this.Extras = new Dictionary<string, string>();
}
public abstract string AndroidMediationExtraBuilderClassName { get; }
public abstract string IOSMediationExtraBuilderClassName { get; }
}
}
fileFormatVersion: 2
guid: 0de15b956fe424835a3adc74de6e677d
timeCreated: 1479607324
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2017 Google, Inc.
//
// 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.
using System;
using UnityEngine;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Api
{
public class MobileAds
{
public static class Utils {
// Returns the device's scale.
public static float GetDeviceScale() {
return client.GetDeviceScale();
}
// Returns the safe width for the current device.
public static int GetDeviceSafeWidth() {
return client.GetDeviceSafeWidth();
}
}
private static readonly IMobileAdsClient client = GetMobileAdsClient();
public static void Initialize(string appId)
{
client.Initialize(appId);
MobileAdsEventExecutor.Initialize();
}
public static void Initialize(Action<InitializationStatus> initCompleteAction)
{
client.Initialize(initCompleteAction);
MobileAdsEventExecutor.Initialize();
}
public static void SetApplicationMuted(bool muted)
{
client.SetApplicationMuted(muted);
}
public static void SetApplicationVolume(float volume)
{
client.SetApplicationVolume(volume);
}
public static void SetiOSAppPauseOnBackground(bool pause)
{
client.SetiOSAppPauseOnBackground(pause);
}
private static IMobileAdsClient GetMobileAdsClient()
{
return GoogleMobileAdsClientFactory.MobileAdsInstance();
}
}
}
fileFormatVersion: 2
guid: 90ca57af4a5ca48cda96227b0a69ffdc
timeCreated: 1498782507
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
namespace GoogleMobileAds.Api
{
// Event that occurs when a user is rewarded by a reward based video ad.
public class Reward : EventArgs
{
public string Type { get; set; }
public double Amount { get; set; }
}
}
fileFormatVersion: 2
guid: 2425e016351594c53942029c254ba820
timeCreated: 1444870608
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Api
{
public class RewardBasedVideoAd
{
private IRewardBasedVideoAdClient client;
private static readonly RewardBasedVideoAd instance = new RewardBasedVideoAd();
public static RewardBasedVideoAd Instance
{
get
{
return instance;
}
}
// Creates a Singleton RewardBasedVideoAd.
private RewardBasedVideoAd()
{
this.client = GoogleMobileAdsClientFactory.BuildRewardBasedVideoAdClient();
client.CreateRewardBasedVideoAd();
this.client.OnAdLoaded += (sender, args) =>
{
if (this.OnAdLoaded != null)
{
this.OnAdLoaded(this, args);
}
};
this.client.OnAdFailedToLoad += (sender, args) =>
{
if (this.OnAdFailedToLoad != null)
{
this.OnAdFailedToLoad(this, args);
}
};
this.client.OnAdOpening += (sender, args) =>
{
if (this.OnAdOpening != null)
{
this.OnAdOpening(this, args);
}
};
this.client.OnAdStarted += (sender, args) =>
{
if (this.OnAdStarted != null)
{
this.OnAdStarted(this, args);
}
};
this.client.OnAdClosed += (sender, args) =>
{
if (this.OnAdClosed != null)
{
this.OnAdClosed(this, args);
}
};
this.client.OnAdLeavingApplication += (sender, args) =>
{
if (this.OnAdLeavingApplication != null)
{
this.OnAdLeavingApplication(this, args);
}
};
this.client.OnAdRewarded += (sender, args) =>
{
if (this.OnAdRewarded != null)
{
this.OnAdRewarded(this, args);
}
};
this.client.OnAdCompleted += (sender, args) =>
{
if (this.OnAdCompleted != null)
{
this.OnAdCompleted(this, args);
}
};
}
// These are the ad callback events that can be hooked into.
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<EventArgs> OnAdStarted;
public event EventHandler<EventArgs> OnAdClosed;
public event EventHandler<Reward> OnAdRewarded;
public event EventHandler<EventArgs> OnAdLeavingApplication;
public event EventHandler<EventArgs> OnAdCompleted;
// Loads a new reward based video ad request
public void LoadAd(AdRequest request, string adUnitId)
{
client.LoadAd(request, adUnitId);
}
// Determines whether the reward based video has loaded.
public bool IsLoaded()
{
return client.IsLoaded();
}
// Shows the reward based video.
public void Show()
{
client.ShowRewardBasedVideoAd();
}
// Sets the user id of current user.
public void SetUserId(string userId)
{
client.SetUserId(userId);
}
// Returns the mediation adapter class name.
public string MediationAdapterClassName()
{
return this.client.MediationAdapterClassName();
}
}
}
fileFormatVersion: 2
guid: c37b2a1ea20574580af643f02302c484
timeCreated: 1441045629
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2018 Google, Inc.
//
// 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.
using System;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Api
{
public class RewardedAd
{
private IRewardedAdClient client;
public RewardedAd(string adUnitId)
{
this.client = GoogleMobileAdsClientFactory.BuildRewardedAdClient();
client.CreateRewardedAd(adUnitId);
this.client.OnAdLoaded += (sender, args) =>
{
if (this.OnAdLoaded != null)
{
this.OnAdLoaded(this, args);
}
};
this.client.OnAdFailedToLoad += (sender, args) =>
{
if (this.OnAdFailedToLoad != null)
{
this.OnAdFailedToLoad(this, args);
}
};
this.client.OnAdFailedToShow += (sender, args) =>
{
if (this.OnAdFailedToShow != null)
{
this.OnAdFailedToShow(this, args);
}
};
this.client.OnAdOpening += (sender, args) =>
{
if (this.OnAdOpening != null)
{
this.OnAdOpening(this, args);
}
};
this.client.OnAdClosed += (sender, args) =>
{
if (this.OnAdClosed != null)
{
this.OnAdClosed(this, args);
}
};
this.client.OnUserEarnedReward += (sender, args) =>
{
if (this.OnUserEarnedReward != null)
{
this.OnUserEarnedReward(this, args);
}
};
}
// These are the ad callback events that can be hooked into.
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdErrorEventArgs> OnAdFailedToLoad;
public event EventHandler<AdErrorEventArgs> OnAdFailedToShow;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<EventArgs> OnAdClosed;
public event EventHandler<Reward> OnUserEarnedReward;
// Loads a new rewarded ad.
public void LoadAd(AdRequest request)
{
client.LoadAd(request);
}
// Determines whether the rewarded ad has loaded.
public bool IsLoaded()
{
return client.IsLoaded();
}
// Shows the rewarded ad.
public void Show()
{
client.Show();
}
// Sets the server side verification options
public void SetServerSideVerificationOptions(ServerSideVerificationOptions serverSideVerificationOptions)
{
client.SetServerSideVerificationOptions(serverSideVerificationOptions);
}
// Returns the reward item for the loaded rewarded ad.
public Reward GetRewardItem()
{
if (client.IsLoaded()) {
return client.GetRewardItem();
}
return null;
}
// Returns the mediation adapter class name.
public string MediationAdapterClassName()
{
return this.client.MediationAdapterClassName();
}
}
}
fileFormatVersion: 2
guid: c1b2846f99e3544d18adc12c74a8adb0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2019 Google, Inc.
//
// 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.
using System;
using System.Collections.Generic;
namespace GoogleMobileAds.Api
{
public class ServerSideVerificationOptions
{
public string UserId { get; private set; }
public string CustomData { get; private set; }
private ServerSideVerificationOptions(Builder builder)
{
UserId = builder.UserId;
CustomData = builder.CustomData;
}
public class Builder
{
internal string UserId { get; private set; }
internal string CustomData { get; private set; }
public Builder()
{
}
public Builder SetUserId(string userId)
{
UserId = userId;
return this;
}
public Builder SetCustomData(string customData)
{
CustomData = customData;
return this;
}
public ServerSideVerificationOptions Build()
{
return new ServerSideVerificationOptions(this);
}
}
}
}
fileFormatVersion: 2
guid: 1208239fc0f55460090a000970615033
timeCreated: 1556102399
licenseType: Pro
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: be2a17637371048e5a2dd415ba22514b
folderAsset: yes
timeCreated: 1437157376
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
using System.Reflection;
using GoogleMobileAds.Api;
using UnityEngine;
namespace GoogleMobileAds.Common
{
public class DummyClient : IBannerClient, IInterstitialClient, IRewardBasedVideoAdClient,
IAdLoaderClient, IMobileAdsClient
{
public DummyClient()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
// Disable warnings for unused dummy ad events.
#pragma warning disable 67
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<EventArgs> OnAdStarted;
public event EventHandler<EventArgs> OnAdClosed;
public event EventHandler<Reward> OnAdRewarded;
public event EventHandler<EventArgs> OnAdLeavingApplication;
public event EventHandler<EventArgs> OnAdCompleted;
public event EventHandler<CustomNativeEventArgs> OnCustomNativeTemplateAdLoaded;
#pragma warning restore 67
public string UserId
{
get
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
return "UserId";
}
set
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
}
public void Initialize(string appId)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void Initialize(Action<InitializationStatus> initCompleteAction)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void SetApplicationMuted(bool muted)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void SetApplicationVolume(float volume)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void SetiOSAppPauseOnBackground(bool pause)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public float GetDeviceScale()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
return 0;
}
public int GetDeviceSafeWidth()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
return 0;
}
public void CreateBannerView(string adUnitId, AdSize adSize, AdPosition position)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void CreateBannerView(string adUnitId, AdSize adSize, int positionX, int positionY)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void LoadAd(AdRequest request)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void ShowBannerView()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void HideBannerView()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void DestroyBannerView()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public float GetHeightInPixels()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
return 0;
}
public float GetWidthInPixels()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
return 0;
}
public void SetPosition(AdPosition adPosition)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void SetPosition(int x, int y)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void CreateInterstitialAd(string adUnitId)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public bool IsLoaded()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
return true;
}
public void ShowInterstitial()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void DestroyInterstitial()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void CreateRewardBasedVideoAd()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void SetUserId(string userId)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void LoadAd(AdRequest request, string adUnitId)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void DestroyRewardBasedVideoAd()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void ShowRewardBasedVideoAd()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void CreateAdLoader(AdLoader.Builder builder)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void Load(AdRequest request)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void SetAdSize(AdSize adSize)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public string MediationAdapterClassName()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
return null;
}
}
}
fileFormatVersion: 2
guid: 5858abc6dbdeb46fabb82d3296604951
timeCreated: 1427838344
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// 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.
using System;
using GoogleMobileAds.Api;
namespace GoogleMobileAds.Common
{
public interface IAdLoaderClient
{
event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
event EventHandler<CustomNativeEventArgs> OnCustomNativeTemplateAdLoaded;
void LoadAd(AdRequest request);
}
}
fileFormatVersion: 2
guid: e703b22fc2fa4419585d4be4933b84f9
timeCreated: 1487749848
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
using GoogleMobileAds.Api;
namespace GoogleMobileAds.Common {
public interface IBannerClient
{
// Ad event fired when the banner ad has been received.
event EventHandler<EventArgs> OnAdLoaded;
// Ad event fired when the banner ad has failed to load.
event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
// Ad event fired when the banner ad is opened.
event EventHandler<EventArgs> OnAdOpening;
// Ad event fired when the banner ad is closed.
event EventHandler<EventArgs> OnAdClosed;
// Ad event fired when the banner ad is leaving the application.
event EventHandler<EventArgs> OnAdLeavingApplication;
// Creates a banner view and adds it to the view hierarchy.
void CreateBannerView(string adUnitId, AdSize adSize, AdPosition position);
// Creates a banner view and adds it to the view hierarchy with a custom position.
void CreateBannerView(string adUnitId, AdSize adSize, int x, int y);
// Requests a new ad for the banner view.
void LoadAd(AdRequest request);
// Shows the banner view on the screen.
void ShowBannerView();
// Hides the banner view from the screen.
void HideBannerView();
// Destroys a banner view.
void DestroyBannerView();
// Returns the height of the BannerView in pixels.
float GetHeightInPixels();
// Returns the width of the BannerView in pixels.
float GetWidthInPixels();
// Set the position of the banner view using standard position.
void SetPosition(AdPosition adPosition);
// Set the position of the banner view using custom position.
void SetPosition(int x, int y);
// Returns the mediation adapter class name.
string MediationAdapterClassName();
}
}
fileFormatVersion: 2
guid: 622f4e1f14d7c4b889ca12eb78235e05
timeCreated: 1444861585
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System.Collections.Generic;
namespace GoogleMobileAds.Common
{
public interface ICustomNativeTemplateClient
{
string GetTemplateId();
byte[] GetImageByteArray(string key);
List<string> GetAvailableAssetNames();
string GetText(string key);
void PerformClick(string assetName);
void RecordImpression();
}
}
fileFormatVersion: 2
guid: c23272b29f0a84084a2f13f05389c1fc
timeCreated: 1487749848
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2018 Google, Inc.
//
// 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.
using System.Collections.Generic;
using GoogleMobileAds.Api;
namespace GoogleMobileAds.Common
{
internal interface IInitializationStatusClient
{
AdapterStatus getAdapterStatusForClassName(string className);
Dictionary<string, AdapterStatus> getAdapterStatusMap();
}
}
fileFormatVersion: 2
guid: 5aae28a33c3ec489ba986effbf758dcd
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
using GoogleMobileAds.Api;
namespace GoogleMobileAds.Common {
public interface IInterstitialClient
{
// Ad event fired when the interstitial ad has been received.
event EventHandler<EventArgs> OnAdLoaded;
// Ad event fired when the interstitial ad has failed to load.
event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
// Ad event fired when the interstitial ad is opened.
event EventHandler<EventArgs> OnAdOpening;
// Ad event fired when the interstitial ad is closed.
event EventHandler<EventArgs> OnAdClosed;
// Ad event fired when the interstitial ad is leaving the application.
event EventHandler<EventArgs> OnAdLeavingApplication;
// Creates an InterstitialAd.
void CreateInterstitialAd(string adUnitId);
// Loads a new interstitial request.
void LoadAd(AdRequest request);
// Determines whether the interstitial has loaded.
bool IsLoaded();
// Shows the InterstitialAd.
void ShowInterstitial();
// Destroys an InterstitialAd.
void DestroyInterstitial();
// Returns the mediation adapter class name.
string MediationAdapterClassName();
}
}
fileFormatVersion: 2
guid: 45adb5cd8be674c93bed0f4d40a6deec
timeCreated: 1444861585
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2017 Google, Inc.
//
// 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.
using System;
using GoogleMobileAds.Api;
namespace GoogleMobileAds.Common
{
public interface IMobileAdsClient
{
// Initialize the Mobile Ads SDK.
void Initialize(string appId);
// Initialize the Mobile Ads SDK and mediation adapters.
void Initialize(Action<InitializationStatus> initCompleteAction);
// The application’s audio volume. Affects audio volumes of all ads relative
// to other audio output. Valid ad volume values range from 0.0 (silent) to 1.0
// (current device volume). Use this method only if your application has its own
// volume controls (e.g., custom music or sound effect volumes). Defaults to 1.0.
void SetApplicationVolume(float volume);
// Indicates if the application’s audio is muted. Affects initial mute state for
// all ads. Use this method only if your application has its own volume controls
// (e.g., custom music or sound effect muting). Defaults to false.
void SetApplicationMuted(bool muted);
// Set whether an iOS app should pause when a full screen ad is displayed.
void SetiOSAppPauseOnBackground(bool pause);
// Returns the scale for the current device.
float GetDeviceScale();
// Returns the safe width for the current device.
int GetDeviceSafeWidth();
}
}
fileFormatVersion: 2
guid: 574593b9659a74b2289baf1760b0a016
timeCreated: 1498852143
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
using GoogleMobileAds.Api;
namespace GoogleMobileAds.Common
{
public interface IRewardBasedVideoAdClient
{
// Ad event fired when the reward based video ad has been received.
event EventHandler<EventArgs> OnAdLoaded;
// Ad event fired when the reward based video ad has failed to load.
event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
// Ad event fired when the reward based video ad is opened.
event EventHandler<EventArgs> OnAdOpening;
// Ad event fired when the reward based video ad has started playing.
event EventHandler<EventArgs> OnAdStarted;
// Ad event fired when the reward based video ad has rewarded the user.
event EventHandler<Reward> OnAdRewarded;
// Ad event fired when the reward based video ad is closed.
event EventHandler<EventArgs> OnAdClosed;
// Ad event fired when the reward based video ad is leaving the application.
event EventHandler<EventArgs> OnAdLeavingApplication;
// Ad event fired when the reward based video ad completes playing.
event EventHandler<EventArgs> OnAdCompleted;
// Creates a reward based video ad and adds it to the view hierarchy.
void CreateRewardBasedVideoAd();
// Requests a new ad for the reward based video ad.
void LoadAd(AdRequest request, string adUnitId);
// Determines whether the reward based video has loaded.
bool IsLoaded();
// Returns the mediation adapter class name.
string MediationAdapterClassName();
// Shows the reward based video ad on the screen.
void ShowRewardBasedVideoAd();
// Sets the user id of current user.
void SetUserId(string userId);
}
}
fileFormatVersion: 2
guid: 03e96fc5475154376a9744dc2f6ab46d
timeCreated: 1444861585
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2018 Google, Inc.
//
// 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.
using System;
using GoogleMobileAds.Api;
namespace GoogleMobileAds.Common
{
public interface IRewardedAdClient
{
// Ad event fired when the rewarded ad has been received.
event EventHandler<EventArgs> OnAdLoaded;
// Ad event fired when the rewarded ad has failed to load.
event EventHandler<AdErrorEventArgs> OnAdFailedToLoad;
// Ad event fired when the rewarded ad has failed to show.
event EventHandler<AdErrorEventArgs> OnAdFailedToShow;
// Ad event fired when the rewarded ad is opened.
event EventHandler<EventArgs> OnAdOpening;
// Ad event fired when the rewarded ad has rewarded the user.
event EventHandler<Reward> OnUserEarnedReward;
// Ad event fired when the rewarded ad is closed.
event EventHandler<EventArgs> OnAdClosed;
// Creates a rewarded ad.
void CreateRewardedAd(string adUnitId);
// Load a rewarded ad.
void LoadAd(AdRequest request);
// Determines whether the rewarded ad has loaded.
bool IsLoaded();
// Returns the mediation adapter class name.
string MediationAdapterClassName();
// Returns the reward item for the loaded rewarded ad.
Reward GetRewardItem();
// Shows the rewarded ad on the screen.
void Show();
// Sets the server side verification options
void SetServerSideVerificationOptions(ServerSideVerificationOptions serverSideVerificationOptions);
}
}
fileFormatVersion: 2
guid: 6ba29432847f54fcbbe79dc97f4818c8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2018 Google, Inc.
//
// 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.
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace GoogleMobileAds.Common
{
public class MobileAdsEventExecutor : MonoBehaviour
{
public static MobileAdsEventExecutor instance = null;
private static List<Action> adEventsQueue = new List<Action>();
private volatile static bool adEventsQueueEmpty = true;
public static void Initialize()
{
if (IsActive())
{
return;
}
// Add an invisible game object to the scene
GameObject obj = new GameObject("MobileAdsMainThreadExecuter");
obj.hideFlags = HideFlags.HideAndDontSave;
DontDestroyOnLoad(obj);
instance = obj.AddComponent<MobileAdsEventExecutor>();
}
public static bool IsActive()
{
return instance != null;
}
public void Awake()
{
DontDestroyOnLoad(gameObject);
}
public static void ExecuteInUpdate(Action action)
{
lock (adEventsQueue)
{
adEventsQueue.Add(action);
adEventsQueueEmpty = false;
}
}
public void Update()
{
if (adEventsQueueEmpty)
{
return;
}
List<Action> stagedAdEventsQueue = new List<Action>();
lock (adEventsQueue)
{
stagedAdEventsQueue.AddRange(adEventsQueue);
adEventsQueue.Clear();
adEventsQueueEmpty = true;
}
foreach (Action stagedEvent in stagedAdEventsQueue)
{
stagedEvent.Invoke();
}
}
public void OnDisable()
{
instance = null;
}
}
}
fileFormatVersion: 2
guid: 47051d8b7ddc740e0b6b0810061c8872
timeCreated: 1527888892
licenseType: Pro
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
using System.Reflection;
using GoogleMobileAds.Api;
using UnityEngine;
namespace GoogleMobileAds.Common
{
public class RewardedAdDummyClient : IRewardedAdClient
{
public RewardedAdDummyClient()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
// Disable warnings for unused dummy ad events.
#pragma warning disable 67
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdErrorEventArgs> OnAdFailedToLoad;
public event EventHandler<AdErrorEventArgs> OnAdFailedToShow;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<EventArgs> OnAdClosed;
public event EventHandler<Reward> OnUserEarnedReward;
#pragma warning restore 67
public void CreateRewardedAd(string adUnitId)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public void LoadAd(AdRequest request)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
if (OnAdLoaded != null)
{
OnAdLoaded(this, EventArgs.Empty);
}
}
public bool IsLoaded()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
return true;
}
public void Show()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
public string MediationAdapterClassName()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
return null;
}
public Reward GetRewardItem()
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
return null;
}
public void SetServerSideVerificationOptions(ServerSideVerificationOptions serverSideVerificationOptions)
{
Debug.Log("Dummy " + MethodBase.GetCurrentMethod().Name);
}
}
}
fileFormatVersion: 2
guid: 7748bc3cf16474e3e95f851b697660da
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2017 Google, Inc.
//
// 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.
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace GoogleMobileAds.Common
{
internal class Utils
{
public static void CheckInitialization()
{
if (!MobileAdsEventExecutor.IsActive())
{
Debug.Log("You intitialized an ad object but have not yet called MobileAds.Initialize(). We " +
"highly recommend you call MobileAds.Initialize() before interacting with the Google " +
"Mobile Ads SDK.");
}
MobileAdsEventExecutor.Initialize();
}
public static Texture2D GetTexture2DFromByteArray(byte[] img)
{
// Create a texture. Texture size does not matter, since
// LoadImage will replace with with incoming image size.
Texture2D nativeAdTexture = new Texture2D(1, 1);
if (!nativeAdTexture.LoadImage(img))
{
throw new InvalidOperationException(@"Could not load custom native template
image asset as texture");
}
return nativeAdTexture;
}
}
}
fileFormatVersion: 2
guid: 39482316a80234c968714f1959838123
timeCreated: 1457046586
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 49640e8601cf2402d96b1b4bad2921df
folderAsset: yes
timeCreated: 1452209312
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
#if UNITY_ANDROID
using UnityEditor;
using UnityEditor.Callbacks;
using GoogleMobileAds.Editor;
public static class AndroidBuildPostProcessor
{
[PostProcessBuild]
public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
{
if (!GoogleMobileAdsSettings.Instance.IsAdManagerEnabled && !GoogleMobileAdsSettings.Instance.IsAdMobEnabled)
{
NotifyBuildFailure("Neither Ad Manager nor AdMob is enabled yet.");
}
if (GoogleMobileAdsSettings.Instance.IsAdMobEnabled && GoogleMobileAdsSettings.Instance.AdMobAndroidAppId.Length == 0)
{
NotifyBuildFailure(
"Android AdMob app ID is empty. Please enter a valid app ID to run ads properly.");
}
}
private static void NotifyBuildFailure(string message)
{
string prefix = "[GoogleMobileAds] ";
bool openSettings = EditorUtility.DisplayDialog(
"Google Mobile Ads", "Error: " + message, "Open Settings", "Close");
if (openSettings)
{
GoogleMobileAdsSettingsEditor.OpenInspector();
}
#if UNITY_2017_1_OR_NEWER
throw new BuildPlayerWindow.BuildMethodException(prefix + message);
#else
throw new OperationCanceledException(prefix + message);
#endif
}
}
#endif
fileFormatVersion: 2
guid: 9a8467f2e458e4cc2a3e74b8fc87260e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
<dependencies>
<androidPackages>
<androidPackage spec="com.google.android.gms:play-services-ads:18.3.0">
<repositories>
<repository>https://maven.google.com/</repository>
</repositories>
</androidPackage>
</androidPackages>
<iosPods>
<iosPod name="Google-Mobile-Ads-SDK" version="~> 7.53">
<sources>
<source>https://github.com/CocoaPods/Specs</source>
</sources>
</iosPod>
</iosPods>
</dependencies>
fileFormatVersion: 2
guid: 2c9357ed17521401bb7b6733145ebcd9
timeCreated: 1504855478
licenseType: Pro
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;
namespace GoogleMobileAds.Editor
{
internal class GoogleMobileAdsSettings : ScriptableObject
{
private const string MobileAdsSettingsDir = "Assets/GoogleMobileAds";
private const string MobileAdsSettingsResDir = "Assets/GoogleMobileAds/Resources";
private const string MobileAdsSettingsFile =
"Assets/GoogleMobileAds/Resources/GoogleMobileAdsSettings.asset";
private static GoogleMobileAdsSettings instance;
[SerializeField]
private bool isAdManagerEnabled = false;
[SerializeField]
private bool isAdMobEnabled = false;
[SerializeField]
private string adMobAndroidAppId = string.Empty;
[SerializeField]
private string adMobIOSAppId = string.Empty;
[SerializeField]
private bool delayAppMeasurementInit = false;
public bool IsAdManagerEnabled
{
get
{
return Instance.isAdManagerEnabled;
}
set
{
Instance.isAdManagerEnabled = value;
}
}
public bool IsAdMobEnabled
{
get
{
return Instance.isAdMobEnabled;
}
set
{
Instance.isAdMobEnabled = value;
}
}
public string AdMobAndroidAppId
{
get
{
return Instance.adMobAndroidAppId;
}
set
{
Instance.adMobAndroidAppId = value;
}
}
public string AdMobIOSAppId
{
get
{
return Instance.adMobIOSAppId;
}
set
{
Instance.adMobIOSAppId = value;
}
}
public bool DelayAppMeasurementInit
{
get
{
return Instance.delayAppMeasurementInit;
}
set
{
Instance.delayAppMeasurementInit = value;
}
}
public static GoogleMobileAdsSettings Instance
{
get
{
if (instance == null)
{
if (!AssetDatabase.IsValidFolder(MobileAdsSettingsResDir))
{
AssetDatabase.CreateFolder(MobileAdsSettingsDir, "Resources");
}
instance = (GoogleMobileAdsSettings) AssetDatabase.LoadAssetAtPath(
MobileAdsSettingsFile, typeof(GoogleMobileAdsSettings));
if (instance == null)
{
instance = ScriptableObject.CreateInstance<GoogleMobileAdsSettings>();
AssetDatabase.CreateAsset(instance, MobileAdsSettingsFile);
}
}
return instance;
}
}
internal void WriteSettingsToFile()
{
AssetDatabase.SaveAssets();
}
}
}
fileFormatVersion: 2
guid: a187246822bbb47529482707f3e0eff8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.IO;
using UnityEditor;
using UnityEngine;
namespace GoogleMobileAds.Editor
{
[InitializeOnLoad]
[CustomEditor(typeof(GoogleMobileAdsSettings))]
public class GoogleMobileAdsSettingsEditor : UnityEditor.Editor
{
[MenuItem("Assets/Google Mobile Ads/Settings...")]
public static void OpenInspector()
{
Selection.activeObject = GoogleMobileAdsSettings.Instance;
}
public override void OnInspectorGUI()
{
EditorGUILayout.LabelField("Google Ad Manager", EditorStyles.boldLabel);
GoogleMobileAdsSettings.Instance.IsAdManagerEnabled =
EditorGUILayout.Toggle(new GUIContent("Enabled"),
GoogleMobileAdsSettings.Instance.IsAdManagerEnabled);
EditorGUILayout.Separator();
EditorGUILayout.LabelField("Google AdMob", EditorStyles.boldLabel);
GoogleMobileAdsSettings.Instance.IsAdMobEnabled =
EditorGUILayout.Toggle(new GUIContent("Enabled"),
GoogleMobileAdsSettings.Instance.IsAdMobEnabled);
EditorGUILayout.Separator();
EditorGUI.BeginDisabledGroup(!GoogleMobileAdsSettings.Instance.IsAdMobEnabled);
EditorGUILayout.LabelField("AdMob App ID");
GoogleMobileAdsSettings.Instance.AdMobAndroidAppId =
EditorGUILayout.TextField("Android",
GoogleMobileAdsSettings.Instance.AdMobAndroidAppId);
GoogleMobileAdsSettings.Instance.AdMobIOSAppId =
EditorGUILayout.TextField("iOS",
GoogleMobileAdsSettings.Instance.AdMobIOSAppId);
if (GoogleMobileAdsSettings.Instance.IsAdMobEnabled)
{
EditorGUILayout.HelpBox(
"AdMob App ID will look similar to this sample ID: ca-app-pub-3940256099942544~3347511713",
MessageType.Info);
}
EditorGUILayout.Separator();
GoogleMobileAdsSettings.Instance.DelayAppMeasurementInit =
EditorGUILayout.Toggle(new GUIContent("Delay app measurement"),
GoogleMobileAdsSettings.Instance.DelayAppMeasurementInit);
if (GoogleMobileAdsSettings.Instance.DelayAppMeasurementInit) {
EditorGUILayout.HelpBox(
"Delays app measurement until you explicitly initialize the Mobile Ads SDK or load an ad.",
MessageType.Info);
}
EditorGUI.EndDisabledGroup();
if (GUI.changed)
{
OnSettingsChanged();
}
}
private void OnSettingsChanged()
{
EditorUtility.SetDirty((GoogleMobileAdsSettings) target);
GoogleMobileAdsSettings.Instance.WriteSettingsToFile();
}
}
}
fileFormatVersion: 2
guid: 8afb1338afbd34c4fac628cd6175c032
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
#if UNITY_ANDROID
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Linq;
using UnityEditor;
using UnityEditor.Build;
#if UNITY_2018_1_OR_NEWER
using UnityEditor.Build.Reporting;
#endif
using UnityEngine;
using GoogleMobileAds.Editor;
#if UNITY_2018_1_OR_NEWER
public class ManifestProcessor : IPreprocessBuildWithReport
#else
public class ManifestProcessor : IPreprocessBuild
#endif
{
private const string META_AD_MANAGER_APP = "com.google.android.gms.ads.AD_MANAGER_APP";
private const string META_APPLICATION_ID = "com.google.android.gms.ads.APPLICATION_ID";
private const string META_DELAY_APP_MEASUREMENT_INIT =
"com.google.android.gms.ads.DELAY_APP_MEASUREMENT_INIT";
private XNamespace ns = "http://schemas.android.com/apk/res/android";
public int callbackOrder { get { return 0; } }
#if UNITY_2018_1_OR_NEWER
public void OnPreprocessBuild(BuildReport report)
#else
public void OnPreprocessBuild(BuildTarget target, string path)
#endif
{
string manifestPath = Path.Combine(
Application.dataPath, "Plugins/Android/GoogleMobileAdsPlugin/AndroidManifest.xml");
XDocument manifest = null;
try
{
manifest = XDocument.Load(manifestPath);
}
#pragma warning disable 0168
catch (IOException e)
#pragma warning restore 0168
{
StopBuildWithMessage("AndroidManifest.xml is missing. Try re-importing the plugin.");
}
XElement elemManifest = manifest.Element("manifest");
if (elemManifest == null)
{
StopBuildWithMessage("AndroidManifest.xml is not valid. Try re-importing the plugin.");
}
XElement elemApplication = elemManifest.Element("application");
if (elemApplication == null)
{
StopBuildWithMessage("AndroidManifest.xml is not valid. Try re-importing the plugin.");
}
if (!GoogleMobileAdsSettings.Instance.IsAdManagerEnabled && !GoogleMobileAdsSettings.Instance.IsAdMobEnabled)
{
GoogleMobileAdsSettingsEditor.OpenInspector();
StopBuildWithMessage("Neither Ad Manager nor AdMob is enabled yet.");
}
IEnumerable<XElement> metas = elemApplication.Descendants()
.Where( elem => elem.Name.LocalName.Equals("meta-data"));
XElement elemAdManagerEnabled = GetMetaElement(metas, META_AD_MANAGER_APP);
if (GoogleMobileAdsSettings.Instance.IsAdManagerEnabled)
{
if (elemAdManagerEnabled == null)
{
elemApplication.Add(CreateMetaElement(META_AD_MANAGER_APP, true));
}
else
{
elemAdManagerEnabled.SetAttributeValue(ns + "value", true);
}
}
else
{
if (elemAdManagerEnabled != null)
{
elemAdManagerEnabled.Remove();
}
}
XElement elemAdMobEnabled = GetMetaElement(metas, META_APPLICATION_ID);
if (GoogleMobileAdsSettings.Instance.IsAdMobEnabled)
{
string appId = GoogleMobileAdsSettings.Instance.AdMobAndroidAppId;
if (appId.Length == 0)
{
StopBuildWithMessage(
"Android AdMob app ID is empty. Please enter a valid app ID to run ads properly.");
}
if (elemAdMobEnabled == null)
{
elemApplication.Add(CreateMetaElement(META_APPLICATION_ID, appId));
}
else
{
elemAdMobEnabled.SetAttributeValue(ns + "value", appId);
}
}
else
{
if (elemAdMobEnabled != null)
{
elemAdMobEnabled.Remove();
}
}
XElement elemDelayAppMeasurementInit =
GetMetaElement(metas, META_DELAY_APP_MEASUREMENT_INIT);
if (GoogleMobileAdsSettings.Instance.DelayAppMeasurementInit)
{
if (elemDelayAppMeasurementInit == null)
{
elemApplication.Add(CreateMetaElement(META_DELAY_APP_MEASUREMENT_INIT, true));
}
else
{
elemDelayAppMeasurementInit.SetAttributeValue(ns + "value", true);
}
}
else
{
if (elemDelayAppMeasurementInit != null)
{
elemDelayAppMeasurementInit.Remove();
}
}
elemManifest.Save(manifestPath);
}
private XElement CreateMetaElement(string name, object value)
{
return new XElement("meta-data",
new XAttribute(ns + "name", name), new XAttribute(ns + "value", value));
}
private XElement GetMetaElement(IEnumerable<XElement> metas, string metaName)
{
foreach (XElement elem in metas)
{
IEnumerable<XAttribute> attrs = elem.Attributes();
foreach (XAttribute attr in attrs)
{
if (attr.Name.Namespace.Equals(ns)
&& attr.Name.LocalName.Equals("name") && attr.Value.Equals(metaName))
{
return elem;
}
}
}
return null;
}
private void StopBuildWithMessage(string message)
{
string prefix = "[GoogleMobileAds] ";
#if UNITY_2017_1_OR_NEWER
throw new BuildPlayerWindow.BuildMethodException(prefix + message);
#else
throw new OperationCanceledException(prefix + message);
#endif
}
}
#endif
fileFormatVersion: 2
guid: c9ee5d47594eb43a19e795c834fdc044
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
#if UNITY_IPHONE || UNITY_IOS
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using GoogleMobileAds.Editor;
public static class PListProcessor
{
[PostProcessBuild]
public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
{
string plistPath = Path.Combine(path, "Info.plist");
PlistDocument plist = new PlistDocument();
plist.ReadFromFile(plistPath);
if (!GoogleMobileAdsSettings.Instance.IsAdManagerEnabled && !GoogleMobileAdsSettings.Instance.IsAdMobEnabled)
{
NotifyBuildFailure("Neither Ad Manager nor AdMob is enabled yet.");
}
if (GoogleMobileAdsSettings.Instance.IsAdManagerEnabled)
{
plist.root.SetBoolean("GADIsAdManagerApp", true);
}
if (GoogleMobileAdsSettings.Instance.IsAdMobEnabled)
{
string appId = GoogleMobileAdsSettings.Instance.AdMobIOSAppId;
if (appId.Length == 0)
{
NotifyBuildFailure(
"iOS AdMob app ID is empty. Please enter a valid app ID to run ads properly.");
}
else
{
plist.root.SetString("GADApplicationIdentifier", appId);
}
}
if (GoogleMobileAdsSettings.Instance.DelayAppMeasurementInit)
{
plist.root.SetBoolean("GADDelayAppMeasurementInit", true);
}
File.WriteAllText(plistPath, plist.WriteToString());
}
private static void NotifyBuildFailure(string message)
{
string prefix = "[GoogleMobileAds] ";
bool openSettings = EditorUtility.DisplayDialog(
"Google Mobile Ads", "Error: " + message, "Open Settings", "Close");
if (openSettings)
{
GoogleMobileAdsSettingsEditor.OpenInspector();
}
#if UNITY_2017_1_OR_NEWER
throw new BuildPlayerWindow.BuildMethodException(prefix + message);
#else
throw new OperationCanceledException(prefix + message);
#endif
}
}
#endif
fileFormatVersion: 2
guid: d1d26b084dc244c8c818f67662e51f6c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: f26cbb3b0cc0446fe97c7b9328638d83
folderAsset: yes
timeCreated: 1437157376
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 40cedae85009a44909a4517c105e3259
folderAsset: yes
timeCreated: 1437157376
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
#if UNITY_ANDROID
using System;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Android
{
public class AdLoaderClient : AndroidJavaProxy, IAdLoaderClient
{
private AndroidJavaObject adLoader;
private Dictionary<string, Action<CustomNativeTemplateAd, string>> CustomNativeTemplateCallbacks
{
get; set;
}
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
public event EventHandler<CustomNativeEventArgs> OnCustomNativeTemplateAdLoaded;
public AdLoaderClient(AdLoader unityAdLoader) : base(Utils.UnityAdLoaderListenerClassName)
{
AndroidJavaClass playerClass = new AndroidJavaClass(Utils.UnityActivityClassName);
AndroidJavaObject activity =
playerClass.GetStatic<AndroidJavaObject>("currentActivity");
adLoader = new AndroidJavaObject(Utils.NativeAdLoaderClassName, activity,
unityAdLoader.AdUnitId, this);
this.CustomNativeTemplateCallbacks = unityAdLoader.CustomNativeTemplateClickHandlers;
bool supportsRequestImageAssetUrls = false;
if (unityAdLoader.AdTypes.Contains(NativeAdType.CustomTemplate))
{
supportsRequestImageAssetUrls = false;
foreach (string templateId in unityAdLoader.TemplateIds)
{
adLoader.Call("configureCustomNativeTemplateAd", templateId,
this.CustomNativeTemplateCallbacks.ContainsKey(templateId));
}
}
if (supportsRequestImageAssetUrls) {
adLoader.Call("configureReturnUrlsForImageAssets");
}
adLoader.Call("create");
}
public void LoadAd(AdRequest request)
{
adLoader.Call("loadAd", Utils.GetAdRequestJavaObject(request));
}
public void onCustomTemplateAdLoaded(AndroidJavaObject ad)
{
if (this.OnCustomNativeTemplateAdLoaded != null)
{
CustomNativeEventArgs args = new CustomNativeEventArgs()
{
nativeAd = new CustomNativeTemplateAd(new CustomNativeTemplateClient(ad))
};
this.OnCustomNativeTemplateAdLoaded(this, args);
}
}
void onAdFailedToLoad(string errorReason)
{
AdFailedToLoadEventArgs args = new AdFailedToLoadEventArgs()
{
Message = errorReason
};
OnAdFailedToLoad(this, args);
}
public void onCustomClick(AndroidJavaObject ad, string assetName)
{
CustomNativeTemplateAd nativeAd = new CustomNativeTemplateAd(
new CustomNativeTemplateClient(ad));
this.CustomNativeTemplateCallbacks[nativeAd.GetCustomTemplateId()](nativeAd, assetName);
}
}
}
#endif
fileFormatVersion: 2
guid: 5bc0a5f7f000d4027bd3e5192cc1269a
timeCreated: 1477084497
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
#if UNITY_ANDROID
using System;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
using UnityEngine;
namespace GoogleMobileAds.Android
{
public class BannerClient : AndroidJavaProxy, IBannerClient
{
private AndroidJavaObject bannerView;
public BannerClient() : base(Utils.UnityAdListenerClassName)
{
AndroidJavaClass playerClass = new AndroidJavaClass(Utils.UnityActivityClassName);
AndroidJavaObject activity =
playerClass.GetStatic<AndroidJavaObject>("currentActivity");
this.bannerView = new AndroidJavaObject(
Utils.BannerViewClassName, activity, this);
}
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<EventArgs> OnAdClosed;
public event EventHandler<EventArgs> OnAdLeavingApplication;
// Creates a banner view.
public void CreateBannerView(string adUnitId, AdSize adSize, AdPosition position)
{
this.bannerView.Call(
"create",
new object[3] { adUnitId, Utils.GetAdSizeJavaObject(adSize), (int)position });
}
// Creates a banner view with a custom position.
public void CreateBannerView(string adUnitId, AdSize adSize, int x, int y)
{
this.bannerView.Call(
"create",
new object[4] { adUnitId, Utils.GetAdSizeJavaObject(adSize), x, y });
}
// Loads an ad.
public void LoadAd(AdRequest request)
{
this.bannerView.Call("loadAd", Utils.GetAdRequestJavaObject(request));
}
// Displays the banner view on the screen.
public void ShowBannerView()
{
this.bannerView.Call("show");
}
// Hides the banner view from the screen.
public void HideBannerView()
{
this.bannerView.Call("hide");
}
// Destroys the banner view.
public void DestroyBannerView()
{
this.bannerView.Call("destroy");
}
// Returns the height of the BannerView in pixels.
public float GetHeightInPixels()
{
return this.bannerView.Call<float>("getHeightInPixels");
}
// Returns the width of the BannerView in pixels.
public float GetWidthInPixels()
{
return this.bannerView.Call<float>("getWidthInPixels");
}
// Set the position of the banner view using standard position.
public void SetPosition(AdPosition adPosition)
{
this.bannerView.Call("setPosition", (int)adPosition);
}
// Set the position of the banner view using custom position.
public void SetPosition(int x, int y)
{
this.bannerView.Call("setPosition", x, y);
}
// Returns the mediation adapter class name.
public string MediationAdapterClassName()
{
return this.bannerView.Call<string>("getMediationAdapterClassName");
}
#region Callbacks from UnityBannerAdListener.
public void onAdLoaded()
{
if (this.OnAdLoaded != null)
{
this.OnAdLoaded(this, EventArgs.Empty);
}
}
public void onAdFailedToLoad(string errorReason)
{
if (this.OnAdFailedToLoad != null)
{
AdFailedToLoadEventArgs args = new AdFailedToLoadEventArgs()
{
Message = errorReason
};
this.OnAdFailedToLoad(this, args);
}
}
public void onAdOpened()
{
if (this.OnAdOpening != null)
{
this.OnAdOpening(this, EventArgs.Empty);
}
}
public void onAdClosed()
{
if (this.OnAdClosed != null)
{
this.OnAdClosed(this, EventArgs.Empty);
}
}
public void onAdLeftApplication()
{
if (this.OnAdLeavingApplication != null)
{
this.OnAdLeavingApplication(this, EventArgs.Empty);
}
}
#endregion
}
}
#endif
fileFormatVersion: 2
guid: cd0003e7fdcd843daa86113292ce0446
timeCreated: 1445365060
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
#if UNITY_ANDROID
using System.Collections.Generic;
using GoogleMobileAds.Common;
using UnityEngine;
namespace GoogleMobileAds.Android
{
internal class CustomNativeTemplateClient : ICustomNativeTemplateClient
{
private AndroidJavaObject customNativeAd;
public CustomNativeTemplateClient(AndroidJavaObject customNativeAd)
{
this.customNativeAd = customNativeAd;
}
public List<string> GetAvailableAssetNames()
{
return new List<string>(this.customNativeAd.Call<string[]>("getAvailableAssetNames"));
}
public string GetTemplateId()
{
return this.customNativeAd.Call<string>("getTemplateId");
}
public byte[] GetImageByteArray(string key)
{
byte[] imageAssetAsByteArray = this.customNativeAd.Call<byte[]>("getImage", key);
if (imageAssetAsByteArray.Length == 0)
{
return null;
}
return imageAssetAsByteArray;
}
public string GetText(string key)
{
string assetText = this.customNativeAd.Call<string>("getText", key);
if (assetText.Equals(string.Empty))
{
return null;
}
return assetText;
}
public void PerformClick(string assetName)
{
this.customNativeAd.Call("performClick", assetName);
}
public void RecordImpression()
{
this.customNativeAd.Call("recordImpression");
}
}
}
#endif
fileFormatVersion: 2
guid: 7e76e9223a0d64aa7972f18446dab8ff
timeCreated: 1477084497
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2019 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.
#if UNITY_ANDROID
using UnityEngine;
using System;
using System.Collections.Generic;
namespace GoogleMobileAds.Android
{
public class DisplayMetrics {
// The logical density of the display.
public float Density { get; protected set; }
// The absolute height of the display in pixels
public int HeightPixels { get; protected set; }
// The absolute width of the display in pixels
public int WidthPixels { get; protected set; }
public DisplayMetrics() {
using (
AndroidJavaClass unityPlayerClass = new AndroidJavaClass(Utils.UnityActivityClassName),
metricsClass = new AndroidJavaClass(Utils.DisplayMetricsClassName)
)
{
using (
AndroidJavaObject metricsInstance = new AndroidJavaObject(Utils.DisplayMetricsClassName),
activityInstance = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity"),
windowManagerInstance = activityInstance.Call<AndroidJavaObject>("getWindowManager"),
displayInstance = windowManagerInstance.Call<AndroidJavaObject>("getDefaultDisplay")
)
{
displayInstance.Call("getMetrics", metricsInstance);
Density = metricsInstance.Get<float>("density");
HeightPixels = metricsInstance.Get<int>("heightPixels");
WidthPixels = metricsInstance.Get<int>("widthPixels");
}
}
}
}
}
#endif
fileFormatVersion: 2
guid: cf7395fcbda8f4d9ab9b39576d0a6115
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2018 Google, Inc.
//
// 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.
#if UNITY_ANDROID
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
using System.Collections.Generic;
namespace GoogleMobileAds.Android
{
internal class InitializationStatusClient : IInitializationStatusClient
{
private AndroidJavaObject status;
private AndroidJavaObject statusMap;
public InitializationStatusClient(AndroidJavaObject status)
{
this.status = status;
this.statusMap = status.Call<AndroidJavaObject>("getAdapterStatusMap");
}
public AdapterStatus getAdapterStatusForClassName(string className)
{
AndroidJavaObject map = this.statusMap;
AndroidJavaObject adapterStatus = map.Call<AndroidJavaObject>("get", className);
if (adapterStatus == null)
{
return null;
}
string description = adapterStatus.Call<string>("getDescription");
int latency = adapterStatus.Call<int>("getLatency");
AndroidJavaClass state = new AndroidJavaClass(Utils.UnityAdapterStatusEnumName);
AndroidJavaObject readyEnum = state.GetStatic<AndroidJavaObject>("READY");
AndroidJavaObject adapterLoadState = adapterStatus.Call<AndroidJavaObject>("getInitializationState");
AdapterState adapterState =
adapterLoadState.Call<bool>("equals", readyEnum) ? AdapterState.Ready : AdapterState.NotReady;
return new AdapterStatus(adapterState, description, latency);
}
public Dictionary<string, AdapterStatus> getAdapterStatusMap()
{
Dictionary<string, AdapterStatus> map = new Dictionary<string, AdapterStatus>();
string[] keys = getKeys();
foreach(string key in keys)
{
map.Add(key, getAdapterStatusForClassName(key));
}
return map;
}
private string[] getKeys()
{
AndroidJavaObject map = this.statusMap;
AndroidJavaObject keySet = map.Call<AndroidJavaObject>("keySet");
AndroidJavaClass arrayClass = new AndroidJavaClass("java.lang.reflect.Array");
AndroidJavaObject arrayObject = arrayClass.CallStatic<AndroidJavaObject>("newInstance",
new AndroidJavaClass("java.lang.String"),
map.Call<int>("size"));
return keySet.Call<string[]>("toArray", arrayObject);
}
}
}
#endif
fileFormatVersion: 2
guid: 39e48821c58d946b0ad3e8e7a2ae2a4a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
#if UNITY_ANDROID
using System;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
using UnityEngine;
namespace GoogleMobileAds.Android
{
public class InterstitialClient : AndroidJavaProxy, IInterstitialClient
{
private AndroidJavaObject interstitial;
public InterstitialClient() : base(Utils.UnityAdListenerClassName)
{
AndroidJavaClass playerClass = new AndroidJavaClass(Utils.UnityActivityClassName);
AndroidJavaObject activity =
playerClass.GetStatic<AndroidJavaObject>("currentActivity");
this.interstitial = new AndroidJavaObject(
Utils.InterstitialClassName, activity, this);
}
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<EventArgs> OnAdClosed;
public event EventHandler<EventArgs> OnAdLeavingApplication;
#region IGoogleMobileAdsInterstitialClient implementation
// Creates an interstitial ad.
public void CreateInterstitialAd(string adUnitId)
{
this.interstitial.Call("create", adUnitId);
}
// Loads an ad.
public void LoadAd(AdRequest request)
{
this.interstitial.Call("loadAd", Utils.GetAdRequestJavaObject(request));
}
// Checks if interstitial has loaded.
public bool IsLoaded()
{
return this.interstitial.Call<bool>("isLoaded");
}
// Presents the interstitial ad on the screen.
public void ShowInterstitial()
{
this.interstitial.Call("show");
}
// Destroys the interstitial ad.
public void DestroyInterstitial()
{
this.interstitial.Call("destroy");
}
// Returns the mediation adapter class name.
public string MediationAdapterClassName()
{
return this.interstitial.Call<string>("getMediationAdapterClassName");
}
#endregion
#region Callbacks from UnityInterstitialAdListener.
public void onAdLoaded()
{
if (this.OnAdLoaded != null)
{
this.OnAdLoaded(this, EventArgs.Empty);
}
}
public void onAdFailedToLoad(string errorReason)
{
if (this.OnAdFailedToLoad != null)
{
AdFailedToLoadEventArgs args = new AdFailedToLoadEventArgs()
{
Message = errorReason
};
this.OnAdFailedToLoad(this, args);
}
}
public void onAdOpened()
{
if (this.OnAdOpening != null)
{
this.OnAdOpening(this, EventArgs.Empty);
}
}
public void onAdClosed()
{
if (this.OnAdClosed != null)
{
this.OnAdClosed(this, EventArgs.Empty);
}
}
public void onAdLeftApplication()
{
if (this.OnAdLeavingApplication != null)
{
this.OnAdLeavingApplication(this, EventArgs.Empty);
}
}
#endregion
}
}
#endif
fileFormatVersion: 2
guid: 0a6253761f8804645a2ab74d916284ed
timeCreated: 1445365060
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2017 Google, Inc.
//
// 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.
#if UNITY_ANDROID
using System;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Android
{
public class MobileAdsClient : AndroidJavaProxy, IMobileAdsClient
{
private static MobileAdsClient instance = new MobileAdsClient();
private Action<InitializationStatus> initCompleteAction;
private MobileAdsClient() : base(Utils.OnInitializationCompleteListenerClassName) { }
public static MobileAdsClient Instance
{
get
{
return instance;
}
}
public void Initialize(string appId)
{
AndroidJavaClass playerClass = new AndroidJavaClass(Utils.UnityActivityClassName);
AndroidJavaObject activity =
playerClass.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaClass mobileAdsClass = new AndroidJavaClass(Utils.MobileAdsClassName);
mobileAdsClass.CallStatic("initialize", activity, appId);
}
public void Initialize(Action<InitializationStatus> initCompleteAction)
{
this.initCompleteAction = initCompleteAction;
AndroidJavaClass playerClass = new AndroidJavaClass(Utils.UnityActivityClassName);
AndroidJavaObject activity =
playerClass.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaClass mobileAdsClass = new AndroidJavaClass(Utils.MobileAdsClassName);
mobileAdsClass.CallStatic("initialize", activity, this);
}
public void SetApplicationVolume(float volume)
{
AndroidJavaClass mobileAdsClass = new AndroidJavaClass(Utils.MobileAdsClassName);
mobileAdsClass.CallStatic("setAppVolume", volume);
}
public void SetApplicationMuted(bool muted)
{
AndroidJavaClass mobileAdsClass = new AndroidJavaClass(Utils.MobileAdsClassName);
mobileAdsClass.CallStatic("setAppMuted", muted);
}
public void SetiOSAppPauseOnBackground(bool pause)
{
// Do nothing on Android. Default behavior is to pause when app is backgrounded.
}
public float GetDeviceScale()
{
AndroidJavaClass playerClass = new AndroidJavaClass(Utils.UnityActivityClassName);
AndroidJavaObject activity =
playerClass.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject resources = activity.Call<AndroidJavaObject>("getResources");
AndroidJavaObject metrics = resources.Call<AndroidJavaObject>("getDisplayMetrics");
return metrics.Get<float>("density");
}
public int GetDeviceSafeWidth()
{
return Utils.GetScreenWidth();
}
#region Callbacks from OnInitializationCompleteListener.
public void onInitializationComplete(AndroidJavaObject initStatus)
{
if (initCompleteAction != null)
{
InitializationStatus status = new InitializationStatus(new InitializationStatusClient(initStatus));
initCompleteAction(status);
}
}
#endregion
}
}
#endif
fileFormatVersion: 2
guid: 9efbe79a398474b1fb942b960e7367b4
timeCreated: 1498782507
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
#if UNITY_ANDROID
using System;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Android
{
public class RewardBasedVideoAdClient : AndroidJavaProxy, IRewardBasedVideoAdClient
{
private AndroidJavaObject androidRewardBasedVideo;
public event EventHandler<EventArgs> OnAdLoaded = delegate { };
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad = delegate { };
public event EventHandler<EventArgs> OnAdOpening = delegate { };
public event EventHandler<EventArgs> OnAdStarted = delegate { };
public event EventHandler<EventArgs> OnAdClosed = delegate { };
public event EventHandler<Reward> OnAdRewarded = delegate { };
public event EventHandler<EventArgs> OnAdLeavingApplication = delegate { };
public event EventHandler<EventArgs> OnAdCompleted = delegate { };
public RewardBasedVideoAdClient()
: base(Utils.UnityRewardBasedVideoAdListenerClassName)
{
AndroidJavaClass playerClass = new AndroidJavaClass(Utils.UnityActivityClassName);
AndroidJavaObject activity =
playerClass.GetStatic<AndroidJavaObject>("currentActivity");
androidRewardBasedVideo = new AndroidJavaObject(Utils.RewardBasedVideoClassName,
activity, this);
}
#region IRewardBasedVideoClient implementation
public void CreateRewardBasedVideoAd()
{
androidRewardBasedVideo.Call("create");
}
public void LoadAd(AdRequest request, string adUnitId)
{
androidRewardBasedVideo.Call("loadAd", Utils.GetAdRequestJavaObject(request), adUnitId);
}
public bool IsLoaded()
{
return androidRewardBasedVideo.Call<bool>("isLoaded");
}
public void ShowRewardBasedVideoAd()
{
androidRewardBasedVideo.Call("show");
}
public void SetUserId(string userId)
{
androidRewardBasedVideo.Call("setUserId", userId);
}
public void DestroyRewardBasedVideoAd()
{
androidRewardBasedVideo.Call("destroy");
}
// Returns the mediation adapter class name.
public string MediationAdapterClassName()
{
return this.androidRewardBasedVideo.Call<string>("getMediationAdapterClassName");
}
#endregion
#region Callbacks from UnityRewardBasedVideoAdListener.
void onAdLoaded()
{
if (this.OnAdLoaded != null)
{
this.OnAdLoaded(this, EventArgs.Empty);
}
}
void onAdFailedToLoad(string errorReason)
{
if (this.OnAdFailedToLoad != null)
{
AdFailedToLoadEventArgs args = new AdFailedToLoadEventArgs()
{
Message = errorReason
};
this.OnAdFailedToLoad(this, args);
}
}
void onAdOpened()
{
if (this.OnAdOpening != null)
{
this.OnAdOpening(this, EventArgs.Empty);
}
}
void onAdStarted()
{
if (this.OnAdStarted != null)
{
this.OnAdStarted(this, EventArgs.Empty);
}
}
void onAdClosed()
{
if (this.OnAdClosed != null)
{
this.OnAdClosed(this, EventArgs.Empty);
}
}
void onAdRewarded(string type, float amount)
{
if (this.OnAdRewarded != null)
{
Reward args = new Reward()
{
Type = type,
Amount = amount
};
this.OnAdRewarded(this, args);
}
}
void onAdLeftApplication()
{
if (this.OnAdLeavingApplication != null)
{
this.OnAdLeavingApplication(this, EventArgs.Empty);
}
}
void onAdCompleted()
{
if (this.OnAdCompleted != null)
{
this.OnAdCompleted(this, EventArgs.Empty);
}
}
#endregion
}
}
#endif
fileFormatVersion: 2
guid: a1e210d603a434d7ba2021f95f0d666c
timeCreated: 1445365060
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2018 Google, Inc.
//
// 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.
#if UNITY_ANDROID
using System;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Android
{
public class RewardedAdClient : AndroidJavaProxy, IRewardedAdClient
{
private AndroidJavaObject androidRewardedAd;
public RewardedAdClient() : base(Utils.UnityRewardedAdCallbackClassName)
{
AndroidJavaClass playerClass = new AndroidJavaClass(Utils.UnityActivityClassName);
AndroidJavaObject activity =
playerClass.GetStatic<AndroidJavaObject>("currentActivity");
androidRewardedAd = new AndroidJavaObject(Utils.UnityRewardedAdClassName, activity, this);
}
#region IRewardedClient implementation
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdErrorEventArgs> OnAdFailedToLoad;
public event EventHandler<AdErrorEventArgs> OnAdFailedToShow;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<Reward> OnUserEarnedReward;
public event EventHandler<EventArgs> OnAdClosed;
public void CreateRewardedAd(string adUnitId)
{
androidRewardedAd.Call("create", adUnitId);
}
public void LoadAd(AdRequest request)
{
androidRewardedAd.Call("loadAd", Utils.GetAdRequestJavaObject(request));
}
public bool IsLoaded()
{
return androidRewardedAd.Call<bool>("isLoaded");
}
public void Show()
{
androidRewardedAd.Call("show");
}
public void SetServerSideVerificationOptions(ServerSideVerificationOptions serverSideVerificationOptions)
{
androidRewardedAd.Call("setServerSideVerificationOptions", Utils.GetServerSideVerificationOptionsJavaObject(serverSideVerificationOptions));
}
public void DestroyRewardBasedVideoAd()
{
androidRewardedAd.Call("destroy");
}
// Returns the reward item for the loaded rewarded ad.
public Reward GetRewardItem()
{
AndroidJavaObject rewardItem = this.androidRewardedAd.Call<AndroidJavaObject>("getRewardItem");
if (rewardItem == null) {
return null;
}
string type = rewardItem.Call<string>("getType");
int amount = rewardItem.Call<int>("getAmount");
return new Reward()
{
Type = type,
Amount = (double) amount
};
}
// Returns the mediation adapter class name.
public string MediationAdapterClassName()
{
return this.androidRewardedAd.Call<string>("getMediationAdapterClassName");
}
#endregion
#region Callbacks from UnityRewardBasedVideoAdListener.
void onRewardedAdLoaded()
{
if (this.OnAdLoaded != null)
{
this.OnAdLoaded(this, EventArgs.Empty);
}
}
void onRewardedAdFailedToLoad(string errorReason)
{
if (this.OnAdFailedToLoad != null)
{
AdErrorEventArgs args = new AdErrorEventArgs()
{
Message = errorReason
};
this.OnAdFailedToLoad(this, args);
}
}
void onRewardedAdFailedToShow(string errorReason)
{
if (this.OnAdFailedToShow != null)
{
AdErrorEventArgs args = new AdErrorEventArgs()
{
Message = errorReason
};
this.OnAdFailedToShow(this, args);
}
}
void onRewardedAdOpened()
{
if (this.OnAdOpening != null)
{
this.OnAdOpening(this, EventArgs.Empty);
}
}
void onRewardedAdClosed()
{
if (this.OnAdClosed != null)
{
this.OnAdClosed(this, EventArgs.Empty);
}
}
void onUserEarnedReward(string type, float amount)
{
if (this.OnUserEarnedReward != null)
{
Reward args = new Reward()
{
Type = type,
Amount = amount
};
this.OnUserEarnedReward(this, args);
}
}
#endregion
}
}
#endif
fileFormatVersion: 2
guid: efe80f4cc4cf34115bb52be0fe4016bf
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
#if UNITY_ANDROID
using UnityEngine;
using System;
using System.Collections.Generic;
using GoogleMobileAds.Api;
using GoogleMobileAds.Api.Mediation;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.Android
{
internal class Utils
{
#region Fully-qualified class names
#region Google Mobile Ads SDK class names
public const string AdListenerClassName = "com.google.android.gms.ads.AdListener";
public const string AdRequestClassName = "com.google.android.gms.ads.AdRequest";
public const string AdRequestBuilderClassName =
"com.google.android.gms.ads.AdRequest$Builder";
public const string AdSizeClassName = "com.google.android.gms.ads.AdSize";
public const string AdMobExtrasClassName =
"com.google.android.gms.ads.mediation.admob.AdMobExtras";
public const string PlayStorePurchaseListenerClassName =
"com.google.android.gms.ads.purchase.PlayStorePurchaseListener";
public const string MobileAdsClassName = "com.google.android.gms.ads.MobileAds";
public const string ServerSideVerificationOptionsClassName =
"com.google.android.gms.ads.rewarded.ServerSideVerificationOptions";
public const string ServerSideVerificationOptionsBuilderClassName =
"com.google.android.gms.ads.rewarded.ServerSideVerificationOptions$Builder";
#endregion
#region Google Mobile Ads Unity Plugin class names
public const string BannerViewClassName = "com.google.unity.ads.Banner";
public const string InterstitialClassName = "com.google.unity.ads.Interstitial";
public const string RewardBasedVideoClassName = "com.google.unity.ads.RewardBasedVideo";
public const string UnityRewardedAdClassName = "com.google.unity.ads.UnityRewardedAd";
public const string NativeAdLoaderClassName = "com.google.unity.ads.NativeAdLoader";
public const string UnityAdListenerClassName = "com.google.unity.ads.UnityAdListener";
public const string UnityRewardBasedVideoAdListenerClassName =
"com.google.unity.ads.UnityRewardBasedVideoAdListener";
public const string UnityRewardedAdCallbackClassName =
"com.google.unity.ads.UnityRewardedAdCallback";
public const string UnityAdapterStatusEnumName =
"com.google.android.gms.ads.initialization.AdapterStatus$State";
public const string OnInitializationCompleteListenerClassName =
"com.google.android.gms.ads.initialization.OnInitializationCompleteListener";
public const string UnityAdLoaderListenerClassName =
"com.google.unity.ads.UnityAdLoaderListener";
public const string PluginUtilsClassName = "com.google.unity.ads.PluginUtils";
#endregion
#region Unity class names
public const string UnityActivityClassName = "com.unity3d.player.UnityPlayer";
#endregion
#region Android SDK class names
public const string BundleClassName = "android.os.Bundle";
public const string DateClassName = "java.util.Date";
public const string DisplayMetricsClassName = "android.util.DisplayMetrics";
#endregion
#endregion
#region JavaObject creators
public static AndroidJavaObject GetAdSizeJavaObject(AdSize adSize)
{
switch (adSize.AdType) {
case AdSize.Type.SmartBanner:
#if UNITY_2019_2_OR_NEWER
// AndroidJavaClass.GetStatic<AndroidJavaObject>() returns null since Unity 2019.2.
// Creates an AdSize object by directly calling the constructor, as a workaround.
return new AndroidJavaObject(AdSizeClassName, -1, -2)
.GetStatic<AndroidJavaObject>("SMART_BANNER");
#else
return new AndroidJavaClass(AdSizeClassName)
.GetStatic<AndroidJavaObject>("SMART_BANNER");
#endif
case AdSize.Type.AnchoredAdaptive:
AndroidJavaClass adSizeClass = new AndroidJavaClass(AdSizeClassName);
AndroidJavaClass playerClass = new AndroidJavaClass(Utils.UnityActivityClassName);
AndroidJavaObject activity =
playerClass.GetStatic<AndroidJavaObject>("currentActivity");
switch (adSize.Orientation)
{
case Orientation.Landscape:
return adSizeClass.CallStatic<AndroidJavaObject>("getLandscapeBannerAdSizeWithWidth", activity, adSize.Width);
case Orientation.Portrait:
return adSizeClass.CallStatic<AndroidJavaObject>("getPortraitBannerAdSizeWithWidth", activity, adSize.Width);
case Orientation.Current:
return adSizeClass.CallStatic<AndroidJavaObject>("getCurrentOrientationBannerAdSizeWithWidth", activity, adSize.Width);
default:
throw new ArgumentException("Invalid Orientation provided for ad size.");
}
case AdSize.Type.Standard:
return new AndroidJavaObject(AdSizeClassName, adSize.Width, adSize.Height);
default:
throw new ArgumentException("Invalid AdSize.Type provided for ad size.");
}
}
internal static int GetScreenWidth() {
DisplayMetrics metrics = new DisplayMetrics();
return (int) (metrics.WidthPixels / metrics.Density);
}
public static AndroidJavaObject GetAdRequestJavaObject(AdRequest request)
{
AndroidJavaObject adRequestBuilder = new AndroidJavaObject(AdRequestBuilderClassName);
foreach (string keyword in request.Keywords)
{
adRequestBuilder.Call<AndroidJavaObject>("addKeyword", keyword);
}
foreach (string deviceId in request.TestDevices)
{
if (deviceId == AdRequest.TestDeviceSimulator)
{
string emulatorDeviceId = new AndroidJavaClass(AdRequestClassName)
.GetStatic<string>("DEVICE_ID_EMULATOR");
adRequestBuilder.Call<AndroidJavaObject>("addTestDevice", emulatorDeviceId);
}
else
{
adRequestBuilder.Call<AndroidJavaObject>("addTestDevice", deviceId);
}
}
if (request.Birthday.HasValue)
{
DateTime birthday = request.Birthday.GetValueOrDefault();
AndroidJavaObject birthdayObject = new AndroidJavaObject(
DateClassName, birthday.Year, birthday.Month, birthday.Day);
adRequestBuilder.Call<AndroidJavaObject>("setBirthday", birthdayObject);
}
if (request.Gender.HasValue)
{
int? genderCode = null;
switch (request.Gender.GetValueOrDefault())
{
case Api.Gender.Unknown:
genderCode = new AndroidJavaClass(AdRequestClassName)
.GetStatic<int>("GENDER_UNKNOWN");
break;
case Api.Gender.Male:
genderCode = new AndroidJavaClass(AdRequestClassName)
.GetStatic<int>("GENDER_MALE");
break;
case Api.Gender.Female:
genderCode = new AndroidJavaClass(AdRequestClassName)
.GetStatic<int>("GENDER_FEMALE");
break;
}
if (genderCode.HasValue)
{
adRequestBuilder.Call<AndroidJavaObject>("setGender", genderCode);
}
}
if (request.TagForChildDirectedTreatment.HasValue)
{
adRequestBuilder.Call<AndroidJavaObject>(
"tagForChildDirectedTreatment",
request.TagForChildDirectedTreatment.GetValueOrDefault());
}
// Denote that the request is coming from this Unity plugin.
adRequestBuilder.Call<AndroidJavaObject>(
"setRequestAgent",
"unity-" + AdRequest.Version);
AndroidJavaObject bundle = new AndroidJavaObject(BundleClassName);
foreach (KeyValuePair<string, string> entry in request.Extras)
{
bundle.Call("putString", entry.Key, entry.Value);
}
bundle.Call("putString", "is_unity", "1");
AndroidJavaObject extras = new AndroidJavaObject(AdMobExtrasClassName, bundle);
adRequestBuilder.Call<AndroidJavaObject>("addNetworkExtras", extras);
foreach (MediationExtras mediationExtra in request.MediationExtras)
{
AndroidJavaObject mediationExtrasBundleBuilder =
new AndroidJavaObject(mediationExtra.AndroidMediationExtraBuilderClassName);
AndroidJavaObject map = new AndroidJavaObject("java.util.HashMap");
foreach (KeyValuePair<string, string> entry in mediationExtra.Extras)
{
map.Call<AndroidJavaObject>("put", entry.Key, entry.Value);
}
AndroidJavaObject mediationExtras =
mediationExtrasBundleBuilder.Call<AndroidJavaObject>("buildExtras", map);
if (mediationExtras != null)
{
adRequestBuilder.Call<AndroidJavaObject>(
"addNetworkExtrasBundle",
mediationExtrasBundleBuilder.Call<AndroidJavaClass>("getAdapterClass"),
mediationExtras);
adRequestBuilder.Call<AndroidJavaObject>(
"addCustomEventExtrasBundle",
mediationExtrasBundleBuilder.Call<AndroidJavaClass>("getAdapterClass"),
mediationExtras);
}
}
return adRequestBuilder.Call<AndroidJavaObject>("build");
}
public static AndroidJavaObject GetServerSideVerificationOptionsJavaObject(ServerSideVerificationOptions serverSideVerificationOptions)
{
AndroidJavaObject serverSideVerificationOptionsBuilder = new AndroidJavaObject(ServerSideVerificationOptionsBuilderClassName);
serverSideVerificationOptionsBuilder.Call<AndroidJavaObject>("setUserId", serverSideVerificationOptions.UserId);
serverSideVerificationOptionsBuilder.Call<AndroidJavaObject>("setCustomData", serverSideVerificationOptions.CustomData);
return serverSideVerificationOptionsBuilder.Call<AndroidJavaObject>("build");
}
#endregion
}
}
#endif
fileFormatVersion: 2
guid: e17a17026dc1549e090ee48995b0a982
timeCreated: 1427838346
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
namespace GoogleMobileAds
{
public class GoogleMobileAdsClientFactory
{
public static IBannerClient BuildBannerClient()
{
#if UNITY_EDITOR
// Testing UNITY_EDITOR first because the editor also responds to the currently
// selected platform.
return new GoogleMobileAds.Common.DummyClient();
#elif UNITY_ANDROID
return new GoogleMobileAds.Android.BannerClient();
#elif (UNITY_5 && UNITY_IOS) || UNITY_IPHONE
return new GoogleMobileAds.iOS.BannerClient();
#else
return new GoogleMobileAds.Common.DummyClient();
#endif
}
public static IInterstitialClient BuildInterstitialClient()
{
#if UNITY_EDITOR
// Testing UNITY_EDITOR first because the editor also responds to the currently
// selected platform.
return new GoogleMobileAds.Common.DummyClient();
#elif UNITY_ANDROID
return new GoogleMobileAds.Android.InterstitialClient();
#elif (UNITY_5 && UNITY_IOS) || UNITY_IPHONE
return new GoogleMobileAds.iOS.InterstitialClient();
#else
return new GoogleMobileAds.Common.DummyClient();
#endif
}
public static IRewardBasedVideoAdClient BuildRewardBasedVideoAdClient()
{
#if UNITY_EDITOR
// Testing UNITY_EDITOR first because the editor also responds to the currently
// selected platform.
return new GoogleMobileAds.Common.DummyClient();
#elif UNITY_ANDROID
return new GoogleMobileAds.Android.RewardBasedVideoAdClient();
#elif (UNITY_5 && UNITY_IOS) || UNITY_IPHONE
return new GoogleMobileAds.iOS.RewardBasedVideoAdClient();
#else
return new GoogleMobileAds.Common.DummyClient();
#endif
}
public static IRewardedAdClient BuildRewardedAdClient()
{
#if UNITY_EDITOR
// Testing UNITY_EDITOR first because the editor also responds to the currently
// selected platform.
return new GoogleMobileAds.Common.RewardedAdDummyClient();
#elif UNITY_ANDROID
return new GoogleMobileAds.Android.RewardedAdClient();
#elif (UNITY_5 && UNITY_IOS) || UNITY_IPHONE
return new GoogleMobileAds.iOS.RewardedAdClient();
#else
return new GoogleMobileAds.Common.RewardedAdDummyClient();
#endif
}
public static IAdLoaderClient BuildAdLoaderClient(AdLoader adLoader)
{
#if UNITY_EDITOR
// Testing UNITY_EDITOR first because the editor also responds to the currently
// selected platform.
return new GoogleMobileAds.Common.DummyClient();
#elif UNITY_ANDROID
return new GoogleMobileAds.Android.AdLoaderClient(adLoader);
#elif (UNITY_5 && UNITY_IOS) || UNITY_IPHONE
return new GoogleMobileAds.iOS.AdLoaderClient(adLoader);
#else
return new GoogleMobileAds.Common.DummyClient();
#endif
}
public static IMobileAdsClient MobileAdsInstance()
{
#if UNITY_EDITOR
// Testing UNITY_EDITOR first because the editor also responds to the currently
// selected platform.
return new GoogleMobileAds.Common.DummyClient();
#elif UNITY_ANDROID
return GoogleMobileAds.Android.MobileAdsClient.Instance;
#elif (UNITY_5 && UNITY_IOS) || UNITY_IPHONE
return GoogleMobileAds.iOS.MobileAdsClient.Instance;
#else
return new GoogleMobileAds.Common.DummyClient();
#endif
}
}
}
fileFormatVersion: 2
guid: 6282c3acdf4eb41cebb4eae72326ba2e
timeCreated: 1427838344
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: a6deaa0d81683441a9cdd72c265e2503
folderAsset: yes
timeCreated: 1437157376
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2016 Google, Inc.
//
// 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.
#if UNITY_IOS
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.iOS
{
[StructLayout(LayoutKind.Sequential),Serializable]
// The System.Boolean (bool in C#) type is special. A bool within a structure is marshaled in a different format
// than when passed as an argument to a function (4-byte integer vs 2-byte integer, non zero = true vs -1 = true).
// Using ints instead for simplicity.
public struct NativeAdTypes
{
public int CustomTemplateAd;
}
public class AdLoaderClient : IAdLoaderClient, IDisposable
{
private IntPtr adLoaderPtr;
private IntPtr adLoaderClientPtr;
private NativeAdTypes adTypes;
private Dictionary<string, Action<CustomNativeTemplateAd, string>>
customNativeTemplateCallbacks;
public AdLoaderClient(AdLoader unityAdLoader)
{
this.adLoaderClientPtr = (IntPtr)GCHandle.Alloc(this);
this.customNativeTemplateCallbacks = unityAdLoader.CustomNativeTemplateClickHandlers;
string[] templateIdsArray = new string[unityAdLoader.TemplateIds.Count];
unityAdLoader.TemplateIds.CopyTo(templateIdsArray);
this.adTypes = new NativeAdTypes();
bool configureReturnUrlsForImageAssets = false;
if (unityAdLoader.AdTypes.Contains(NativeAdType.CustomTemplate))
{
configureReturnUrlsForImageAssets = false;
adTypes.CustomTemplateAd = 1;
}
this.AdLoaderPtr = Externs.GADUCreateAdLoader(
this.adLoaderClientPtr,
unityAdLoader.AdUnitId,
templateIdsArray,
templateIdsArray.Length,
ref adTypes,
configureReturnUrlsForImageAssets);
Externs.GADUSetAdLoaderCallbacks(
this.AdLoaderPtr,
AdLoaderDidReceiveNativeCustomTemplateAdCallback,
AdLoaderDidFailToReceiveAdWithErrorCallback);
}
internal delegate void GADUAdLoaderDidReceiveNativeCustomTemplateAdCallback(
IntPtr adLoader, IntPtr nativeCustomTemplateAd, string templateID);
internal delegate void GADUAdLoaderDidFailToReceiveAdWithErrorCallback(
IntPtr AdLoader, string error);
public event EventHandler<CustomNativeEventArgs> OnCustomNativeTemplateAdLoaded;
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
// This property should be used when setting the adLoaderPtr.
private IntPtr AdLoaderPtr
{
get
{
return this.adLoaderPtr;
}
set
{
Externs.GADURelease(this.adLoaderPtr);
this.adLoaderPtr = value;
}
}
public void LoadAd(AdRequest request)
{
IntPtr requestPtr = Utils.BuildAdRequest(request);
Externs.GADURequestNativeAd(this.AdLoaderPtr, requestPtr);
Externs.GADURelease(requestPtr);
}
// Destroys the AdLoader.
public void DestroyAdLoader()
{
this.AdLoaderPtr = IntPtr.Zero;
}
public void Dispose()
{
this.DestroyAdLoader();
((GCHandle)this.adLoaderClientPtr).Free();
}
~AdLoaderClient()
{
this.Dispose();
}
[MonoPInvokeCallback(typeof(GADUAdLoaderDidReceiveNativeCustomTemplateAdCallback))]
private static void AdLoaderDidReceiveNativeCustomTemplateAdCallback(
IntPtr adLoader, IntPtr nativeCustomTemplateAd, string templateID)
{
AdLoaderClient client = IntPtrToAdLoaderClient(adLoader);
Action<CustomNativeTemplateAd, string> clickHandler =
client.customNativeTemplateCallbacks.ContainsKey(templateID) ?
client.customNativeTemplateCallbacks[templateID] : null;
if (client.OnCustomNativeTemplateAdLoaded != null)
{
CustomNativeEventArgs args = new CustomNativeEventArgs()
{
nativeAd = new CustomNativeTemplateAd(new CustomNativeTemplateClient(
nativeCustomTemplateAd, clickHandler))
};
client.OnCustomNativeTemplateAdLoaded(client, args);
}
}
[MonoPInvokeCallback(typeof(GADUAdLoaderDidFailToReceiveAdWithErrorCallback))]
private static void AdLoaderDidFailToReceiveAdWithErrorCallback(
IntPtr adLoader, string error)
{
AdLoaderClient client = IntPtrToAdLoaderClient(adLoader);
if (client.OnAdFailedToLoad != null)
{
AdFailedToLoadEventArgs args = new AdFailedToLoadEventArgs()
{
Message = error
};
client.OnAdFailedToLoad(client, args);
}
}
private static AdLoaderClient IntPtrToAdLoaderClient(IntPtr adLoader)
{
GCHandle handle = (GCHandle)adLoader;
return handle.Target as AdLoaderClient;
}
}
}
#endif
fileFormatVersion: 2
guid: c3adcf5ae777f49baac270e65cb1305f
timeCreated: 1456442242
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
#if UNITY_IOS
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.iOS
{
public class BannerClient : IBannerClient, IDisposable
{
private IntPtr bannerViewPtr;
private IntPtr bannerClientPtr;
#region Banner callback types
internal delegate void GADUAdViewDidReceiveAdCallback(IntPtr bannerClient);
internal delegate void GADUAdViewDidFailToReceiveAdWithErrorCallback(
IntPtr bannerClient, string error);
internal delegate void GADUAdViewWillPresentScreenCallback(IntPtr bannerClient);
internal delegate void GADUAdViewDidDismissScreenCallback(IntPtr bannerClient);
internal delegate void GADUAdViewWillLeaveApplicationCallback(IntPtr bannerClient);
#endregion
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<EventArgs> OnAdClosed;
public event EventHandler<EventArgs> OnAdLeavingApplication;
// This property should be used when setting the bannerViewPtr.
private IntPtr BannerViewPtr
{
get
{
return this.bannerViewPtr;
}
set
{
Externs.GADURelease(this.bannerViewPtr);
this.bannerViewPtr = value;
}
}
#region IBannerClient implementation
// Creates a banner view.
public void CreateBannerView(string adUnitId, AdSize adSize, AdPosition position)
{
this.bannerClientPtr = (IntPtr)GCHandle.Alloc(this);
switch (adSize.AdType) {
case AdSize.Type.SmartBanner:
this.BannerViewPtr = Externs.GADUCreateSmartBannerView(
this.bannerClientPtr, adUnitId, (int)position);
break;
case AdSize.Type.AnchoredAdaptive:
this.BannerViewPtr = Externs.GADUCreateAnchoredAdaptiveBannerView(
this.bannerClientPtr,
adUnitId,
adSize.Width,
(int)adSize.Orientation,
(int)position);
break;
case AdSize.Type.Standard:
this.BannerViewPtr = Externs.GADUCreateBannerView(
this.bannerClientPtr, adUnitId, adSize.Width, adSize.Height, (int)position);
break;
default:
throw new ArgumentException("Invalid AdSize.Type provided.");
}
Externs.GADUSetBannerCallbacks(
this.BannerViewPtr,
AdViewDidReceiveAdCallback,
AdViewDidFailToReceiveAdWithErrorCallback,
AdViewWillPresentScreenCallback,
AdViewDidDismissScreenCallback,
AdViewWillLeaveApplicationCallback);
}
public void CreateBannerView(string adUnitId, AdSize adSize, int x, int y)
{
this.bannerClientPtr = (IntPtr)GCHandle.Alloc(this);
switch (adSize.AdType) {
case AdSize.Type.SmartBanner:
this.BannerViewPtr = Externs.GADUCreateSmartBannerViewWithCustomPosition(
this.bannerClientPtr,
adUnitId,
x,
y);
break;
case AdSize.Type.AnchoredAdaptive:
this.BannerViewPtr = Externs.GADUCreateAnchoredAdaptiveBannerViewWithCustomPosition(
this.bannerClientPtr,
adUnitId,
adSize.Width,
(int)adSize.Orientation,
x,
y);
break;
case AdSize.Type.Standard:
this.BannerViewPtr = Externs.GADUCreateBannerViewWithCustomPosition(
this.bannerClientPtr,
adUnitId,
adSize.Width,
adSize.Height,
x,
y);
break;
default:
throw new ArgumentException("Invalid AdSize.Type provided.");
}
Externs.GADUSetBannerCallbacks(
this.BannerViewPtr,
AdViewDidReceiveAdCallback,
AdViewDidFailToReceiveAdWithErrorCallback,
AdViewWillPresentScreenCallback,
AdViewDidDismissScreenCallback,
AdViewWillLeaveApplicationCallback);
}
// Loads an ad.
public void LoadAd(AdRequest request)
{
IntPtr requestPtr = Utils.BuildAdRequest(request);
Externs.GADURequestBannerAd(this.BannerViewPtr, requestPtr);
Externs.GADURelease(requestPtr);
}
// Displays the banner view on the screen.
public void ShowBannerView()
{
Externs.GADUShowBannerView(this.BannerViewPtr);
}
// Hides the banner view from the screen.
public void HideBannerView()
{
Externs.GADUHideBannerView(this.BannerViewPtr);
}
// Destroys the banner view.
public void DestroyBannerView()
{
Externs.GADURemoveBannerView(this.BannerViewPtr);
this.BannerViewPtr = IntPtr.Zero;
}
// Returns the height of the BannerView in pixels.
public float GetHeightInPixels()
{
return Externs.GADUGetBannerViewHeightInPixels(this.BannerViewPtr);
}
// Returns the width of the BannerView in pixels.
public float GetWidthInPixels()
{
return Externs.GADUGetBannerViewWidthInPixels(this.BannerViewPtr);
}
// Set the position of the banner view using standard position.
public void SetPosition(AdPosition adPosition)
{
Externs.GADUSetBannerViewAdPosition(this.BannerViewPtr, (int)adPosition);
}
// Set the position of the banner view using custom position.
public void SetPosition(int x, int y)
{
Externs.GADUSetBannerViewCustomPosition(this.BannerViewPtr, x, y);
}
// Returns the mediation adapter class name.
public string MediationAdapterClassName()
{
return Utils.PtrToString(Externs.GADUMediationAdapterClassNameForBannerView(this.BannerViewPtr));
}
public void Dispose()
{
this.DestroyBannerView();
((GCHandle)this.bannerClientPtr).Free();
}
~BannerClient()
{
this.Dispose();
}
#endregion
#region Banner callback methods
[MonoPInvokeCallback(typeof(GADUAdViewDidReceiveAdCallback))]
private static void AdViewDidReceiveAdCallback(IntPtr bannerClient)
{
BannerClient client = IntPtrToBannerClient(bannerClient);
if (client.OnAdLoaded != null)
{
client.OnAdLoaded(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADUAdViewDidFailToReceiveAdWithErrorCallback))]
private static void AdViewDidFailToReceiveAdWithErrorCallback(
IntPtr bannerClient, string error)
{
BannerClient client = IntPtrToBannerClient(bannerClient);
if (client.OnAdFailedToLoad != null)
{
AdFailedToLoadEventArgs args = new AdFailedToLoadEventArgs()
{
Message = error
};
client.OnAdFailedToLoad(client, args);
}
}
[MonoPInvokeCallback(typeof(GADUAdViewWillPresentScreenCallback))]
private static void AdViewWillPresentScreenCallback(IntPtr bannerClient)
{
BannerClient client = IntPtrToBannerClient(bannerClient);
if (client.OnAdOpening != null)
{
client.OnAdOpening(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADUAdViewDidDismissScreenCallback))]
private static void AdViewDidDismissScreenCallback(IntPtr bannerClient)
{
BannerClient client = IntPtrToBannerClient(bannerClient);
if (client.OnAdClosed != null)
{
client.OnAdClosed(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADUAdViewWillLeaveApplicationCallback))]
private static void AdViewWillLeaveApplicationCallback(IntPtr bannerClient)
{
BannerClient client = IntPtrToBannerClient(bannerClient);
if (client.OnAdLeavingApplication != null)
{
client.OnAdLeavingApplication(client, EventArgs.Empty);
}
}
private static BannerClient IntPtrToBannerClient(IntPtr bannerClient)
{
GCHandle handle = (GCHandle)bannerClient;
return handle.Target as BannerClient;
}
#endregion
}
}
#endif
fileFormatVersion: 2
guid: 781449620de7e4db0b357e23b1a0fb58
timeCreated: 1444854966
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2016 Google, Inc.
//
// 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.
#if UNITY_IOS
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
using UnityEngine;
namespace GoogleMobileAds.iOS
{
internal class CustomNativeTemplateClient : ICustomNativeTemplateClient, IDisposable
{
private IntPtr customNativeAdPtr;
private IntPtr customNativeTemplateAdClientPtr;
private Action<CustomNativeTemplateAd, string> clickHandler;
// This property should be used when setting the customNativeAdPtr.
private IntPtr CustomNativeAdPtr
{
get
{
return this.customNativeAdPtr;
}
set
{
Externs.GADURelease(this.customNativeAdPtr);
this.customNativeAdPtr = value;
}
}
public CustomNativeTemplateClient(
IntPtr customNativeAd, Action<CustomNativeTemplateAd, string> clickHandler)
{
this.customNativeAdPtr = customNativeAd;
this.clickHandler = clickHandler;
this.customNativeTemplateAdClientPtr = (IntPtr)GCHandle.Alloc(this);
Externs.GADUSetNativeCustomTemplateAdUnityClient(
customNativeAd,
this.customNativeTemplateAdClientPtr);
Externs.GADUSetNativeCustomTemplateAdCallbacks(
customNativeAd,
NativeCustomTemplateDidReceiveClickCallback);
}
internal delegate void GADUNativeCustomTemplateDidReceiveClick(
IntPtr nativeCustomTemplateAd, string error);
public List<string> GetAvailableAssetNames()
{
IntPtr unmanagedAssetArray =
Externs.GADUNativeCustomTemplateAdAvailableAssetKeys(this.CustomNativeAdPtr);
int numOfAssets =
Externs.GADUNativeCustomTemplateAdNumberOfAvailableAssetKeys(
this.CustomNativeAdPtr);
return Utils.PtrArrayToManagedList(unmanagedAssetArray, numOfAssets);
}
public string GetTemplateId()
{
return Externs.GADUNativeCustomTemplateAdTemplateID(this.CustomNativeAdPtr);
}
public byte[] GetImageByteArray(string key)
{
string bytesString = Externs.GADUNativeCustomTemplateAdImageAsBytesForKey(
this.CustomNativeAdPtr, key);
if (bytesString == null)
{
return null;
}
return System.Convert.FromBase64String(bytesString);
}
public string GetText(string key)
{
return Externs.GADUNativeCustomTemplateAdStringForKey(this.CustomNativeAdPtr, key);
}
public void PerformClick(string assetName)
{
bool customClickAction = this.clickHandler != null;
Externs.GADUNativeCustomTemplateAdPerformClickOnAssetWithKey(
this.CustomNativeAdPtr, assetName, customClickAction);
}
public void RecordImpression()
{
Externs.GADUNativeCustomTemplateAdRecordImpression(this.CustomNativeAdPtr);
}
public void DestroyCustomNativeTemplateAd()
{
this.CustomNativeAdPtr = IntPtr.Zero;
}
public void Dispose()
{
this.DestroyCustomNativeTemplateAd();
((GCHandle)this.customNativeTemplateAdClientPtr).Free();
}
~CustomNativeTemplateClient()
{
this.Dispose();
}
[MonoPInvokeCallback(typeof(GADUNativeCustomTemplateDidReceiveClick))]
private static void NativeCustomTemplateDidReceiveClickCallback(
IntPtr nativeCustomAd, string assetName)
{
CustomNativeTemplateClient client = IntPtrToAdLoaderClient(nativeCustomAd);
if (client.clickHandler != null)
{
CustomNativeTemplateAd nativeAd = new CustomNativeTemplateAd(client);
client.clickHandler(nativeAd, assetName);
}
}
private static CustomNativeTemplateClient IntPtrToAdLoaderClient(
IntPtr customNativeTemplateAd)
{
GCHandle handle = (GCHandle)customNativeTemplateAd;
return handle.Target as CustomNativeTemplateClient;
}
}
}
#endif
fileFormatVersion: 2
guid: 5a8d8a8af9c7540899a0ca681a8c6ac3
timeCreated: 1456786048
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
#if UNITY_IOS
using System;
using System.Runtime.InteropServices;
namespace GoogleMobileAds.iOS
{
// Externs used by the iOS component.
internal class Externs
{
#region Common externs
[DllImport("__Internal")]
internal static extern void GADUInitialize(string key);
[DllImport("__Internal")]
internal static extern void GADUInitializeWithCallback(
IntPtr mobileAdsClient, MobileAdsClient.GADUInitializationCompleteCallback callback);
[DllImport("__Internal")]
internal static extern IntPtr GADUGetInitDescription(IntPtr status, string className);
[DllImport("__Internal")]
internal static extern int GADUGetInitLatency(IntPtr status, string className);
[DllImport("__Internal")]
internal static extern int GADUGetInitState(IntPtr status, string className);
[DllImport("__Internal")]
internal static extern IntPtr GADUGetInitAdapterClasses(IntPtr status);
[DllImport("__Internal")]
internal static extern int GADUGetInitNumberOfAdapterClasses(IntPtr status);
[DllImport("__Internal")]
internal static extern void GADUSetApplicationVolume(float volume);
[DllImport("__Internal")]
internal static extern void GADUSetApplicationMuted(bool muted);
[DllImport("__Internal")]
internal static extern void GADUSetiOSAppPauseOnBackground(bool pause);
[DllImport("__Internal")]
internal static extern float GADUDeviceScale();
[DllImport("__Internal")]
internal static extern int GADUDeviceSafeWidth();
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateRequest();
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateMutableDictionary();
[DllImport("__Internal")]
internal static extern void GADUMutableDictionarySetValue(
IntPtr mutableDictionaryPtr,
string key,
string value);
[DllImport("__Internal")]
internal static extern void GADUSetMediationExtras(
IntPtr request,
IntPtr mutableDictionaryPtr,
string adNetworkExtrasClassName);
[DllImport("__Internal")]
internal static extern void GADUAddTestDevice(IntPtr request, string deviceId);
[DllImport("__Internal")]
internal static extern void GADUAddKeyword(IntPtr request, string keyword);
[DllImport("__Internal")]
internal static extern void GADUSetBirthday(IntPtr request, int year, int month, int day);
[DllImport("__Internal")]
internal static extern void GADUSetGender(IntPtr request, int genderCode);
[DllImport("__Internal")]
internal static extern void GADUTagForChildDirectedTreatment(
IntPtr request, bool childDirectedTreatment);
[DllImport("__Internal")]
internal static extern void GADUSetExtra(IntPtr request, string key, string value);
[DllImport("__Internal")]
internal static extern void GADUSetRequestAgent(IntPtr request, string requestAgent);
[DllImport("__Internal")]
internal static extern void GADURelease(IntPtr obj);
#endregion
#region Banner externs
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateBannerView(
IntPtr bannerClient, string adUnitId, int width, int height, int positionAtTop);
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateBannerViewWithCustomPosition(
IntPtr bannerClient,
string adUnitId,
int width,
int height,
int x,
int y);
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateSmartBannerView(
IntPtr bannerClient, string adUnitId, int positionAtTop);
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateSmartBannerViewWithCustomPosition(
IntPtr bannerClient, string adUnitId, int x, int y);
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateAnchoredAdaptiveBannerView(
IntPtr bannerClient,
string adUnitId,
int width,
int orientation,
int positionAtTop);
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateAnchoredAdaptiveBannerViewWithCustomPosition(
IntPtr bannerClient,
string adUnitId,
int width,
int orientation,
int x,
int y);
[DllImport("__Internal")]
internal static extern void GADUSetBannerCallbacks(
IntPtr bannerView,
BannerClient.GADUAdViewDidReceiveAdCallback adReceivedCallback,
BannerClient.GADUAdViewDidFailToReceiveAdWithErrorCallback adFailedCallback,
BannerClient.GADUAdViewWillPresentScreenCallback willPresentCallback,
BannerClient.GADUAdViewDidDismissScreenCallback didDismissCallback,
BannerClient.GADUAdViewWillLeaveApplicationCallback willLeaveCallback);
[DllImport("__Internal")]
internal static extern void GADUHideBannerView(IntPtr bannerView);
[DllImport("__Internal")]
internal static extern void GADUShowBannerView(IntPtr bannerView);
[DllImport("__Internal")]
internal static extern void GADURemoveBannerView(IntPtr bannerView);
[DllImport("__Internal")]
internal static extern void GADURequestBannerAd(IntPtr bannerView, IntPtr request);
[DllImport("__Internal")]
internal static extern float GADUGetBannerViewHeightInPixels(IntPtr bannerView);
[DllImport("__Internal")]
internal static extern float GADUGetBannerViewWidthInPixels(IntPtr bannerView);
[DllImport("__Internal")]
internal static extern void GADUSetBannerViewAdPosition(IntPtr bannerView, int position);
[DllImport("__Internal")]
internal static extern void GADUSetBannerViewCustomPosition(IntPtr bannerView, int x, int y);
[DllImport("__Internal")]
internal static extern IntPtr GADUMediationAdapterClassNameForBannerView(IntPtr bannerView);
#endregion
#region Interstitial externs
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateInterstitial(
IntPtr interstitialClient, string adUnitId);
[DllImport("__Internal")]
internal static extern void GADUSetInterstitialCallbacks(
IntPtr interstitial,
InterstitialClient.GADUInterstitialDidReceiveAdCallback adReceivedCallback,
InterstitialClient.GADUInterstitialDidFailToReceiveAdWithErrorCallback
adFailedCallback,
InterstitialClient.GADUInterstitialWillPresentScreenCallback willPresentCallback,
InterstitialClient.GADUInterstitialDidDismissScreenCallback didDismissCallback,
InterstitialClient.GADUInterstitialWillLeaveApplicationCallback
willLeaveCallback);
[DllImport("__Internal")]
internal static extern bool GADUInterstitialReady(IntPtr interstitial);
[DllImport("__Internal")]
internal static extern void GADUShowInterstitial(IntPtr interstitial);
[DllImport("__Internal")]
internal static extern void GADURequestInterstitial(IntPtr interstitial, IntPtr request);
[DllImport("__Internal")]
internal static extern IntPtr GADUMediationAdapterClassNameForInterstitial(IntPtr interstitial);
#endregion
#region Reward based video externs
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateRewardBasedVideoAd(IntPtr rewardBasedVideo);
[DllImport("__Internal")]
internal static extern bool GADURewardBasedVideoAdReady(IntPtr rewardBasedVideo);
[DllImport("__Internal")]
internal static extern void GADUShowRewardBasedVideoAd(IntPtr rewardBasedVideo);
[DllImport("__Internal")]
internal static extern void GADUSetRewardBasedVideoAdUserId(IntPtr rewardBasedVideo, string userId);
[DllImport("__Internal")]
internal static extern void GADURequestRewardBasedVideoAd(
IntPtr bannerView, IntPtr request, string adUnitId);
[DllImport("__Internal")]
internal static extern void GADUSetRewardBasedVideoAdCallbacks(
IntPtr rewardBasedVideo,
RewardBasedVideoAdClient.GADURewardBasedVideoAdDidReceiveAdCallback
adReceivedCallback,
RewardBasedVideoAdClient.GADURewardBasedVideoAdDidFailToReceiveAdWithErrorCallback
adFailedCallback,
RewardBasedVideoAdClient.GADURewardBasedVideoAdDidOpenCallback didOpenCallback,
RewardBasedVideoAdClient.GADURewardBasedVideoAdDidStartCallback didStartCallback,
RewardBasedVideoAdClient.GADURewardBasedVideoAdDidCloseCallback didCloseCallback,
RewardBasedVideoAdClient.GADURewardBasedVideoAdDidRewardCallback didRewardcallback,
RewardBasedVideoAdClient.GADURewardBasedVideoAdWillLeaveApplicationCallback
willLeaveCallback,
RewardBasedVideoAdClient.GADURewardBasedVideoAdDidCompleteCallback didCompleteCallback);
[DllImport("__Internal")]
internal static extern IntPtr GADUMediationAdapterClassNameForRewardedVideo(IntPtr rewardedVideo);
#endregion
#region RewardedAd externs
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateRewardedAd(IntPtr rewardedAd, string adUnitId);
[DllImport("__Internal")]
internal static extern bool GADURewardedAdReady(IntPtr rewardedAd);
[DllImport("__Internal")]
internal static extern void GADUShowRewardedAd(IntPtr rewardedAd);
[DllImport("__Internal")]
internal static extern void GADURequestRewardedAd(
IntPtr rewardedAd, IntPtr request);
[DllImport("__Internal")]
internal static extern void GADUSetRewardedAdCallbacks(
IntPtr rewardedAd,
RewardedAdClient.GADURewardedAdDidReceiveAdCallback
adReceivedCallback,
RewardedAdClient.GADURewardedAdDidFailToReceiveAdWithErrorCallback
adFailedToLoadCallback,
RewardedAdClient.GADURewardedAdDidFailToShowAdWithErrorCallback
adFailedToShowCallback,
RewardedAdClient.GADURewardedAdDidOpenCallback didOpenCallback,
RewardedAdClient.GADURewardedAdDidCloseCallback didCloseCallback,
RewardedAdClient.GADUUserEarnedRewardCallback userEarnedRewardCallback);
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateServerSideVerificationOptions();
[DllImport("__Internal")]
internal static extern void GADUServerSideVerificationOptionsSetUserId(IntPtr options, string userId);
[DllImport("__Internal")]
internal static extern void GADUServerSideVerificationOptionsSetCustomRewardString(IntPtr options, string customRewardString);
[DllImport("__Internal")]
internal static extern void GADURewardedAdSetServerSideVerificationOptions(IntPtr rewardedAd, IntPtr options);
[DllImport("__Internal")]
internal static extern string GADURewardedAdGetRewardType(IntPtr rewardedAd);
[DllImport("__Internal")]
internal static extern double GADURewardedAdGetRewardAmount(IntPtr rewardedAd);
[DllImport("__Internal")]
internal static extern IntPtr GADUMediationAdapterClassNameForRewardedAd(IntPtr rewardedVideo);
#endregion
#region AdLoader externs
[DllImport("__Internal")]
internal static extern IntPtr GADUCreateAdLoader(
IntPtr adLoader,
string adUnitId,
string[] templateIds,
int templateIdsCount,
ref NativeAdTypes types,
bool returnUrlsForImageAssets);
[DllImport("__Internal")]
internal static extern void GADURequestNativeAd(IntPtr adLoader, IntPtr request);
[DllImport("__Internal")]
internal static extern void GADUSetAdLoaderCallbacks(
IntPtr adLoader,
AdLoaderClient.GADUAdLoaderDidReceiveNativeCustomTemplateAdCallback adReceivedCallback,
AdLoaderClient.GADUAdLoaderDidFailToReceiveAdWithErrorCallback adFailedCallback);
#endregion
#region NativeCustomTemplateAd externs
[DllImport("__Internal")]
internal static extern string GADUNativeCustomTemplateAdTemplateID(
IntPtr nativeCustomTemplateAd);
[DllImport("__Internal")]
internal static extern string GADUNativeCustomTemplateAdImageAsBytesForKey(
IntPtr nativeCustomTemplateAd, string key);
[DllImport("__Internal")]
internal static extern string GADUNativeCustomTemplateAdStringForKey(
IntPtr nativeCustomTemplateAd, string key);
[DllImport("__Internal")]
internal static extern void GADUNativeCustomTemplateAdRecordImpression(
IntPtr nativeCustomTemplateAd);
[DllImport("__Internal")]
internal static extern void GADUNativeCustomTemplateAdPerformClickOnAssetWithKey(
IntPtr nativeCustomTemplateAd, string assetName, bool customClickAction);
[DllImport("__Internal")]
internal static extern IntPtr GADUNativeCustomTemplateAdAvailableAssetKeys(
IntPtr nativeCustomTemplateAd);
[DllImport("__Internal")]
internal static extern int GADUNativeCustomTemplateAdNumberOfAvailableAssetKeys(
IntPtr nativeCustomTemplateAd);
[DllImport("__Internal")]
internal static extern void GADUSetNativeCustomTemplateAdUnityClient(
IntPtr nativeCustomTemplateAd, IntPtr nativeCustomTemplateClient);
[DllImport("__Internal")]
internal static extern void GADUSetNativeCustomTemplateAdCallbacks(
IntPtr nativeCustomTemplateAd,
CustomNativeTemplateClient.GADUNativeCustomTemplateDidReceiveClick
adClickedCallback);
#endregion
}
}
#endif
fileFormatVersion: 2
guid: 2e223930b947b4631aad0c53aa6fb8ba
timeCreated: 1427838344
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2018 Google, Inc.
//
// 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.
#if UNITY_IOS
using System;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.iOS
{
internal class InitializationStatusClient : IInitializationStatusClient
{
private IntPtr status;
public InitializationStatusClient(IntPtr status)
{
this.status = status;
}
public AdapterStatus getAdapterStatusForClassName(string className)
{
string description = Utils.PtrToString(
Externs.GADUGetInitDescription(this.status, className));
int latency = Externs.GADUGetInitLatency(this.status, className);
AdapterState state = (AdapterState)Externs.GADUGetInitState(this.status, className);
return new AdapterStatus(state, description, latency);
}
public Dictionary<string, AdapterStatus> getAdapterStatusMap()
{
Dictionary<string, AdapterStatus> map = new Dictionary<string, AdapterStatus>();
List<string> keys = GetAdapterClassNames();
foreach(string key in keys)
{
map.Add(key, getAdapterStatusForClassName(key));
}
return map;
}
public List<string> GetAdapterClassNames()
{
IntPtr unmanagedAssetArray =
Externs.GADUGetInitAdapterClasses(this.status);
int numOfAssets =
Externs.GADUGetInitNumberOfAdapterClasses(
this.status);
return Utils.PtrArrayToManagedList(unmanagedAssetArray, numOfAssets);
}
public void Dispose()
{
Externs.GADURelease(status);
}
~InitializationStatusClient()
{
this.Dispose();
}
}
}
#endif
fileFormatVersion: 2
guid: a637cad7baa2f4c34b42e83882faecf4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
#if UNITY_IOS
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.iOS
{
public class InterstitialClient : IInterstitialClient
{
private IntPtr interstitialPtr;
private IntPtr interstitialClientPtr;
#region Interstitial callback types
internal delegate void GADUInterstitialDidReceiveAdCallback(IntPtr interstitialClient);
internal delegate void GADUInterstitialDidFailToReceiveAdWithErrorCallback(
IntPtr interstitialClient, string error);
internal delegate void GADUInterstitialWillPresentScreenCallback(IntPtr interstitialClient);
internal delegate void GADUInterstitialDidDismissScreenCallback(IntPtr interstitialClient);
internal delegate void GADUInterstitialWillLeaveApplicationCallback(
IntPtr interstitialClient);
#endregion
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<EventArgs> OnAdClosed;
public event EventHandler<EventArgs> OnAdLeavingApplication;
// This property should be used when setting the interstitialPtr.
private IntPtr InterstitialPtr
{
get
{
return this.interstitialPtr;
}
set
{
Externs.GADURelease(this.interstitialPtr);
this.interstitialPtr = value;
}
}
#region IInterstitialClient implementation
// Creates an interstitial ad.
public void CreateInterstitialAd(string adUnitId)
{
this.interstitialClientPtr = (IntPtr)GCHandle.Alloc(this);
this.InterstitialPtr = Externs.GADUCreateInterstitial(this.interstitialClientPtr, adUnitId);
Externs.GADUSetInterstitialCallbacks(
this.InterstitialPtr,
InterstitialDidReceiveAdCallback,
InterstitialDidFailToReceiveAdWithErrorCallback,
InterstitialWillPresentScreenCallback,
InterstitialDidDismissScreenCallback,
InterstitialWillLeaveApplicationCallback);
}
// Loads an ad.
public void LoadAd(AdRequest request)
{
IntPtr requestPtr = Utils.BuildAdRequest(request);
Externs.GADURequestInterstitial(this.InterstitialPtr, requestPtr);
Externs.GADURelease(requestPtr);
}
// Checks if interstitial has loaded.
public bool IsLoaded()
{
return Externs.GADUInterstitialReady(this.InterstitialPtr);
}
// Presents the interstitial ad on the screen
public void ShowInterstitial()
{
Externs.GADUShowInterstitial(this.InterstitialPtr);
}
// Destroys the interstitial ad.
public void DestroyInterstitial()
{
this.InterstitialPtr = IntPtr.Zero;
}
// Returns the mediation adapter class name.
public string MediationAdapterClassName()
{
return Utils.PtrToString(Externs.GADUMediationAdapterClassNameForInterstitial(this.InterstitialPtr));
}
public void Dispose()
{
this.DestroyInterstitial();
((GCHandle)this.interstitialClientPtr).Free();
}
~InterstitialClient()
{
this.Dispose();
}
#endregion
#region Interstitial callback methods
[MonoPInvokeCallback(typeof(GADUInterstitialDidReceiveAdCallback))]
private static void InterstitialDidReceiveAdCallback(IntPtr interstitialClient)
{
InterstitialClient client = IntPtrToInterstitialClient(interstitialClient);
if (client.OnAdLoaded != null)
{
client.OnAdLoaded(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADUInterstitialDidFailToReceiveAdWithErrorCallback))]
private static void InterstitialDidFailToReceiveAdWithErrorCallback(
IntPtr interstitialClient, string error)
{
InterstitialClient client = IntPtrToInterstitialClient(interstitialClient);
if (client.OnAdFailedToLoad != null)
{
AdFailedToLoadEventArgs args = new AdFailedToLoadEventArgs()
{
Message = error
};
client.OnAdFailedToLoad(client, args);
}
}
[MonoPInvokeCallback(typeof(GADUInterstitialWillPresentScreenCallback))]
private static void InterstitialWillPresentScreenCallback(IntPtr interstitialClient)
{
InterstitialClient client = IntPtrToInterstitialClient(interstitialClient);
if (client.OnAdOpening != null)
{
client.OnAdOpening(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADUInterstitialDidDismissScreenCallback))]
private static void InterstitialDidDismissScreenCallback(IntPtr interstitialClient)
{
InterstitialClient client = IntPtrToInterstitialClient(interstitialClient);
if (client.OnAdClosed != null)
{
client.OnAdClosed(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADUInterstitialWillLeaveApplicationCallback))]
private static void InterstitialWillLeaveApplicationCallback(IntPtr interstitialClient)
{
InterstitialClient client = IntPtrToInterstitialClient(interstitialClient);
if (client.OnAdLeavingApplication != null)
{
client.OnAdLeavingApplication(client, EventArgs.Empty);
}
}
private static InterstitialClient IntPtrToInterstitialClient(IntPtr interstitialClient)
{
GCHandle handle = (GCHandle)interstitialClient;
return handle.Target as InterstitialClient;
}
#endregion
}
}
#endif
fileFormatVersion: 2
guid: 613e5f324478242909ace8f1b8bc0790
timeCreated: 1444854966
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2017 Google, Inc.
//
// 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.
#if UNITY_IOS
using System;
using System.Runtime.InteropServices;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.iOS
{
public class MobileAdsClient : IMobileAdsClient
{
private static MobileAdsClient instance = new MobileAdsClient();
private Action<InitializationStatus> initCompleteAction;
private IntPtr mobileAdsClientPtr;
internal delegate void GADUInitializationCompleteCallback(IntPtr mobileAdsClient, IntPtr initStatusClient);
private MobileAdsClient()
{
this.mobileAdsClientPtr = (IntPtr)GCHandle.Alloc(this);
}
public static MobileAdsClient Instance
{
get
{
return instance;
}
}
public void Initialize(string appId)
{
Externs.GADUInitialize(appId);
}
public void Initialize(Action<InitializationStatus> initCompleteAction)
{
this.initCompleteAction = initCompleteAction;
Externs.GADUInitializeWithCallback(this.mobileAdsClientPtr, InitializationCompleteCallback);
}
public void SetApplicationVolume(float volume)
{
Externs.GADUSetApplicationVolume(volume);
}
public void SetApplicationMuted(bool muted)
{
Externs.GADUSetApplicationMuted(muted);
}
public void SetiOSAppPauseOnBackground(bool pause)
{
Externs.GADUSetiOSAppPauseOnBackground(pause);
}
public float GetDeviceScale()
{
return Externs.GADUDeviceScale();
}
public int GetDeviceSafeWidth()
{
return Externs.GADUDeviceSafeWidth();
}
[MonoPInvokeCallback(typeof(GADUInitializationCompleteCallback))]
private static void InitializationCompleteCallback(IntPtr mobileAdsClient, IntPtr initStatus)
{
MobileAdsClient client = IntPtrToMobileAdsClient(mobileAdsClient);
if (client.initCompleteAction != null)
{
InitializationStatus status = new InitializationStatus(new InitializationStatusClient(initStatus));
client.initCompleteAction(status);
}
}
private static MobileAdsClient IntPtrToMobileAdsClient(IntPtr mobileAdsClient)
{
GCHandle handle = (GCHandle)mobileAdsClient;
return handle.Target as MobileAdsClient;
}
public void Dispose()
{
((GCHandle)this.mobileAdsClientPtr).Free();
}
~MobileAdsClient()
{
this.Dispose();
}
}
}
#endif
fileFormatVersion: 2
guid: 724408e8ee9ad4648943237d7f339bd4
timeCreated: 1498857849
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
using System;
// This attribute is used on static functions and it allows Mono's Ahead of Time Compiler
// to generate the code necessary to support native iOS code calling back into C# code.
public sealed class MonoPInvokeCallbackAttribute : Attribute
{
public MonoPInvokeCallbackAttribute(Type type) {}
}
fileFormatVersion: 2
guid: 3e9c3522c966c4c2cadfb64f2b984bbb
timeCreated: 1427838344
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
#if UNITY_IOS
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.iOS
{
public class RewardBasedVideoAdClient : IRewardBasedVideoAdClient, IDisposable
{
private IntPtr rewardBasedVideoAdPtr;
private IntPtr rewardBasedVideoAdClientPtr;
#region reward based video callback types
internal delegate void GADURewardBasedVideoAdDidReceiveAdCallback(
IntPtr rewardBasedVideoAdClient);
internal delegate void GADURewardBasedVideoAdDidFailToReceiveAdWithErrorCallback(
IntPtr rewardBasedVideoClient, string error);
internal delegate void GADURewardBasedVideoAdDidOpenCallback(
IntPtr rewardBasedVideoAdClient);
internal delegate void GADURewardBasedVideoAdDidStartCallback(
IntPtr rewardBasedVideoAdClient);
internal delegate void GADURewardBasedVideoAdDidCloseCallback(
IntPtr rewardBasedVideoAdClient);
internal delegate void GADURewardBasedVideoAdDidRewardCallback(
IntPtr rewardBasedVideoAdClient, string rewardType, double rewardAmount);
internal delegate void GADURewardBasedVideoAdWillLeaveApplicationCallback(
IntPtr rewardBasedVideoAdClient);
internal delegate void GADURewardBasedVideoAdDidCompleteCallback(
IntPtr rewardBasedVideoAdClient);
#endregion
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdFailedToLoadEventArgs> OnAdFailedToLoad;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<EventArgs> OnAdStarted;
public event EventHandler<EventArgs> OnAdClosed;
public event EventHandler<Reward> OnAdRewarded;
public event EventHandler<EventArgs> OnAdLeavingApplication;
public event EventHandler<EventArgs> OnAdCompleted;
// This property should be used when setting the rewardBasedVideoPtr.
private IntPtr RewardBasedVideoAdPtr
{
get { return this.rewardBasedVideoAdPtr; }
set
{
Externs.GADURelease(this.rewardBasedVideoAdPtr);
this.rewardBasedVideoAdPtr = value;
}
}
#region IGoogleMobileAdsRewardBasedVideoClient implementation
// Creates a reward based video.
public void CreateRewardBasedVideoAd()
{
this.rewardBasedVideoAdClientPtr = (IntPtr)GCHandle.Alloc(this);
this.RewardBasedVideoAdPtr = Externs.GADUCreateRewardBasedVideoAd(
this.rewardBasedVideoAdClientPtr);
Externs.GADUSetRewardBasedVideoAdCallbacks(
this.RewardBasedVideoAdPtr,
RewardBasedVideoAdDidReceiveAdCallback,
RewardBasedVideoAdDidFailToReceiveAdWithErrorCallback,
RewardBasedVideoAdDidOpenCallback,
RewardBasedVideoAdDidStartCallback,
RewardBasedVideoAdDidCloseCallback,
RewardBasedVideoAdDidRewardUserCallback,
RewardBasedVideoAdWillLeaveApplicationCallback,
RewardBasedVideoAdDidCompleteCallback);
}
// Load an ad.
public void LoadAd(AdRequest request, string adUnitId)
{
IntPtr requestPtr = Utils.BuildAdRequest(request);
Externs.GADURequestRewardBasedVideoAd(
this.RewardBasedVideoAdPtr, requestPtr, adUnitId);
Externs.GADURelease(requestPtr);
}
// Show the reward based video on the screen.
public void ShowRewardBasedVideoAd()
{
Externs.GADUShowRewardBasedVideoAd(this.RewardBasedVideoAdPtr);
}
// Sets the user ID to be used in server-to-server reward callbacks.
public void SetUserId(string userId)
{
Externs.GADUSetRewardBasedVideoAdUserId(this.RewardBasedVideoAdPtr, userId);
}
public bool IsLoaded()
{
return Externs.GADURewardBasedVideoAdReady(this.RewardBasedVideoAdPtr);
}
// Returns the mediation adapter class name.
public string MediationAdapterClassName()
{
return Utils.PtrToString(
Externs.GADUMediationAdapterClassNameForRewardedVideo(this.RewardBasedVideoAdPtr));
}
// Destroys the rewarded video ad.
public void DestroyRewardedVideoAd()
{
this.RewardBasedVideoAdPtr = IntPtr.Zero;
}
public void Dispose()
{
this.DestroyRewardedVideoAd();
((GCHandle)this.rewardBasedVideoAdClientPtr).Free();
}
~RewardBasedVideoAdClient()
{
this.Dispose();
}
#endregion
#region Reward based video ad callback methods
[MonoPInvokeCallback(typeof(GADURewardBasedVideoAdDidReceiveAdCallback))]
private static void RewardBasedVideoAdDidReceiveAdCallback(IntPtr rewardBasedVideoAdClient)
{
RewardBasedVideoAdClient client = IntPtrToRewardBasedVideoClient(
rewardBasedVideoAdClient);
if (client.OnAdLoaded != null)
{
client.OnAdLoaded(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADURewardBasedVideoAdDidFailToReceiveAdWithErrorCallback))]
private static void RewardBasedVideoAdDidFailToReceiveAdWithErrorCallback(
IntPtr rewardBasedVideoAdClient, string error)
{
RewardBasedVideoAdClient client = IntPtrToRewardBasedVideoClient(
rewardBasedVideoAdClient);
if (client.OnAdFailedToLoad != null)
{
AdFailedToLoadEventArgs args = new AdFailedToLoadEventArgs()
{
Message = error
};
client.OnAdFailedToLoad(client, args);
}
}
[MonoPInvokeCallback(typeof(GADURewardBasedVideoAdDidOpenCallback))]
private static void RewardBasedVideoAdDidOpenCallback(IntPtr rewardBasedVideoAdClient)
{
RewardBasedVideoAdClient client = IntPtrToRewardBasedVideoClient(
rewardBasedVideoAdClient);
if (client.OnAdOpening != null)
{
client.OnAdOpening(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADURewardBasedVideoAdDidStartCallback))]
private static void RewardBasedVideoAdDidStartCallback(IntPtr rewardBasedVideoAdClient)
{
RewardBasedVideoAdClient client = IntPtrToRewardBasedVideoClient(
rewardBasedVideoAdClient);
if (client.OnAdStarted != null)
{
client.OnAdStarted(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADURewardBasedVideoAdDidCloseCallback))]
private static void RewardBasedVideoAdDidCloseCallback(IntPtr rewardBasedVideoAdClient)
{
RewardBasedVideoAdClient client = IntPtrToRewardBasedVideoClient(
rewardBasedVideoAdClient);
if (client.OnAdClosed != null)
{
client.OnAdClosed(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADURewardBasedVideoAdDidRewardCallback))]
private static void RewardBasedVideoAdDidRewardUserCallback(
IntPtr rewardBasedVideoAdClient, string rewardType, double rewardAmount)
{
RewardBasedVideoAdClient client = IntPtrToRewardBasedVideoClient(
rewardBasedVideoAdClient);
if (client.OnAdRewarded != null)
{
Reward args = new Reward()
{
Type = rewardType,
Amount = rewardAmount
};
client.OnAdRewarded(client, args);
}
}
[MonoPInvokeCallback(typeof(GADURewardBasedVideoAdWillLeaveApplicationCallback))]
private static void RewardBasedVideoAdWillLeaveApplicationCallback(
IntPtr rewardBasedVideoAdClient)
{
RewardBasedVideoAdClient client = IntPtrToRewardBasedVideoClient(
rewardBasedVideoAdClient);
if (client.OnAdLeavingApplication != null)
{
client.OnAdLeavingApplication(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADURewardBasedVideoAdDidCompleteCallback))]
private static void RewardBasedVideoAdDidCompleteCallback(
IntPtr rewardBasedVideoAdClient)
{
RewardBasedVideoAdClient client = IntPtrToRewardBasedVideoClient(
rewardBasedVideoAdClient);
if (client.OnAdCompleted != null)
{
client.OnAdCompleted(client, EventArgs.Empty);
}
}
private static RewardBasedVideoAdClient IntPtrToRewardBasedVideoClient(
IntPtr rewardBasedVideoAdClient)
{
GCHandle handle = (GCHandle)rewardBasedVideoAdClient;
return handle.Target as RewardBasedVideoAdClient;
}
#endregion
}
}
#endif
fileFormatVersion: 2
guid: 9a286a90e882c4cd59f81ee4dc9d41ca
timeCreated: 1444854966
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2018 Google, Inc.
//
// 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.
#if UNITY_IOS
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.iOS
{
public class RewardedAdClient : IRewardedAdClient, IDisposable
{
private IntPtr rewardedAdPtr;
private IntPtr rewardedAdClientPtr;
#region rewarded callback types
internal delegate void GADURewardedAdDidReceiveAdCallback(
IntPtr rewardedAdClient);
internal delegate void GADURewardedAdDidFailToReceiveAdWithErrorCallback(
IntPtr rewardedAdClient, string error);
internal delegate void GADURewardedAdDidFailToShowAdWithErrorCallback(
IntPtr rewardedAdClient, string error);
internal delegate void GADURewardedAdDidOpenCallback(
IntPtr rewardedAdClient);
internal delegate void GADURewardedAdDidCloseCallback(
IntPtr rewardedAdClient);
internal delegate void GADUUserEarnedRewardCallback(
IntPtr rewardedAdClient, string rewardType, double rewardAmount);
#endregion
public event EventHandler<EventArgs> OnAdLoaded;
public event EventHandler<AdErrorEventArgs> OnAdFailedToLoad;
public event EventHandler<AdErrorEventArgs> OnAdFailedToShow;
public event EventHandler<EventArgs> OnAdOpening;
public event EventHandler<EventArgs> OnAdStarted;
public event EventHandler<EventArgs> OnAdClosed;
public event EventHandler<Reward> OnUserEarnedReward;
// This property should be used when setting the rewardedAdPtr.
private IntPtr RewardedAdPtr
{
get { return this.rewardedAdPtr; }
set
{
Externs.GADURelease(this.rewardedAdPtr);
this.rewardedAdPtr = value;
}
}
#region IGoogleMobileAdsRewardedAdClient implementation
// Creates a rewarded ad.
public void CreateRewardedAd(string adUnitId)
{
this.rewardedAdClientPtr = (IntPtr)GCHandle.Alloc(this);
this.RewardedAdPtr = Externs.GADUCreateRewardedAd(
this.rewardedAdClientPtr, adUnitId);
Externs.GADUSetRewardedAdCallbacks(
this.RewardedAdPtr,
RewardedAdDidReceiveAdCallback,
RewardedAdDidFailToReceiveAdWithErrorCallback,
RewardedAdDidFailToShowAdWithErrorCallback,
RewardedAdDidOpenCallback,
RewardedAdDidCloseCallback,
RewardedAdUserDidEarnRewardCallback);
}
// Load an ad.
public void LoadAd(AdRequest request)
{
IntPtr requestPtr = Utils.BuildAdRequest(request);
Externs.GADURequestRewardedAd(this.RewardedAdPtr, requestPtr);
Externs.GADURelease(requestPtr);
}
// Show the rewarded ad on the screen.
public void Show()
{
Externs.GADUShowRewardedAd(this.RewardedAdPtr);
}
// Sets the server side verification options
public void SetServerSideVerificationOptions(ServerSideVerificationOptions serverSideVerificationOptions)
{
IntPtr optionsPtr = Utils.BuildServerSideVerificationOptions(serverSideVerificationOptions);
Externs.GADURewardedAdSetServerSideVerificationOptions(this.RewardedAdPtr, optionsPtr);
Externs.GADURelease(optionsPtr);
}
public bool IsLoaded()
{
return Externs.GADURewardedAdReady(this.RewardedAdPtr);
}
// Returns the reward item for the loaded rewarded ad.
public Reward GetRewardItem()
{
string type = Externs.GADURewardedAdGetRewardType(this.RewardedAdPtr);
double amount = Externs.GADURewardedAdGetRewardAmount(this.RewardedAdPtr);;
return new Reward()
{
Type = type,
Amount = amount
};
}
// Returns the mediation adapter class name.
public string MediationAdapterClassName()
{
return Utils.PtrToString(
Externs.GADUMediationAdapterClassNameForRewardedAd(this.RewardedAdPtr));
}
// Destroys the rewarded ad.
public void DestroyRewardedAd()
{
this.RewardedAdPtr = IntPtr.Zero;
}
public void Dispose()
{
this.DestroyRewardedAd();
((GCHandle)this.rewardedAdClientPtr).Free();
}
~RewardedAdClient()
{
this.Dispose();
}
#endregion
#region Rewarded ad callback methods
[MonoPInvokeCallback(typeof(GADURewardedAdDidReceiveAdCallback))]
private static void RewardedAdDidReceiveAdCallback(IntPtr rewardedAdClient)
{
RewardedAdClient client = IntPtrToRewardedAdClient(rewardedAdClient);
if (client.OnAdLoaded != null)
{
client.OnAdLoaded(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADURewardedAdDidFailToReceiveAdWithErrorCallback))]
private static void RewardedAdDidFailToReceiveAdWithErrorCallback(
IntPtr rewardedAdClient, string error)
{
RewardedAdClient client = IntPtrToRewardedAdClient(rewardedAdClient);
if (client.OnAdFailedToLoad != null)
{
AdErrorEventArgs args = new AdErrorEventArgs()
{
Message = error
};
client.OnAdFailedToLoad(client, args);
}
}
[MonoPInvokeCallback(typeof(GADURewardedAdDidFailToShowAdWithErrorCallback))]
private static void RewardedAdDidFailToShowAdWithErrorCallback(
IntPtr rewardedAdClient, string error)
{
RewardedAdClient client = IntPtrToRewardedAdClient(rewardedAdClient);
if (client.OnAdFailedToShow != null)
{
AdErrorEventArgs args = new AdErrorEventArgs()
{
Message = error
};
client.OnAdFailedToShow(client, args);
}
}
[MonoPInvokeCallback(typeof(GADURewardedAdDidOpenCallback))]
private static void RewardedAdDidOpenCallback(IntPtr rewardedAdClient)
{
RewardedAdClient client = IntPtrToRewardedAdClient(rewardedAdClient);
if (client.OnAdOpening != null)
{
client.OnAdOpening(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADURewardedAdDidCloseCallback))]
private static void RewardedAdDidCloseCallback(IntPtr rewardedAdClient)
{
RewardedAdClient client = IntPtrToRewardedAdClient(
rewardedAdClient);
if (client.OnAdClosed != null)
{
client.OnAdClosed(client, EventArgs.Empty);
}
}
[MonoPInvokeCallback(typeof(GADUUserEarnedRewardCallback))]
private static void RewardedAdUserDidEarnRewardCallback(
IntPtr rewardedAdClient, string rewardType, double rewardAmount)
{
RewardedAdClient client = IntPtrToRewardedAdClient(
rewardedAdClient);
if (client.OnUserEarnedReward != null)
{
Reward args = new Reward()
{
Type = rewardType,
Amount = rewardAmount
};
client.OnUserEarnedReward(client, args);
}
}
private static RewardedAdClient IntPtrToRewardedAdClient(
IntPtr rewardedAdClient)
{
GCHandle handle = (GCHandle)rewardedAdClient;
return handle.Target as RewardedAdClient;
}
#endregion
}
}
#endif
fileFormatVersion: 2
guid: da3c3ee9b87da44a2a0acec018cf74ba
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
// Copyright (C) 2015 Google, Inc.
//
// 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.
#if UNITY_IOS
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using GoogleMobileAds.Api;
using GoogleMobileAds.Api.Mediation;
using GoogleMobileAds.Common;
namespace GoogleMobileAds.iOS
{
internal class Utils
{
// Creates an ad request.
public static IntPtr BuildAdRequest(AdRequest request)
{
IntPtr requestPtr = Externs.GADUCreateRequest();
foreach (string keyword in request.Keywords)
{
Externs.GADUAddKeyword(requestPtr, keyword);
}
foreach (string deviceId in request.TestDevices)
{
Externs.GADUAddTestDevice(requestPtr, deviceId);
}
if (request.Birthday.HasValue)
{
DateTime birthday = request.Birthday.GetValueOrDefault();
Externs.GADUSetBirthday(requestPtr, birthday.Year, birthday.Month, birthday.Day);
}
if (request.Gender.HasValue)
{
Externs.GADUSetGender(requestPtr, (int)request.Gender.GetValueOrDefault());
}
if (request.TagForChildDirectedTreatment.HasValue)
{
Externs.GADUTagForChildDirectedTreatment(
requestPtr,
request.TagForChildDirectedTreatment.GetValueOrDefault());
}
foreach (KeyValuePair<string, string> entry in request.Extras)
{
Externs.GADUSetExtra(requestPtr, entry.Key, entry.Value);
}
Externs.GADUSetExtra(requestPtr, "is_unity", "1");
foreach (MediationExtras mediationExtra in request.MediationExtras)
{
IntPtr mutableDictionaryPtr = Externs.GADUCreateMutableDictionary();
if (mutableDictionaryPtr != IntPtr.Zero)
{
foreach (KeyValuePair<string, string> entry in mediationExtra.Extras)
{
Externs.GADUMutableDictionarySetValue(
mutableDictionaryPtr,
entry.Key,
entry.Value);
}
Externs.GADUSetMediationExtras(
requestPtr,
mutableDictionaryPtr,
mediationExtra.IOSMediationExtraBuilderClassName);
}
}
Externs.GADUSetRequestAgent(requestPtr, "unity-" + AdRequest.Version);
return requestPtr;
}
public static IntPtr BuildServerSideVerificationOptions(ServerSideVerificationOptions options)
{
IntPtr optionsPtr = Externs.GADUCreateServerSideVerificationOptions();
Externs.GADUServerSideVerificationOptionsSetUserId(optionsPtr, options.UserId);
Externs.GADUServerSideVerificationOptionsSetCustomRewardString(optionsPtr, options.CustomData);
return optionsPtr;
}
public static string PtrToString(IntPtr stringPtr) {
string managedString = Marshal.PtrToStringAnsi(stringPtr);
Marshal.FreeHGlobal(stringPtr);
return managedString;
}
public static List<string> PtrArrayToManagedList(IntPtr arrayPtr, int numOfAssets) {
IntPtr[] intPtrArray = new IntPtr[numOfAssets];
string[] managedAssetArray = new string[numOfAssets];
Marshal.Copy(arrayPtr, intPtrArray, 0, numOfAssets);
for (int i = 0; i < numOfAssets; i++)
{
managedAssetArray[i] = Marshal.PtrToStringAuto(intPtrArray[i]);
Marshal.FreeHGlobal(intPtrArray[i]);
}
Marshal.FreeHGlobal(arrayPtr);
return new List<string>(managedAssetArray);
}
}
}
#endif
fileFormatVersion: 2
guid: 6cdc5afff21d6462390f1e3fc01cdcf1
timeCreated: 1445554870
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: ae4c7e11870aa4d5d80cf476a79e5e99
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a187246822bbb47529482707f3e0eff8, type: 3}
m_Name: GoogleMobileAdsSettings
m_EditorClassIdentifier:
isAdManagerEnabled: 1
isAdMobEnabled: 0
adMobAndroidAppId:
adMobIOSAppId:
delayAppMeasurementInit: 0
fileFormatVersion: 2
guid: 464d02c8eebbe464fa00c540796e4564
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 95d5208b82bf1da41bb863b5883f4635
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: e105e00cdce8456482d26b1fcd1ca47d
folderAsset: yes
timeCreated: 1448926516
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 5b5bb7be859c4fd1bd3c41a472792657
labels:
- gvh
- gvh_version-1.2.135.0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: a1e8415cfe85469f9aa0aea941166031
labels:
- gvh
- gvh_targets-editor
- gvh_version-1.2.135.0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 35304689a45d428197d8060697686528
labels:
- gvh
- gvh_version-1.2.135.0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 97738b29c18143b0a469277b09d35889
labels:
- gvh
- gvh_targets-editor
- gvh_version-1.2.135.0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 3aa17cd5f43042a1a7381759dc1258a7
labels:
- gvh
- gvh_version-1.2.135.0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: bb6999c8a5ce4ba99688ec579babe5b7
labels:
- gvh
- gvh_targets-editor
- gvh_version-1.2.135.0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: cae8f5dff2144389b07fadccfe1c949c
labels:
- gvh
- gvh_version-1.2.135.0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 369cd88e7aa04bd98e0f6c229f7c1510
labels:
- gvh
- gvh_targets-editor
- gvh_version-1.2.135.0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
Assets/PlayServicesResolver/Editor/Google.IOSResolver_v1.2.135.0.dll
Assets/PlayServicesResolver/Editor/Google.IOSResolver_v1.2.135.0.dll.mdb
Assets/PlayServicesResolver/Editor/Google.JarResolver_v1.2.135.0.dll
Assets/PlayServicesResolver/Editor/Google.JarResolver_v1.2.135.0.dll.mdb
Assets/PlayServicesResolver/Editor/Google.VersionHandler.dll
Assets/PlayServicesResolver/Editor/Google.VersionHandler.dll.mdb
Assets/PlayServicesResolver/Editor/Google.VersionHandlerImpl_v1.2.135.0.dll
Assets/PlayServicesResolver/Editor/Google.VersionHandlerImpl_v1.2.135.0.dll.mdb
fileFormatVersion: 2
guid: 54730702a56740858922d24dc3f26918
labels:
- gvh
- gvh_manifest
- gvh_version-1.2.135.0
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment