public ActivateAdUnitEventArgs(ICreativeSource creativeSource, IVpaid player, object creativeConcept, IAdSource adSource, IEnumerable <ICompanionSource> companions, CompanionAdsRequired suggestedCompanionRules) { Player = player; AdSource = adSource; CreativeConcept = creativeConcept; CreativeSource = creativeSource; Companions = companions; SuggestedCompanionRules = suggestedCompanionRules; }
void LoadAdUnit(ActiveAdUnit newAdUnit, ICollection <ICreative> creativeSet) { // load companions CompanionAdsRequired required = CompanionAdsRequired.None; IEnumerable <ICompanionSource> companionsToLoad = Enumerable.Empty <ICompanionSource>(); var companions = creativeSet.OfType <CreativeCompanions>().FirstOrDefault(); if (companions != null) { companionsToLoad = companions.Companions.Cast <ICompanionSource>(); required = companions.Required; } else { // VPAID 2.0 supports companions that come from the VPAID player. // these are only to be used with the VAST file contains none. if (newAdUnit.Player is IVpaid2) { var companionData = ((IVpaid2)newAdUnit.Player).AdCompanions; if (!string.IsNullOrEmpty(companionData)) { CreativeCompanions vpaidCompanions; using (var stream = companionData.ToStream()) { vpaidCompanions = AdModelFactory.CreateCompanionsFromVast(stream); } companionsToLoad = vpaidCompanions.Companions.Cast <ICompanionSource>(); required = vpaidCompanions.Required; } } } try { OnActivateAd(newAdUnit, companionsToLoad, required); } catch (Exception ex) { throw new LoadException(ex); } }
public ActivateAdUnitEventArgs(ICreativeSource creativeSource, IVpaid player, object creativeConcept, IAdSource adSource, IEnumerable<ICompanionSource> companions, CompanionAdsRequired suggestedCompanionRules) { Player = player; AdSource = adSource; CreativeConcept = creativeConcept; CreativeSource = creativeSource; Companions = companions; SuggestedCompanionRules = suggestedCompanionRules; }
/// <summary> /// Called to help load companion ads. /// </summary> /// <param name="companions">The companion ads that should show.</param> /// <param name="suggestedCompanionRules">The suggested rules for how to show companions.</param> /// <param name="creativeSource">The creative source associated with the companions.</param> /// <param name="adPlayer">The VPAID ad player associated with the companions.</param> /// <param name="creativeConcept">The creative concept for the companions. Can help provide info to assist with companion life cycle business logic.</param> /// <param name="adSource">The ad source from which the companion ads came.</param> protected virtual void LoadCompanions(IEnumerable <ICompanionSource> companions, CompanionAdsRequired suggestedCompanionRules, ICreativeSource creativeSource, IVpaid adPlayer, object creativeConcept, IAdSource adSource) { if (previouscreativeConcept != null && creativeConcept != previouscreativeConcept) { // remove all old companions UnloadCompanions(); } int failureCount = 0; int total = 0; companionUnloadActions.Clear(); try { if (companions != null) { foreach (var companion in companions) { Action undoAction; if (!TryLoadCompanion(companion, out undoAction)) { failureCount++; } else { companionUnloadActions.Add(undoAction); } total++; } } if (suggestedCompanionRules == CompanionAdsRequired.Any && total > 0 && failureCount == total) { throw new Exception("All companion ads failed"); } if (suggestedCompanionRules == CompanionAdsRequired.All && failureCount > 0) { throw new Exception("Not all companion ads succeeded"); } previouscreativeConcept = creativeConcept; } catch { UnloadCompanions(); throw; } }
void OnActivateAd(ActiveAdUnit activeAdUnit, IEnumerable<ICompanionSource> companions, CompanionAdsRequired suggestedCompanionRules) { if (ActivateAdUnit != null) ActivateAdUnit(this, new ActivateAdUnitEventArgs(activeAdUnit.CreativeSource, activeAdUnit.Player, activeAdUnit.CreativeConcept, activeAdUnit.AdSource, companions, suggestedCompanionRules)); }
/// <summary> /// Called to help load companion ads. /// </summary> /// <param name="companions">The companion ads that should show.</param> /// <param name="suggestedCompanionRules">The suggested rules for how to show companions.</param> /// <param name="creativeSource">The creative source associated with the companions.</param> /// <param name="adPlayer">The VPAID ad player associated with the companions.</param> /// <param name="creativeConcept">The creative concept for the companions. Can help provide info to assist with companion life cycle business logic.</param> /// <param name="adSource">The ad source from which the companion ads came.</param> protected virtual void LoadCompanions(IEnumerable<ICompanionSource> companions, CompanionAdsRequired suggestedCompanionRules, ICreativeSource creativeSource, IVpaid adPlayer, object creativeConcept, IAdSource adSource) { if (previouscreativeConcept != null && creativeConcept != previouscreativeConcept) { // remove all old companions UnloadCompanions(); } int failureCount = 0; int total = 0; companionUnloadActions.Clear(); try { if (companions != null) { foreach (var companion in companions) { Action undoAction; if (!TryLoadCompanion(companion, out undoAction)) { failureCount++; } else { companionUnloadActions.Add(undoAction); } total++; } } if (suggestedCompanionRules == CompanionAdsRequired.Any && total > 0 && failureCount == total) throw new Exception("All companion ads failed"); if (suggestedCompanionRules == CompanionAdsRequired.All && failureCount > 0) throw new Exception("Not all companion ads succeeded"); previouscreativeConcept = creativeConcept; } catch { UnloadCompanions(); throw; } }
void OnActivateAd(ActiveAdUnit activeAdUnit, IEnumerable <ICompanionSource> companions, CompanionAdsRequired suggestedCompanionRules) { if (ActivateAdUnit != null) { ActivateAdUnit(this, new ActivateAdUnitEventArgs(activeAdUnit.CreativeSource, activeAdUnit.Player, activeAdUnit.CreativeConcept, activeAdUnit.AdSource, companions, suggestedCompanionRules)); } }