2012-04-13 16 views
11

Używam Google DFP.Asynchroniczne reklamy Google kontra Synchroniczne

Jeśli korzystam z reklam synchronicznych z witryny google, moja witryna ładuje się powoli, ponieważ musi załadować reklamę w tym samym czasie, w którym ładuje witrynę, a jeśli reklama długo trwa, obciążenie strony zostaje wstrzymane.

Jeśli korzystam z reklam asynchronicznych, nie stanowi to problemu, ponieważ strona zostanie załadowana lub nie zostaną załadowane reklamy. Innymi słowy, powoduje to, że witryna ładuje się szybciej. Rzecz polega na tym, że za pomocą reklam asynchronicznych tworzy się element div o stałej szerokości i wysokości, niezależnie od tego, czy wyświetlają się reklamy, czy nie. Zwykle tworzy to dużo pustej przestrzeni w mojej witrynie, ponieważ nie wszystkie pozycje reklam są używane. To samo dotyczy reklam synchronicznych.

Google oferuje trzeci wybór, który nie tworzy elementu div, po prostu używa javascript do wyświetlania reklam, a jeśli nie ma żadnych reklam publikowanych w tym obszarze, to po prostu nie wyświetla żadnego pustego miejsca, które jest dobry, ale zachowuje się synchronicznie ...

Potrzebuję jakiejś metody użycia reklam asynchronicznych i nie otrzymam pustych miejsc na wypadek, gdyby żadna reklama nie była publikowana.

Dzięki.

+0

Czy możesz pokazać próbkę swojej pracy? – Ibu

Odpowiedz

15

myślę czego szukasz

googletag.pubads().collapseEmptyDivs(); 

To ukryje puste elementy div, gdy nie będzie żadnych reklam do wyświetlenia. Nazywają go przed tym wierszu:

googletag.enableServices(); 

Więcej dokumentacja tutaj, dla odniesienia: http://support.google.com/dfp_premium/bin/answer.py?hl=en&answer=1650154

+0

To powinno być oznaczone jako poprawna odpowiedź. – Olaj

+1

Jedynym problemem, jaki miałem z tym, było to, że spowodował flash pustego miejsca przy ładowaniu strony, zanim wywołano metodę collapseEmptyDivs. Zobacz moją odpowiedź poniżej, jak to rozwiązałem. –

0

cóż .. możesz wypróbować obejście .. nie jestem dokładnie pewien. ale możesz spróbować ...

Masz DIV, w którym Twoje reklamy będą ładowane asynchronicznie, więc możesz dodać do niego element, dowolny sztuczny przedmiot i dołączyć detektor zdarzeń, aby wiedzieć, kiedy zostanie zastąpiony przez Twój reklamy.

można słuchać zdarzenia DOMNodeRemoved, które jest uruchamiane po usunięciu węzła, a następnie można zmienić rozmiar div odpowiednio wtedy .. daj mi znać, jeśli to działa lub postępu w tym.

2

Spróbuj tego:

<div id='div-gpt-ad-YOURDFPIDGOESHERE-1' style='width:auto; height:auto; margin:0px auto; text-align:center;'> 

To powinno rozciągnąć lub skurczyć div pasujące twórcze wymiary (a nawet centrum mniejszych reklam w większym adSlot)

1

Dodaj display: none; jak w stylu inline do elementu div.

Sposób collapseEmptyDivs dodaje stylu inline z display: none; do div kontenera nadrzędnego. Aby zapobiec błyskowi dodatkowych białych znaków, po raz pierwszy spróbowałem dodać display: none; jako styl css w moim arkuszu stylów, ale styl nie został usunięty, gdy reklamy zostały załadowane do docelowej jednostki reklamowej. Przenoszenie wyświetlacza: brak; Wydaje się, że inline rozwiązało problem.

+3

Można również po prostu przekazać wartość true do wywołania metody collapseEmptyDivs(). Spowoduje to ich zwinięcie, a następnie rozwinięcie w razie potrzeby. Wybierz swoją truciznę naprawdę. – Justin

Powiązane problemy